徐守坤,倪楚涵,吉晨晨,李 寧
(常州大學(xué) 信息科學(xué)與工程學(xué)院,江蘇 常州 213164)
圖像描述,即利用人工智能的方法使計(jì)算機(jī)能夠自動(dòng)生成自然語(yǔ)言來(lái)描述其所感知的圖像內(nèi)容[1],是實(shí)現(xiàn)圖像理解最為直接的方式,也是目前的研究熱點(diǎn).在施工場(chǎng)景中,作業(yè)環(huán)境的復(fù)雜性和工人的不安全行為易引發(fā)施工事故威脅生命安全,其中施工人員頭部受傷最易致命,是造成施工事故的主要原因[2].安全帽的佩戴是行為規(guī)范中最基本的要求,但在實(shí)際作業(yè)中時(shí)常存在未佩戴安全帽的行為.在施工場(chǎng)景中,對(duì)人員佩戴安全帽的情況進(jìn)行圖像描述的研究,能夠降低作業(yè)風(fēng)險(xiǎn),從而排除安全隱患以保障人身安全.
目前國(guó)內(nèi)外已有相關(guān)學(xué)者對(duì)圖像描述這一任務(wù)展開研究.Li等[3]以神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ)提出一種基于多主題的圖像描述生成模型,首先人工定義十個(gè)主題,然后生成與這十個(gè)主題內(nèi)容相關(guān)的描述語(yǔ)句.Lebret等[4]提出一種語(yǔ)言模型,通過(guò)從給定的圖像樣本中推斷其描述短語(yǔ),使用這些短語(yǔ)生成相關(guān)的描述語(yǔ)句.Hodosh等[5]使用一種近似于檢索的方法,設(shè)計(jì)了一種基于排序的框架來(lái)生成圖像描述.現(xiàn)有的圖像描述研究工作均已取得不錯(cuò)的成果,但在復(fù)雜背景下生成的描述易丟失細(xì)節(jié)信息,存在描述不準(zhǔn)確的問(wèn)題,尤其對(duì)于施工場(chǎng)景而言,關(guān)于安全帽佩戴情況的圖像描述的研究又較為匱乏.
目前關(guān)于安全帽佩戴的研究基本上是針對(duì)圖像識(shí)別這一任務(wù)進(jìn)行的.傳統(tǒng)的安全帽佩戴檢測(cè)算法[6,7]需通過(guò)人工設(shè)計(jì)特征來(lái)實(shí)現(xiàn),對(duì)環(huán)境的要求較高,人工提取的特征不具備魯棒性,且泛化能力較差.近年來(lái)由于深度學(xué)習(xí)的迅速普及,已有相關(guān)學(xué)者將深度學(xué)習(xí)的方法應(yīng)用于安全帽佩戴檢測(cè)的研究中.Zhang等[2]利用Faster RCNN(Faster Regions with Convolutional Neural Network feature)網(wǎng)絡(luò)來(lái)檢測(cè)施工人員佩戴安全帽的情況.Fang等[8]在YOLOv2(You Only Look Once)網(wǎng)絡(luò)中加入密集塊并利用MobileNet結(jié)構(gòu)壓縮網(wǎng)絡(luò)模型,實(shí)現(xiàn)安全帽佩戴檢測(cè),算法的檢測(cè)速度得到顯著提升.傳統(tǒng)算法和深度學(xué)習(xí)技術(shù)在安全帽的佩戴檢測(cè)上均已取得可觀成果,但針對(duì)于本文的研究任務(wù)而言存在局限性,即未能生成自然語(yǔ)言對(duì)作業(yè)人員的安全帽佩戴情況進(jìn)行描述,尚未達(dá)到圖像理解的層面.
針對(duì)上述問(wèn)題,本文提出一種安全帽佩戴圖像描述生成方法.為解決傳統(tǒng)的圖像描述方法應(yīng)用于施工場(chǎng)景所帶來(lái)的細(xì)節(jié)描述不足的問(wèn)題,采用基于目標(biāo)檢測(cè)的方法,對(duì)安全帽佩戴情況進(jìn)行檢測(cè)以提取視覺(jué)概念,結(jié)合規(guī)則和模板的方法生成施工人員安全帽佩戴的圖像描述,加強(qiáng)了圖像區(qū)域和語(yǔ)句描述的對(duì)應(yīng)關(guān)系.為提高生成的語(yǔ)句對(duì)描述佩戴安全帽的人員數(shù)量的準(zhǔn)確性,對(duì)目標(biāo)檢測(cè)模塊進(jìn)行改進(jìn),在原始的YOLOv3的基礎(chǔ)上,通過(guò)改進(jìn)多尺度預(yù)測(cè)結(jié)構(gòu)以及增加錨框數(shù)量,以提高小目標(biāo)的檢測(cè)效果,進(jìn)一步提高了語(yǔ)句生成的準(zhǔn)確度.
圖像描述是當(dāng)前的研究熱點(diǎn),傳統(tǒng)方法主要分為兩種,分別是模板法和檢索法.模板法需要對(duì)圖像中的對(duì)象、屬性、行為、場(chǎng)景進(jìn)行檢測(cè),再將檢測(cè)結(jié)果填充到固定的語(yǔ)言模板中生成圖像語(yǔ)義標(biāo)注.檢索法則主要將圖像描述的生成作為檢索任務(wù),通過(guò)檢索與之最為接近的句子生成圖像描述.Li等[9]首先檢測(cè)出圖中的對(duì)象和關(guān)系,然后利用預(yù)先定義的句子框架以生成圖像描述.Mitchell等[10]利用句法樹信息輔助描述語(yǔ)句的生成.模板法操作簡(jiǎn)單,生成的句子合乎語(yǔ)法,但由于句子模板固定,不適用于所有圖像,生成的句子多樣性不足.Kuznetsova等[11]從字幕標(biāo)注中檢索出給定圖像的描述短語(yǔ),對(duì)這些短語(yǔ)詞組進(jìn)行組合以生成描述語(yǔ)句.該方法屬于檢索法的一種,從現(xiàn)有的圖像描述中檢索出與給定圖像最為契合的描述語(yǔ)句.此方法能夠生成合乎語(yǔ)法的語(yǔ)句,但受限于訓(xùn)練集,對(duì)于特定的圖像無(wú)法生成正確的描述語(yǔ)句.
近年來(lái)主要使用基于編碼-解碼(Encoder-Decoder)的方法生成圖像描述.早期的研究中,編碼器使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)提取圖像特征,解碼器采用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)處理文字序列以生成圖像描述.Vinyals等[12]采用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short Term Memory network,LSTM)替代RNN以處理描述語(yǔ)句的生成,與RNN相比,LSTM能夠更好地存儲(chǔ)長(zhǎng)期信息,并有效解決訓(xùn)練過(guò)程中的梯度消失和梯度爆炸等問(wèn)題.Xu等[13]將注意力機(jī)制應(yīng)用到圖像描述的研究中,生成相應(yīng)單詞的同時(shí)聚焦于顯著對(duì)象.Lu等[14]提出一種自適應(yīng)注意力機(jī)制,由圖像和標(biāo)注文本共同決定LSTM生成的下一個(gè)單詞.基于編碼-解碼的方法,保證了圖像描述的多樣性和靈活性,但缺乏可解釋性且目標(biāo)細(xì)節(jié)描述不充分.
當(dāng)前已有的圖像描述的研究均是在公共數(shù)據(jù)集上進(jìn)行,未曾發(fā)現(xiàn)關(guān)于特定場(chǎng)景的研究.針對(duì)安全帽佩戴情況的圖像描述研究較為匱乏的現(xiàn)狀,本文采用基于目標(biāo)檢測(cè)的方法,以生成安全帽佩戴的圖像描述.
目前已有不少學(xué)者對(duì)安全帽佩戴檢測(cè)展開研究.Silva等[15]采用圓形霍夫變換(Circle Hough Transform,CHT)和方向梯度直方圖(Histogram of Oriented Gradient,HOG)描述符以提取圖像特征,使用多層感知器(Multi-layer Perceptron,MLP)對(duì)目標(biāo)進(jìn)行分類.此方法在單人佩戴的檢測(cè)上效果較好,但在多人佩戴的檢測(cè)上效果差,無(wú)法適用于多人圖片.近年來(lái),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)發(fā)展迅速,主要分為兩種,分別是基于區(qū)域建議的two-stage方法和無(wú)區(qū)域建議的one-stage檢測(cè)方法.two-stage目標(biāo)檢測(cè)算法主要為RCNN(Regions with Convolutional Neural Network)系列,如RCNN[16]、Fast RCNN(Fast Regions with Convolutional Neural Network feature)[17]和Faster-RCNN[18],其中Faster-RCNN的檢測(cè)效果最好.one-stage目標(biāo)檢測(cè)算法中,SSD(Single Shot multibox Detector)[19]和YOLO系列具有一定的代表性,如YOLO[20]、YOLOv2[21]和YOLOv3[22],其中YOLOv3的效果最好.Shi等[23]在YOLOv3的基礎(chǔ)上采用圖像金字塔的模式獲取不同尺度的特征圖,利用多尺度訓(xùn)練增加模型的適應(yīng)性,提升了安全帽佩戴檢測(cè)的效率與精度.無(wú)論是傳統(tǒng)方法還是基于深度學(xué)習(xí)的方法,在安全帽的佩戴檢測(cè)上均已取得可觀的成果,但均未能實(shí)現(xiàn)有關(guān)安全帽的圖像描述.
從算法的檢測(cè)速度和精度綜合考慮,本文采用基于YOLOv3框架的目標(biāo)檢測(cè)算法實(shí)現(xiàn)安全帽的佩戴檢測(cè),為安全帽佩戴的圖像描述的生成提供基礎(chǔ).為使YOLOv3更適用于本文任務(wù),對(duì)YOLOv3進(jìn)行改進(jìn).在原始YOLOv3的基礎(chǔ)上,改進(jìn)多尺度預(yù)測(cè)結(jié)構(gòu)和初始錨框參數(shù)以提升模型的檢測(cè)性能.利用改進(jìn)的YOLOv3算法提取視覺(jué)概念,結(jié)合預(yù)定義的語(yǔ)義規(guī)則和語(yǔ)句模板的方法,生成安全帽佩戴的圖像語(yǔ)句描述.
鑒于現(xiàn)有的圖像描述研究方法所生成的語(yǔ)句較為粗略,缺乏一定的準(zhǔn)確率.為提高描述語(yǔ)句的準(zhǔn)確度,以生成更為貼切的安全帽佩戴的圖像描述,本文結(jié)合目標(biāo)檢測(cè)領(lǐng)域的研究方法,從圖像特征到語(yǔ)句描述映射的角度出發(fā),加強(qiáng)圖像區(qū)域和語(yǔ)句描述的對(duì)應(yīng)關(guān)系,提出基于目標(biāo)檢測(cè)算法的安全帽佩戴的圖像描述.本文算法的實(shí)現(xiàn)由目標(biāo)檢測(cè)和語(yǔ)句生成兩個(gè)模塊構(gòu)成,目標(biāo)檢測(cè)模塊采用改進(jìn)后的YOLOv3算法實(shí)現(xiàn),語(yǔ)句生成模塊采用基于規(guī)則和模板相結(jié)合的方法實(shí)現(xiàn),算法流程如圖1所示.
圖1 本文算法流程Fig.1 Algorithm flowchart of this paper
3.1.1 YOLOv3算法思想
YOLOv3的主要優(yōu)點(diǎn)是僅利用單個(gè)CNN處理整張圖片,對(duì)圖像中的目標(biāo)進(jìn)行定位的同時(shí)并預(yù)測(cè)出其目標(biāo)類別,將目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)換為回歸問(wèn)題.YOLOv3采用殘差網(wǎng)絡(luò)(Resnet)[24]的結(jié)構(gòu)搭建了Darknet-53網(wǎng)絡(luò)用以提取圖像特征,并利用3種不同尺寸上的特征圖對(duì)圖片進(jìn)行多尺度預(yù)測(cè).其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,該網(wǎng)絡(luò)由一系列的1×1的卷積層和3×3的卷積層組成,其中CBR模塊是YOLOv3的一個(gè)基本組件,表示卷積后進(jìn)行批標(biāo)準(zhǔn)化操作,用ReLU(Rectified Liner Uints)作為激活函數(shù),另一個(gè)基本組件resn殘差塊組件由Res_unit殘差單元所構(gòu)成.
圖2 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Structure of YOLOv3 network
該網(wǎng)絡(luò)首先將不同大小的圖像自動(dòng)調(diào)整為416×416的固定尺寸,再將原圖劃分為13×13的網(wǎng)格,由目標(biāo)中心點(diǎn)所在的網(wǎng)格負(fù)責(zé)該目標(biāo)的檢測(cè).每個(gè)網(wǎng)格將預(yù)測(cè)覆蓋在該網(wǎng)格上的3個(gè)邊界框,以及這些邊界框的置信度,每個(gè)邊界框包含6個(gè)預(yù)測(cè)量:x,y,w,h,confidence和class,其中(x,y)表示預(yù)測(cè)框的中心與網(wǎng)格邊界的相對(duì)值,(w,h)表示預(yù)測(cè)框相對(duì)于整張圖片的寬度和高度的比值,confidence表示置信度,用以剔除掉低于閾值的邊界框,class表示目標(biāo)的類別.每個(gè)邊界框的預(yù)測(cè)信息包含邊界框的坐標(biāo)、寬度和高度,邊界框坐標(biāo)計(jì)算公式如式(1)所示.
(1)
其中,(bx,by,bw,bh)表示預(yù)測(cè)的邊界框中心坐標(biāo)和寬高,(tx,ty,tw,th)表示網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo),(cx,cy)是網(wǎng)格的坐標(biāo)偏移量,(pw,ph)是預(yù)設(shè)的錨框的維度.
除了坐標(biāo)信息和邊界框的置信度,還需預(yù)測(cè)C個(gè)預(yù)定義的目標(biāo)類別的得分.置信度confidence計(jì)算公式如式(2)所示.
(2)
Prob(object)表示預(yù)測(cè)框?qū)?yīng)的網(wǎng)格中含有待檢測(cè)對(duì)象的概率,定義如式(3)所示.
(3)
(4)
3.1.2 改進(jìn)多尺度預(yù)測(cè)結(jié)構(gòu)
原始的YOLOv3網(wǎng)絡(luò)采用多尺度預(yù)測(cè)的思想,設(shè)置了3種不同尺寸的特征圖,大小分別為13×13、26×26、52×52.較大尺寸的特征圖對(duì)位置信息的預(yù)測(cè)較準(zhǔn)確,但包含的語(yǔ)義信息越少;較小尺寸的特征圖包含較多的語(yǔ)義信息,但對(duì)位置信息的預(yù)測(cè)較粗略.在進(jìn)行安全帽佩戴檢測(cè)時(shí),需要對(duì)施工人員以及安全帽等多個(gè)目標(biāo)進(jìn)行檢測(cè),由于拍攝距離的遠(yuǎn)近,使得本文數(shù)據(jù)集中的目標(biāo)尺寸不一,存在較小目標(biāo).為進(jìn)一步提高小目標(biāo)的檢測(cè)效果,改進(jìn)YOLOv3的多尺度預(yù)測(cè),采用13×13、26×26、52×52、104×104這4種尺度的特征圖.越往后的預(yù)測(cè)層所對(duì)應(yīng)的特征圖尺寸越大,基于此特點(diǎn),將尺寸較小的特征圖上采樣至同一尺寸并進(jìn)行拼接,然后進(jìn)行標(biāo)準(zhǔn)化卷積運(yùn)算.
本文設(shè)置的目標(biāo)類別分別為人(man)、安全帽(helmet)以及人戴安全帽(man wear helmet),故待檢目標(biāo)只有3個(gè)類別(C=3).因原始網(wǎng)絡(luò)的類別數(shù)目為80,所以需要重新調(diào)整網(wǎng)絡(luò)的輸出類別數(shù)目以減少預(yù)測(cè)張量的維度,從而減少網(wǎng)絡(luò)的運(yùn)算量.調(diào)整后,每個(gè)尺度所產(chǎn)生的預(yù)測(cè)張量的維度僅為3×(4+1+3)=24,因此改進(jìn)后的網(wǎng)絡(luò)最終輸出的4種尺度的預(yù)測(cè)張量大小分別為13×13×24、26×26×24、52×52×24、104×104×24.
改進(jìn)后的算法檢測(cè)過(guò)程如圖3所示,首先將輸入圖片重置為416×416的大小,然后利用Darknet-53網(wǎng)絡(luò)進(jìn)行圖片特征的提取,接著將特征向量送至特征金字塔結(jié)構(gòu)中進(jìn)行多尺度預(yù)測(cè),最后對(duì)預(yù)測(cè)出的邊界框進(jìn)行非極大值抑制,以消除重復(fù)檢測(cè)得到最終的預(yù)測(cè)結(jié)果.
圖3 改進(jìn)后的算法檢測(cè)流程Fig.3 Detection flow of improved YOLOv3 algorithm
3.1.3 改進(jìn)初始錨框參數(shù)
傳統(tǒng)的YOLOv3網(wǎng)絡(luò)每種尺度的特征圖分別有3個(gè)錨框,尺度越大的特征圖使用越小的錨框,以得到更多的目標(biāo)邊緣信息.原始的錨框參數(shù)由公共數(shù)據(jù)集聚類生成,公共數(shù)據(jù)集類別豐富,所確定的錨框參數(shù)值具有普遍性,但不適用于本文的安全帽佩戴數(shù)據(jù)集,因此在進(jìn)行訓(xùn)練之前需要設(shè)計(jì)新的錨框,以提高邊界框的檢測(cè)率.
原始的YOLOv3采用K-means聚類算法初始化錨框,用以預(yù)測(cè)邊界框的坐標(biāo).K-means聚類采用歐氏距離公式,錨框尺寸的大小會(huì)影響到檢測(cè)準(zhǔn)確率的高低,而IOU距離表示預(yù)測(cè)框與實(shí)際邊界框的交并比,因此本文使用IOU距離公式以代替歐氏距離公式,從而避免使用歐氏距離公式所造成的影響.距離度量公式如式(5)所示.
d(box,centroid)=1-IOU(box,centroid)
(5)
其中,box表示實(shí)際邊界框信息,centroid表示聚類中心,IOU表示預(yù)測(cè)框與實(shí)際邊界框的交并比.
傳統(tǒng)YOLOv3網(wǎng)絡(luò)使用9個(gè)錨框并依次分布于3種尺度的特征圖上,由于本文采用4種尺度的特征融合預(yù)測(cè)層,故原始錨框的數(shù)量不適用于本文任務(wù).改進(jìn)錨框參數(shù)值,增加錨框的數(shù)量并選取12個(gè)錨框,在自制的安全帽佩戴數(shù)據(jù)集上進(jìn)行K-means聚類得到12個(gè)錨框參數(shù)值,從小到大依次排列,將其均勻分布于4種尺度的特征圖上,分別對(duì)應(yīng)于由大到小的4種尺度的特征圖.
本文通過(guò)預(yù)定義一個(gè)語(yǔ)義規(guī)則,并將其與模板法相結(jié)合,以提高語(yǔ)句生成的準(zhǔn)確度.首先利用目標(biāo)檢測(cè)算法檢測(cè)出圖像中的視覺(jué)概念,其次結(jié)合預(yù)先定義的規(guī)則和句子模板,將檢測(cè)到的視覺(jué)概念填充到句子模板中,最后生成安全帽佩戴的描述語(yǔ)句.
前期階段利用改進(jìn)后的YOLOv3實(shí)現(xiàn)關(guān)鍵目標(biāo)檢測(cè),主要檢測(cè)人、安全帽和佩戴安全帽的人這3類目標(biāo),以提取圖片中關(guān)鍵的視覺(jué)概念,其中將佩戴安全帽的人作為一個(gè)整體,以檢測(cè)出人和安全帽的佩戴關(guān)系.對(duì)這3類待檢測(cè)目標(biāo)分別設(shè)置一個(gè)初值均為零的三元組(m,n,p)以統(tǒng)計(jì)待檢目標(biāo)的個(gè)數(shù),其中m表示檢測(cè)出的總?cè)藬?shù),n表示檢測(cè)出的安全帽的總個(gè)數(shù),p表示檢測(cè)出的佩戴安全帽的人數(shù).佩戴安全帽的人員應(yīng)不超過(guò)施工現(xiàn)場(chǎng)的總?cè)藬?shù)(0≤p≤m),否則視為檢測(cè)有誤(p>m),無(wú)法生成安全帽佩戴的描述語(yǔ)句.若檢測(cè)出佩戴安全帽的人數(shù)和總?cè)藬?shù)相等,即p=m則表示所有人均佩戴了安全帽;若檢測(cè)出佩戴安全帽的人數(shù)和總?cè)藬?shù)不等,即p≠m則表示部分人員佩戴了安全帽,尚有人員未佩戴安全帽.安全帽佩戴的描述語(yǔ)句具體規(guī)則定義如表1所列.
表1 描述語(yǔ)句規(guī)則定義
Table 1 Definition of rules for describing statements
條件m>0m=0p>0p>mp 句子模板通過(guò)圖片字幕標(biāo)注生成,單詞的生成來(lái)源于原始的圖片字幕標(biāo)注或是目標(biāo)檢測(cè)算法提取出的視覺(jué)概念.視覺(jué)單詞的本質(zhì)是一個(gè)標(biāo)記,目的是為描述圖像中特定區(qū)域的單詞保留空位.本文采用目標(biāo)檢測(cè)算法以提取出視覺(jué)概念,結(jié)合基于規(guī)則和模板的方法,生成施工人員安全帽佩戴的圖像描述語(yǔ)句,整體框架如圖4所示. 圖4 本文算法總體框架Fig.4 Overall framework of the proposed algorithm 針對(duì)圖4中的圖片而言,句子模板可為“ 本文使用Linux搭建實(shí)驗(yàn)開發(fā)平臺(tái),選用Ubuntu16.04作為操作系統(tǒng),GPU選用NVIDIA GeForce GTX 1080Ti,CUDA8.0,CUDNN6.0,內(nèi)存為12GB.實(shí)驗(yàn)使用Keras深度學(xué)習(xí)框架進(jìn)行模型的訓(xùn)練和測(cè)試. 4.1.1 數(shù)據(jù)采集 本文主要對(duì)安全帽佩戴進(jìn)行圖像描述研究.關(guān)于圖像描述的研究基本使用公共圖像字幕數(shù)據(jù)集,如COCO[25]、Flickr8k[26]、Flickr30k[27]等,尚未發(fā)現(xiàn)有關(guān)安全帽佩戴的圖像字幕數(shù)據(jù)集,因此本文自制了安全帽佩戴圖像字幕數(shù)據(jù)集.由于采用基于目標(biāo)檢測(cè)算法實(shí)現(xiàn)安全帽佩戴的圖像描述,因此本文同時(shí)制作了用于安全帽佩戴檢測(cè)的數(shù)據(jù)集. 本文主要通過(guò)公共數(shù)據(jù)集中篩選、網(wǎng)絡(luò)爬蟲技術(shù)搜集、自行現(xiàn)場(chǎng)采集等方式采集樣本,另從施工現(xiàn)場(chǎng)視頻監(jiān)控?cái)?shù)據(jù)中采集圖片,并加入多種噪聲圖片,如手拿安全帽的工人、沒(méi)有安全帽的工人、戴著棒球帽或草帽的工人等,以保證數(shù)據(jù)集的豐富性,提高模型的泛化能力.所采集的數(shù)據(jù)包含各種背景條件、不同分辨率、不同質(zhì)量的施工場(chǎng)所關(guān)于安全帽佩戴的圖片,能夠較為完備的反映真實(shí)場(chǎng)景的情況,共2800張.數(shù)據(jù)集樣本如圖5所示.從中選取1000張作為測(cè)試集,剩余1800張圖片用于訓(xùn)練. 4.1.2 數(shù)據(jù)增強(qiáng) 利用數(shù)據(jù)增強(qiáng)策略擴(kuò)充圖像訓(xùn)練集,避免出現(xiàn)過(guò)擬合.對(duì)原始圖片采用亮度增強(qiáng)及減弱、對(duì)比度增強(qiáng)及減弱、銳度增強(qiáng)及減弱、添加噪聲和數(shù)據(jù)抖動(dòng)等8種處理方式.其中,亮度和對(duì)比度分別增強(qiáng)為原圖的1.2倍,銳度增強(qiáng)為原圖的2倍,亮度和對(duì)比度減弱為原圖的60%,銳度減弱為原圖的10%.對(duì)原圖添加方差為0.01的高斯噪聲,以模擬數(shù)據(jù)采集中可能產(chǎn)生的噪聲.實(shí)際采集到的圖片中佩戴棒球帽、草帽等這類負(fù)樣本,比佩戴安全帽這類正樣本數(shù)量少,故采用數(shù)據(jù)抖動(dòng)以解決正負(fù)樣本分布不均的問(wèn)題. 圖5 數(shù)據(jù)集樣本Fig.5 Samples of dataset 1800張?jiān)紙D片經(jīng)數(shù)據(jù)增強(qiáng)后得到14400張圖片,從中隨機(jī)選取9600張圖片作為訓(xùn)練集,剩余4800張圖片作為驗(yàn)證集.訓(xùn)練集和驗(yàn)證集中均包含圖片及其相應(yīng)的標(biāo)注信息,而測(cè)試集不含標(biāo)注信息,訓(xùn)練集和測(cè)試集的圖片無(wú)重疊,以此驗(yàn)證本文方法的有效性. 4.1.3 數(shù)據(jù)標(biāo)注 1)安全帽佩戴檢測(cè)數(shù)據(jù)集制作 根據(jù)實(shí)驗(yàn)要求,仿照VOC2007的標(biāo)注格式,使用開源標(biāo)注工具LabelImg對(duì)圖片進(jìn)行多標(biāo)簽標(biāo)注,自動(dòng)生成相應(yīng)的xml格式標(biāo)注文件,其中包含對(duì)象名和真實(shí)邊界框的坐標(biāo)信息.標(biāo)注的對(duì)象為3類分別為人(man)、安全帽(helmet)以及人戴安全帽(man wear helmet). 2)安全帽佩戴圖像字幕數(shù)據(jù)集制作 根據(jù)實(shí)驗(yàn)要求,仿照COCO字幕數(shù)據(jù)集,在安全帽佩戴檢測(cè)數(shù)據(jù)集的基礎(chǔ)上進(jìn)行字幕標(biāo)注.針對(duì)圖片字幕標(biāo)注,尚未發(fā)現(xiàn)有開源的標(biāo)注工具可供使用,因此本文采用Python編程和人工標(biāo)注相結(jié)合的方式,對(duì)圖片樣本進(jìn)行標(biāo)注:1)利用Python編程,讀取每張圖片的圖片名以及尺寸信息(寬和高),并賦予每張圖片唯一的圖片id編號(hào);2)使用自行開發(fā)的標(biāo)注軟件對(duì)圖片進(jìn)行字幕標(biāo)注,人工標(biāo)注每張圖片的5個(gè)描述語(yǔ)句,主要圍繞人員的安全帽佩戴進(jìn)行描述,并給每個(gè)語(yǔ)句賦予唯一的語(yǔ)句id編號(hào).每張圖片均有對(duì)應(yīng)的1個(gè)圖片id號(hào)和5個(gè)語(yǔ)句id號(hào),以json格式存儲(chǔ)圖片字幕標(biāo)注數(shù)據(jù). 4.2.1 安全帽佩戴檢測(cè)數(shù)據(jù)集的預(yù)處理 仿照VOC格式自制的安全帽佩戴數(shù)據(jù)集,標(biāo)注信息包含目標(biāo)的類別及邊界框的坐標(biāo),需將標(biāo)注信息進(jìn)行歸一化處理,以轉(zhuǎn)換成網(wǎng)絡(luò)可用的訓(xùn)練格式. 對(duì)樣本標(biāo)注數(shù)據(jù)歸一化處理,即將樣本標(biāo)注數(shù)據(jù)除以圖像的寬度和高度,以將最終的數(shù)據(jù)控制在0~1之間,便于訓(xùn)練樣本數(shù)據(jù)的快速讀取,同時(shí)滿足多尺度訓(xùn)練的要求.具體歸一化公式如式(6)所示. (6) 其中,(xmax,xmin,ymax,ymin)表示原始樣本邊界框標(biāo)注信息,(width,height)表示圖片尺寸,(x,y,w,h)表示歸一化后的標(biāo)注信息,(x,y)為目標(biāo)的中心點(diǎn)坐標(biāo),(w,h)為目標(biāo)的寬和高.歸一化后的數(shù)據(jù)樣本中,每張圖片的每個(gè)目標(biāo)的邊界框信息均包含5個(gè)參數(shù),即(x,y,w,h)和類別序號(hào)class_id. 公共數(shù)據(jù)集的錨框參數(shù)值不適用于本文的數(shù)據(jù)集,因此需要根據(jù)自制的安全帽佩戴數(shù)據(jù)集重新確定錨框的參數(shù)值.通過(guò)K-means聚類算法,在本文數(shù)據(jù)集上進(jìn)行聚類分析,得到12個(gè)錨框參數(shù)值分別為(12,16),(24,17),(37,27),(52,38),(61,45),(70,52),(88,68),(93,194),(137,211),(154,315),(205,226),(224,355). 4.2.2 安全帽佩戴圖像字幕數(shù)據(jù)集的預(yù)處理 本文參考Vinyals等人[12]的方法,對(duì)自制的圖像字幕數(shù)據(jù)集進(jìn)行預(yù)處理,主要操作為:1)截?cái)鄻?biāo)注樣本中超過(guò)15個(gè)單詞的字幕標(biāo)注語(yǔ)句;2)刪除標(biāo)注樣本中的“,”和“.”,并進(jìn)行單詞大小寫的統(tǒng)一,將大寫單詞轉(zhuǎn)換為小寫;3)統(tǒng)計(jì)詞頻,并為標(biāo)注樣本中的每個(gè)單詞賦予其唯一的id編號(hào);4)構(gòu)建一個(gè)詞匯表,包含3組信息(單詞id、單詞以及詞頻),將標(biāo)注樣本中至少出現(xiàn)3次的單詞存入詞匯表中,剩余單詞視為生僻單詞,用“UNK”表示.在自制的圖片字幕訓(xùn)練集上構(gòu)建詞匯表,訓(xùn)練集所構(gòu)建的詞匯表中,詞頻較高的10個(gè)單詞如表2所列. 表2 詞頻較高的單詞及其對(duì)應(yīng)詞頻 單詞詞頻單詞詞頻a106464is31482man53247his19940helmet43076wears15984in38250yellow13649the34665without11845 根據(jù)本文自制的數(shù)據(jù)集的特點(diǎn),對(duì)網(wǎng)絡(luò)的配置文件做相應(yīng)的修改.在進(jìn)行訓(xùn)練之前,還需進(jìn)行權(quán)重文件的轉(zhuǎn)換操作,將官網(wǎng)提供的權(quán)重文件根據(jù)修改后的網(wǎng)絡(luò)配置文件轉(zhuǎn)換成Keras框架下的權(quán)重文件,以便加載預(yù)訓(xùn)練模型的加載,為模型的訓(xùn)練提供初始化參數(shù). 訓(xùn)練時(shí)的批處理大小(batch)設(shè)置為64,即每輪迭代隨機(jī)選取64個(gè)樣本數(shù)據(jù)參與訓(xùn)練,分組(subdivision)設(shè)為8,即將樣本分為8組送至網(wǎng)絡(luò)訓(xùn)練,以減輕內(nèi)存占用的壓力.使用BN(batch normalization)規(guī)范網(wǎng)絡(luò)模型,以提升模型的收斂速度.動(dòng)量(momentum)設(shè)置為0.9,權(quán)重衰減(decay)設(shè)置為0.0005,以防止模型過(guò)擬合,初始學(xué)習(xí)率(learning rate)設(shè)置為0.001,每迭代5000次學(xué)習(xí)率衰減為原來(lái)的1/10. 模型最終迭代20000次,耗時(shí)約8個(gè)小時(shí),其損失變化圖如圖6所示.從下圖可知,隨著迭代次數(shù)的增加,模型的損失在逐漸下降.在前4000次左右的迭代過(guò)程中模型迅速擬合,損失值下降速度快,當(dāng)?shù)?0000次后損失值趨于穩(wěn)定,只有些許振蕩. 目前關(guān)于圖像描述語(yǔ)句生成的評(píng)價(jià)標(biāo)準(zhǔn)主要分為人工評(píng)價(jià)和量化指標(biāo)評(píng)價(jià).人工評(píng)價(jià),即給定一張圖片及其生成的描述語(yǔ)句,人工評(píng)測(cè)其圖像描述語(yǔ)句生成的質(zhì)量,具有一定的主觀性.量化指標(biāo)評(píng)價(jià),即通過(guò)計(jì)算生成的描述語(yǔ)句與對(duì)應(yīng)的標(biāo)注語(yǔ)句之間的匹配度,來(lái)衡量圖像描述語(yǔ)句生成的優(yōu)劣,此評(píng)價(jià)標(biāo)準(zhǔn)客觀性較強(qiáng),是較為主流的評(píng)價(jià)標(biāo)準(zhǔn). 圖6 模型損失隨著迭代次數(shù)的變化曲線Fig.6 Model loss curve with the number of iterations 常見(jiàn)的量化指標(biāo)包括:BLEU(Bilingual Evaluation Understudy)[28]、METEOR(Metric for Evaluation of Translation with Explicit Ordering)[29]、CIDEr(Consensus-based Image Description Evaluation)[30]等.BLEU指標(biāo)起初用于對(duì)機(jī)器翻譯的評(píng)價(jià),后用于對(duì)圖像描述的評(píng)價(jià)中,主要分析生成語(yǔ)句和人工標(biāo)注描述語(yǔ)句之間n元組的共現(xiàn)程度,是基于N-gram共現(xiàn)統(tǒng)計(jì)的評(píng)價(jià)標(biāo)準(zhǔn).METEOR指標(biāo)通過(guò)計(jì)算生成語(yǔ)句與人工標(biāo)注的描述語(yǔ)句之間的精度和召回率的調(diào)和均值,以衡量生成的描述語(yǔ)句和參考標(biāo)注語(yǔ)句間的相似度.CIDEr指標(biāo)將語(yǔ)句以向量形式表示,對(duì)每個(gè)n元組的權(quán)重進(jìn)行計(jì)算,通過(guò)計(jì)算生成語(yǔ)句和人工標(biāo)注的描述語(yǔ)句間的余弦距離來(lái)衡量圖像標(biāo)注的一致性. 本文采用以上3種評(píng)價(jià)指標(biāo)以及人工測(cè)評(píng)相結(jié)合的方式,對(duì)實(shí)驗(yàn)結(jié)果分別進(jìn)行定量和定性的分析. 本文采用改進(jìn)的YOLOv3實(shí)現(xiàn)安全帽的佩戴檢測(cè),同時(shí)與Faster-RCNN[18]、SSD[19]、YOLOv3[22]算法進(jìn)行對(duì)比實(shí)驗(yàn).在測(cè)試集上對(duì)模型進(jìn)行測(cè)試評(píng)估,以平均準(zhǔn)確率AP(Average Precision)、3類目標(biāo)的平均準(zhǔn)確率均值MAP(Mean AP)和檢測(cè)速度作為模型性能的評(píng)估指標(biāo),得到數(shù)據(jù)如表3所示. 表3 不同算法的檢測(cè)效果對(duì)比 不同算法AP(%)manhelmetman wearhelmetMAP(%)檢測(cè)速度(s)Faster-RC-NN87.6893.4586.0489.060.303SSD84.4786.5883.3284.790.083YOLOv391.8287.7588.6989.420.036本文算法95.5693.5794.1594.430.052 從中可見(jiàn),在安全帽的檢測(cè)AP值上本文算法與Faster-RCNN相接近,但在MAP值上本文算法提高到94.43%.因?yàn)楸疚囊訷OLOv3為基礎(chǔ),采用4種尺度特征融合預(yù)測(cè),通過(guò)改進(jìn)多尺度預(yù)測(cè)結(jié)構(gòu)和初始錨框參數(shù)值,提高了模型的性能.但改進(jìn)后增加了模型計(jì)算量,所以檢測(cè)速度略遜于原始的YOLOv3.在本文的安全帽佩戴圖像描述任務(wù)中,前期目標(biāo)檢測(cè)模型檢測(cè)精度決定后一階段語(yǔ)句生成的準(zhǔn)確性.本文算法的MAP值優(yōu)于其他算法,檢測(cè)速度雖稍遜于YOLOv3,但仍比其他算法有優(yōu)勢(shì).綜合考慮,本文算法效果優(yōu)于其他算法,在安全帽的佩戴檢測(cè)上取得一定的效果. 采用多種數(shù)據(jù)增強(qiáng)策略,以提高模型的泛化性能,不同數(shù)據(jù)增強(qiáng)策略在本文數(shù)據(jù)集上對(duì)本文模型的影響如表4所列.從中可見(jiàn),色彩增強(qiáng)(亮度、對(duì)比度、銳度)、數(shù)據(jù)抖動(dòng)和增加噪聲分別提升了1.81%、2.96%、2.17%的檢測(cè)精度,因數(shù)據(jù)抖動(dòng)策略解決了樣本分布不均的問(wèn)題,故提升效果最顯著.這些策略的同時(shí)使用將模型的檢測(cè)精度提升了3.98%. 表4 數(shù)據(jù)增強(qiáng)策略對(duì)本文模型的影響 策略亮度、對(duì)比度、銳度數(shù)據(jù)抖動(dòng)增加噪聲MAP(%)1×××90.452×√√92.623√×√91.474√√×92.265√√√94.43 另選取幾組復(fù)雜場(chǎng)景下的測(cè)試圖片,與其他算法進(jìn)行對(duì)比實(shí)驗(yàn),以便驗(yàn)證本文算法的性能,不同算法的檢測(cè)效果如圖7所示.選取的3組測(cè)試圖片從左到右分別代表(1)單人佩戴安全帽的檢測(cè)效果、(2)佩戴非安全帽的檢測(cè)效果、(3)目標(biāo)尺寸相差較大時(shí)的檢測(cè)效果.圖7(a)、圖7(b)、圖7(c)分別顯示了測(cè)試圖片在Faster-RCNN、YOLOv3以及本文算法下的檢測(cè)結(jié)果圖.從圖7中(1)的對(duì)比結(jié)果可見(jiàn),本文算法的檢測(cè)結(jié)果較為理想,F(xiàn)aster-RCNN和YOLOv3均存在漏檢安全帽的情況.從圖7中(2)的對(duì)比結(jié)果可見(jiàn),F(xiàn)aster-RCNN和YOLOv3均存在誤檢的情況,將佩戴棒球帽誤檢為佩戴安全帽,而本文算法不存在誤檢.從圖7中(3)的對(duì)比結(jié)果可見(jiàn),雖然三種算法均能檢測(cè)出近處的工人安全帽佩戴的情況,但對(duì)于遠(yuǎn)處的工人,YOLOv3存在漏檢的情況,而Faster-RCNN和本文算法能夠檢測(cè)出來(lái),但在區(qū)分其安全帽的佩戴情況上,本文算法優(yōu)于Faster-RCNN.圖7的實(shí)驗(yàn)結(jié)果表明,本文對(duì)YOLOv3的改進(jìn)帶來(lái)了小目標(biāo)檢測(cè)效果的提升,并且增強(qiáng)了算法對(duì)復(fù)雜環(huán)境的適應(yīng)性. 4.5.1 定量分析 本文前期利用改進(jìn)的YOLOv3提取圖像中的視覺(jué)概念,后期利用規(guī)則和模板相結(jié)合的方法生成圖像的描述語(yǔ)句.為驗(yàn)證本文算法生成圖像描述的有效性,在自制的安全帽佩戴圖像字幕數(shù)據(jù)集上,與NIC[12]、Soft-Attention[13]、Adaptive[14]等圖像描述算法進(jìn)行對(duì)比,并用評(píng)價(jià)指標(biāo)定量評(píng)估,結(jié)果如表5所列. 從表5可見(jiàn),本文算法性能表現(xiàn)較好,BLEU-4上的得分與Adaptive持平,但在BLEU-1、METEOR、CIDEr指標(biāo)上的得分均有略微的提升,分別提升了1.7、0.9、2.4.因?yàn)楸疚睦酶倪M(jìn)的YOLOv3對(duì)安全帽進(jìn)行佩戴檢測(cè),加強(qiáng)圖像區(qū)域和描述語(yǔ)句間的對(duì)應(yīng)關(guān)系.采用基于語(yǔ)句模板的方法對(duì)安全帽佩戴進(jìn)行圖像描述,在模板法的基礎(chǔ)上,通過(guò)引入規(guī)則使得本文算法能夠較為準(zhǔn)確地描述圖片中佩戴安全帽的人數(shù)以及未佩戴安全帽的人數(shù). 圖7 不同算法在復(fù)雜場(chǎng)景下的檢測(cè)結(jié)果Fig.7 Detection results of different algorithms in complex scenes 表5 不同算法在本文數(shù)據(jù)集上的性能比較 不同算法BLEU-1BLEU-4METEORCIDErNIC65.318.4——Soft-atten-tion68.120.919.5—Adaptive70.533.723.791.3本文算法72.233.724.693.7 4.5.2 定性分析 對(duì)無(wú)字幕標(biāo)注的測(cè)試圖片進(jìn)行實(shí)驗(yàn),定性分析本文方法的有效性,將本文方法與其他算法對(duì)于同一張圖片生成的描述語(yǔ)句進(jìn)行對(duì)比.分為以下兩組對(duì)比實(shí)驗(yàn),單人佩戴情況和多人佩戴情況,分別如圖8、圖9所示. 1)單人情況下生成語(yǔ)句的性能對(duì)比 圖8 單人佩戴安全帽的圖像描述生成效果Fig.8 Generation effect of image caption of singleperson wearing helmet 圖8顯示了單人安全帽佩戴描述,圖8(a)為光照良好時(shí)的描述語(yǔ)句,圖8(b)為光照不足時(shí)的描述語(yǔ)句.光照良好時(shí),兩種算法生成的描述語(yǔ)句雖略有差異,但均有較好的描述.光照不足時(shí),本文算法更具優(yōu)勢(shì),原因在于本文利用圖像增強(qiáng)技術(shù)擴(kuò)充數(shù)據(jù)集,提高了目標(biāo)檢測(cè)模型的有效性,以適用于光照較差情況下的安全帽佩戴視覺(jué)概念的提取,生成的語(yǔ)句更為符合圖片的內(nèi)容. 2)多人情況下生成語(yǔ)句的性能對(duì)比 圖9 多人佩戴安全帽的圖像描述生成效果Fig.9 Generation effect of image caption of multiplepeople wearing helmets 圖9顯示了多人安全帽佩戴描述,圖9(a)為部分人員佩戴安全帽情況下的描述語(yǔ)句,圖9(b)為目標(biāo)尺寸差別較大情況下的描述語(yǔ)句.從中可見(jiàn),兩種算法各有優(yōu)劣.NIC算法生成的描述語(yǔ)句具有多樣性,但該算法易造成細(xì)節(jié)信息的丟失,不能準(zhǔn)確描述佩戴安全帽的人員數(shù)量.由于本文前期對(duì)YOLOv3進(jìn)行改進(jìn),通過(guò)改進(jìn)多尺度預(yù)測(cè)結(jié)構(gòu)和初始錨框參數(shù),提升了目標(biāo)檢測(cè)模型的性能,使本文方法可以提取出更為準(zhǔn)確的視覺(jué)概念.后期采用基于規(guī)則和模板相結(jié)合的方法生成圖像描述,能夠較好地描述出佩戴安全帽的人數(shù),但從句子的多樣性方面考慮,生成的語(yǔ)句略有不足. 綜合以上情況考慮,本文方法能夠針對(duì)不同復(fù)雜場(chǎng)景下施工人員的安全帽佩戴情況,生成較為準(zhǔn)確的描述語(yǔ)句,表明本文方法的有效性. 本文針對(duì)施工人員安全帽佩戴情況進(jìn)行圖像描述的研究,使用基于目標(biāo)檢測(cè)的方法生成圖像描述.在原始的YOLOv3基礎(chǔ)上,改進(jìn)多尺度預(yù)測(cè)結(jié)構(gòu)和初始錨框參數(shù)值,提升了模型的檢測(cè)性能.采用改進(jìn)的YOLOv3對(duì)圖像中的安全帽佩戴情況進(jìn)行檢測(cè)以提取視覺(jué)概念,進(jìn)而結(jié)合規(guī)則和模板的方法生成安全帽佩戴的圖像描述.在自制的安全帽佩戴數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并將本文方法與經(jīng)典算法進(jìn)行對(duì)比,實(shí)驗(yàn)表明,本文方法在BLEU、METEOR、CIDEr等評(píng)價(jià)指標(biāo)上的得分有略微的提高,相比于其他方法,本文方法在佩戴安全帽的人數(shù)方面能夠生成較為準(zhǔn)確描述語(yǔ)句.根據(jù)實(shí)驗(yàn)結(jié)果可知,本文方法生成的描述語(yǔ)句句式結(jié)構(gòu)較為單一且多樣性不足,在后續(xù)的研究工作中,將在此方面著重展開,以求生成準(zhǔn)確且多樣化的描述語(yǔ)句.4 實(shí)驗(yàn)結(jié)果及分析
4.1 數(shù)據(jù)集的制作
4.2 數(shù)據(jù)集的預(yù)處理
Table 2 Words with higher word frequency and
their corresponding word frequency4.3 模型的訓(xùn)練
4.4 評(píng)價(jià)標(biāo)準(zhǔn)
4.5 實(shí)驗(yàn)結(jié)果分析
Table 3 Comparison of detection effects of different algorithms
Table 4 Influence of data augmentation strategy
on the model of this paper
Table 5 Performance comparison of different algorithms
on the dataset of this paper5 結(jié)束語(yǔ)