項新建,宋曉敏,鄭永平,王海波,方政洋
(浙江科技學院,杭州市,310023)
近年來,國家對智慧農業大力支持,農業現代化,智能化逐步推進,將人工智能與物聯網技術運用于農業中,使農業生產智能化成為必然趨勢。
通過對果園進行人臉檢測的研究,為后續果園內人員監管,果園安防、防盜等系統設計與研究提供先決條件。人臉檢測作為人臉分析的前提,在人臉識別,面部跟蹤,人臉矯正,表情、面部識別等研究中有重要意義[1]。目前,對一般人臉檢測系統中的人臉檢測算法主要以傳統算法為主,這類算法檢測速度快,實時性強,對設備要求低,一直受到廣泛應用。在果園環境中的人臉檢測也普遍采用該方法實現。傳統人臉檢測主要采用Haar-like特征的AdaBoost[2]人臉檢測算法,該算法檢測速度快,實時性強。然而,果園背景環境更為復雜,傳統算法在果園環境中的檢測極易受到外界環境影響,如光斑照射,樹木陰影,氣候變化等,導致人臉檢測效果不佳。后續有研究針對人臉檢測的背景進行優化建模來獲得更好的檢測背景,主要有:光流法[3],幀間差分法[4]等,但優化效果十分有限,且對光照和噪聲更為敏感,無法穩定的在果園環境下進行人臉檢測。
隨著計算機視覺與人工智能的發展,卷積神經網絡在計算機視覺領域中的運用越來越廣泛。使用深度學習方法進行人臉檢測成為研究熱點之一[5]。Girshick等[6-7]提出的RCNN與FAST-RCNN為代表的兩階段模型在目標檢測領域中得到廣泛研究,但由于該系列模型參數量大,算法對設備的運算能力要求高,設備昂貴,成本過高等缺點,無法很好的應用。以SSD[8],YOLO[9]為主的單階段模型算法僅需要送入網絡一次即可預測出所有檢測框,獲取更高的檢測速度,同時大幅度降低參數和設備所需的運算量,目前在人臉檢測領域得到廣泛研究。蔣紀威等[10]通過修改和測試YOLOv3的內部參數,提高YOLOv3在人臉檢測過程中的準確率與實時性。方陽等[11]通過改進SSD模型,設計了能同步完成人臉檢測與頭部姿態估計任務的網絡模型。以上對單階段卷積神經網絡模型的改進與人臉檢測的應用過程中依舊無法適用于嵌入式設備。
近年來,隨著移動設備對深度學習算法的需求越來越高,人們對輕量級網絡結構的研究逐漸增多,如MobileNet等[12]輕量級網絡結構設計,在保持準確度的情況下提升了運行速度,降低了對參數量與運算能力的要求,滿足嵌入式等移動設備的需求,更適用于現實場景。為了滿足深度學習發展需求,嵌入式設備的性能與運算能力也隨之做出了提升。NVIDIA公司推出Jetson系列深度學習嵌入式設備,在兼顧嵌入式設備經濟性的同時搭載GPU提高了嵌入式設備的運算能力。
針對果園環境的人臉檢測問題,采用MobileNetv3網絡結構替換YOLOv4主干特征提取網絡,提出了MobileNet-YOLO人臉檢測模型,采用LBPH算法識別陌生人人臉;使用Jetson Nano 2G深度學習嵌入式設備作為試驗平臺,對提出的算法進行驗證分析。
YOLO系列算法以快速準確識別目標為切入,將檢測問題轉為回歸問題,目前發展出了各種改良與優化版本。YOLOv4結構如圖1所示。

圖1 YOLOv4結構圖Fig. 1 YOLOv4 structure diagram
YOLOv4[13]算法主要采用CSPDarknet[14]作為主干特征提取網絡進行特征提取,使用SSP[15]提高感受野,通過PANet[16]進行表達能力更強的特征融合,相較于YOLOv3在速度與準確度上有顯著的提升[17],但網絡結構依舊較為復雜,對嵌入式設備仍有不小的負擔,難以在果園人臉檢測環境中運用。
MobileNetv3[18]主要由bneck結構搭建而成。如圖2所示,bneck結構由主干部分與殘差邊部分組成,主干部分首先通過1×1的卷積進行升維,擴張輸入特征層的通道數,然后,通過一次3×3的深度可分離卷積進行特征提取,隨后,對獲得的特征層通過一次全局平均池化和兩次全連接得到每個通道數所占用的比重,并由此調整通道權重進行注意力機制的施加,最后通過1×1的卷積進行降維,然后輸出結果。在殘差邊部分,通過輸入與輸出直接連接完成。

圖2 MobileNetv3-bneck結構圖Fig. 2 MobileNetv3-bneck structure diagram
在激活函數的使用上,MobileNetv3在淺層網絡中使用傳統的ReLU函數作為激活函數,在網絡的更深層中使用速度更快,性能更好的h-swish激活函數,減少整體結構的運算量的同時提高了性能。
在進行果園人臉檢測時,首先對輸入圖片通過一次步長為2的卷積與標準化壓縮圖片的寬與高進行并擴張通道數,然后將YOLOv4的主干特征提取網絡Resblock模塊替換為bneck模塊,并且按照MobileNetv3的網絡結構進行搭建,構建MobileNet-YOLO;同時在特征融合過程中,將PANet網絡中的普通卷積替換為深度可分離卷積,結構如圖3所示。所構建的MobileNet-YOLO在保證了檢測的準確度與實時性的同時,對遠距離目標與小目標有更加良好的檢測效果。
在果園環境的人臉識別過程中使用LBP局部二值模式[19]進行。LBP算子主要對局部紋理特征進行描述,其旋轉不變性和灰度不變性的優點,得到了廣泛的應用。LBP算子是以某個像素為中心,分別對周圍8個像素灰度值與中心像素的灰度值大小進行比較,如果中心像素灰度值大于周圍像素的灰度值,則對周圍像素的位置標記為0,反之標記為1,以此獲得二進制編碼。然后根據標記的位置不同對所得到的標記值進行加權計算并相加,從而獲取該中心像素的LBP特征值,LBP算子如式(1)、式(2)所示。
(1)

(2)
式中:(xc,yc)——中心像素坐標;
gi——某一個周圍像素的灰度值;
gc——中心像素的灰度值;
x——式(1)中的gi-gc。

圖3 MobileNet-YOLO結構圖Fig. 3 MobileNet-YOLO structure diagram
通過LBP算子構建LBPH[20]對人臉圖像進行特征提取,首先對圖像進行區域劃分,隨后獲取每個區域內各個像素計算LBP算子特征值,從而得到各區域的LBP特征直方圖,然后將每個區域的LBP特征直方圖進行串聯,實現對人臉LBPH特征的構建。使用LPBH建立的人臉特征信息更為詳細,在果園復雜環境下使用LBPH進行人臉識別具有更好的識別效果。
當Mobile-YOLO在果園環境檢測到人臉后,對檢測到的人臉圖片進行LBP處理,構建人臉LBPH特征直方圖,然后,與預先訓練與保存的LBPH管理員人臉特征直方圖庫進行對比,判斷檢測的人臉是否為管理員,最后對識別結果在原圖上進行標注,LBPH識別流程如圖4所示。

圖4 LBPH識別流程Fig. 4 LBPH identification process
果園人臉檢測流程如圖5所示。

圖5 系統流程圖Fig. 5 System flow chart
首先使用MobileNet-YOLO檢測采集圖像中的所有人臉,采用LBPH算法進行人臉特征提取和識別,然后暫存于嵌入式設備。最后在通過果園局域網上傳并統計該時間段內果園陌生人進出情況。
本文采用USB攝像頭采集圖像,在Jetson Nano2G嵌入式設備進行人臉檢測與識別,如圖6所示,完成檢測與識別的人臉圖片暫時存儲在嵌入式設備中,然后,通過無線網卡連接果園局域網與服務器進行通信,并在指定時間將檢測結果上傳到服務器。

圖6 果園人臉檢測設備搭建Fig. 6 Orchard face detection equipment construction
Jetson系列嵌入式設備是為了滿足深度學習應用而研發,該系列設備根據不同復雜程度的深度學習網絡研發與之對應的嵌入式設備,為深度學習應用提供相應的平臺。相較于以往的AI嵌入式設備,Jetson系列嵌入式設備在保持經濟性的前提下,搭載高性能GPU,提高嵌入式設備運算能力,滿足深度學習研發與應用。目前,Jetson系列嵌入式設備對輕量級深度學習網絡的合適的型號為Jetson Nano,與市面上主流的樹莓派4對比,具體參數如表1所示。

表1 Raspberry Pi4與Jetson Nano對比詳情Tab. 1 Raspberry Pi4 and Jetson Nano comparison details
如表1所示,在CPU性能上,Raspberry Pi4使用的A72在功耗上略低于Jetson Nano所使用的A57。它們主要區別在于NVIDIAJetson Nano包含性能更高、功能更強大的GPU圖形處理器,而Raspberry Pi4只有低功耗的VideoCore多媒體處理器,同時,在價格上Jetson Nano也略低于Raspberry Pi4。通過上述比較,Jetson系列嵌入式設備更適用于深度學習應用,相較于目前主流AI開發板更具性價比。
本文采用Jetson Nano2G嵌入式設備,該設備是英偉達公司研發Jetson系列深度學習嵌入式設備找中的一款,其搭載有:CPU四核ARMA57,GPU為NVIDIA Maxwell,內存2 GBLPDDR4位寬64 bit,帶寬25.6GB/S,3.0USB接口1個,2.0USB接口2個,USB2.0Micro-B接口1個,攝像頭MIOICSI-2DPHY接口1個,可支持1個HDMI顯示輸出,支持RJ-45有線網絡連接,同時,Jetson Nano還擁有40pin插座接口,可支持GPIO,IIC,UART等開發。
Widerface[21]是香港大學提供的人臉檢測相關基準數據庫,數據集主要由61類不同場景的圖片所組成,共含有32 203張圖像,數據集的人臉在尺度、姿態、遮擋上具有高度的差異性,被廣泛運用在各人臉檢測模型的訓練與預測中。
針對果園復雜的測試環境,本文自制果園人臉測試數據集,在果園環境中,依照不同距離,三名志愿者在攝像頭正前方與兩側面朝向攝像頭行走采集正臉圖像,在攝像頭兩側來回行走采集側臉圖像,從采集的視頻中根據拍攝距離與人臉角度選取4 031張圖片,通過labimg對選取圖片進行標注,制作VOC格式數據集,作為果園環境人臉檢測測試集。果園人臉測試集數量如圖7所示。


圖7 果園人臉測試集數量Fig. 7 Orchard face test set number
在訓練過程使用Widerface數據集對試驗模型進行訓練,使用數據集劃分的40%的訓練集進行訓練(圖8),10%的驗證集進行驗證。在模型的測試方面,使用自制的果園人臉檢測測試集進行測試。

圖8 數據集展示Fig. 8 Data set display
訓練環境為Ubuntu16.04操作系統,使用深度學習框架pytorch1.2-GPU進行開發,使用python3.6為編程語言,CUDA10.1驅動。計算機配置為AMAX深度學習服務器XG-48202G, 處理器為Intel E5-2620v4,內存為4×8 GB。顯卡為NVIDIA GeForce RTX2080Ti,顯存為11 GB。訓練參數設置參數如下:學習率(Learning_rate)為0.001,每批量樣本個數(bitch_size)為16,迭代次數(epoch)為100。
對于模型的準確度試驗,本文使用Widerface數據集對YOLOv4-tiny,SSD和所搭建的MobileNet-YOLO進行訓練。根據果園環境需求,使用自制果園人臉測試數據集進行預測,依據不同距離的正臉與側臉進行預測,試驗平臺為NVIDIAJetson Nano2G,預測結果綜合所有置信度并使用mAP[22]進行表示,如圖9所示。

圖9 人臉檢測試驗場景Fig. 9 Experimental scene of face detection
1) 針對正臉預測結果,選取距離2~4 m、4~6 m、6~8 m進行預測,預測結果如表2所示。

表2 正臉檢測結果Tab. 2 Front face detection result
2) 針對側臉預測結果,選取距離2~3 m、3~4 m、4~5 m、5~6 m、6~7 m進行預測,預測結果如表3所示。

表3 側臉檢測結果Tab. 3 Side face detection result
試驗結果表明,由于正臉的人臉信息比側臉的人臉信息更加豐富,正臉的檢測效果優于側臉;隨著檢測距離的增加,需要進行檢測的人臉逐漸變小,人臉信息更加模糊,檢測的效果會逐漸下降。在試驗過程中YOLOv4-tiny在檢測距離增加后檢測效果下降迅速,最后失去中遠距離的檢測能力;SSD在近距離與中遠距離都能對目標人臉進行有效的檢測,但檢測準確度隨距離增加逐漸下降且下降幅度較大;研究搭建的MobileNet-YOLO在檢測的目標人臉逐漸增加的過程中,檢測效果下降,但下降幅度較小,在試驗中最遠距離依舊有良好的檢測效果。
在算法檢測速度方面,以NVIDIAJetson Nano2G為試驗平臺,對訓練完成的YOLOv4-tiny,SSD和MobileNet-YOLO進行檢測速度比較,試驗過程不使用任何軟件加速手段,僅使用NVIDIAJetson Nano2G試驗平臺的硬件設施進行,試驗數據選取果園人臉檢測數據集中各模型都能有效識別的圖片。使用FPS表示模型檢測速度,試驗結果如表4所示。

表4 檢測速度試驗結果Tab. 4 Test results of detection speed
試驗表明,SSD在嵌入式系統中檢測速度緩慢,無法滿足實時性檢測需求。YOLOv4-tiny在嵌入式系統能夠流暢運行,檢測速度較快。搭建的MobileNet-YOLO在運行速度上低于YOLOv4-tiny,但高于SSD模型,能夠滿足實時性檢測需求。
綜上所述,搭建的MobileNet-YOLO人臉檢測模型,在果園復雜環境中有著良好的表現,對中遠距離的人臉目標依舊能夠保持良好的檢測精度,同時在嵌入式設備運行過程中,檢測速度上不落后于一般輕量級算法。搭建的MobileNet-YOLO人臉檢測模型在果園環境下的人臉檢測過程中具有一定的檢測精度和速度,適用于果園環境。
在人臉識別試驗,首先對測試數據集制作過程的三名志愿者中的其中兩名為作為果園管理員,對兩名管理員各提取150幅人臉圖像進行LBPH人臉特征提取,制作人臉模型。在果園人臉檢測數據集中依據不同距離的正臉與側臉選取待識別的人臉圖片進行試驗。識別試驗平臺為Jetson Nano 2G深度學習嵌入式設備。試驗結果如表5、表6所示。試驗場景如圖10所示。

表5 側臉識別結果Tab. 5 Side face recognition results

表6 正臉識別結果Tab. 6 Front face recognition results


(a) 側臉識別 (b) 正臉識別圖10 人臉識別試驗場景圖Fig. 10 Experimental scene diagram of face recognition
試驗結果表明,使用LBPH進行人臉識別時,隨著距離的增加識別效果逐漸下降,在2~4m的近距離識別效果最佳,正臉識別準確率為90%,側臉識別準確率為91.1%。在進行4~6 m中距離識別時,識別精度有所下降,側臉識別準確率為73.3%,正臉識別的準確率為82.2%。當達到6~8 m的最遠識別距離時,識別準確率較低,但仍然有一定的識別能力,側臉識別準確率為68.9%,正臉識別的準確率為71.1%。
本文針對農業果園背景下人臉檢測過程中,傳統算法準確率低,深度學習實現成本高,輕量級卷積神經網絡檢測距離有限,無法做到有效的人臉檢測等問題,提出了一種構建MobileNet-YOLO算法,通過MobileNet網絡構建的YOLO算法在保持YOLO算法的檢測精度與檢測距離的同時,大幅降低運算量并可搭載于嵌入式設備,因而可直接進行人臉檢測,降低成本。以Jetson Nano 2G為平臺進行試驗,相較于一般嵌入式設備,該設備在相同成本下搭載GPU提高了嵌入式設備運算能力,滿足了輕量級深度學習的運行需求,更具有經濟性。
試驗結果表明,在果園環境下,本文搭建的MobileNet-YOLO在最遠距離下正臉檢測準確度為91.03%,側臉檢測準確度為80.47%,模型運行在Jetson Nano 2G嵌入式設備過程中,僅使用嵌入式系統硬件條件進行檢測時檢測速度為4.13幀/s,相較于SSD提高了1.92幀/s,因此本文提出的人臉檢測模型在果園環境下有更好的普適性。
在下一步工作將根據不同光照條件下對檢測圖片進行相應的預處理,進一步提高檢測準確度,同時對使用Jetson Nano系列嵌入式設備的人臉檢測模型進行TensorRT深度學習推理優化,提高檢測速度,降低內存資源占用。