陳穎,焦良葆,曹雪虹,
(1.南京郵電大學(xué)通信與信息工程學(xué)院,南京 210003;2.南京工程學(xué)院人工智能產(chǎn)業(yè)技術(shù)研究院,南京 211167)
近年來(lái),多媒體技術(shù)迅猛發(fā)展,圖像識(shí)別技術(shù)作為計(jì)算機(jī)視覺(jué)領(lǐng)域中的重要分支,被廣泛應(yīng)用到航天航空領(lǐng)域、軍事領(lǐng)域、公共安全領(lǐng)域、工農(nóng)業(yè)等相關(guān)領(lǐng)域。而伴隨著國(guó)家大力發(fā)展基礎(chǔ)建設(shè),全國(guó)建筑業(yè)安全生產(chǎn)理念也逐步進(jìn)行推廣,為了提高建筑業(yè)對(duì)施工人員的安全帽佩戴檢測(cè)[1]情況,降低由于作業(yè)人員沒(méi)有佩戴安全帽而造成的事故發(fā)生率,將圖像識(shí)別技術(shù)[3]應(yīng)用到實(shí)時(shí)檢查工人是否佩戴安全帽非常重要[2]。本文使用YOLO網(wǎng)絡(luò)[4]對(duì)施工場(chǎng)所的施工人員是否佩戴安全帽進(jìn)行檢測(cè),由于會(huì)產(chǎn)生漏檢錯(cuò)檢情況,導(dǎo)致最終結(jié)果的不準(zhǔn)確。所以本文考慮通過(guò)檢測(cè)出漏檢錯(cuò)檢圖片,并對(duì)其錯(cuò)誤檢測(cè)數(shù)據(jù)進(jìn)行矯正。
通過(guò)實(shí)地施工場(chǎng)所拍攝的視頻,并對(duì)數(shù)據(jù)集進(jìn)行篩選,選取符合課題的視頻,使用opencv[5]將每個(gè)視頻切分成幀圖片,建立目標(biāo)檢測(cè)的訓(xùn)練集和測(cè)試集,包含了背光、逆光、近距離、遠(yuǎn)距離、部分遮擋和安全帽種類各異等情況,并將所述數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,部分樣本數(shù)據(jù)如圖1所示。并采用LabelImg標(biāo)注工具[6]通過(guò)對(duì)每一張圖像中的目標(biāo)進(jìn)行人工標(biāo)記感興趣區(qū)域和類別標(biāo)注。
圖1 安全帽佩戴樣本圖像
YOLOv3網(wǎng)絡(luò)是由Joseph Redmon等[7]提出的一種目標(biāo)檢測(cè)算法。傳統(tǒng)的YOLOv3網(wǎng)絡(luò)對(duì)視頻流的目標(biāo)檢測(cè)[8]框架如圖2所示。
圖2 傳統(tǒng)視頻流目標(biāo)檢測(cè)模型
YOLOv3的主干網(wǎng)絡(luò)Darknet-53通過(guò)借鑒Resnet[9]的思想,在網(wǎng)絡(luò)中加入了殘差模塊,有利于用于深層網(wǎng)絡(luò)的梯度消失和爆炸問(wèn)題。網(wǎng)絡(luò)中沒(méi)有使用池化層和全連接層,而是通過(guò)改變卷積核的步長(zhǎng)來(lái)實(shí)現(xiàn)特征圖的尺寸變換。
YOLOv3在特征融合[10]方式上通過(guò)借鑒FPN的思想,采用上采樣(Up Sampling)和合并(Concatenate)操作來(lái)融合三個(gè)尺度(13×13、26×26和52×52)的特征圖,在多個(gè)尺度的融合特征圖上分別進(jìn)行獨(dú)立檢測(cè),提升小目標(biāo)的檢測(cè)能力。并使用k-means聚類算法[11]獲得YOLOv3中三個(gè)檢測(cè)尺度的9個(gè)anchor值,并輸入到網(wǎng)絡(luò)中。
其中基于特征提取網(wǎng)絡(luò)構(gòu)建包含損失函數(shù)Logistic的目標(biāo)檢測(cè)模型[12]。采用上述訓(xùn)練數(shù)據(jù)集對(duì)所述目標(biāo)檢測(cè)模型的損失函數(shù)進(jìn)行迭代訓(xùn)練,并使用預(yù)訓(xùn)練權(quán)重,訓(xùn)練結(jié)束得到所需的權(quán)重文件。
檢測(cè)過(guò)程中會(huì)生成檢測(cè)數(shù)據(jù)文件,文件中有預(yù)測(cè)邊框的坐標(biāo)與寬高(bx,by,bw,bh)和置信度P0,公式如下:
其中σ(x)=1∕( 1 +e-x),cx,cy代表單元格從左上角的偏移量,pw,ph代表錨框的寬度、高度。
所述目標(biāo)置信度P0為預(yù)測(cè)邊界框內(nèi)存在目標(biāo)的可能性,其計(jì)算公式為:
其中Pr(Object)表示當(dāng)前網(wǎng)格內(nèi)是否包含目標(biāo)的中心點(diǎn),如果包含,則為1,反之為0;表示網(wǎng)絡(luò)的預(yù)測(cè)邊界框和真實(shí)邊界框面積的交并比[13],當(dāng)P0大于0.5時(shí),表示當(dāng)前目標(biāo)框內(nèi)有目標(biāo)被檢測(cè)出。
由于視頻流[14]中的時(shí)間相關(guān)性,本文提出了基于時(shí)間相關(guān)的置信度矯正模型,如圖3所示,分別采用一次指數(shù)平滑法[15]、簡(jiǎn)單移動(dòng)平均法[16]、加權(quán)移動(dòng)平均法[17]和自適應(yīng)濾波法[18]四種對(duì)沒(méi)有明確規(guī)律性的時(shí)間序列預(yù)測(cè)方法[19]來(lái)建模,進(jìn)行對(duì)比,選取最優(yōu)模型。
圖3 基于時(shí)間相關(guān)的置信度矯正模型
圖3 基于時(shí)間相關(guān)的置信度矯正模型(續(xù))
四種數(shù)據(jù)處理預(yù)測(cè)方法以原數(shù)據(jù)與處理后數(shù)據(jù)的標(biāo)準(zhǔn)差σ作為評(píng)價(jià)指標(biāo),即處理后數(shù)據(jù)越接近原數(shù)據(jù),則這種方法就越適合預(yù)測(cè)下一期數(shù)據(jù)。
首先根據(jù)從YOLO網(wǎng)絡(luò)輸出的檢測(cè)文件,每個(gè)輸出信息框所屬圖片的編號(hào)ck,該對(duì)象的置信度得分pi(0≤pi≤1),輸出信息框的坐標(biāo)信息xmin、ymin、xmax、ymax,其中每一個(gè)輸出信息框的輸出數(shù)據(jù)為xki=[ck,pi,xmin,ymin,xmax,ymax],依次檢測(cè)目標(biāo)框置信度是否大于等于0.5,對(duì)于置信度小于0.5的對(duì)象判斷其是否為漏檢目標(biāo),根據(jù)檢測(cè)數(shù)據(jù)總結(jié)出相鄰幀圖片同一目標(biāo)的目標(biāo)輸出框坐標(biāo)差小于20 px,通過(guò)該輸出框坐標(biāo)依次從當(dāng)前幀向前和向后,相鄰幀之間循環(huán)比較,如果在當(dāng)前幀前后目標(biāo)都有被正確檢測(cè)出,則判斷該目標(biāo)漏檢。對(duì)于置信度大于等于0.5的目標(biāo)判斷其是否為漏檢目標(biāo),將此目標(biāo)輸出框坐標(biāo)與前五幀和后五幀圖片的所有目標(biāo)框進(jìn)行比較,如果沒(méi)有與之相符合的目標(biāo)框,則判斷為目標(biāo)錯(cuò)檢。
以下為使用四種數(shù)據(jù)處理方法對(duì)漏檢、錯(cuò)檢目標(biāo)在當(dāng)前幀前目標(biāo)被正確檢測(cè)出的置信度組合的數(shù)組進(jìn)行處理,原數(shù)據(jù)與處理后數(shù)據(jù)的對(duì)比結(jié)果如表1所示。
表1 四種數(shù)據(jù)處理方法的σ值對(duì)比
通過(guò)對(duì)比得出,經(jīng)過(guò)一次指數(shù)平滑法處理過(guò)的數(shù)據(jù)更接近原數(shù)據(jù),所以本文使用此方法矯正漏檢目標(biāo)置信度和抑制錯(cuò)檢目標(biāo)置信度,即采用模型c作為置信度矯正模型。
本文采取的指數(shù)平滑法為一次指數(shù)平滑法,該方法在本文中的建模過(guò)程如圖4所示。
圖4 指數(shù)平滑法流程
一次指數(shù)平滑法有一個(gè)初值,由公式(6)得出。
低于20項(xiàng)n一般取3,大于20項(xiàng)的本文取5。
一次指數(shù)平滑需要滯后一期,則一次指數(shù)平滑的計(jì)算公式為:
本文中x[i]為漏檢、錯(cuò)檢目標(biāo)在當(dāng)前幀前目標(biāo)被正確檢測(cè)出的置信度組合的數(shù)組,1≤i≤n。
預(yù)測(cè)下一期數(shù)據(jù):
指數(shù)平滑法中最重要的參數(shù)是平滑常系數(shù)α[16],α的取值范圍是[0,1],α值越大表示對(duì)未來(lái)的預(yù)測(cè)中越近期的數(shù)據(jù)權(quán)重越大。α一般是先根據(jù)經(jīng)驗(yàn)做一個(gè)大概的預(yù)估,基本判斷標(biāo)準(zhǔn)如下:
(1)時(shí)間序列比較平穩(wěn)時(shí),選擇較小的α值,α在0.05~0.20之間。
(2)時(shí)間序列有波動(dòng),但長(zhǎng)期趨勢(shì)沒(méi)大的變化,可選稍大的α值,α在0.10~0.40之間。
(3)時(shí)間序列波動(dòng)很大,長(zhǎng)期趨勢(shì)變化大有明顯的上升或下降趨勢(shì)時(shí),宜選較大的α值,α在0.60~0.80之間。
(4)當(dāng)時(shí)間序列是上升或下降序列,滿足加性模型,α取較大值,α在0.60~1之間。
再重復(fù)試算過(guò)程,比較不同α值下,引入均方誤差σ概念來(lái)判斷平滑系數(shù)α是否準(zhǔn)確:
通過(guò)實(shí)驗(yàn)比較得出當(dāng)α=0.9時(shí),均方誤差最小,由于數(shù)據(jù)集是由視頻中提取,時(shí)間上屬于上升序列,所以較大的α值均方誤差較小。
本文采用對(duì)測(cè)試樣本計(jì)算精度(Precision)和召回率(Recall),引入精度均值(AP)作為評(píng)估指標(biāo)。以Recall為橫軸,Precision為縱軸繪制P-R曲線并對(duì)其積分求出曲線下的面積即AP,表達(dá)式如下:
式(11)、式(12)中,TP為分類正確的正樣本[20],F(xiàn)P為分類錯(cuò)誤的負(fù)樣本,F(xiàn)N為分類錯(cuò)誤的正樣本,式(13)中P(r)為P-R曲線函數(shù)表達(dá)。
圖5為數(shù)據(jù)集1中的第171幀圖片,存在檢測(cè)目標(biāo)漏檢,此目標(biāo)框原始檢測(cè)數(shù)據(jù)為[171,0.256614,49.407391,424.668915,117.287079,537.215149],該漏檢目標(biāo)在當(dāng)前幀之前能被正確檢測(cè)出的目標(biāo)置信度為x[i]=[0.999987,0.999990,0.999991,0.999996,0.999950,0.999983,1.000000,1.000000,0.860279,0.999570,0.999864,0.999379,0.999144,0.939832]。通過(guò)一次指數(shù)平滑法對(duì)x[i]中數(shù)據(jù)進(jìn)行處理,初值S0=0.999987,α=0.9,再由公式(7)、(8)、(9)預(yù)測(cè)出下一期數(shù)據(jù)xn+1為0.940425,即經(jīng)過(guò)置信度矯正后此檢測(cè)目標(biāo)的置信度為0.940425。
圖5 漏檢圖片
圖6為數(shù)據(jù)集1的第357幀圖片,存在檢測(cè)目標(biāo)錯(cuò)檢,此目標(biāo)框檢測(cè)數(shù)據(jù)為[357,0.796121,1699.169800,385.834717,1813.965210,580.458984],該錯(cuò)檢目標(biāo)在當(dāng)前幀之前被正確檢測(cè)出的目標(biāo)置信度為x[i]=[0.823400,0.804521,0.764932,0.853120,0.743512,0.763596,0.782495,0.792402],通過(guò)一次指數(shù)平滑法對(duì)x[i]中數(shù)據(jù)進(jìn)行處理,初值S0=0.823400,α=0.9,再由公式(7)、(8)、(9)預(yù)測(cè)出下一期數(shù)據(jù)xn+1為0.773921,將此異常置度修改為1-xn+1=0.226079,將錯(cuò)檢置信度抑制為正常值。
圖6 錯(cuò)檢圖片
本文基于YOLO網(wǎng)絡(luò)+置信度矯正算法與原基于YOLO網(wǎng)絡(luò)的檢測(cè)結(jié)果在多個(gè)真實(shí)數(shù)據(jù)集的驗(yàn)證對(duì)比結(jié)果如表2,表3所示。
表2 基于YOLO網(wǎng)絡(luò)的檢測(cè)實(shí)驗(yàn)結(jié)果
表3 基于YOLO網(wǎng)絡(luò)+置信度校正檢測(cè)實(shí)驗(yàn)結(jié)果
通過(guò)以上兩個(gè)表格中數(shù)據(jù)的對(duì)比,結(jié)果表明本文提出的算法能夠針對(duì)異常檢測(cè)數(shù)據(jù),使用指數(shù)平滑法對(duì)置信度較低的漏檢目標(biāo)進(jìn)行預(yù)測(cè)矯正;對(duì)錯(cuò)檢數(shù)據(jù)的置信度進(jìn)行抑制,從而降低目標(biāo)檢測(cè)漏檢和錯(cuò)檢率,MAP值平均提高了7.7%。
本文使用YOLO網(wǎng)絡(luò)對(duì)視頻流進(jìn)行目標(biāo)檢測(cè),由于光照和角度等環(huán)境的不確定因素,在對(duì)視頻流進(jìn)行連續(xù)檢測(cè)的過(guò)程中會(huì)出現(xiàn)某一幀漏檢、錯(cuò)檢或多幀連續(xù)漏檢,所以提出一種基于時(shí)間相關(guān)性的置信度矯正算法對(duì)這一情況進(jìn)行改善,并對(duì)多個(gè)數(shù)據(jù)集進(jìn)行驗(yàn)證。從實(shí)驗(yàn)結(jié)果可以看出,該算法能夠?qū)Ξ惓?shù)據(jù)進(jìn)行矯正,對(duì)漏檢錯(cuò)檢情況有很大改善,從而大大地提高了目標(biāo)檢測(cè)的準(zhǔn)確性。