本發明屬于人臉檢測技術領域,尤其涉及一種基于卷積神經網絡的人臉檢測方法及裝置。
背景技術:
人臉檢測是人臉識別和表情識別等后續工作的基礎,在人臉檢測的實際應用場景中,待檢測人臉存在著各種變化,例如光照、遮擋等,都會對人臉檢測的準確性造成影響。
卷積神經網絡由于對大型圖像處理有出色的表現,近年來成為研究的一個熱點,在現有的基于卷積神經網絡的人臉檢測中,為了達到很好的檢測效果,通常卷積神經網絡設計的比較復雜,計算量很大,檢測效率較低。但是當出現光照、遮擋變化時,這種外部級聯的卷積神經網絡的魯棒性仍然較低,對檢測的效果有很大影響。另外,現有的基于卷積神經網絡的人臉檢測中,有一些人臉檢測方法對身體信息加以利用,但是對于身體遮擋嚴重,或者姿態變化較大的情況下魯棒性很低,檢測效果依然不理想,無法精確識別圖像中的人臉的問題。
技術實現要素:
鑒于此,本發明提供一種基于卷積神經網絡的人臉檢測方法及裝置,提高基于卷積神經網絡人臉檢測系統的魯棒性,提高人臉識別的精度。
本發明的第一方面,提供一種基于卷積神經網絡的人臉檢測方法,所述方法包括:
將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;
將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片;
將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。
本發明的第二方面,提供一種基于卷積神經網絡的人臉檢測裝置,所述裝置包括:
構建模塊,用于將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;
第一級檢測模塊,用于將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片;
人臉輸出模塊,用于將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。
本發明與現有技術相比存在的有益效果是:本發明將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片;將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。提高基于卷積神經網絡人臉檢測系統的魯棒性,提高人臉識別的精度。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明第一實施例提供的基于卷積神經網絡的人臉檢測方法的示意流程圖;
圖2是本發明第二實施例提供的基于卷積神經網絡的人臉檢測方法的示意流程圖;
圖3是本發明第二實施例中的第一級卷積神經網絡結構圖;
圖4是本發明第二實施例中的第二級卷積神經網絡結構圖;
圖5是本發明第二實施例中的第三級卷積神經網絡結構圖;
圖6是本發明第二實施例中的內部級聯卷積神經網絡訓練過程圖;
圖7是本發明第二實施例中的人臉檢測過程圖;
圖8是本發明第三實施例提供的基于卷積神經網絡的人臉檢測裝置的示意框圖;
圖9是本發明第四實施例提供的基于卷積神經網絡的人臉檢測裝置的示意框圖;
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
應當理解,當在本說明書和所附權利要求書中使用時,術語“包括”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個或多個其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應當理解,在此本發明說明書中所使用的術語僅僅是出于描述特定實施例的目的而并不意在限制本發明。如在本發明說明書和所附權利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數形式的“一”、“一個”及“該”意在包括復數形式。
還應當進一步理解,在本發明說明書和所附權利要求書中使用的術語“和/或”是指相關聯列出的項中的一個或多個的任何組合以及所有可能組合,并且包括這些組合。
如在本說明書和所附權利要求書中所使用的那樣,術語“如果”可以依據上下文被解釋為“當...時”或“一旦”或“響應于確定”或“響應于檢測到”。類似地,短語“如果確定”或“如果檢測到[所描述條件或事件]”可以依據上下文被解釋為意指“一旦確定”或“響應于確定”或“一旦檢測到[所描述條件或事件]”或“響應于檢測到[所描述條件或事件]”。
為了說明本發明所述的技術方案,下面通過具體實施例來進行說明。
實施例一:
參見圖1,圖1是本發明實施例一提供的基于卷積神經網絡的人臉檢測方法的示意流程圖,如圖所示該方法可以包括以下步驟:
步驟S101,將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡。
在本發明實施例中,通過將三個卷積神經網絡(Convolutional Neural Network,CNN)級聯在一起構成外部級聯的卷積神經網絡,第一級卷積神經網絡可以比較簡單,判斷閾值設置的寬松一些,這樣就可以在保持召回率的同時排除掉大量的非人臉窗口,第二級和第三級網絡為了保證足夠的性能,因此設計可以稍微復雜,由于只需處理早期階段篩選出的樣本,因此可以降低計算量,提高效率。可以設置第一級網絡為全卷積神經網絡,第二級和第三級網絡分別為雙流的內部級聯卷積神經網絡。
所述全卷積神經網絡是將傳統卷積神經網絡中的全連接層轉化為卷積層。全卷積神經網絡的優點是可以接收任意大小的輸入圖像,這樣在測試過程中就可以不用要求所有的訓練圖像和測試圖像具有相同的尺寸,另外雖然全卷積神經網絡得到的結果不夠精細,對圖像中的細節不敏感,但是做外部級聯的卷積神經網絡中的第一級網絡,在排除掉非人臉窗口的同時還能保證召回率。
所述雙流的內部級聯卷積神經網絡分為人臉區域卷積神經網絡和身體區域卷積神經網絡,所述人臉區域卷積神經網絡和身體區域卷積神經網絡在最后的全連接層進行融合,所述人臉區域卷積神經網絡和身體區域卷積神經網絡分別為內部級聯卷積神經網絡,所述內部級聯卷積神經網絡在池化層后連接早期拒絕分類器和數據路由層。所述早期拒絕分類器也可以看作是一個小的神經網絡,設置拒絕閾值,若輸入的訓練樣本在拒絕閾值范圍內,則這個訓練樣本不參與后續的傳輸過程,這樣可以實現對輸入的圖像進行人臉和非人臉分類。判斷為人臉的圖像繼續后續的傳播,判斷為非人臉的圖像則停止后續的傳播。數據路由層,是根據接收到的圖像的特征選擇是繼續向前傳播還是停止傳播。
步驟S102,將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片。
在本發明實施例中,在通過所述三級卷積神經網絡檢測人臉前,還需要通過反向傳播法訓練所述三級卷積神經網絡,在將所述三級卷積神經網絡訓練收斂后,可以將待檢測圖片輸入至所述第一級網絡,所述待檢測圖片需要縮放到不同尺度后構成圖像金塔,所述待檢測圖片在經過全卷積神經網絡后,會輸出帶人臉檢測框的人臉區域和非人臉區域,在第一級網絡得到的帶人臉檢測框的人臉區域和非人臉區域只是一個粗略的提取人臉圖像的過程,通常帶人臉檢測框的人臉區域中包含非人臉圖像。
步驟S103,將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。
在本發明實施例中,將第一級輸出的圖片作為第二級網絡的輸入,由于第二級網絡為雙流的內部級聯卷積神經網絡,需要兩個輸入,這就需要根據所述初始人臉檢測框的位置獲取對應的身體區域圖像。將初始人臉檢測框中的圖像和獲得的身體區域圖像作為第二級網絡的輸入,第二級卷積神經網絡會從第一級輸出的人臉圖像中再次淘汰掉一部分非人臉圖像,并聯合身體區域定位檢測人臉圖像不斷調整檢測框的位置,輸出帶人臉檢測框的圖片,第二級網絡輸出的圖片也是帶人臉檢測框的圖片,經過第二級網絡輸出的人臉檢測框中的圖像仍然會有部分是非人臉圖像。
將第二級網絡輸出的人臉檢測框中的圖像和所述第二級網絡輸出的人臉檢測框的位置對應的身體區域圖像輸入第三級雙流的內部級聯卷積神經網絡,淘汰非人臉圖像,最終輸出帶人臉的圖片。第三級網絡的結構和第二級網絡的結構類似,待檢測圖片傳輸的過程也類似。
本發明實施例將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片;將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。提高基于卷積神經網絡人臉檢測系統的魯棒性,提高人臉識別的精度。
實施例二:
參見圖2,圖2是本發明實施例二提供的基于卷積神經網絡的人臉檢測方法的示意流程圖,如圖所示該方法可以包括以下步驟:
步驟S201,將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡。
在步驟S101構建的三級卷積神經網絡的基礎上更進一步細化三級卷積神經網絡。
以圖3為例,第一級卷積神經網絡結構為:
輸入:12×12×3的圖片;
第一層卷積層(Conv1):3×3大小的卷積核,;
第一層池化層(Pool1):2×2大小的卷積核,輸出5×5×14的特征圖;
第二層卷積層(Conv12):3×3大小的卷積核,輸出3×3×24的特征圖;
第三層卷積層(Conv13):3×3大小的卷積核,輸出1×1×36的特征圖;
分類器:輸出包括1和0兩個單元,分別表示人臉和非人臉,判定為人臉的區域會生成人臉檢測框,最后包含人臉分類器和窗口回歸器。
以第一級卷積神經網絡的輸入為例,12×12×3中的3表示圖像的深度(即R、G、B),12×12表示像素為12×12的圖像。卷積層的卷積核的大小為3×3表示感受野,感受野的深度必須和輸入圖像的深度相同。通過一個卷積核與輸入圖像的卷積就可以得到該層輸出的特征圖。池化層是將輸入的池化層的特征圖進行壓縮,提取主要特征,壓縮后的特征圖有可能影響網絡的準確性,因此可以通過增加特征圖的深度來彌補。
以圖4為例,第二級卷積神經網絡結構為:
人臉區域卷積神經網絡:
輸入:24×24×3大小的圖片;
第一層卷積層和池化層:卷積層卷積核為3×3,池化層卷積核為3×3,輸出為11×11×32的特征圖;
第二層卷積層和池化層:卷積層卷積核為3×3,池化層卷積核為3×3,輸出為4×4×64的特征圖;
第三層卷積層:卷積核為2×2,輸出為3×3×128的特征圖;
在池化層后連接早期拒絕分類器和數據路由層。
身體區域卷積神經網絡在人臉區域卷積神經網絡基礎上在最后的卷積層增加了反卷積操作生成33×18×117的關節點熱圖圖像特征:
輸入:33×18×3大小的圖片;
第一層卷積層和池化層:卷積層卷積核為3×3,池化層卷積核為3×3,輸出為15×7×32的特征圖;
第二層卷積層和池化層:卷積層卷積核為3×3,池化層卷積核為3×3,輸出為6×3×48的特征圖;
第三層卷積層:卷積核為2×2,輸出為5×2×128的特征圖;
在池化層后連接早期拒絕分類器和數據路由層。人臉區域卷積神經網絡和身體區域卷積神經網絡在最后通過全連接層將人臉區域卷積神經網絡和身體區域卷積神經網絡融合在一起,再送入分類器,通過人臉分類器判定是否為人臉,并在判定為人臉的區域生成人臉檢測框,人臉檢測框的位置和大小通過窗口回歸器調整。
圖5是第三級卷積神經網絡結構,與第二級卷積神經網絡類似。
需要說明的是,以上構建的三個卷積神經網路只是其中的三個實施例,在此實施例的基礎上還可以增加或者減少卷積層、池化層、全連接層、分類器等,以上列舉的三個實施例并不用于限制本發明。
步驟S202,訓練所述三級卷積神經網絡,以利用人體關節點位置,為人臉的檢測提供輔助信息。
在本發明實施例中,可以采用反向傳播法單獨訓練每一級卷積神經網絡,當每一級卷積神經網絡的最終輸出的損失函數收斂即表示訓練結束。訓練過程中會利用人體關節點位置,為人臉的檢測提供輔助信息。在訓練過程中第一級卷積神經網絡的輸入有正樣本和負樣本,所述正樣本是指人臉圖像,即真實的人臉,所述負樣本是指非人臉圖像。
在訓練身體區域卷積神經網絡的過程中,將每個生成的關節點熱圖作為描述身體特征的短語,根據所述短語對應的訓練樣本,訓練基于短語的身體檢測器,其中,每個描述身體特征的短語相當于一個身體檢測器。將所述待檢測圖片與上述訓練得到的每一個基于短語的身體檢測器進行匹配,得到檢測到的短語位置(身體區域位置),基于身體檢測器得到的身體區域圖片估算人臉的位置。利用人臉區域卷積神經網絡輸出的人臉圖像和身體區域卷積神經網絡輸出的圖像融合得到檢測結果。
由于利用上述方法需要生成多個身體檢測器,作為一個優選的實施例,在身體區域卷積神經網絡訓練過程中,對進入最后一層卷積層的身體區域圖像做反卷積操作生成人體關節點熱圖,學習得到與人體關節點熱圖對應的預測熱圖;
通過對生成的關節點熱圖和預測熱圖的殘差求導訓練所述身體區域卷積神經網絡。
在本發明實施例中,輸入的為根據第一級輸出的人臉檢測框生成的身體區域圖像,所述身體區域圖像是根據上一級輸出的人臉檢測框的位置按照固定比例估算出的身體區域的圖像,生成的身體區域圖像包含人臉檢測框的位置的圖像。在正向傳播過程中對進入最后一層卷積層的身體區域圖像樣本做反卷積操作生成多張關節點熱圖。假設給定的訓練集為{In,Ln},n=1,…,N,N為訓練樣本的總數,其中In表示第n張圖像,Ln表示第n張圖像對應的人體骨骼點,Ln={Ik},k=1,…,K,k表示第k個被標注的人體骨骼點,K表示共有K個被標注的人體骨骼點。設置模型的K=17,Ik=(xk,yk),Ik表示第k個骨骼點的位置。假設第k個骨骼點的熱圖為hpk,Ik映射在hpk上的坐標為Ipk=(xhk,yhk)表示如下:
xk=stride×xhk+offset
yk=stride×yhk+offset
其中,stride表示步長,offset表示偏移量,hpk中每一個值表示該值在In中第k個骨骼點位置的概率,取值為[0,1]。生成熱圖過程如下:
輸入一張圖片和其對應的17個骨骼點坐標;
輸出這17個骨骼點對應的17個真實關節點熱圖;
獲取原圖像一個骨骼點的位置坐標并按照公式xk=stride×xhk+offset和yk=stride×yhk+offset映射坐標。在本發明實施例中,設置stride為4,設置offset為32。對于該映射坐標Ipk=(xhk,yhk)為中心,檢查某個閾值范圍內的某個點是否在熱圖區域內,若在熱圖區域內,得到變換后坐標相對熱圖的坐標偏移,即在熱圖中的坐標。若不在熱圖區域范圍內,則繼續取下一個點重復操作,直到以該映射坐標Ipk=(xhk,yhk)為坐標中心,閾值范圍內的區域遍歷完畢。遍歷完原圖的K個骨骼點即可得到關節點熱圖。
在正向傳播過程中,在給定一張圖片,通過身體區域的卷積神經網絡可以得到對應的K個熱圖,將這K個熱圖按人體部位排成固定的順序,這樣可以根據生成的關節點熱圖比對學習出與生成的關節點熱圖對應的預測熱圖。這樣就避免為每一個關節點熱圖訓練一個身體檢測器,還可以使各個關節點熱圖的權值共享。
在反向傳播過程中,需要將正向傳播輸出的預測熱圖和關節點熱圖計算殘差,然后對殘差求導更新身體區域卷積神經網絡中的權值。
由于人臉區域和身體區域卷積神經網絡是內部級聯的卷積神經網絡。以圖6說明內部級聯的卷積神經網絡的訓練過程,需要特別注意的是,當輸入的人臉圖像在經過早期拒絕分類器后會被分為人臉圖像和非人臉圖像,早期拒絕分類器實際也是一個小的神經網絡,早期拒絕分類器作為一個小的神經網絡會將輸入的圖像判定出人臉圖像和非人臉圖像,若是人臉圖像,會計算該人臉圖像是人臉的概率值p,若是非人臉圖像,會直接將非人臉圖像淘汰,將判斷為人臉的圖像繼續傳播至數據路由層,數據路由層會將根據輸入的圖像選擇一個通道,例如若進入數據路由層的人臉圖像是人臉的概率值p大于閾值θ的人臉圖像繼續向前傳播和向后傳播,將人臉圖像是人臉的概率p小于或者等于所述閾值θ的人臉圖像停止向前傳播,中途停止向前傳播的圖像,也不在繼續向后傳播。這樣,相當于一些比較簡單好判斷的圖像樣本在一開始就能夠處理(比如簡單的負樣本),一開始不好判斷的圖像樣本則進入后邊比較深的網絡處理(比如較復雜的負樣本和正樣本)。
步驟S203,將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片。
該步驟與步驟S102相同,具體可參見步驟S102的相關描述,在此不再贅述。
步驟S204,將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。
作為一個優選的實施例,所述將所述包含初始人臉檢測框的圖片輸入值第二級網絡和第三級網絡,獲得包含人臉的圖片包括:
根據所述初始人臉檢測框的位置獲取對應的身體區域圖像;
將所述初始人臉檢測框中的圖像和對應的身體區域圖像輸入第二級雙流的內部級聯卷積神經網絡;
將傳輸到早期拒絕分類器的圖像分為人臉圖像和非人臉圖像,淘汰非人臉圖像并計算人臉圖像是人臉的概率;
所述人臉圖像傳輸至數據路由層,若人臉圖像是人臉的概率小于或者等于閾值,則淘汰人臉圖像是人臉的概率小于或者等于閾值的人臉圖像;
若人臉圖像是人臉的概率大于所述閾值,則將人臉圖像是人臉的概率大于所述閾值的人臉圖像繼續傳輸;
將最終傳輸到全連接層的人臉區域卷積神經網絡輸出的人臉圖像和身體區域卷積神經網絡輸出的人臉圖像融合并輸出帶人臉檢測框的圖片;
將第二級網絡輸出的人臉檢測框中的圖像和所述第二級網絡輸出的人臉檢測框的位置對應的身體區域圖像輸入第三級雙流的內部級聯卷積神經網絡,淘汰非人臉圖像,最終輸出帶人臉的圖片。
在本發明實施例中,通過圖7(a)說明人臉檢測的過程,在整個過程中,每一級輸出的圖片都帶有人臉檢測框,第一級輸出的圖片中由于只是一個候選框的提取過程,所以候選框的個數比較多,而候選框中并非全部是人臉圖像,第二級輸出的圖片中,人臉檢測框的數量明顯減少,第二級網絡經過粗略的檢測,淘汰一部分非人臉圖像。經過第三級卷積神經網絡之后,經過更細化的人臉特征檢測,淘汰掉非人臉圖像,獲得圖片中人臉檢測框中的圖片即是人臉圖片。將待檢測圖片輸入第一級網絡后,輸出圖片會判斷人臉圖像和非人臉圖像,并且判定為人臉圖像的區域帶有人臉檢測框,將第一級網絡輸出的人臉檢測框中的圖像作為第二級的一個輸入,并根據第一級輸出的人臉檢測框的位置按照固定比例生成身體區域的圖像最終得到的圖像不僅包含身體區域還包含人臉檢測框中的圖像作為第二級網絡的另一個輸入。身體區域卷積神經網絡實際也是檢測人臉的過程,只是輸入的待檢測圖像中包含了第一級輸出的人臉圖像對應的身體區域。需要說明的是,最終輸出的人臉檢測框是通過一個bounding box regression(窗口回歸器)得出,窗口回歸器用來微調人臉檢測框的位置和大小。
通過圖7(b)說明雙流內部級聯神經網絡的檢測過程,進入第二級網絡的待檢測圖片,傳輸到早期拒絕分類器后,跟訓練過程一樣會進一步判定人臉圖像和非人臉圖像,淘汰掉非人臉圖像,并計算人臉圖像是人臉的概率p,將判定為人臉的圖像繼續送入數據路由層,數據路由層將判定為人臉圖像并且人臉圖像是人臉的概率p小于或等于閾值θ的人臉圖像淘汰;將判定為人臉圖像并且人臉圖像是人臉的概率p大于所述閾值θ的人臉圖像繼續傳輸。將最終傳輸到全連接層的人臉區域卷積神經網絡輸出的人臉圖像和身體區域卷積神經網絡輸出的人臉圖像融合并輸出帶人臉檢測框的圖片。
第三級網絡與第二級網絡的結構類似,測試過程也類似,不再贅述。
應理解,在上述實施例一和二中,各步驟的序號的大小并不意味著執行順序的先后,各步驟的執行順序應以其功能和內在邏輯確定,而不應對本發明實施例的實施過程構成任何限定。
實施例三:
參見圖8,圖8是本發明實施例三提供的基于卷積神經網絡的人臉檢測裝置的示意框圖,為了便于說明,僅示出與本發明實施例相關的部分。
該基于卷積神經網絡的人臉檢測裝置可以是內置于終端設備(例如手機、平板電腦、筆記本、計算機、穿戴設備等)內的軟件單元、硬件單元或者軟硬結合的單元,也可以作為獨立的掛件集成到所述終端設備中。
所述基于卷積神經網絡的人臉檢測裝置包括:
構建模塊81,用于將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;
第一級檢測模塊82,用于將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片;
人臉輸出模塊83,用于將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。
可選的,所述雙流的內部級聯卷積神經網絡分為人臉區域卷積神經網絡和身體區域卷積神經網絡,所述人臉區域卷積神經網絡和身體區域卷積神經網絡在最后的全連接層進行融合,所述人臉區域卷積神經網絡和身體區域的卷積神經網絡分別為內部級聯卷積神經網絡,所述內部級聯卷積神經網絡在池化層后連接早期拒絕分類器和數據路由層。
可選的,所述裝置還包括:
訓練模塊,用于訓練所述卷積神經網絡,以利用人體關節點位置,為人臉的檢測提供輔助信息。
可選的,所述訓練模塊具體用于:
在身體區域卷積神經網絡訓練過程中,對進入最后一層卷積層的身體區域圖像做反卷積操作生成人體關節點熱圖,學習得到與人體關節點熱圖對應的預測熱圖;
通過對生成的關節點熱圖和預測熱圖的殘差求導訓練所述身體區域卷積神經網絡。
可選的,所述人臉輸出模塊83包括:
身體區域生成單元831,用于根據所述初始人臉檢測框的位置生成對應的身體區域圖像;
輸入單元832,用于將所述初始人臉檢測框中的圖像和對應的身體區域圖像輸入第二級雙流的內部級聯卷積神經網絡;
分類單元833,用于將輸入的圖像分為人臉圖像和非人臉圖像,淘汰非人臉圖像并計算人臉圖像是人臉的概率;
處理單元834,用于若人臉圖像是人臉的概率小于或者等于閾值,則淘汰人臉圖像是人臉的概率小于或者等于閾值的人臉圖像;
處理單元834,還用于若人臉圖像是人臉的概率大于所述閾值,則將人臉圖像是人臉的概率大于所述閾值的人臉圖像繼續傳輸;
輸出單元835,用于將最終傳輸到全連接層的人臉區域卷積神經網絡輸出的人臉圖像和身體區域卷積神經網絡輸出的人臉圖像融合并輸出帶人臉檢測框的圖片;
三級檢測單元836,用于將第二級網絡輸出的人臉檢測框中的圖像和所述第二級網絡輸出的人臉檢測框的位置對應的身體區域圖像輸入第三級雙流的內部級聯卷積神經網絡,淘汰非人臉圖像,最終輸出帶人臉的圖片。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能單元、模塊完成,即所述裝置的內部結構劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元或模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元或模塊既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。另外,各功能單元、模塊的具體名稱也只是為了便于相互區分,并不用于限制本申請的保護范圍。上述裝置中單元、模塊的具體工作過程,可以參考前述方法實施例的對應過程,在此不再贅述。
實施例四:
參見圖4,圖4是本發明實施例四提供的基于卷積神經網絡的人臉檢測裝置的示意框圖。如圖所示的該基于卷積神經網絡的人臉檢測裝置可以包括:一個或多個處理器901(圖4中僅示出一個);一個或多個輸入設備902(圖4中僅示出一個),一個或多個輸出設備903(圖4中僅示出一個)和存儲器904。上述處理器901、輸入設備902、輸出設備903和存儲器904通過總線905連接。存儲器904用于存儲指令,處理器901用于執行存儲器904存儲的指令。其中:
所述處理器901,用于將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;所述處理器901還用于將預處理后的多張待檢測圖片通過輸入設備902輸入至所述第一級網絡,通過輸出設備903獲得包含初始人臉檢測框的圖片;所述處理器901還用于將所述包含初始人臉檢測框的圖片通過輸入設備902輸入至所述第二級網絡和第三級網絡,通過輸出設備903獲得包含人臉的圖片。
可選的,所述雙流的內部級聯卷積神經網絡分為人臉區域卷積神經網絡和身體區域卷積神經網絡,所述人臉區域卷積神經網絡和身體區域卷積神經網絡在最后的全連接層進行融合,所述人臉區域卷積神經網絡和身體區域的卷積神經網絡分別為內部級聯卷積神經網絡,所述內部級聯卷積神經網絡在池化層后連接早期拒絕分類器和數據路由層。
可選的,所述處理器901還用于訓練所述三級卷積神經網絡,以利用人體關節點位置,為人臉的檢測提供輔助信息。
可選的,所述處理器901還用于在身體區域卷積神經網絡訓練過程中,對進入最后一層卷積層的身體區域圖像做反卷積操作生成人體關節點熱圖,學習得到與人體關節點熱圖對應的預測熱圖;所述處理器901還用于通過對生成的關節點熱圖和預測熱圖的殘差求導訓練所述身體區域卷積神經網絡。
可選的,所述處理器901還用于根據所述初始人臉檢測框的位置獲取對應的身體區域圖像;所述處理器901還用于將所述初始人臉檢測框中的圖像和對應的身體區域圖像通過輸入設備902輸入第二級雙流的內部級聯卷積神經網絡;所述處理器901還用于將傳輸到早期拒絕分類器的圖像分為人臉圖像和非人臉圖像,淘汰非人臉圖像并計算人臉圖像是人臉的概率;所述處理器901還用于所述人臉圖像傳輸至數據路由層,若人臉圖像是人臉的概率小于或者等于閾值,則淘汰人臉圖像是人臉的概率小于或者等于閾值的人臉圖像;所述處理器901還用于若人臉圖像是人臉的概率大于所述閾值,則將人臉圖像是人臉的概率大于所述閾值的人臉圖像繼續傳輸;所述處理器901還用于將最終傳輸到全連接層的人臉區域卷積神經網絡輸出的人臉圖像和身體區域卷積神經網絡輸出的人臉圖像融合并通過輸出設備903輸出帶人臉檢測框的圖片;所述處理器901還用于將第二級網絡輸出的人臉檢測框中的圖像和所述第二級網絡輸出的人臉檢測框的位置對應的身體區域圖像通過輸入設備902輸入第三級雙流的內部級聯卷積神經網絡,淘汰非人臉圖像,最終通過輸出設備903輸出帶人臉的圖片。
所述存儲器904,用于存儲軟件程序、模塊、單元以及基于卷積神經網絡的人臉檢測裝置中需要的數據信息,所述處理器901通過運行存儲在所述存儲器904的軟件程序、模塊以及單元,從而執行各種功能應用以及數據處理,提高基于卷積神經網絡人臉檢測系統的魯棒性,提高人臉識別的精度。
應當理解,在本發明實施例中,所稱處理器901可以是中央處理單元(Central Processing Unit,CPU),該處理器還可以是其他通用處理器、數字信號處理器(Digital Signal Processor,DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現成可編程門陣列(Field-Programmable Gate Array,FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
輸入設備902可以包括觸控板、指紋采集傳感器(用于采集用戶的指紋信息和指紋的方向信息)、麥克風、數據采集裝置、數據接收裝置等,輸出設備903可以包括顯示器(LCD等)、揚聲器、數據發送裝置等。
該存儲器904可以包括只讀存儲器和隨機存取存儲器,并向處理器901提供指令和數據。存儲器904的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器904還可以存儲設備類型的信息。
具體實現中,本發明實施例中所描述的處理器901、輸入設備902、輸出設備903和存儲器904可執行本發明實施例提供的基于卷積神經網絡的人臉檢測方法的實施例中所描述的實現方式,也可執行基于卷積神經網絡的人臉檢測裝置的實施例三中所描述的實現方式,在此不再贅述。
綜上所述,本發明將卷積神經網絡劃分為三級卷積神經網絡,第一級網絡為全卷積神經網絡,第二級網絡和第三級網絡分別為雙流的內部級聯卷積神經網絡;將預處理后的多張待檢測圖片輸入至所述第一級網絡,獲得包含初始人臉檢測框的圖片;將所述包含初始人臉檢測框的圖片輸入至所述第二級網絡和第三級網絡,獲得包含人臉的圖片。提高基于卷積神經網絡人臉檢測系統的魯棒性,提高人臉識別的精度。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的模塊及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
在本發明所提供的實施例中,應該理解到,所揭露的終端設備、裝置和方法,可以通過其它的方式實現。例如,以上所描述的實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明實施例的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本發明實施例各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明實施例各實施例技術方案的精神和范圍。