黃仕豪


摘要:該文提出了一種基于級聯卷積神經網絡的人臉關鍵點檢測算法,通過105000圖片進行數據訓練,之后根據另外不同于數據訓練3043張,進行實驗測試,最終發現該算法的定位準確率相比于很多目前的人臉識別系統有了長足的進步,并且使用級聯的方式明顯優于使用效果明顯優于單卷積神經網絡,另外雖然該算法在效率上有所下降,但是該算法配合GPU在處理一個人臉上的耗時基本在16毫秒以下,可以滿足基本使用。
關鍵詞:卷積神經網絡級聯;人臉關鍵點;檢測算法
中圖分類號:TP3? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)23-0165-02
1 卷積神經網絡介紹
所謂的卷積神經網絡,其實指的是在傳統的人工神經網絡之上搭建深度學習而產生的一種新型人工神經網絡,該神經網絡具有表征學習的能力,能夠對于輸入信息進行平移不變分類,目前該神經網絡主要應用在圖像識別,物體識別,行為認知,姿態估計,神經風格遷移,自然語言處理,物理學,大氣科學等內容之上,本文所研究的卷積神經網絡級聯人臉關鍵點檢測算法主要是圖像識別領域的內容。
2 基于卷積神經網絡級聯人臉關鍵點檢測算法介紹
通過研究發現,使用單個卷積神經網絡進行人臉關鍵點定位其精度方面與所達目標有一定的差距,因此本文所研究的人臉關鍵點定位算法主要基于卷積神經網絡的級聯方式進行,具體操作的邏輯為先輸入整張人臉,之后根據輸入的人臉進行縮放,本次算法縮放的單元大小為112*112,之后使用第一層卷積神經網絡作為初步定位(包含1個卷積神經網絡)使用,主要是用于定位關鍵點,包含了人的眼睛(2個點)鼻子,左右嘴角(2個點)共計5個點,之后在根據卷積神經網絡所定為到的關鍵點計算出雙眼中心到左右兩側嘴唇之間的距離,并將此距離縮放到48,在縮放完成之后,在對所呈現的圖像進一步進行裁剪處理,以卷積神經網絡所定位的關鍵點為中心裁剪出五個單元格為32*32大小的圖像,第二層卷積神經網絡(包含6個神經網絡)則是完成人臉關鍵點的精確定位,主要是針對第一層所定為位置進行再次定位,具體是將采集到的32*32的圖像(5個)再次進行關鍵點定位,該定位所得到的坐標相較于第一卷積神經網絡所得到的關鍵點坐標要提升不少的精準度,其中level1中闡述的是第一個卷積神經網絡的內容,包含Resize(縮放)兩次,CNNF1(1次為第一個卷積神經網絡的定位),level2為第二個卷積神經網絡的定位,最終根據這兩次定位輸出最終的關鍵點。
3 相關訓練
訓練是卷積神經網絡完善的重要過程,本次卷積神經網絡的訓練的圖像數據是通過互聯網上爬取的21000張人臉圖片,對于所有的人臉圖片都進行關鍵點的標注,為了保證訓練的質量,本次試驗還將這21000張人臉圖片進行了旋轉處理,旋轉角度分別為順時針15°和18°,以及逆時針的15°和18°,最終進行本次訓練的圖片總數為105000張,此也為第一層卷積神經網絡的訓練數據,而第二層神經網絡的訓練數據則為該數據的5倍(裁剪之后的效果),另外對于本次訓練的系統而言主要采用的是win7、64位操作系統,并且其內存為16G,顯卡為N卡1060,CPU為(inter(R)Core(TM)i7-8700CPU),并且該電腦還有4個GPU,對于本次訓練所編寫的代碼主要通過的是Python完成的。
4 試驗數據與分析
4.1 試驗數據準備
首先對于本文的訓練數據與測試數據是相分離的,測試數據主要采用的是3043張的人臉圖像,測試圖像中包含了不同的角度,不同的環境光,不同的姿態以及不同的遮擋,目的在于確定本次算法在對多角度下的效果。
其次本次試驗所得的最終定位算法數據主要通過的是誤差的方式進行評判,誤差的判定方法主要采用的是差方值的方式進行計算,所得的計算結果根據算法的不同進行評判,本次算法主要與其他人員提出的算法和單層卷積神經網絡算法對比,其他算法均是用于非限制環境下的人臉定位算法,這些也常被用于有著姿態變化、表情變化、遮擋物存在、環境光影響的情況之下,而單層卷積神經網絡的人臉關鍵點檢測算法主要為卷積神經網絡級聯人臉關鍵點檢測算法的第一層,其主要對比的目的在于驗證是否通過第二層的卷積神經網絡可以在最終的人臉關鍵點定位的準確度有明顯提升。
最后本次試驗還對于運算的時間進行了統計,統計的方法為同一個圖像迭代1000次最終的算法速度,本次目的在于驗證本次試驗最終的耗時。
另外本次試驗的相關數據都是在同樣環境下進行的,無論是Python編程所使用的線程數目還是電腦性能方面均保持一致,目的在于保證最終結果的準確性。
4.2 實驗結果
如表1為單層卷積神經網絡的最終誤差和本文所提出的卷積神經網絡級聯人臉關鍵點檢測算法的誤差對比,可以看出在左眼誤差上單卷積神經網絡其左眼誤差為1.601,右眼誤差為1.564,鼻子的誤差為2.533,左側嘴角的誤差為2.125,右側的誤差為1.958。而卷積神經網絡級聯其左眼誤差為0.954,右眼誤差為0.832,鼻子的誤差為1.052,左側嘴角的誤差為1.289,右側的誤差為1.230可以從結果看出卷積神經網絡級聯之后的效果明顯優于單卷積神經網絡,也就是說通過第二層對于五個部分進行再次的卷積神經網絡處理效果結果有了提升。
如表2為不同算法的誤差對比,可以從表2看出,本文所提出的相關算法,在同樣的測試環境之下,最終表現要比其他算法好,并且準確性要高。
對于本次算法的耗時上,由于增加了算法的復雜度因此相較于單卷積神經網絡時間有所提升,對于單卷積神經網絡在GPU的處理之下,實現最終定位需要4毫秒左右,而本文的算法則需要16毫秒以下,而在CPU下本次算法所需要的耗時時間大約在25毫秒以下,通過該測試建議使用該算法在GPU下運行,對于算法的處理速度幫助很大。
5 總結
人工智能和智能樓宇技術的發展是未來的發展趨勢,在人工智能和智能樓宇技術目前已經發展起來并且形成了一定的產業模式的當屬人臉識別系統,無論是相關辦公大廈的安防系統,還是我國著名的天網監控系統都采用了人臉識別的元素,而對于人臉識別系統而言,其最為關鍵的在于尋找并且準備識別和對比人臉關鍵點,因此本文提出了一種基于級聯卷積神經網絡的人臉關鍵點檢測算法,并根據該算法進行了詳細的闡述,闡述包含四部分內容,分別為卷積神經網絡介紹、基于卷積神經網絡級聯人臉關鍵點檢測算法介紹、相關訓練以及最終的測試,通過測試可以看出該算法的定位準確率相比于很多目前的人臉識別系統有了長足的進步,并且使用級聯的方式明顯優于使用效果明顯優于單卷積神經網絡,另外雖然該算法在效率上有所下降,但是該算法配合GPU在處理一個人臉上的耗時基本在16毫秒以下,可以滿足基本使用,故而本文希望能夠在不久之后可以將該算法運用到實際之中。
參考文獻:
[1] 唐墨,王科俊.自發展神經網絡的混沌特性研究[A]. 2009年中國智能自動化會議論文集(第七分冊)[南京理工大學學報(增刊)][C]. 2009.
[2] 張廣遠,萬強,曹海源,等.基于遺傳算法優化神經網絡的故障診斷方法研究[A].第十二屆全國設備故障診斷學術會議論文集[C]. 2010.
[3] 胡正平,陳俊嶺,王蒙,等.卷積神經網絡分類模型在模式識別中的新進展[J].燕山大學學報,2015,39(4):283-291.
[4] 郭天宇,朱銘健,王云鶴,等.基于自整合卷積神經網絡的人臉分類算法[A].第十一屆全國信號和智能信息處理與應用學術會議專刊[C]. 2017.
[5] 王輝,楊杰,黎明,等.一種基于神經網絡的圖像復原方法[A]. 2006年全國光電技術學術交流會會議文集(D光電信息處理技術專題)[C]. 2006.
【通聯編輯:代影】