張明偉,蔡堅勇,2,3,4,李 科,程 玉,曾遠強
1(福建師范大學 光電與信息工程學院,福州 350007)
2(福建師范大學 醫(yī)學光電科學與技術教育部重點實驗室,福州 350007)
3(福建師范大學 福建省光子技術重點實驗室,福州 350007)
4(福建師范大學 福建省光電傳感應用工程技術研究中心,福州 350007)
目標檢測的場景分為室內(nèi)和室外,室內(nèi)環(huán)境的變化雖然不如室外環(huán)境那么復雜,但它們對于運動物體的檢測也將產(chǎn)生顯著的影響.由于對室內(nèi)人員檢測的需求性更強,本文主要研究室內(nèi)人員的檢測.比如,教室學生檢測就是室內(nèi)場景下人員檢測的一個重要的方向.針對教育中的室內(nèi)人員檢測問題,本文完全可以通過計算機視覺的相關技術——目標檢測,從而解決教室學生檢測問題.
有關目標檢測的技術,分為傳統(tǒng)算法和深度學習算法.傳統(tǒng)算法主要分為目標實例檢測與傳統(tǒng)目標類別檢測.自2010年,深度學習成為計算機視覺的主要研究方向,使用卷積神經(jīng)網(wǎng)絡進而大幅提高了圖像檢測的準確率,因此越來越多的人將深度學習的思想應用到目標檢測類別檢測中.在這方面,基于深度學習的目標檢測與識別算法已經(jīng)成為主流,主要有三大類:基于快速CNN的目標檢測技術,如R-CNN、Mask RCNN[1]等;基于回歸學習的目標檢測與識別,如SSD[2]、YOLO等;基于學習搜索的目標檢測與識別,如AttentionNet、FSRL[3]等.其中YOLO系列的算法是一個端對端的模型,其模型結構復雜度要優(yōu)于R-CNN系列,很適合對實時性要求較高的應用場景[4].
本文采用回歸的目標檢測與識別方法,以深度學習網(wǎng)絡YOLO v3為基礎,將教室中的學生作為待檢測目標.因為檢測目標只有室內(nèi)人員,為了降低模型的冗余度和提高檢測的精確度,提出一種DE-YOLO神經(jīng)網(wǎng)絡結構,對網(wǎng)絡的結構進行改進,并對層級結構中的參數(shù)進行調整,使得不僅減少模型的占用空間大小,而且能準確識別教室中的學生.通過本文對DE-YOLO和YOLO v3的實驗結果對比,DE-YOLO運行速度明顯優(yōu)于YOLO v3,同時保證了預測準確率.并且基于內(nèi)存大小為8 GB和型號為Inter i5的CPU硬件環(huán)境處理,不使用GPU情況下,檢測速度提升了3FPS.
2016年Joseph Redmond 等人提出了YOLO (You Only Look Once)算法,它主要基于回歸學習,實現(xiàn)用單一網(wǎng)絡對圖片只要看一次就能檢測與識別目標[5].通過完善發(fā)展,于2018年提出YOLO v3,也是目前效率最高的版本[6].YOLO v3依然保持了YOLO v2的快速檢測,并大大提高了識別的正確率,尤其是在小目標的檢測與識別上,識別率也有較大的提升.相對于YOLO v2,YOLO v3結合ResNet的思想,運用了若干個ResNet模塊[6].YOLO v3在網(wǎng)絡框架方面,大量使用具有良好表征能力的3×3和1×1的卷積層,并網(wǎng)絡結構中不斷穿插著一些ResNet.最終YOLO v3整體的網(wǎng)絡結構中包含了53個卷積層,因此Joseph Redmond也把它稱為Darknet-53,如圖1所示.
圖1 Darknet-53網(wǎng)絡結構圖
借鑒Faster RCNN的思想,YOLO v3還引入了多尺度預測方式.每種尺度預測3個boxes,anchor的設計方式依然使用聚類,將其按照大小均分給3種尺度[7].同時網(wǎng)絡結構中最后的分類器也從Softmax函數(shù)改為logistic函數(shù),使得能夠支持多種類型目標的檢測與定位.
2017年 Huang 等提出了 DenseNet (Densely connected convolutional Networks)網(wǎng)絡[8],主要對ResNet和Inception兩種網(wǎng)絡的對比學習:如果卷積神經(jīng)網(wǎng)絡在每個單元的輸入及輸出之間有更短的連接,它實質上有更深、更精準、訓練更高效的特點.DenseNet的本質是在于對目標特征的學習,通過的表征信息的最大化利用,來達到網(wǎng)絡模型的最簡化和最優(yōu)化,盡可能降低參數(shù)冗余.
DenseNet網(wǎng)絡結構中內(nèi)嵌3個dense block,每個dense block中串連著4個卷積層,在每個dense block中,可以把每個卷積層之前所有前置卷積層的輸出匯總為輸入.每個dense block的結構如圖2所示,層與層之間可以用池化層相連.
DenseNet引入這樣的dense block有如下優(yōu)點:
(1)由于網(wǎng)絡中每層都會接受前面所有層的特征輸入,為了避免隨著網(wǎng)絡層數(shù)的增加,后面層的特征維度增長過快,在每個階段之后進行下采樣時,會首先通過一個卷積層將特征維度壓縮至當前輸入的一半,再進行池化操作,即解決梯度消失的問題;
(2)通過每層之間的跳躍連接,加強了網(wǎng)絡模塊之間的信息交流,其本質就是特征的復用.與ResNet不同的是,這樣的密集型連接,使得信息流更大,不是簡單的疊加效果,使得小模型產(chǎn)生大數(shù)據(jù).
圖2 密集卷積塊結構圖
本文正是對DenseNet的上述優(yōu)點的充分考慮,在YOLO v3上提出DE-YOLO網(wǎng)絡,達到對目標特征的重復的學習和利用,使得算法在室內(nèi)人員檢測方面有著更優(yōu)的效果.
本文考慮到室內(nèi)人員檢測時,存在檢測目標比較密集,且先驗框大小不一.比如,教室中學生的檢測就是一個很好的例子.所以,首先需要對數(shù)據(jù)集進行預處理,再對網(wǎng)絡層級結構進行刪減和替換,并將密集連接的思想更新進去,搭建一個全新的網(wǎng)絡,最后達到設計的效果.
當神經(jīng)網(wǎng)絡來檢測一幅圖像中的多個目標時,其實網(wǎng)絡實際上需要大量的先驗框執(zhí)行預測,并只顯示出它確定為一個對象的那些檢測結果.由于R-CNN系列中先驗框的高度和寬度都是手動設置的,客觀性較差.如果選取的的先驗框的高度和寬度比較合適,所得的模型的性能將更優(yōu),使得預測效果更好.所以,YOLO v3中為了針對數(shù)據(jù)集的目標框大小進行聚類分析,可采用K-means算法.
K-means算法是一種經(jīng)典的聚類算法,通常使用歐幾里得度量等方式作為兩個樣本相似程度的評價指標[9].因為先驗框設置的最初目的是為了使得ground truth與預測框的重合度盡可能高,即式(1)中的交并比IOU的值越接近為1越好.但是由于這些經(jīng)驗值不一定適用于對室內(nèi)人員檢測的場景,會對最終的檢測產(chǎn)生一定的干擾.例如使用歐幾里得度量會讓大的邊界區(qū)域比小的邊界區(qū)域更易出現(xiàn)誤差,導致精確度下降.我們希望通過先驗框來獲取良好的IOU,因為它不受邊界框的尺寸影響.因此我們選擇新的方式來表達IOU,如下[10]:
其中,centre表示為類簇中心,box表示為目標,IOU(box,centre)表示類簇中心框和目標框的交并比.交并比IOU表示預測框的準確程度,其公式為:
其中,bbgt表示真實框,bbdt表示預測框.
由于K-means算法具有收斂于局部最優(yōu)解的特性,所以本文起初會選取多組初始值,對其分別運行算法,如果獲得目標函數(shù)值最小,則選取這一組方案作為最后聚類結果.最終的聚類結果受初始化的影響很大,一般采用隨機的方式生成中心點[11],對于比較有特點的數(shù)據(jù)集可采用一些啟發(fā)式的方法選取中心點.如果目標的邊界框大小太多,反而會增加一定的計算量而導致效率降低.所以,實驗選取K=[1,20],統(tǒng)計出不同錨點框數(shù)量(K的大小)下所對應的IOU值,具體的關系 如圖3所示.
圖3 錨點框數(shù)量與平均交并比的關系
根據(jù)圖中錨點框數(shù)量與平均交并比的關系可知,在K=6之后,曲線變化趨于穩(wěn)定,且先驗框數(shù)量合理,不會帶來過多的計算開銷,所以本文得到的6個聚類的中心為(10,14)、(23,27)、(37,58)、(81,92)、(136,169)、(344,319).
根據(jù)Joseph Redmond的工作,YOLO v3在COCO和VOC數(shù)據(jù)集上分在32×32、16×16、8×8這3個不同的尺度上進行預測[12],最后判斷最終結果,如圖4所示.
圖4 YOLO v3多尺度預測方式
圖4中YOLO v3分別在3個尺度上對目標進行預測:尺度1上,在基礎網(wǎng)絡之后添加一些卷積層再輸出box信息;尺度二上,在尺度1進行上采樣再與16×16大小的特征圖相加,卷積輸出box信息;尺度3上,與尺度2類似,使用了32×32大小的特征圖.
隨著網(wǎng)絡層數(shù)的加深,雖然ResNet模塊可以緩解梯度爆炸的現(xiàn)象,使得精確度不會隨之降低.但是,這是基于網(wǎng)絡結構可以比較復雜,對內(nèi)存占用沒有較高要求的前提下.為了盡可能減少網(wǎng)絡結構的復雜度,降低網(wǎng)絡模型對內(nèi)存的占用,并保證較高的精確度.使用Dense block模塊將表現(xiàn)的比ResNet模塊更好.
本文借鑒DenseNet網(wǎng)絡的思想,為了壓縮模型并提高特征信息的復用率,需要對網(wǎng)絡結構進行調整.考慮到在32×32、16×16尺度的特征圖上,包含較多的表征信息,而在8×8尺度上的表征學習能力有限.所以將YOLO v3這三個尺度上的ResNet模塊替換為與其維度相適應的Dense block模塊,其更新的網(wǎng)絡如圖5所示.通過對尺度2、尺度3構建這樣一種密集連接的網(wǎng)絡結構,使得不同維度學習到的表征信息得以極致的利用和匯總,為下一步的精準預測提供的有效的保證.
實驗環(huán)境如表1所示.
圖5 DE-YOLO網(wǎng)絡結構
表1 實驗環(huán)境
為了保證實驗結果的可靠性,數(shù)據(jù)集的選用十分重要.Pascal Visual Object Calsses (VOC)[13]是計算機視覺領域中的一個公認的數(shù)據(jù)集,具有一定權威性.本文選用VOC2012數(shù)據(jù)集,并提取了數(shù)據(jù)集中1000張不同的person照片.隨機抽取820張圖片作為訓練集,80張圖片作為驗證集,100張圖片作為測試集.
數(shù)據(jù)集用labelImg軟件標注完成后,分別對YOLO v3和DE-YOLO網(wǎng)絡進行訓練.實驗過程中,網(wǎng)絡的學習率(learning rate)為10–4,梯度下降的優(yōu)化器選用Adma,以便快速收斂并正確學習,訓練迭代次數(shù)為1000.實際訓練過程中,為了避免過擬合情況的出現(xiàn),每迭代50次對模型進行保存,輸出后綴為.h5文件.
本文算法流程圖大致如圖6所示.
圖6 算法流程圖
從圖中可以看出,實驗分為訓練和測試兩個部分,分別對訓練數(shù)據(jù)和測試數(shù)據(jù)進行預處理.通過對訓練集的K-means聚類分析,得到相應目標特征,并通過DE-YOLO模型進行訓練.最后進行測試并模型評估.
本文方法總體流程圖,如圖7所示.
圖7 室內(nèi)人員檢測方法流程圖
為了避免數(shù)據(jù)集中的常出現(xiàn)的類不平衡的現(xiàn)象,使得無論正負樣本如何變化,都不影響模型表達的準確性.本文采用準確率P(precision)、召回率R(recall)、精確率ACC(accuracy)、F1值(F1-score)值作為評價指標,通過ROC曲線圖來評估其模型的性能[14].
precision表示被分為正例的示例中實際為正例的比例,其中設TP為將正類預測為正類數(shù),FP為將負類預測為正類數(shù),公式如下:
recall是覆蓋率的度量,度量有多少個正例被分為正例,其中設FN為將正類預測為負類數(shù),公式如下:
accuracy是被分類正確的樣本數(shù)占總樣本的比例,其中設TN為將負類預測為負類數(shù),公式如下:
F1為p recision和 r ecall的加權平均調和,公式如下:
為了評估DE-YOLO性能,與YOLO v3進行對比,其迭代次數(shù)與精確率關系對比如表2所示.DE-YOLO算法較于YOLO v3算法更能有效的對室內(nèi)的人員進行檢測.
表2 迭代次數(shù)與精確率關系對比(單位:%)
從表2中可以看出,DE-YOLO在迭代800次的精確率已達到93.01%,與YOLO v3迭代1000次時的精確率相差無幾.當DE-YOLO迭代1000次時,比YOLO v3的精確率提高了2.38%.對于DE-YOLO網(wǎng)絡誤檢情況,選取部分經(jīng)典的實驗結果,如圖8和圖9所示.
圖8 DE-YOLO誤檢情況(a)
圖9 DE-YOLO誤檢情況(b)
在圖8和圖9中存在的誤檢情況,主要是由于神經(jīng)網(wǎng)絡很難區(qū)分現(xiàn)實與畫像中的人物,只要是是符合目標的特征的對象,都將被檢測輸出,很難避免.
繪制YOLO v3和DE-YOLO的ROC曲線,如圖10所示.這里引入AUC (Area Under roc Curve)概念,即ROC曲線下的面積大小[15].AUC的值越接近為1,則模型性能越突出.由圖10可得,本文的DE-YOLO模型性能優(yōu)于YOLO v3的原網(wǎng)絡.
圖10 ROC曲線圖
本文提出了一種基于密集型連接的DE-YOLO卷積神經(jīng)網(wǎng)絡,旨在通過網(wǎng)絡之間的密集型,連接提高其通道中的特征信息的利用率,并減少內(nèi)存占用空間.另外,網(wǎng)絡通過K-means對數(shù)據(jù)集的預處理,提高對室內(nèi)人員檢測的精確性.通過實驗表明,DE-YOLO在保證與YOLO v3相近正確率的情況下,減少了模型大小和內(nèi)存占用空間,可以將模型大小從235 MB減少至33 MB,實現(xiàn)了輕量化處理.另外,由于存在數(shù)據(jù)較少、目標標注引入干擾背景的問題,DE-YOLO檢測的精確度提升會遇到瓶頸,同時網(wǎng)絡結構如何進一步的壓縮和裁剪也是一個值得研究的方向,后期的工作將針對這些問題進入深入的研究.