蔣紀(jì)威 何明祥 孫 凱
(山東科技大學(xué)計算機(jī)科學(xué)與工程學(xué)院 山東 青島 266590)
隨著智慧城市的迅速發(fā)展,人臉檢測在智能監(jiān)控中具有重要的地位。如何準(zhǔn)確快速地檢測人臉,對人臉進(jìn)行特征分析從而提取有用的信息,具有重要的研究價值。
傳統(tǒng)的人臉檢測方法有很多,Adaboost人臉檢測方法通過無數(shù)次迭代來尋求最優(yōu)分類器檢測人臉[1]。SVM通過構(gòu)造有效的學(xué)習(xí)機(jī)器來解決人臉的檢測問題[2]。傳統(tǒng)的人臉檢測方法提取的特征單一,魯棒性較差。隨著深度學(xué)習(xí)的不斷發(fā)展,人臉檢測有了很大的提高。目前經(jīng)常使用的目標(biāo)檢測方法分為兩種,一種是基于分類的檢測,一種是基于回歸的檢測?;诜诸惖哪繕?biāo)檢測方法有使用確定候選區(qū)域進(jìn)行深層網(wǎng)絡(luò)特征提取的FastR-CNN[3]和使用RPN網(wǎng)絡(luò)進(jìn)行深層網(wǎng)絡(luò)特征提取的FasterR-CNN[4],分別將準(zhǔn)確率提高至70%和73.2%,這種方法對目標(biāo)物體的檢測效果比較理想,但是檢測速度為7幀/s,無法滿足實(shí)時性?;诨貧w的目標(biāo)檢測方法主要使用單發(fā)多框檢測器SSD[5]和統(tǒng)一實(shí)時對象檢測YOLO[6],此類方法從端到端進(jìn)行檢測,因此檢測速度更快,可以實(shí)現(xiàn)實(shí)時檢測。
YOLOv3在YOLO基礎(chǔ)上進(jìn)行了改進(jìn),是如今實(shí)時性最好的檢測方法之一。目前已經(jīng)有學(xué)者對YOLOv3方法進(jìn)行了相關(guān)研究,提出了不同的改進(jìn)方法,在許多檢測領(lǐng)域?qū)崿F(xiàn)了應(yīng)用。鄭志強(qiáng)等[7]用密集網(wǎng)絡(luò)模塊替代YOLOv3網(wǎng)絡(luò)中的殘差網(wǎng)絡(luò)模塊,提高了遙感圖像的檢測準(zhǔn)確率。鞠默然等[8]將YOLOv3網(wǎng)絡(luò)的8倍下采樣進(jìn)行修改,并拼接第二個殘差塊特征圖,能有效檢測小目標(biāo)。施輝等[9]通過獲取不同尺度的特征圖和改變輸入圖像的尺寸,實(shí)現(xiàn)了安全帽佩戴的實(shí)時檢測。上述文獻(xiàn)通過對YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn),在不同的檢測領(lǐng)域?qū)崿F(xiàn)了應(yīng)用,但是對人臉的實(shí)時性檢測效果不是很理想。
如今隨著智能監(jiān)控的日益完善,需要對人臉進(jìn)行準(zhǔn)確并快速的檢測,以提高實(shí)時性。為了兼顧人臉檢測的準(zhǔn)確性與實(shí)時性,本文使用改進(jìn)的YOLOv3卷積神經(jīng)網(wǎng)絡(luò)。通過修改和測試YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu),提高了人臉檢測的準(zhǔn)確率。將本文改進(jìn)的YOLOv3方法、FasterR-CNN方法、文獻(xiàn)[9]的方法和YOLOv3方法在WIDERFACE和FDDB數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),結(jié)果表明本文改進(jìn)的方法在人臉檢測領(lǐng)域具有較好的實(shí)時性。
YOLO方法是Redmon等發(fā)表在CVPR2016上基于回歸的經(jīng)典目標(biāo)識別方法,到2018年已經(jīng)發(fā)展到Y(jié)OLOv3,它采用多尺度從端到端進(jìn)行訓(xùn)練,識別速度非???。YOLOv3優(yōu)化了R-CNN(區(qū)域卷積神經(jīng)網(wǎng)絡(luò)),成為一個更通用和更快的檢測系統(tǒng)[10]。該模型將目標(biāo)識別作為一個單一的回歸問題來處理,同時在訓(xùn)練階段對整個圖像進(jìn)行一次分析。
YOLO輸入圖像被分為S×S均勻網(wǎng)格,每個網(wǎng)格由(x,y,w,h)和置信度C(Object)組成。其中坐標(biāo)(x,y)表示檢測邊界框中心相對于網(wǎng)格的位置,(w,h)是檢測邊界框的寬度和高度[11]。
置信度Pr(Object)表示是否包含物體,置信度C(Object)表示包含物體情況下位置的準(zhǔn)確性,定義為:
C(Object)=Pr(Object)×IOU(box,centroid)
(1)
如果檢測網(wǎng)格不包含目標(biāo)對象,則C(Object)=0。
IOU是預(yù)測值與真實(shí)值的重疊率,即它們的交集與并集之比,如下式所示:
(2)
YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)沒有池化層,在前向傳播過程中,通過改變卷積核的步長代替池化層,特征提取模型采用很多3×3和1×1的卷積層,再加上全連接層共有53個卷積層,因此YOLOv3通常也稱作Darknet-53[7]。YOLOv3首先通過特征提取網(wǎng)絡(luò)對輸入圖像進(jìn)行特征提取得到特征映射,采用3個尺度進(jìn)行預(yù)測,如圖1所示,每個尺度有3個界限值(bounding box),最后由與ground truth的交并比(IOU)最大的界限值預(yù)測物體。
(1)電磁吸附工裝的應(yīng)用 目前電磁吸附工裝在工件搬運(yùn)及機(jī)械加工行業(yè)有著廣泛的應(yīng)用,采用磁力吸盤對鐵磁性材料進(jìn)行吸合固定,如機(jī)械加工車削、銑削、磨削、鏜削、鍛件模具加工的緊固工作。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
本文主要利用YOLOv3研究人臉的檢測,通過修改YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu),將YOLOv3結(jié)構(gòu)較好地應(yīng)用在人臉檢測領(lǐng)域。
雖然YOLOv3在目標(biāo)檢測方面獲得了很好的結(jié)果,但是它不完全適合人臉圖像定位任務(wù)。因此,本文對YOLOv3進(jìn)行了相應(yīng)的改進(jìn)。
YOLOv3訓(xùn)練網(wǎng)絡(luò)時,初始規(guī)范先驗(yàn)邊界框并確定其數(shù)量。隨著網(wǎng)絡(luò)迭代次數(shù)的增加,YOLOv3學(xué)習(xí)人臉特征,通過調(diào)整先驗(yàn)邊界框的參數(shù)不斷接近真實(shí)的檢測框。YOLOv3的anchor由VOC2007和VOC2012數(shù)據(jù)集確定,這兩個數(shù)據(jù)集的類別豐富,確定的anchor參數(shù)是通用的,但是不適用于特定的檢測任務(wù),因此需要在檢測數(shù)據(jù)集中重新確定先驗(yàn)邊界框。為了加快收斂速度,提高人臉檢測精度,采用K-means法進(jìn)行聚類,得到圖像中最接近人臉邊界框的先驗(yàn)邊界框。
通常來說,K-means聚類使用歐幾里得距離測量兩點(diǎn)之間的距離。在本文中,IOU用來代替K-means中的歐式距離,聚類使用文獻(xiàn)[12]定義的距離公式:
d(box,centroid)=1-IOU(box,centroid)
(3)
YOLOv3使用K-means聚類來確定先驗(yàn)邊界框,在COCO數(shù)據(jù)集上通過計算確定的先驗(yàn)邊界框尺寸分別是:(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。在進(jìn)行人臉檢測實(shí)驗(yàn)時,待檢測人臉邊界框的尺寸如圖2所示,采用原始先驗(yàn)邊界框會影響人臉檢測的準(zhǔn)確率和實(shí)時性,因此需要重新確定YOLOv3先驗(yàn)邊界框尺寸。
圖2 人臉邊界框尺寸
通過本文改進(jìn)的聚類方法對數(shù)據(jù)集進(jìn)行聚類分析,得到先驗(yàn)邊界框尺寸分別為:(58,24),(64,30),(70,34),(78,38),(84,40),(88,43),(96,47),(100,50),(106,58)。
Darknet-53網(wǎng)絡(luò)的最后一層采用1×1卷積層輸出預(yù)測結(jié)果,其卷積核數(shù)量是根據(jù)所需識別的類的數(shù)量計算的,如下式所示:
filters=(classes+5)×3
(4)
在原網(wǎng)絡(luò)中,第一層中有32個卷積核,如圖3所示。本文改變了第一層卷積核的數(shù)量,第一層卷積層卷積核的數(shù)量分別設(shè)置為8、16、32。通過這種方式,生成了3個不同的網(wǎng)絡(luò),每層網(wǎng)絡(luò)輸入圖像為416×416像素[13],提出的網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
圖3 Darknet-53模型結(jié)構(gòu)
表1 改進(jìn)Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)
采用表1的思想,改變Residual×1中第一層卷積核的數(shù)量,得到改進(jìn)的YOLOv3結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)YOLOv3結(jié)構(gòu)
本文的仿真實(shí)驗(yàn)環(huán)境:處理器為Inter corei7-7770,CPU為3.60 GHz×8,7.7 GB內(nèi)存,GPU為GTX1080。操作系統(tǒng)為Ubuntu16.04,深度學(xué)習(xí)框架采用Darknet。
本實(shí)驗(yàn)的目的是確認(rèn)具有最佳人臉檢測效果的改進(jìn)的Darknet-53網(wǎng)絡(luò)結(jié)構(gòu),通過與Faster R-CNN、文獻(xiàn)[9]和YOLOv3對比,驗(yàn)證本文方法具有較好的實(shí)時性。
本文采用香港中文大學(xué)公開的人臉數(shù)據(jù)集WIDER FACE,其包括了在角度、光照、姿勢等方面不同的人臉圖像。訓(xùn)練集選取其中1 500幅圖片,對所有Darknet-53網(wǎng)絡(luò)進(jìn)行了300 000次迭代訓(xùn)練。為了加快訓(xùn)練速度并防止過擬合,初始學(xué)習(xí)率設(shè)置為0.001,學(xué)習(xí)率衰減系數(shù)設(shè)置為0.000 1,權(quán)值衰減系數(shù)設(shè)置為0.000 5[14]。
為了測試網(wǎng)絡(luò)人臉檢測的準(zhǔn)確度,本文分別對三種網(wǎng)絡(luò)進(jìn)行測試實(shí)驗(yàn),并對結(jié)果進(jìn)行了比較。測試集選取WIDER FACE數(shù)據(jù)集中的300幅圖片,每20 000次進(jìn)行一次測試,檢測效果如表2所示。
表2 三種網(wǎng)絡(luò)的測試精確度
由表2可知,使用No.2網(wǎng)絡(luò)結(jié)構(gòu)獲得了人臉檢測的最佳結(jié)果。該網(wǎng)絡(luò)第一個卷積層有16個卷積核,輸入分辨率為416×416像素。
本文使用其他30 000幅圖像的訓(xùn)練數(shù)據(jù)集對該網(wǎng)絡(luò)進(jìn)行了進(jìn)一步的訓(xùn)練,最多訓(xùn)練600 000次,進(jìn)一步測試該網(wǎng)絡(luò)的結(jié)果沒有顯示出任何顯著的改進(jìn),最佳精度仍為88.46%。
為了驗(yàn)證本文提出的方法在人臉檢測過程中具有較好的適用性,本文采用WIDER FACE數(shù)據(jù)集和FDDB數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),并將數(shù)據(jù)集分為訓(xùn)練集和測試集,每幀檢測一次,實(shí)驗(yàn)采用的數(shù)據(jù)集如表3所示。
表3 實(shí)驗(yàn)數(shù)據(jù)集
采用表3中的訓(xùn)練集分別對Faster R-CNN、本文改進(jìn)的YOLOv3、文獻(xiàn)[9]和YOLOv3進(jìn)行訓(xùn)練,圖5列出了實(shí)驗(yàn)結(jié)果。由圖5(a)和(b)可以看出,F(xiàn)aster R-CNN和本文改進(jìn)的YOLOv3檢測方法能很好地檢測出人臉。由圖5(c)可以看出文獻(xiàn)[9]的檢測方法出現(xiàn)了人臉漏檢情況。由圖5(d)可以看出YOLOv3不僅漏檢了部分人臉,而且識別框出現(xiàn)了偏差。
(a) Faster R-CNN (b) 改進(jìn)YOLOv3
(c) 文獻(xiàn)[9] (d) YOLOv3圖5 人臉檢測結(jié)果圖
通過對比實(shí)驗(yàn)[15],四種方法的檢測結(jié)果如表4所示??梢灾庇^地看出本文方法在人臉檢測實(shí)時性方面的優(yōu)勢。
表4 實(shí)驗(yàn)結(jié)果對比表
在進(jìn)行驗(yàn)證實(shí)驗(yàn)的同時得出了四種方法的召回率曲線[16],如圖6所示??梢钥闯?,本文改進(jìn)的YOLOv3具有較強(qiáng)的適應(yīng)能力。
圖6 召回率曲線
綜合可知,F(xiàn)aster R-CNN和本文改進(jìn)的YOLOv3的人臉檢測準(zhǔn)確率高于其他兩種方法,F(xiàn)aster R-CNN在檢測時需進(jìn)行RPN網(wǎng)絡(luò)特征提取,故檢測速度比本文人臉檢測方法慢。因此本文改進(jìn)的YOLOv3在人臉檢測方面優(yōu)于其他檢測方法,在保持較高的檢測準(zhǔn)確率的同時,具有良好的實(shí)時性。
本文通過改變第一層卷積層的卷積核數(shù)目,設(shè)計了3種基于Darknet-53的卷積神經(jīng)網(wǎng)絡(luò),并在WIDER FACE數(shù)據(jù)集上進(jìn)行訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,本文方法能夠從數(shù)據(jù)集中有效地檢測出數(shù)據(jù)集中的人臉,在第2種網(wǎng)絡(luò)結(jié)構(gòu)中得到的準(zhǔn)確度最高,為88.46%。該網(wǎng)絡(luò)結(jié)構(gòu)第1個卷積層中有16個卷積核,輸入分辨率為416×416像素。此外,除了保持人臉檢測的高準(zhǔn)確率,本文方法檢測速度更快,每幀處理時間為62.613 ms,因此具有良好的速度和精度平衡。這些特性使本文方法適合于人臉實(shí)時檢測。