基于人臉識別的煎餅打印路徑生成方法和裝置的制造方法
【專利摘要】本發明提供一種基于人臉識別的煎餅打印路徑生成方法和裝置,屬于3D煎餅打印機領域,所述方法包括:步驟101:在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像,并在所述子圖像上標記出特征點,所述特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處;步驟102:根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理,得到三色灰度圖;步驟103:對所述三色灰度圖中的每個連通區域進行處理,生成筆畫路徑;步驟104:合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余點,得到打印路徑。與現有技術相比,本發明能夠生成煎餅打印機能夠自動打印的路徑文件,在很大程度上能替代煎餅畫師的工作,節約人力成本,提高工作效率。
【專利說明】
基于人臉識別的煎餅打印路徑生成方法和裝置
技術領域
[0001]本發明涉及3D煎餅打印機領域,特別是指一種基于人臉識別的煎餅打印路徑生成方法和裝置。【背景技術】
[0002]近年來,隨著科學的發展和進步,3D打印技術已逐步從專業領域走向大眾的日常生活,包括家具、服飾、餐飲等各行各業。3D煎餅打印機作為3D打印技術在餐飲行業的典型應用,真正地將高科技與大眾生活充分融合,不僅減少了人力成本,而且提高了生產質量和效率。[0003 ] 3D煎餅打印機可打印出人像、建筑、卡通人物等各種形狀的煎餅,3D煎餅打印機能夠打印的圖案種類和相關打印素材的豐富性則直接影響煎餅機的推廣和實用價值,而目前打印的圖案和素材主要靠人工繪制,成本較高,種類有限。
【發明內容】
[0004]本發明要解決的技術問題是提供一種基于人臉識別的煎餅打印路徑生成方法和裝置,本發明能夠生成煎餅打印機能夠自動打印的路徑文件,在很大程度上能替代煎餅畫師的工作,節約人力成本,提高工作效率。
[0005]為解決上述技術問題,本發明提供技術方案如下:
[0006]—方面,提供一種基于人臉識別的煎餅打印路徑生成方法,包括:
[0007]步驟101:在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像,并在所述子圖像上標記出特征點,所述特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處;
[0008]步驟102:根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理,得到三色灰度圖;
[0009]步驟103:對所述三色灰度圖中的每個連通區域進行處理,生成筆畫路徑;
[0010]步驟104:合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余點,得到打印路徑。
[0011]進一步的,所述步驟101包括:
[0012]步驟1011:使用人臉識別算法,在人臉圖像上定位出人臉區域;
[0013]步驟1012:對人臉圖像進行裁剪,得到400*400大小的包含所述人臉區域的子圖像;
[0014]步驟1013:使用68點人臉訓練模型在所述子圖像上標記出臉頰、眼睛、眉毛、鼻子和嘴巴的位置。
[0015]進一步的,所述步驟102包括:
[0016]步驟1021:將所述子圖像轉換成灰度圖像,并對所述灰度圖像進行雙邊濾波處理;
[0017]步驟1022:對所述灰度圖像上的人臉區域進行聚類操作,得到多層三色子度圖; [〇〇18]步驟1023:對顏色最淺的三色子度圖,利用聚類結果,區分出人臉區域顏色最淺的部分和背景區域,并將背景區域剔除;
[0019]步驟1024:對三色子度圖進行圓形模板的開運算,去除噪聲和不必要的小細節區域,得到三色子度圖的實際有效區域;
[0020]步驟1025:根據人臉區域和特征點的位置以及三色子度圖的實際有效區域,進一步裁剪三色子度圖;
[0021]步驟1026:填充裁剪后的三色子度圖中人臉區域內部的孔洞,導出最終的三色子度圖。
[0022]進一步的,所述步驟103包括:
[0023]步驟1031:根據實際打印煎餅的大小以及打印機筆畫的粗細,計算size,其中size為打印筆畫寬度在灰度圖中對應的像素個數;
[0024]步驟1032:將每層三色子度圖的原始連通區域做寬度為size/2的向內等距偏移;
[0025]步驟1033:對于等距偏移后的連通區域,選擇連通區域邊緣上的一點作為起始點開始搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與連通區域邊界的交點,直至路徑搜索完成。
[0026]進一步的,所述步驟104包括:
[0027]步驟1041:使用simpl ify-go簡化方法對所述筆畫路徑進行簡化,其中容差為0.35;
[0028]步驟1042:判斷所述筆畫路徑上相鄰的兩點距離是否小于3.0,若是,使用兩點的中點代替這兩點,得到打印路徑。
[0029]另一方面,提供一種基于人臉識別的煎餅打印路徑生成裝置,包括:
[0030]人臉識別模塊,用于在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像,并在所述子圖像上標記出特征點,所述特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處;
[0031]圖像分層模塊,用于根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理,得到三色灰度圖;
[0032]筆畫路徑生成模塊,用于對所述三色灰度圖中的每個連通區域進行處理,生成筆畫路徑;
[0033]打印路徑生成模塊,用于合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余點,得到打印路徑。
[0034]進一步的,所述人臉識別模塊包括:
[0035]人臉識別單元,用于使用人臉識別算法,在人臉圖像上定位出人臉區域;
[0036]圖像裁剪單元,用于對人臉圖像進行裁剪,得到400*400大小的包含所述人臉區域的子圖像;
[0037]特征定位單元,用于使用68點人臉訓練模型在所述子圖像上標記出臉頰、眼睛、眉毛、鼻子和嘴巴的位置。
[0038]進一步的,所述圖像分層模塊包括:
[0039]灰度轉換單元,用于將所述子圖像轉換成灰度圖像,并對所述灰度圖像進行雙邊濾波處理;
[0040]聚類單元,用于對所述灰度圖像上的人臉區域進行聚類操作,得到多層三色子度圖;
[0041]背景剔除單元,用于對顏色最淺的三色子度圖,利用聚類結果,區分出人臉區域顏色最淺的部分和背景區域,并將背景區域剔除;
[0042]開運算單元,用于對三色子度圖進行圓形模板的開運算,去除噪聲和不必要的小細節區域,得到三色子度圖的實際有效區域;
[0043]灰度圖裁剪單元,用于根據人臉區域和特征點的位置以及三色子度圖的實際有效區域,進一步裁剪三色子度圖;
[0044]填充單元,用于填充裁剪后的三色子度圖中人臉區域內部的孔洞,導出最終的三色子度圖。
[0045]進一步的,所述筆畫路徑生成模塊包括:
[0046]筆畫寬度計算單元,用于根據實際打印煎餅的大小以及打印機筆畫的粗細,計算size,其中size為打印筆畫寬度在灰度圖中對應的像素個數;
[0047]等距偏移單元,用于將每層三色子度圖的原始連通區域做寬度為size/2的向內等距偏移;
[0048]路徑搜索單元,用于對于等距偏移后的連通區域,選擇連通區域邊緣上的一點作為起始點開始搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與連通區域邊界的交點,直至路徑搜索完成。
[0049]進一步的,所述打印路徑生成模塊包括:
[0050]第一路徑進行簡化單元,用于使用simplify-go簡化方法對所述筆畫路徑進行簡化,其中容差為0.35;
[0051]第二路徑進行簡化單元,用于判斷所述筆畫路徑上相鄰的兩點距離是否小于3.0,若是,使用兩點的中點代替這兩點,得到打印路徑。
[0052]本發明具有以下有益效果:
[0053]本發明對于給定淺色單一背景的人臉圖像,首先利用人臉識別技術,確定被識別人臉在對應圖像中實際位置,然后根據給定的尺寸大小裁剪出正面的人臉圖像,并利用識別出的臉部特征以及圖像的本身顏色明暗特征對圖像進行分層處理,形成三色灰度圖。對于灰度圖中的每一層區域,利用煎餅筆畫生成算法生成煎餅打印機能夠自動打印的路徑文件。由于在圖像分層灰度化的過程中結合了人臉識別的結果,所以能在很大程度上提高最終打印出的人臉頭像煎餅與原始圖的相似程度。并且本發明在很大程度上能替代煎餅畫師的工作,節約人力成本,提高工作效率。
【附圖說明】
[0054]圖1為本發明的基于人臉識別的煎餅打印路徑生成方法流程圖;
[0055]圖2為本發明的基于人臉識別的煎餅打印路徑生成裝置示意圖;
[0056]圖3為本發明中分層處理后得到的圖像;
[0057]圖4為本發明中打印得到的煎餅圖像。
【具體實施方式】
[0058]為使本發明要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
[0059]—方面,本發明提供一種基于人臉識別的煎餅打印路徑生成方法,如圖1所示,包括:
[0060]步驟101:在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像,并在所述子圖像上標記出特征點,所述特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處。
[0061]本發明中,人臉圖像為包含人臉且背景為單一淺色的圖像,本步驟中,可以使用各種人臉識別算法,確定被識別人臉的位置,同時對原圖進行裁剪變換,得到子圖像,然后根據人臉訓練模型標記出臉頰以及眼睛、眉毛、鼻子和嘴巴在子圖像中的精確位置,為后續的圖像處理和分層提供參考。
[0062]步驟102:根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理,如圖3所示,得到三色灰度圖。
[0063]本步驟中,根據煎餅機打印煎餅的顏色空間以及人工畫餅的過程,需要把子圖轉化為三色灰度圖,具體的,可以通過濾波和聚類等操作得到三色灰度圖。
[0064]步驟103:對所述三色灰度圖中的每個連通區域進行處理,生成筆畫路徑。
[0065]對三色灰度圖,首先根據不同的灰度值將原圖按層次分開,對于每一層圖像遍歷出該層的所有連通區域,對于每個連通區域生成初始的煎餅筆畫路徑。
[0066]步驟104:合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余點,得到打印路徑,打印后的煎餅如圖4所示。
[0067]由于從三色灰度圖直接得到的筆畫路徑往往包含的點數較多,對于煎餅打印機而言,這會導致打印的速度降低,筆畫變粗,嚴重影響最終的打印效果。因此需要根據煎餅打印機的打印性能,對筆畫路徑進行簡化并生成打印機能夠識別的打印路徑指令。本步驟中的簡化方法主要包括給定距離容差的近似點合并以及平滑處冗余點的刪除。
[0068]本發明對于給定淺色單一背景的人臉圖像,首先利用人臉識別技術,確定被識別人臉在對應圖像中實際位置,然后根據給定的尺寸大小裁剪出正面的人臉圖像,并利用識別出的臉部特征以及圖像的本身顏色明暗特征對圖像進行分層處理,形成三色灰度圖。對于灰度圖中的每一層區域,利用煎餅筆畫生成算法生成煎餅打印機能夠自動打印的路徑文件。由于在圖像分層灰度化的過程中結合了人臉識別的結果,所以能在很大程度上提高最終打印出的人臉頭像煎餅與原始圖的相似程度。并且本發明在很大程度上能替代煎餅畫師的工作,節約人力成本,提高工作效率。
[0069]作為本發明的一種改進,步驟101可以包括:
[0070]步驟1011:使用人臉識別算法,在人臉圖像上定位出人臉區域。
[0071]本步驟中,利用開源庫dlib進行人臉識別,定位出人臉區域。
[0072]步驟1012:對人臉圖像進行裁剪,得到400*400大小的包含人臉區域的子圖像。
[0073]步驟1013:使用68點人臉訓練模型在子圖像上標記出臉頰、眼睛、眉毛、鼻子和嘴巴的位置。
[0074]本步驟中,使用68點人臉標定數據集shape_predictor_68_face_landmarks.dat來識別出子圖像上的臉頰、眼睛、眉毛、鼻子和嘴巴的位置。
[0075]本發明能夠簡單方便的識別并定位出人臉區域,并且識別結果準確。
[0076]由于最終打印出來的煎餅圖案的顏色深淺主要靠烤炙時間來決定,所以需要對打印的圖案進行分層處理,先打印的層烤炙時間較長,最終的顏色較深,后打印的層烤炙時間相對較短,最終的顏色較淺。
[0077]以打印人臉煎餅為例,頭發和眼睛一般顏色較深,為最先打印的層,而臉頰顏色較淺,一般為最后打印的部分。圖像分層是指將原始圖轉化成只包含給定幾種灰度值的灰度圖像,每一種灰度值代表一層,分層的主要目的是用來區分圖像各個部分的打印先后和烤炙時間。
[0078]本發明中,步驟102可以利用開源庫opencv的相關功能進行濾波和聚類等基本操作,具體的:
[0079]步驟1021:將子圖像轉換成灰度圖像,并對灰度圖像進行雙邊濾波處理。
[0080]本步驟中,利用cv::bilateralFilter對灰度圖像進行雙邊濾波操作,濾波的內核大小為圖像的高度x0.02,相似度權值和距離權值公式中的方差均取96。
[0081]步驟1022:對灰度圖像上的人臉區域進行聚類操作,得到多層三色子度圖。
[0082]本步驟中,利用人臉68點標定模型中的前27個點,人臉68點標定模型中的前27個點表示了臉頰和眉毛的位置,可有效地用于估計人臉的實際位置和近似包圍盒,即臉頰和眉毛的輪廓點近似表示人臉區域,在該區域內部利用cv::kmeanS進行聚類操作,終止條件選擇CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,聚類次數設為4,最終要聚成4類,即人臉區域分成4層,終止精度設為0.001,聚類初始化方法選擇KMEANS_PP_CENTERS。對聚類的結果進行從小到大的排序,根據結果對原圖進行初次分層。
[0083]步驟1023:對顏色最淺的三色子度圖,利用聚類結果,區分出人臉區域顏色最淺的部分和背景區域,并將背景區域剔除。
[0084]對于初次分層結果中顏色最淺的一層,根據已有的假設,往往包含了人臉顏色最淺的部分和淺色背景,而背景是人臉煎餅中需要剔除的,因此需要對該層進行再次處理。首先利用步驟1022中得到的人臉近似輪廓與該層區域進行求交操作,得到位于人臉內部的亮色區域,然后利用CV::kmeanS聚類出該區域的平均顏色,作為人臉最亮層的顏色。根據該區域內各點與均值的顏色空間距離集合,計算出顏色距離的均值和標準差。然后對顏色最淺層中的每一點計算其與人臉最亮層的顏色的距離,根據該距離與距離均值的差是否大于標準差來剔除背景區域,大于標準差的認為是背景區域,需要剔除。
[0085]步驟1024:對三色子度圖進行圓形模板的開運算,去除噪聲和不必要的小細節區域,得到三色子度圖的實際有效區域.
[0086]對于除背景外的分層圖像中的每一層,利用cv::morphologyEx進行開運算操作,模版形狀選擇cv::M0RPH_ELLIPSE,大小為(圖像高度x0.00625)/2x2+1。利用已經識別出的人臉五官位置信息,去除眼睛和嘴以外部分的小區域,由于煎餅打印機的打印精度有限,無法打印出過小的區域,因此除必要的五官信息外的其余細節特征需要盡量去除,以保證良好的打印效果,根據圖像的大小,小區域尺寸定義為0.05*圖像高度*0.05*圖像寬度。
[0087]步驟1025:根據人臉區域和特征點的位置以及三色子度圖的實際有效區域,進一步裁剪三色子度圖,為了使人臉圖案在打印時盡量大且局中,需要盡量裁剪掉人臉以外的無關部分。。
[0088]對于步驟1024中得到的分層圖像,首先計算除背景外的頭像的實際區域大小,然后根據已識別的五官信息,以眉心為中心,以眉心和下顎中心距離的2.4倍作為邊長,根據臉頰輪廓的左右兩點和鼻尖的距離,計算新的更緊的頭像包圍正方形,最后根據新的包圍正方形對分層圖進行裁剪。
[0089]步驟1026:填充裁剪后的三色子度圖中人臉區域內部的孔洞,導出最終的三色子度圖。
[0090]本步驟利用cv:: f 10dFill對人臉區域內的孔洞以顏色最淺層的灰度值進行填充,然后利用cv::1mwrite導出最終的分層灰度圖像。
[0091]本發明使用開源庫opencv的相關功能進行濾波和聚類等基本操作,能夠得到三色灰度圖,方便后續生成筆畫路徑,并且筆畫路徑更加精確。
[0092]對于分層后的灰度圖像,首先根據不同的灰度值將原圖按層次分開,對于每一層圖像利用cv::floodFill遍歷出該層的所有連通區域,對于每個連通區域按如下步驟生成初始的煎餅筆畫路徑,由于煎餅的打印過程一般是逐區域打印的,對于煎餅機來說希望每個區域中的筆畫數盡量少,以保證打印過程的流暢性,同時筆畫覆蓋整個區域,因此基于連通區域生成比劃路徑,包括:
[0093]步驟1031:根據實際打印煎餅的大小以及打印機筆畫的粗細,計算size,其中size為打印筆畫寬度在灰度圖中對應的像素個數。
[0094]本步驟中,計算圖像中筆畫對應的像素寬度size和連接路徑最小代價的閾值threshold,其中size =圖像的尺寸X實際的筆畫寬度/實際煎餅的尺寸,threshold = size*size*l.8。
[0095]步驟1032:將每層三色子度圖的原始連通區域做寬度為size/2的向內等距偏移。
[0096]由于煎餅機打印的實際路徑筆畫都具有固定的寬度,因此在模擬筆畫填涂給定圖層區域時,需要作向內的等距偏移,否則實際打印時會出現尺寸不對或溢料。
[0097]對原始的連通區域做寬度為size/2的保連通的向內等距偏移操作。與傳統的圖像等距偏移不同,根據每個像素點的8鄰域判定邊緣點后,還需要檢測移除該點后是否會導致原區域的連通性被破壞,如果會破壞連通性,則該點需要保留,不能在等距偏移的過程中被刪除。
[0098]步驟1033:對于等距偏移后的每個連通區域,選擇連通區域邊緣上的一點作為起始點開始搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與連通區域邊界的交點,直至路徑搜索完成,本步驟包括:
[0099](I).對于等距偏移后的區域圖像,選擇區域最左的邊緣點作為起始點開始搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與區域邊界的交點,若有多個交點,則選擇路徑方向變化最小的點,并將其余交點加入到種子點隊列中,作為新路徑搜索的候選點;為獲取交點,實施的過程中不僅需要記錄每步搜索后原區域圖像的變化,即未被填充的區域圖,還需要在每條子路徑搜索完前對上一步的圖像狀態進行備份,即備份圖,以獲取正確的邊界交點。同時還需要記錄已填涂過的區域,即安全區域圖,用于搜索最小代價的連接路徑。在搜索的過程中,若下一點已為空,則先判定未被填充的區域圖已為空,若是,則所有路徑搜索完成,算法結束;否則,已經搜索到了區域的某個分支終點,將原路徑反向后,以同樣的方法向另一個方向進行重新搜索,若另一個方向搜索也無法搜到下一點且還有區域未被填充,則根據該路徑更新安全區域圖,標記新的安全區域,同時更新未被填充的區域圖和備份圖,并對路徑相鄰的邊界做寬度為size/2的向內等距偏移,然后進入(2);若搜索到的下一點回到了起始點區域,則說明已成環,同樣更新安全區域,未被填充的區域圖以及備份圖,并對路徑相鄰的邊界做寬度為size/2的向內等距偏移,然后在新區域邊界上找最近點作為下一點繼續搜索路徑。
[0100](2).對于經過兩頭搜索均無法繼續的情況,尋找經過安全區域能夠連通未填充區域的最小代價連接路徑,若該路徑的代價小于等于閾值,則連接該路徑,同時更新未被填充的區域圖、備份圖以及安全區域圖,并繼續步驟(I)中的搜索;若大于給定的閾值,則無法繼續連接,該筆畫結束,返回步驟(I),從種子點隊列中選取新的起始點開始搜索新筆畫。為使用Dijkstra算法計算能夠連通未填充區域的最小代價路徑,對區域圖像構造連通圖,每個像素作為圖中的一個頂點,每個頂點僅與其8鄰域頂點連通,連通頂點間邊的代價為兩頂點代價的均值,頂點的代價為其筆畫寬度鄰域內位于安全區域外點的個數。為使最終生成的筆畫數目盡可能少,需要計算從原始路徑的兩頭開始的最小代價連接路徑,只需在構造的連通圖中再加入一個頂點,作為虛擬的起點,該起點僅與原始路徑的兩端點連通,且代價為O ο對于Di jkstra算法中的最短路徑集合,采用最小堆結構來進行存儲和查找,只要找到的最短路徑的終點位于未被填充的區域內則最小代價路徑搜索結束。
[0101]本發明能夠得到精確的筆畫路徑。
[0102]另外,本發明的步驟104可以包括:
[0103]步驟1041:使用simplify-go簡化方法對筆畫路徑進行簡化,其中容差為0.35,包括:
[0104]a.RadialDist簡化:對于給定的距離容差,依次比較原路徑中的所有相鄰點,對于距離小于等于給定容差的點進行刪除,只保留距離大于給定容差的點。
[0? O5 ] b.Doug IasPeucker簡化:對于a中得到的初步簡化路徑,以路徑的起點和終點構造簡化線段,計算路徑中其余各點到簡化線段的最近距離的最大值點,若最大的距離值已小于等于給定的容差距離,則返回簡化線段,簡化過程結束;若最大的距離值大于給定的容差距離,則保留最大值點為有效點,并利用該最大值點將原路徑分成兩條簡化線段,對每條簡化線段重復驗證中間各點到簡化線段的最近距離最大值,并保留有效點,直到所有的線段在給定容差內均無需加入新的有效點為止,簡化過程結束。
[0106]本步驟對筆畫路徑進行初次簡化,為后續的簡化提供基礎。
[0107]步驟1042:判斷筆畫路徑上相鄰的兩點距離是否小于3.0,若是,使用兩點的中點代替這兩點,得到打印路徑。
[0108]本步驟中能夠合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余點,得到打印路徑。
[0109]本發明能夠得到精確的打印路徑,提高人臉頭像煎餅與原始圖的相似程度。
[0110]另一方面,本發明提供一種基于人臉識別的煎餅打印路徑生成裝置,如圖2所示,包括:
[0111]人臉識別模塊11,用于在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像,并在子圖像上標記出特征點,特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處;
[0112]圖像分層模塊12,用于根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理,得到三色灰度圖;
[0113]筆畫路徑生成模塊13,用于對三色灰度圖中的每個連通區域進行處理,生成筆畫路徑;
[0114]打印路徑生成模塊14,用于合并筆畫路徑上的近似點,刪除筆畫路徑上的冗余點,得到打印路徑。
[0115]作為本發明的一種改進,人臉識別模塊包括:
[0116]人臉識別單元,用于使用人臉識別算法,在人臉圖像上定位出人臉區域;
[0117]圖像裁剪單元,用于對人臉圖像進行裁剪,得到400*400大小的包含人臉區域的子圖像;
[0118]特征定位單元,用于使用68點人臉訓練模型在子圖像上標記出臉頰、眼睛、眉毛、鼻子和嘴巴的位置。
[0119]本發明中,圖像分層模塊可以利用開源庫opencv的相關功能進行濾波和聚類等基本操作,具體的,包括:
[0120]灰度轉換單元,用于將子圖像轉換成灰度圖像,并對灰度圖像進行雙邊濾波處理;
[0121]聚類單元,用于對灰度圖像上的人臉區域進行聚類操作,得到多層三色子度圖;
[0122]背景剔除單元,用于對顏色最淺的三色子度圖,利用聚類結果,區分出人臉區域顏色最淺的部分和背景區域,并將背景區域剔除;
[0123]開運算單元,用于對三色子度圖進行圓形模板的開運算,去除噪聲和不必要的小細節區域,得到三色子度圖的實際有效區域;
[0124]灰度圖裁剪單元,用于根據人臉區域和特征點的位置以及三色子度圖的實際有效區域,進一步裁剪三色子度圖;
[0125]填充單元,用于填充裁剪后的三色子度圖中人臉區域內部的孔洞,導出最終的三色子度圖。
[0126]對于分層后的灰度圖像,首先根據不同的灰度值將原圖按層次分開,對于每一層圖像利用cv::floodFill遍歷出該層的所有連通區域,對于每個連通區域按如下單元生成初始的煎餅筆畫路徑:
[0127]筆畫寬度計算單元,用于根據實際打印煎餅的大小以及打印機筆畫的粗細,計算size,其中size為打印筆畫寬度在灰度圖中對應的像素個數;
[0128]等距偏移單元,用于將每層三色子度圖的原始連通區域做寬度為size/2的向內等距偏移;
[0129]路徑搜索單元,用于對于等距偏移后的連通區域,選擇連通區域邊緣上的一點作為起始點開始搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與連通區域邊界的交點,直至路徑搜索完成。
[0130]另外,本發明中的打印路徑生成模塊包括:
[0131]第一路徑進行簡化單元,用于使用simplify-go簡化方法對筆畫路徑進行簡化,其中容差為0.35;
[0132]第二路徑進行簡化單元,用于判斷筆畫路徑上相鄰的兩點距離是否小于3.0,若是,使用兩點的中點代替這兩點,得到打印路徑。
[0133]以上所述是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
【主權項】
1.一種基于人臉識別的煎餅打印路徑生成方法,其特征在于,包括:步驟101:在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像,并在所述 子圖像上標記出特征點,所述特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處;步驟102:根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理,得到三色灰 度圖;步驟103:對所述三色灰度圖中的每個連通區域進行處理,生成筆畫路徑;步驟104:合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余點,得到打印路徑。2.根據權利要求1所述的基于人臉識別的煎餅打印路徑生成方法,其特征在于,所述步 驟101包括:步驟1011:使用人臉識別算法,在人臉圖像上定位出人臉區域;步驟1012:對人臉圖像進行裁剪,得到400*400大小的包含所述人臉區域的子圖像;步驟1013:使用68點人臉訓練模型在所述子圖像上標記出臉頰、眼睛、眉毛、鼻子和嘴 巴的位置。3.根據權利要求2所述的基于人臉識別的煎餅打印路徑生成方法,其特征在于,所述步 驟102包括:步驟1021:將所述子圖像轉換成灰度圖像,并對所述灰度圖像進行雙邊濾波處理;步驟1022:對所述灰度圖像上的人臉區域進行聚類操作,得到多層三色子度圖;步驟1023:對顏色最淺的三色子度圖,利用聚類結果,區分出人臉區域顏色最淺的部分 和背景區域,并將背景區域剔除;步驟1024:對三色子度圖進行圓形模板的開運算,去除噪聲和不必要的小細節區域,得 到三色子度圖的實際有效區域;步驟1025:根據人臉區域和特征點的位置以及三色子度圖的實際有效區域,進一步裁剪三色子度圖;步驟1026:填充裁剪后的三色子度圖中人臉區域內部的孔洞,導出最終的三色子度圖。4.根據權利要求3所述的基于人臉識別的煎餅打印路徑生成方法,其特征在于,所述步 驟103包括:步驟1031:根據實際打印煎餅的大小以及打印機筆畫的粗細,計算size,其中size為打 印筆畫寬度在灰度圖中對應的像素個數;步驟1032:將每層三色子度圖的原始連通區域做寬度為size/2的向內等距偏移;步驟1033:對于等距偏移后的連通區域,選擇連通區域邊緣上的一點作為起始點開始 搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與連通區域邊界的 交點,直至路徑搜索完成。5.根據權利要求1-4任一所述的基于人臉識別的煎餅打印路徑生成方法,其特征在于, 所述步驟104包括:步驟1041:使用simp lify-go簡化方法對所述筆畫路徑進行簡化,其中容差為0.35;步驟1042:判斷所述筆畫路徑上相鄰的兩點距離是否小于3.0,若是,使用兩點的中點 代替這兩點,得到打印路徑。6.—種基于人臉識別的煎餅打印路徑生成裝置,其特征在于,包括:人臉識別模塊,用于在人臉圖像上定位出人臉區域,裁剪得到包括人臉區域的子圖像, 并在所述子圖像上標記出特征點,所述特征點位于臉頰、眼睛、眉毛、鼻子和嘴巴處;圖像分層模塊,用于根據特征點以及子圖像的顏色明暗特征對子圖像進行分層處理, 得到二色灰度圖;筆畫路徑生成模塊,用于對所述三色灰度圖中的每個連通區域進行處理,生成筆畫路 徑;打印路徑生成模塊,用于合并所述筆畫路徑上的近似點,刪除所述筆畫路徑上的冗余 點,得到打印路徑。7.根據權利要求6所述的基于人臉識別的煎餅打印路徑生成裝置,其特征在于,所述人 臉識別t吳塊包括:人臉識別單元,用于使用人臉識別算法,在人臉圖像上定位出人臉區域;圖像裁剪單元,用于對人臉圖像進行裁剪,得到400*400大小的包含所述人臉區域的子 圖像;特征定位單元,用于使用68點人臉訓練模型在所述子圖像上標記出臉頰、眼睛、眉毛、 鼻子和嘴巴的位置。8.根據權利要求7所述的基于人臉識別的煎餅打印路徑生成裝置,其特征在于,所述圖 像分層模塊包括:灰度轉換單元,用于將所述子圖像轉換成灰度圖像,并對所述灰度圖像進行雙邊濾波 處理;聚類單元,用于對所述灰度圖像上的人臉區域進行聚類操作,得到多層三色子度圖;背景剔除單元,用于對顏色最淺的三色子度圖,利用聚類結果,區分出人臉區域顏色最 淺的部分和背景區域,并將背景區域剔除;開運算單元,用于對三色子度圖進行圓形模板的開運算,去除噪聲和不必要的小細節 區域,得到三色子度圖的實際有效區域;灰度圖裁剪單元,用于根據人臉區域和特征點的位置以及三色子度圖的實際有效區 域,進一步裁剪三色子度圖;填充單元,用于填充裁剪后的三色子度圖中人臉區域內部的孔洞,導出最終的三色子度圖。9.根據權利要求7所述的基于人臉識別的煎餅打印路徑生成裝置,其特征在于,所述筆 畫路徑生成模塊包括:筆畫寬度計算單元,用于根據實際打印煎餅的大小以及打印機筆畫的粗細,計算size, 其中size為打印筆畫寬度在灰度圖中對應的像素個數;等距偏移單元,用于將每層三色子度圖的原始連通區域做寬度為size/2的向內等距偏 移;路徑搜索單元,用于對于等距偏移后的連通區域,選擇連通區域邊緣上的一點作為起 始點開始搜索路徑,路徑中的下一點為以前一點為中心,寬度為size+2的正方形與連通區 域邊界的交點,直至路徑搜索完成。10.根據權利要求6-9任一所述的基于人臉識別的煎餅打印路徑生成裝置,其特征在 于,所述打印路徑生成模塊包括:第一路徑進行簡化單元,用于使用s imp 1 i fy-go簡化方法對所述筆畫路徑進行簡化,其 中容差為0.35;第二路徑進行簡化單元,用于判斷所述筆畫路徑上相鄰的兩點距離是否小于3.0,若 是,使用兩點的中點代替這兩點,得到打印路徑。
【文檔編號】A21C11/00GK106020745SQ201610323885
【公開日】2016年10月12日
【申請日】2016年5月16日
【發明人】朱恬倩, 章陸, 劉鵬
【申請人】北京清軟海芯科技有限公司