鐘鑫豪,龍永紅,何震凱,李培云
(湖南工業(yè)大學(xué) 交通工程學(xué)院,湖南 株洲 412007)
在鐵路施工中,安全是施工項(xiàng)目中最重要的一部分,每年在施工工程中由于未佩戴安全帽導(dǎo)致的安全事故時(shí)有發(fā)生。在國(guó)內(nèi),人工監(jiān)測(cè)安全帽的佩戴占大多數(shù),這不僅耗時(shí)耗力,如果監(jiān)管不力還會(huì)導(dǎo)致嚴(yán)重的后果。因此,智能檢測(cè)施工人員佩戴安全帽就十分有益,對(duì)此,本文通過圖像處理的方式對(duì)施工人員佩戴安全帽的檢測(cè)進(jìn)行了研究。
國(guó)內(nèi)外學(xué)者對(duì)此都做了大量的工作和研究,現(xiàn)有的檢測(cè)佩戴安全帽的目標(biāo)檢測(cè)方法主要為兩類。
另一種方法則是基于深度學(xué)習(xí)的目標(biāo)檢測(cè)識(shí)別算法。該方法憑借著卷積神經(jīng)網(wǎng)絡(luò)的無需手動(dòng)設(shè)計(jì)圖像特征這一優(yōu)勢(shì)[4-5],逐漸獲得許多研究者的青睞。對(duì)于該類方法目前的目標(biāo)檢測(cè)方法主要有兩類,第一類是“two-stage”深度學(xué)習(xí)方法,它基于區(qū)域提名,輸入圖片進(jìn)去先生成候選框,然后對(duì)生成的候選框進(jìn)行分類。例如R-CNN[6-8]、R-FCN[9]等算法。第二類則是“one-stage”的端對(duì)端深度學(xué)習(xí)算法,輸入圖片后直接對(duì)整個(gè)圖片進(jìn)行預(yù)測(cè)、定位和分類。例如yolo、SSD[10]等算法,此類方法由于在檢測(cè)步驟上比第一種方法簡(jiǎn)化了一些步驟,因此檢測(cè)速度較第一類快,但是精度較低。雖然基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法相比于傳統(tǒng)的目標(biāo)檢測(cè)方法有著魯棒性較高、檢測(cè)精度較好的特點(diǎn),但是由于卷積神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,對(duì)圖片集的訓(xùn)練將消耗許多計(jì)算資源,并且要達(dá)到實(shí)時(shí)檢測(cè)的目的對(duì)計(jì)算機(jī)的配置要求很高。因此,本文提出一種改進(jìn)Tiny-yolov3 的安全帽檢測(cè)方法。
yolo 系列算法是J. Redmon 等[11-13]提出的基于深度學(xué)習(xí)的目標(biāo)檢測(cè)模型,由于它的提出是為實(shí)現(xiàn)高精度的在線目標(biāo)檢測(cè),因此yolo 系列算法采用的是one-stage 的目標(biāo)檢測(cè)算法,其中yolov3 是該系列中最新提出的改進(jìn)算法。并且該算法在Coco 等數(shù)據(jù)集上有不俗表現(xiàn),在工業(yè)和商用上均有廣泛的應(yīng)用。而本次采用的Tiny-yolov3 算法是在yolov3算法的平臺(tái)上的輕量級(jí)的實(shí)時(shí)檢測(cè)算法,將yolov3上的特征網(wǎng)絡(luò)Darknet-53 的53 層神經(jīng)網(wǎng)絡(luò)簡(jiǎn)化為13 層,因此它的檢測(cè)速度比yolov3 快許多。其卷積結(jié)構(gòu)仍然使用與yolov3 相同的全卷積網(wǎng)絡(luò)(convolutionl networks,F(xiàn)NC)和批量標(biāo)準(zhǔn)化(batch normalization)等。
Tiny-yolov3 結(jié)構(gòu)如圖1 所示,它主要由卷積層和池化層構(gòu)成,分別有7 層卷積層和6 層池化層(max pooling),網(wǎng)絡(luò)中每層卷積層或者池化層后的特征圖尺寸分別表示分辨率寬、分辨率高、通道數(shù)。
圖1 Tiny-yolov3 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 1 Tiny-yolov3 network structure diagram
Tiny-yolov3 的工作流程如下:首先,輸入一張圖片,將圖片劃為S×S的網(wǎng)格,而每個(gè)網(wǎng)格內(nèi)出現(xiàn)B個(gè)預(yù)測(cè)框;然后對(duì)預(yù)測(cè)框內(nèi)的目標(biāo)進(jìn)行類型檢測(cè);最后輸出檢測(cè)目標(biāo)的置信度和檢測(cè)框。而置信度的計(jì)算式為
式中:Pr(o)為目標(biāo)o存在的概率,一般為0 或者1;Riou為預(yù)測(cè)框和真實(shí)包含目標(biāo)框的交并比。
因此,置信度的數(shù)值是由每個(gè)網(wǎng)格中包含檢測(cè)目標(biāo)的概率和預(yù)測(cè)框的準(zhǔn)確度共同決定的。
訓(xùn)練模型時(shí),Tiny-yolov3 使用的損失函數(shù)與yolov3 相同,主要由預(yù)測(cè)框的位置(x,y),預(yù)測(cè)框的長(zhǎng)寬(w,h),預(yù)測(cè)類別(class),以及預(yù)測(cè)置信度(confidence)確定。損失函數(shù)公式如下:
肺癌患者機(jī)體免疫功能低下,臨床上采用放化療、手術(shù)以及侵襲性操作治療增加了患者對(duì)病原菌的易感性,極易引起患者院內(nèi)感染[1-8]。由于臨床上大量廣譜抗生素的應(yīng)用,以前無致病或致病能力弱的細(xì)菌導(dǎo)致的感染不斷增多,細(xì)菌也出現(xiàn)嚴(yán)重耐藥性。合并感染會(huì)增加患者的治療難度,影響預(yù)后,嚴(yán)重者可導(dǎo)致死亡[3-4]。為探討肺癌患者院內(nèi)感染的相關(guān)危險(xiǎn)因素,本文回顧性分析83例肺癌患者合并院內(nèi)感染的臨床資料,現(xiàn)報(bào)告如下。
式中:n為預(yù)測(cè)框個(gè)數(shù);Lxy為預(yù)測(cè)框位置誤差;Lwh為預(yù)測(cè)框長(zhǎng)寬誤差;Lclass為類別預(yù)測(cè)誤差;Lconfidence為置信度誤差。
由于Tiny-yolov3 的神經(jīng)網(wǎng)絡(luò)采用了yolov3 的簡(jiǎn)化神經(jīng)網(wǎng)絡(luò)模型,因此與yolov3 相比,其速度快上許多,但是檢測(cè)精度隨之下降。提高深度學(xué)習(xí)模型的檢測(cè)精度最常用的方法是增加網(wǎng)絡(luò)深度,即增加卷積層數(shù)。卷積神經(jīng)網(wǎng)絡(luò)層數(shù)越深,收斂的可能性越小,淺網(wǎng)絡(luò)提取的小對(duì)象的特征隨著網(wǎng)絡(luò)的加深而被稀釋。如果網(wǎng)絡(luò)太深,當(dāng)在圖層之間傳遞要素信息時(shí),也會(huì)導(dǎo)致要素信息丟失。因此,課題組在原始網(wǎng)絡(luò)的第4 層和第7 層之間添加了殘差網(wǎng)絡(luò)結(jié)構(gòu)。殘差網(wǎng)絡(luò)使用1×1 個(gè)卷積層和3×3 個(gè)卷積層提取特征。將輸入結(jié)構(gòu)之前的特征圖添加到殘差結(jié)構(gòu)之后生成的特征圖中,同時(shí)將淺層信息和深層信息傳輸?shù)较乱粋€(gè)卷積層以提取特征。這樣,可以減少在層之間通過時(shí)特征信息的這種丟失,并且可以提高網(wǎng)絡(luò)檢測(cè)的準(zhǔn)確性。殘差模塊如圖2 所示,其中n指輸入通道數(shù),C指通道數(shù),t指通道擴(kuò)張或壓縮的倍數(shù)。
圖2 殘差網(wǎng)絡(luò)結(jié)構(gòu)Fig. 2 Residual network structure
Tiny-yolov3 的評(píng)估方法與yolov3 相同,交并比(intersection over union,IOU)是預(yù)測(cè)框與真實(shí)框的交并集,是目標(biāo)檢測(cè)重要的評(píng)估方法。由交并比能得出損失函數(shù),目標(biāo)檢測(cè)的損失函數(shù)一般由分類損失函數(shù)(classificition loss)和回歸損失函數(shù)(bounding box)構(gòu)成。而由于Tiny-yolov3 的初始Riou存在一些問題:
1)當(dāng)預(yù)測(cè)框和真實(shí)框不相交,即Riou=0 時(shí),Loss 值無法進(jìn)行評(píng)估;
2)當(dāng)存在兩框重疊并且Riou相同的情況,但是位置預(yù)測(cè)框位置不相同時(shí),Loss值無法區(qū)分相交情況下的不同。因此,課題組提出用距離交并比DIOU_Loss(Distance_IOU_Loss)來代替IOU_Loss做損失函數(shù)的評(píng)估。距離交并比計(jì)算式如式(3)。
式中:A為真實(shí)框;B為預(yù)測(cè)框;為真實(shí)框和預(yù)測(cè)框的交集區(qū)域;為真實(shí)框和預(yù)測(cè)框的并集區(qū)域;Deuclidean為最小外接框?qū)蔷€距離;Dcenter為兩個(gè)中心點(diǎn)的歐氏距離。
本文將原算法中的篩選預(yù)測(cè)框的NMS 算法Rdiou改進(jìn)為L(zhǎng)diou算法,如式(4)所示:
當(dāng)使用DIOU 算法來檢測(cè)目標(biāo)時(shí),將會(huì)考慮預(yù)測(cè)框、真實(shí)框的重疊面積和兩者的中心距離,當(dāng)存在預(yù)測(cè)框在真實(shí)框里面時(shí),直接計(jì)算兩個(gè)框之間的距離,從而達(dá)到快速收斂的目的,并且解決了無法區(qū)分預(yù)測(cè)框在真實(shí)框內(nèi)部時(shí)無法區(qū)分相對(duì)位置的問題。
本文的實(shí)驗(yàn)是在windows10 環(huán)境下完成的算法搭建,硬件環(huán)境如下:處理器,AMD Ryzen5 3600 3.6 GHz;GPU 顯卡,RTX2060SUPER,顯卡的內(nèi)存為8 GB;計(jì)算機(jī)內(nèi)存為16 GB。軟件上安裝了Visual Studio2015、python 3.6.5,并且同時(shí)安裝了CUDA10.3 和cudnn9.0.0,以支持NVIDIA GPU 的使用,深度學(xué)習(xí)框架為Caffe[14]。
本文針對(duì)所研究的問題,制作了一個(gè)規(guī)模適中的數(shù)據(jù)集。數(shù)據(jù)來源于監(jiān)控視頻截圖、網(wǎng)絡(luò)爬蟲和圖片庫收集。為保證訓(xùn)練出的模型具備較高魯棒性和多場(chǎng)景檢測(cè)能力,樣本圖片中的施工人員的拍攝角度各異,光照的條件也有所不同。課題組按照Pascal VOC 的數(shù)據(jù)集格式構(gòu)建了自己的數(shù)據(jù)集,數(shù)據(jù)集包括5 323 張圖片,并采用labellmg 工具對(duì)圖像進(jìn)行分類和標(biāo)定后生成XML 文件,界面見圖3 所示。
圖3 labellmg 界面Fig. 3 Labellmg interface
標(biāo)記者的類型和坐標(biāo)位置信息,通過程序?qū)ML 文件轉(zhuǎn)換為TXT 文件輸入到訓(xùn)練集中。本實(shí)驗(yàn)按照7:2:1 的比例設(shè)置訓(xùn)練集、驗(yàn)證集和測(cè)試訓(xùn)練后的模型集。
本實(shí)驗(yàn)的結(jié)果評(píng)估標(biāo)準(zhǔn)主要為識(shí)別準(zhǔn)確率p(precision)、召回率r(recall)、平均精確率均值(mean average precision,mAP)和檢測(cè)速度FPS。首先,p表示在識(shí)別的正樣本中,真實(shí)樣本所占的比率,即
式中:TP為正確分類為正樣本的數(shù);FP為將目標(biāo)錯(cuò)誤分為正樣本的數(shù)。
r表示識(shí)別正確的正樣本在總樣本數(shù)中所占的比例,即
式中FN為被錯(cuò)誤劃分為負(fù)樣本的正樣本數(shù)。
如果只用precision 或recall 作為衡量一個(gè)模型檢測(cè)精度的優(yōu)劣顯然不合適。因此,課題組還需要目標(biāo)檢測(cè)中最重要的指標(biāo)之一的mAP,是多個(gè)驗(yàn)證集的平均AP 值,mAP 是由Precision-recall 曲線與坐標(biāo)軸包圍區(qū)域的面積。n為計(jì)算的組數(shù),則差值近似的公式為
2.4 實(shí)驗(yàn)結(jié)果分析
課題組使用官網(wǎng)上提供的Tiny-yolov3 的權(quán)重參數(shù)作為權(quán)重訓(xùn)練的初始參數(shù),并根據(jù)自制的訓(xùn)練集進(jìn)行參數(shù)微調(diào)以達(dá)到最佳訓(xùn)練效果,部分試驗(yàn)參數(shù)調(diào)整如表1 所示。
網(wǎng)絡(luò)參數(shù)按照表1 進(jìn)行了Tiny-yolov3 和本文改進(jìn)后的Tiny-yolov3 算法訓(xùn)練和驗(yàn)證,并分別計(jì)算了識(shí)別準(zhǔn)確率p、召回率r、平均精確率均值mAP和檢測(cè)速度FPS,結(jié)果如表2 所示。
表1 網(wǎng)絡(luò)參數(shù)說明表Table 1 Network parameter description table
表2 各算法的檢測(cè)結(jié)果參數(shù)Table 2 Parameters of detection results of each algorithm
從表2 所示結(jié)果來看,改進(jìn)后的Tiny-yolov3 在準(zhǔn)確率和召回率上分別有著4.6%和3.9%的提升,在最關(guān)鍵的mAP上也有4.1%的提升。由于改進(jìn)的網(wǎng)絡(luò)上增加了殘差結(jié)構(gòu),因此比原網(wǎng)絡(luò)的FPS慢一點(diǎn),但是影響不大,依然能滿足實(shí)時(shí)性的要求。另外,為了更直觀地表現(xiàn)兩種算法的差異,選取了一些兩種算法檢測(cè)的效果圖。圖4 為本文安全帽佩戴檢測(cè)改進(jìn)算法與原算法Tiny-yolov3 的比較結(jié)果圖。其中,圖a、d、g 為原圖,圖b、e、h 為Tiny-yolov3 檢測(cè)結(jié)果,圖c、f、i 為本文改進(jìn)的Tiny-yolov3 算法的實(shí)驗(yàn)結(jié)果。對(duì)原圖1 的檢測(cè)中,圖b 漏檢了左前的一位佩戴了安全帽的人,圖c 沒有漏檢;對(duì)原圖2 的檢測(cè)中,圖e 漏檢了后面佩戴了安全帽的人和被遮擋的人,圖f 沒有漏檢佩戴安全帽人員,但是漏檢了一些被遮擋的人;對(duì)原圖3 的檢測(cè)中,圖h 中漏檢了后面的2 人與右側(cè)的人,圖i 無人漏檢。從實(shí)驗(yàn)結(jié)果比較來看,本文的改進(jìn)算法能更好地檢測(cè)出小目標(biāo)。
圖4 實(shí)驗(yàn)結(jié)果Fig.4 Experimental results
本文基于Tiny-yolov3 的深度學(xué)習(xí)算法,通過在特征提取網(wǎng)絡(luò)上加入殘差網(wǎng)絡(luò)模塊,在不太影響檢測(cè)速度的情況下,提高了小目標(biāo)特征的獲取。同時(shí),在損失函數(shù)與篩選框的優(yōu)化中,引入了DIOU_Loss 的重合邊界框的誤差計(jì)算以提高目標(biāo)的識(shí)別準(zhǔn)確率。通過理論分析與實(shí)驗(yàn)結(jié)果表明:改進(jìn)后的Tiny-yolov3與原算法相比,識(shí)別準(zhǔn)確率提高了4.6%,召回率提高了3.9%,平均精確率均值提高了4.1%,幀率達(dá)到63 幀/s,滿足實(shí)時(shí)監(jiān)測(cè)的要求。但是,與yolov3 等大型檢測(cè)網(wǎng)絡(luò)比起來,小目標(biāo)檢測(cè)的識(shí)別準(zhǔn)確率有待加強(qiáng)。因此,接下來的工作是如何提高更小目標(biāo)的檢測(cè)準(zhǔn)確率。