国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

改進YOLO的密集小尺度人臉檢測方法

2020-04-24 03:07:58鄧珍榮白善今馬富欣黃文明
計算機工程與設計 2020年3期
關鍵詞:柵格人臉尺度

鄧珍榮,白善今,馬富欣,黃文明

(1.桂林電子科技大學 計算機與信息安全學院,廣西 桂林 541004; 2.桂林電子科技大學 廣西高校云計算與復雜系統重點實驗室,廣西 桂林 541004)

0 引 言

傳統人臉檢測方法發(fā)展較快,并取得一定的效果[1]。例如Viola等[2]提出的基于Adaboost的方法及其改進之后的HeadHunters算法和SURF-Adaboost[3,4]算法。但是傳統方法普遍采用人工手段按照既定的規(guī)則提取圖像以及人臉的特征,這種方法提取的特征具有較多的主觀屬性,導致其表征的人臉特征具有一定的偏差,此外處于分類器發(fā)展的初級階段,其分類能力有限,導致對人臉目標的檢測精度較低。

近年來,基于卷積神經網絡搭建的計算機視覺模型在目標檢測領域取得巨大進展,卷積神經網絡采用多種濾波器滑窗的形式自動提取圖像和人臉特征,深層特征圖組合的結構具有較強的魯棒性,可以提高目標檢測的精度。例如利用Selective search[5]生成候選框的R-CNN[6]。優(yōu)化特征提取的空間金字塔池化網絡[7]。單級訓練的Fast R-CNN[8]?;谌矸e神經網絡[9]改進的Faster R-CNN[10]。

同時研究人員發(fā)現,根據不同的人臉檢測場景,對通用的目標檢測方法做相應的改進,可以取得比傳統方法更好的結果[11]。Jiang H等[12]將通用目標檢測模型Faster R-CNN 應用在人臉檢測領域,并使用人臉數據集重新訓練Faster R-CNN模型使其滿足檢測需求。Wan S等[13]改進了通用目標檢測模型Faster R-CNN,同時在小型人臉數據集FDDB[14]上對改進的模型進行遷移學習訓練,提高了人臉檢測的精度。Li等[15]對Faster R-CNN模型進行了進一步改進,引入聯級訓練檢測結構提高檢測精度。

但是以上工作大部分采用先產生目標候選框,再對候選框進行分類的兩階段檢測方法,在提高了檢測精度的同時犧牲了檢測速度。Redmon等[16]提出YOLO(you only look once)模型,將目標框定位的問題轉化為回歸問題進行處理,實現對圖像端到端的檢測,極大提高了檢測速度,但是由于算法不會提前生產檢測框,所以檢測精度相比于兩階段模型較低。

基于以上討論,為有效提高人臉檢測精度,同時保證檢測速度,提出改進YOLO的密集小尺度人臉檢測方法。首先使用目標框與真實框的面積交并比作為距離損失函數對傳統的k-means聚類算法進行改進,同時結合小尺度人臉目標占比小且長寬比例接近1的特點,對候選框進行聚類篩選合適的尺度數量,其次對多級特征圖進行細粒度特征融合,提高對小尺度人臉特征的表示能力,最后調整預測層的寬度和深度,形成適用于檢測密集小尺度人臉的網絡結構。在WIDER FACE人臉檢測數據庫上進行實驗的結果顯示,該方法對密集小尺度人臉的檢測精度有明顯提高。

1 YOLO算法

YOLO是繼R-CNN、Fast R-CNN和Faster R-CNN之后一種新的端到端目標檢測模型,其使用一個完整的卷積神經網絡結構提取圖像特征,在網絡的輸出層對目標的類別和位置信息進行統一的回歸預測,完成從原始圖像的輸入到目標類別和位置的輸出。其檢測流程如圖1所示。

圖1 YOLO檢測目標流程

YOLO算法將輸入圖像劃分為7×7的柵格,當圖像中某一個目標的中心點落在其中一個柵格中時,該柵格就會初始化兩個邊框,負責預測當前目標的類別和大小,再運行神經網絡預測含有物體的邊框,通過非極大抑制篩選合適的邊框,得到輸入圖像中目標的位置和類別。YOLO的網絡借鑒了GoogLeNet分類網絡結構,在訓練過程中隨機初始化網絡參數。在人臉檢測任務中,網絡輸出層為7×7×11的預測張量,其中7×7為劃分圖像的柵格,11為兩個預測框的坐標信息和置信度以及每個柵格所屬類別的概率。

YOLO將整張圖像作為目標檢測網絡模型的輸入,直接在輸出層預測圖像中前景目標的類別,并且回歸預測框的位置,這種one-stage的檢測方式提高了檢測速度,但是完全端到端的訓練模式也導致了檢測精度較低的問題,特別是在檢測秘籍小目標人臉時尤為突出。首先,在two-stage的檢測模型中,通常會在深層特征圖上采用滑動窗口的形式,映射到訓練圖像中的感受野區(qū)域,使用固定長寬比例的先驗框,遞歸的與標注框進行匹配,通過設置好的閾值提前篩選出有助于檢測的先驗框。但是YOLO網絡并沒有采用以上方式,而是使用輸出層的全連接結構預測目標的位置和置信度,導致模型在訓練的過程中,需要從隨機初始化的狀態(tài)開始,增加了模型往正確方向收斂的時間,與全卷積結構相比,全連接網絡的參數量和計算量會更多,模型的復雜度也相應增加。其次,由于不同層次的特征圖的感受野不同,且不同層特征圖之間包含前景目標的上下文語義特征,而YOLO模型采用的自下而上的單級網絡結構提取特征,會使得部分小目標的上下文語義特征缺失,導致小目標物體漏檢的情況。最后,YOLO在劃分圖像為7×7的網格之后,每一個網格只設置了兩個預測框,整個圖像一共只有98個檢測框可以預測目標,在檢測密集小目標人臉時出現預測框漂移的現象,導致多個目標只被一個預測框檢測到,且預測的位置與真實位置有較大的偏差。

針對以上問題,本文結合密集小尺度人臉目標的特點,分別從選擇合適的先驗框、融合多級特征圖和構造適用于檢測密集小尺度人臉目標的預測層3個方面,對YOLO算法進行改進,以提高對密集小尺度人臉的檢測精度,同時也具有YOLO算法檢測速度快的優(yōu)點。

2 改進YOLO的人臉檢測模型

2.1 對k-means算法進行改進之后聚類標準參考框

YOLO模型在檢測圖像中的人臉目標時,首先會隨機初始化模型中的參數,然后使用人臉數據集訓練模型,更新參數,最后在網絡的輸出層進行人臉目標的位置預測。在對參數初始化的過程中,由于每次隨機種子都不固定,導致網絡中的參數具有較大的偏差和方差,增加了模型訓練的難度和收斂時間,浪費很多的計算資源,此外對預測的精度也有較大的影響。如果在參數初始化的階段,通過一些數據預處理等先驗的手段,得到更具有代表性參數分布來替代隨機初始化的參數,盡量減少初始化參數與最優(yōu)化參數之間的偏差和方差,這樣不僅可以加速模型的收斂,而且有助于模型在訓練過程中更快的微調預測框的位置信息,也更容易學習到更加準確的預測框的坐標,最終得到準確的邊界框,提高檢測網絡的精度。

結合密集小尺度人臉的寬高比接近1且像素區(qū)域集中在10×10的特點,平衡了IOU均值和不同聚類框個數的復雜度之后,最終選擇了3種大小的框作為網絡預測框的初始化,分別為(10,13)、(43,47)、(168,180),其中正方形的框更符合人臉形狀的特征,在提升小尺度人臉目標的同時對大尺度人臉目標的預測框也有一定的修正作用。在WIDER FACE數據集上聚類結果如圖2所示。

圖2 在WIDER FACE數據集上的聚類結果

2.2 在不同層級特征圖中進行細粒度特征融合

原始YOLO算法在7×7的特征圖上進行預測,這樣的分辨率有利于檢測大尺度的目標,但是對于密集小尺度人臉的檢測效果很差。考慮到人臉特征在深度學習網絡中呈結構性,淺層的特征映射在原圖中的感受野比深層的特征較小,對圖像中的特征表示具有較高的抽象性,而深層的特征映射在原圖中的感受野比較大,對圖像中的特征表示相對具體。結合不同細粒度特征,可以增加人臉特征的魯棒性。為了提高對密集小尺度人臉的檢測精度,融合多級特征圖,讓不同粒度的特征表達都參與檢測,得到的特征圖具有較高的分辨率,由原來的7×7的分辨率提升為14×14的分辨率,融合后的特征圖具有更豐富的小尺度人臉特征,有助于檢測精度的提高。

在原始YOLO算法的特征提取網絡中,采用16個卷積層加4個池化層的單級網絡,在416×416×3分辨率的輸入圖像上,得到14×14×1024維度的特征圖。本文在其基礎上,對特征提取網絡進行了改進。利用單級網絡提取特征,截取出28×28×512分辨率的特征圖,使用4個步長為2的空間濾波器對其進行特征重組,每個空間濾波器均為2×2×512的維度,且濾波器中分別有1個位置的值是1,其它3個位置的值均為0,特征圖經過空間濾波器之后,得到4個14×14×512維度的子特征圖,然后將這4個自特征圖按照先后順序鏈接在一起,得到14×14×2048的重組特征圖。單級網絡最后提取到的特征圖維度是14×14×1024,將重組特征圖與其融合,得到最終的特征輸出維度是14×14×3072。由于在圖像中,相鄰像素之間的空間維度信息的連接是很緊密的,在對其進行特征提取的過程中,不同感受野映射在原圖中的區(qū)域會交叉重疊,提取到的特征圖中會有較多的空間冗余性。通過在空間上降維,可以減少感受野中圖像相鄰像素的冗余性,在通道上升維可以豐富感受野區(qū)域里的圖像信息在卷積網絡中映射的特征信息,盡量以最小的維度,來獲得圖像中最本質的特征。

2.3 改進預測層的結構

在YOLO算法將輸入圖像劃分為7×7的柵格,每個柵格有兩個預測框,整個YOLO檢測網絡共有98個預測框。在人臉檢測任務中,網絡的分類部分只需要區(qū)分目標是否人臉即可,是二分類問題,所以在預測網絡最后的輸出張量維度是7×7×11,其中7×7對應將原始圖像劃分為 7×7 的柵格。每一個柵格即一個11維的向量,其中前10維對應著兩個預測框的信息,分別是預測框在圖像中的中心點坐標、預測框的長寬和當前預測框中有目標的置信度,最后一維向量對應著當前柵格中的目標是人臉目標還是背景目標。當待檢測的圖像中存在較密集的小尺度人臉目標時,YOLO算法對這種圖像的檢測精度較低,甚至檢測不到,主要的原因是兩個預測框共用最后一維向量,而最后一維向量主要負責預測柵格中的目標是否是人臉目標的,當最后一維向量得到的預測結果是柵格中的目標不是人臉目標時,這個柵格對應的兩個預測框將全部失效,導致預測框的數量進一步減少,檢測精度降低。原始YOLO的網絡結構如圖3所示。

圖3 原始YOLO網絡結構

為了克服這一問題,本文改進了YOLO算法的預測層結構,將輸出層的分辨率從7×7提升為14×14,同時改進每一個柵格中預測邊框的結構。使用改進的k-means算法對標準參考框進行聚類,得到適用于小尺度人臉檢測的預測框尺度,使用這些尺度去初始化預測框的參數,此外對YOLO算法中每個柵格只負責預測一個類別的網絡結構,改進為每個柵格分別預測3個類別。在改進后的預測層中,輸出的預測張量維度是14×14×18,其中14×14對應將原始圖像劃分為14×14的柵格。每一個柵格由18維向量組成,分別對應3個預測框。與YOLO中兩個預測框共用一個預測維度不同,改進之后的預測層,每一個預測框將分別獨立預測當年柵格中的目標是否人臉目標,所以每一個柵格由6為向量組成,其中的前4維向量分別對應預測框在原圖中的中心點坐標和預測框的長寬信息,第5維向量代表檢測框中有無目標的置信度,第6維向量代表柵格中的目標是否人臉目標的置信度。同時每個柵格中的3個預測框,均負責預測不同尺度的人臉目標,彼此獨立預測。原始YOLO使用全連接網絡將最后的特征圖壓縮為4096維的一維向量,然后在連接到預測層網絡中,這種連接方式會導致特征圖中的空間信息和上下文語義信息的丟失,降低密集小尺度人臉的檢測精度。在改進的預測層網絡中,使用1×1的卷積核對特征圖進行壓縮,整合不同感受野的信息,增強對小尺度人臉的特征表示,在最后的預測層也是通過全卷積網絡進行預測,最大程度的保留了圖像中有用的空間信息,有助于小尺度人臉的檢測。

通過對預測層的結構改進之后,整個模型的預測框達到588個,而YOLO算法只有98個預測框,在預測框的數量上,增加了6倍之多,進一步提高了檢測的精度,極大的改善了原始YOLO對小目標的檢測效果不理想的問題。改進YOLO之后的網絡結構如圖4所示。

圖4 改進的YOLO網絡結構

3 實驗結果分析

以原始YOLO網絡特征提取框架為基礎,使用改進的預測層結構,引入聚類框初始化參數,對不同層級的特征圖進行細粒度的特征融合,訓練人臉檢測模型。同時為了加快網絡的收斂速度避免過擬合,本文采取多分布策略,初始化學習率為0.0005,并設置權值衰減系數為0.0005,設置沖量常數為0.9,使用圖形加速單元訓練模型。

3.1 實驗環(huán)境

本文實驗環(huán)境使用Ubuntu 14.04操作系統,中央處理器為Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz,運行內存16 G,顯卡使用NVIDIA Tesla K80,16G顯存。

3.2 數據集

使用卷積神經網絡作為特征提取網絡的模型需要從大量的樣本中學習人臉的特征,因此最好選用具有代表性的數據,這樣模型可以學習到更好的特征表示。本文使用的人臉數據集是由香港中文大學YangShuo等[18]收集發(fā)布的WIDER FACE人臉檢測數據集。該數據集是由61個事件類別組成的,共包含32 203張圖像數據,其中人臉目標共393 793個,這些人臉目標在尺度、姿勢、裝扮和光照等方面均有比較大的變化,這種規(guī)模的數據集可以使模型更有效的學習到人臉目標的特征屬性。本文選取其中每一個事件的40作為訓練數據集,50%作為測試數據集,10%作為交叉驗證數據集。

3.3 實驗結果分析

本文使用改進的模型在WIDER FACE人臉檢測數據集上迭代訓練一萬步,并且在測試數據集上對YOLO算法和本文提出的算法進行對比分析,對每一個改進點進行驗證。

3.3.1 本文提出的模型的收斂性驗證

在訓練卷積神經網絡模型時,模型是否能夠達到穩(wěn)定收斂狀態(tài)也是模型性能的參考標準之一。本文在訓練模型的過程中,分別在每一步迭代中收集模型的訓練日志,其中包括模型的損失值、模型的準確率、模型的召回率、平均IOU值等信息,通過對訓練日志的分析,可以掌握模型在訓練中的狀態(tài)。圖5是將日志中的模型損失可視化的展示,可以很直觀的看出模型在前2000步的迭代訓練中,損失值在不斷的降低,在2000步左右到達穩(wěn)定狀態(tài),并且在之后的訓練步數中,模型的損失值持續(xù)降低,整體趨于穩(wěn)定,也反映了本文提出的模型可以較快的達到收斂狀態(tài)。

圖5 模型訓練損失變化曲線

3.3.2 測試改進策略對模型精度的影響

本文采用變量控制的原則,對提出的3個改進點進行逐一測試,并在測試數據中對比其對檢測精度的影響。測試結果如圖6所示,YOLO算法在測試數據集中的精度是76%,當只在YOLO算法中引入聚類結果中不同尺度的檢測框時,檢測精度提高了近10個百分點;當只改進YOLO算法預測層的網絡結構時,檢測精度提高了近5個百分點;當只對YOLO算法進行細粒度特征融合時,檢測精度提高了近3個百分點。由測試結果可以看出,本文提出的改進點對YOLO算法的檢測精度均有不同程度的提升,也驗證了每一個改進點都是有效的。其中聚類框的引入對模型精度的提升最為顯著。最后本文將以上3個改進點同時應用在YOLO算法中訓練,得到的模型在測試集上的檢測精度為90.5%,相比于YOLO算法提高了近15個百分點。

圖6 不同改進策略對模型精度的影響

3.3.3 不同檢測模型對比

目標檢測模型的性能不止有模型的精度,還有模型的速度,即平均檢測一張圖像花費的時間。檢測速度快、精度高的目標檢測模型一直是研究人員所追求的目標。本文在同一測試環(huán)境下,對比了其它檢測模型與本文方法在WIDER FACE測試數據集上的性能表現,由表1可見,本文方法與YOLO檢測模型相比,查準率提高了14.9%,達到了90.5%;查全率提高了22.7%,達到了86.1%;由于使用了較密集的柵格和較多的預測框,檢測速度比YOLO慢了90毫秒,但是依然比兩階段的檢測模型速度快,平均檢測一張圖像只需0.34 s。

表1 性能對比

3.3.4 與YOLO檢測結果對比

文本在相同檢測環(huán)境下,分別對YOLO和本文方法的檢測結果進行對比分析,檢測結果如圖7所示,圖7左邊是YOLO模型檢測密集小尺度人臉的效果圖,右邊是本文方法檢測密集小尺度的效果圖??梢钥闯霰疚奶岢龅姆椒▽γ芗男∧繕巳四樀臋z測結果好于YOLO。

圖7 左:YOLO檢測結果右:本文方法檢測結果

4 結束語

為解決密集小尺度人臉檢測精度低的問題,本文提出一種基于改進YOLO算法的密集小尺度人臉檢測方法。首先使用目標框與真實框的面積交并比作為距離損失函數對傳統的k-means聚類算法進行改進,同時結合小尺度人臉目標占比小且長寬比例接近1的特點,對候選框進行聚類篩選合適的尺度數量,然后在多級特征圖中融合細粒度特征,對感受野較小的淺層特征進行空間降維通道升維之后,與感受野較大的深層特征進行融合,得到的特征圖中包含小尺度人臉的抽象信息和細節(jié)信息,提高特征圖對小尺度人臉的特征表達能力;最后結合聚類選擇的候選框,增加預測層的深度和寬度,形成適用于檢測密集小尺度人臉的網絡結構。在WIDER FACE人臉檢測數據庫上進行實驗的結果表明,該方法在對密集小尺度人臉的檢測精度有明顯提高。

猜你喜歡
柵格人臉尺度
基于鄰域柵格篩選的點云邊緣點提取方法*
有特點的人臉
財產的五大尺度和五重應對
三國漫——人臉解鎖
動漫星空(2018年9期)2018-10-26 01:17:14
宇宙的尺度
太空探索(2016年5期)2016-07-12 15:17:55
不同剖面形狀的柵格壁對柵格翼氣動特性的影響
馬面部與人臉相似度驚人
9
長得象人臉的十種動物
奇聞怪事(2014年5期)2014-05-13 21:43:01
基于CVT排布的非周期柵格密度加權陣設計
雷達學報(2014年4期)2014-04-23 07:43:13
偏关县| 特克斯县| 肃南| 定日县| 饶平县| 蛟河市| 通州市| 什邡市| 吉隆县| 西安市| 塔城市| 苏尼特左旗| 长寿区| 鹿邑县| 文登市| 怀远县| 辽阳县| 启东市| 隆林| 潢川县| 仙居县| 平泉县| 合山市| 许昌县| 五台县| 乐陵市| 阿瓦提县| 莱西市| 得荣县| 孟村| 镶黄旗| 梁山县| 潼南县| 沙田区| 连云港市| 万年县| 龙岩市| 栖霞市| 安国市| 开江县| 嘉兴市|