1.一種3D人像食品打印方法,其特征在于,包括以下步驟:
(1)用戶將輸入的人臉源圖像由RGB圖像轉(zhuǎn)換為灰度圖;
(2)利用face++API,對(duì)人臉特征區(qū)域的83個(gè)人臉特征點(diǎn)進(jìn)行標(biāo)識(shí),獲得83個(gè)涵蓋臉部輪廓,包括眉毛、眼睛、鼻子、嘴巴輪廓的特征點(diǎn);
(3)將灰度圖進(jìn)行預(yù)處理,加強(qiáng)face++人臉關(guān)鍵點(diǎn)插值后得到的臉部輪廓的灰度值;
(4)利用邊緣切向流構(gòu)造算法,構(gòu)造人臉圖像的平滑方向場(chǎng);
(5)利用沿著方向流場(chǎng)的高斯差分算法,進(jìn)行基于方向場(chǎng)流向的各向異性高斯濾波,最后根據(jù)預(yù)設(shè)的閾值進(jìn)行二值化,從而得到人臉圖像的輪廓;
(6)對(duì)步驟(5)得到的二值圖像進(jìn)行避開face++標(biāo)記的人臉關(guān)鍵點(diǎn)的八連通深度遍歷搜索,刪除像素點(diǎn)低于300的連通線段,從而簡(jiǎn)化圖像;
(7)將步驟(6)得到的各個(gè)離散的連通線條抽象為一個(gè)點(diǎn),進(jìn)而將一筆畫問(wèn)題轉(zhuǎn)換為圖論問(wèn)題,利用普里姆算法將距離最近的連通區(qū)域兩兩相連,將所有線條連成一體;
(8)采用侵蝕算法,對(duì)步驟(7)得到的一筆畫路徑進(jìn)行簡(jiǎn)化,通過(guò)依次遍歷所有像素點(diǎn),得到最終的3D打印路徑。
2.如權(quán)利要求1所述的3D人像食品打印算法,其特征在于,在步驟(1)中所述將輸入的人臉源圖像由RGB圖像轉(zhuǎn)換為灰度圖,具體方法為:
Gray=R*0.299+G*0.587+B*0.114。
3.如權(quán)利要求1所述的3D人像食品打印方法,其特征在于,在步驟(2)中所述對(duì)人臉特征區(qū)域的83個(gè)人臉特征點(diǎn)進(jìn)行標(biāo)識(shí),具體方法為:
(2-1)找到人臉的位置并在這個(gè)基礎(chǔ)上定位人臉關(guān)鍵點(diǎn)如眼睛中心或嘴角的位置;
(2-2)把人臉通過(guò)縮放、旋轉(zhuǎn)、拉伸等圖像變化變到一個(gè)比較標(biāo)準(zhǔn)的大小位置;
(2-3)加入人臉光學(xué)校正模塊,通過(guò)濾波方法去除對(duì)光照更加敏感的面部特征;
(2-4)從人臉區(qū)域提取包括局部二值模式、方向梯度直方圖、Gabor濾波的各種特征;
(2-5)根據(jù)人臉上關(guān)鍵特征的分布,將人臉劃分成以下五個(gè)特征區(qū)域:臉部輪廓特征區(qū)域、眉毛特征區(qū)域、眼睛特征區(qū)域、鼻子特征區(qū)域、嘴唇特征區(qū)域和臉頰特征區(qū)域;
(2-6)對(duì)人臉的五個(gè)特征區(qū)域的各特征點(diǎn)進(jìn)行標(biāo)識(shí)。
4.如權(quán)利要求3所述的3D人像食品打印方法,其特征在于,所述人臉特征點(diǎn)的生成順序?yàn)椋旱谝粋€(gè)點(diǎn)為下巴;接著是九個(gè)由上到下的左側(cè)臉部輪廓關(guān)鍵點(diǎn)和九個(gè)由上到下的右側(cè)臉部輪廓關(guān)鍵點(diǎn);眉毛特征區(qū)域由左右各八個(gè)特征點(diǎn)組成;眼睛特征區(qū)域由中心一個(gè)特征點(diǎn)和周圍十個(gè)個(gè)特征點(diǎn)組成;鼻子特征區(qū)域由八個(gè)特點(diǎn)組成;其余的特征點(diǎn)描述嘴巴特征區(qū)域。
5.如權(quán)利要求1所述的3D人像食品打印方法,其特征在于,步驟(4)中所述邊切向流算法的濾波核函數(shù)如下:
其中:
wd(x,y)=|tcur(x)·tcur(y)|
x表示當(dāng)前點(diǎn),y表示x鄰域中某個(gè)點(diǎn);k表示向量歸一化系數(shù);Ω(x)表示以x為中心的3*3鄰域;φ(x,y)∈{1,-1};
tnew表示新的經(jīng)過(guò)光順的切向量(梯度的垂直方向);
tcur表示當(dāng)前的切向量,初值是由Sobel算子計(jì)算的切向量逆時(shí)針旋轉(zhuǎn)90度獲得的;
ws(x,y)表示空間距離權(quán)值,用于確定函數(shù)作用范圍,當(dāng)y像素點(diǎn)位于x像素點(diǎn)半徑r范圍內(nèi)的時(shí)候,為1;
wm(x,y)表示控制梯度值之差的影響,y與x的梯度值相差越大,這一權(quán)值也越高;
wd(x,y)表示控制方向的影響,梯度向量越趨近于平行這一權(quán)值越大,越趨近于垂直則越?。?/p>
r代表函數(shù)作用的有效半徑;
η是一個(gè)定值;
表示y點(diǎn)的經(jīng)過(guò)歸一化的梯度值;
表示x點(diǎn)經(jīng)過(guò)歸一化的梯度值。
6.如權(quán)利要求1所述的3D人像食品打印方法,其特征在于,步驟(5)中所述的基于方向場(chǎng)流向的各向異性高斯濾波得到人臉圖像的輪廓的具體方法如下:
首先對(duì)于每一個(gè)像素點(diǎn),沿著圖像變化最劇烈的方向,即梯度方向,施加一維的DoG:
其中:
T表示高斯卷積核橫向的長(zhǎng)度,方向?yàn)樘荻确较颍?/p>
I表示當(dāng)前點(diǎn)的灰度值;
I(ls(t))表示在橫向直線上,系數(shù)為t的時(shí)候的位置上的灰度值;
ρ是一個(gè)定值;
曲線S代表方向場(chǎng)的流向,為了得到更連續(xù)的線條,需要沿著S再進(jìn)行一次高斯卷積:
其中:S表示高斯卷積核的縱向長(zhǎng)度,方向沿著流場(chǎng)的切線方向;
最后,再根據(jù)設(shè)定的閾值τ對(duì)圖像進(jìn)行二值化,就得到了最后的結(jié)果:
表示二值化的結(jié)果,對(duì)于上一步求得的H(x),根據(jù)τ進(jìn)行二值化。
7.如權(quán)利要求1所述的3D人像食品打印方法,其特征在于,步驟(6)中所述的簡(jiǎn)化圖像具體方法如下:
(6-1)通過(guò)邊緣切向流與沿著流場(chǎng)的高斯差分算法得到二值圖,預(yù)先標(biāo)記含有Face++人臉關(guān)鍵點(diǎn)的連通線條;
(6-2)對(duì)其二值圖中每一個(gè)像素點(diǎn)避開標(biāo)記的人臉關(guān)鍵點(diǎn)線條采取八連通深度搜索遍歷,統(tǒng)計(jì)每一個(gè)連通線條的像素點(diǎn)的個(gè)數(shù),并設(shè)置閾值;
(6-3)刪除像素點(diǎn)數(shù)低于300并且不通過(guò)特征點(diǎn)的連通線條,從而簡(jiǎn)化圖片。
8.如權(quán)利要求1所述的3D人像食品打印方法,其特征在于,步驟(7)中所述的將所有線條連成一體的方法如下:
(7-1)采取八連通深度搜索遍歷對(duì)連通域進(jìn)行標(biāo)記,將各個(gè)離散的連通線條抽象為一個(gè)點(diǎn),進(jìn)而將問(wèn)題抽象為一個(gè)圖論問(wèn)題;
(7-2)依次枚舉兩兩連通域間的最短距離,并記錄達(dá)到最短距離時(shí)對(duì)應(yīng)的兩點(diǎn)坐標(biāo);
(7-3)最小生成樹普里姆算法進(jìn)行距離最近的兩個(gè)連通域互連,達(dá)到互連邊的權(quán)值之和最小。