徐守坤,吉晨晨,倪楚涵,李 寧
(常州大學(xué) 信息科學(xué)與工程學(xué)院 數(shù)理學(xué)院,江蘇 常州 213164)
圖像描述生成是圖像理解領(lǐng)域的研究熱點(diǎn),而對(duì)圖像場(chǎng)景空間關(guān)系的準(zhǔn)確描述在圖像理解中至關(guān)重要。化工廠、建筑工地等施工場(chǎng)景環(huán)境多變,存在多種不安全因素,其中人和危險(xiǎn)物的空間關(guān)系是一個(gè)重要方面,例如人站在腳手架上或塔吊機(jī)的機(jī)臂下方時(shí)就存在安全隱患。對(duì)圖像施工場(chǎng)景中空間關(guān)系的準(zhǔn)確描述可為施工管理提供理論指導(dǎo)和技術(shù)支持,也有助于提高施工現(xiàn)場(chǎng)安全管理水平,防范和降低安全隱患,保證現(xiàn)場(chǎng)的安全性。因此,研究施工場(chǎng)景中空間關(guān)系的圖像描述具有重要意義。目前,關(guān)于建筑施工的研究主要側(cè)重于對(duì)不安全行為的潛因分析和施工現(xiàn)場(chǎng)的安全行為檢測(cè),關(guān)于建筑施工場(chǎng)景圖像描述的研究較少。
本文提出一種基于施工場(chǎng)景的圖像描述生成模型。針對(duì)施工場(chǎng)景需要檢測(cè)施工人員的安全狀態(tài)、人員與危險(xiǎn)物的空間位置關(guān)系,以及最終生成描述語(yǔ)句的特殊性,進(jìn)行目標(biāo)檢測(cè)與關(guān)系檢測(cè),基于模板和規(guī)則相結(jié)合的方法構(gòu)建針對(duì)施工場(chǎng)景的圖像描述模型,重點(diǎn)研究對(duì)象之間的空間關(guān)系,并融合目標(biāo)檢測(cè)、空間關(guān)系語(yǔ)義建模、基于規(guī)則和模板的文本生成技術(shù)對(duì)多個(gè)場(chǎng)景進(jìn)行實(shí)驗(yàn)驗(yàn)證。
傳統(tǒng)目標(biāo)檢測(cè)方法大部分基于低層圖像特征,如圖像對(duì)比度[1-2]、顏色[3-4]和紋理[5-7]等。近年來(lái),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法,特別是基于卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的目標(biāo)檢測(cè)方法,較傳統(tǒng)目標(biāo)檢測(cè)方法取得更優(yōu)異的效果。文獻(xiàn)[8]提出兩種深度神經(jīng)網(wǎng)絡(luò)融合局部估計(jì)的像素和全局建議搜索區(qū)域可實(shí)現(xiàn)突出目標(biāo)檢測(cè)。文獻(xiàn)[9]使用多個(gè)通用的CNN多尺度特征預(yù)測(cè)各像素的顯著程度。雖然上述方法具有較好的效果,但是沒(méi)有很好地處理底層細(xì)節(jié),而且采用的模型包含了多個(gè)完全連接層,這些連接層計(jì)算量較大,且易丟失輸入圖像空間信息。為解決該問(wèn)題,文獻(xiàn)[10]提出深層次顯著性網(wǎng)絡(luò)來(lái)學(xué)習(xí)全局結(jié)構(gòu),通過(guò)整合上下文信息逐步細(xì)化顯著性映射細(xì)節(jié)。文獻(xiàn)[11]開(kāi)發(fā)出深度遞歸的全卷積神經(jīng)網(wǎng)絡(luò),將粗預(yù)測(cè)作為顯著先驗(yàn)知識(shí),并逐步細(xì)化生成的預(yù)測(cè)。
在關(guān)系檢測(cè)方面,文獻(xiàn)[12-13]通過(guò)網(wǎng)絡(luò)學(xué)習(xí)上面、下面、里面和周圍4種空間關(guān)系以改善圖像分割精度。文獻(xiàn)[14-15]提出一種檢測(cè)相鄰物體間物理支撐關(guān)系的方法。文獻(xiàn)[16-17]通過(guò)研究對(duì)象間語(yǔ)義關(guān)系(例如動(dòng)作或交互),將每種可能的語(yǔ)義關(guān)系組合作為一個(gè)可視短語(yǔ)類進(jìn)行關(guān)系檢測(cè),該方法采用手工標(biāo)注且只能檢測(cè)到少量常見(jiàn)的視覺(jué)關(guān)系。近年來(lái),基于深度學(xué)習(xí)的視覺(jué)關(guān)系檢測(cè)體系結(jié)構(gòu)引起研究人員的關(guān)注[18-20]。文獻(xiàn)[18]加入?yún)⑴c對(duì)象信息或字幕的語(yǔ)言線索進(jìn)行關(guān)系檢測(cè)。文獻(xiàn)[19]將關(guān)系作為連接場(chǎng)景圖中兩個(gè)對(duì)象節(jié)點(diǎn)的有向邊,通過(guò)迭代構(gòu)造場(chǎng)景圖推導(dǎo)出對(duì)象間關(guān)系。文獻(xiàn)[20]采用邊界框方法標(biāo)注出主體對(duì)象和相關(guān)對(duì)象,并通過(guò)網(wǎng)絡(luò)學(xué)習(xí)邊界框內(nèi)的視覺(jué)特征。
在圖像字幕生成方面,基于模板的方法是使用預(yù)先定義模板生成語(yǔ)句,并用模板中的插槽填充圖像實(shí)體[21-23]。采用該方法將可視化內(nèi)容表示為一個(gè)三元組,其生成的描述語(yǔ)句雖然語(yǔ)法正確但是語(yǔ)言僵化不靈活?;诤铣傻姆椒ㄊ菍z索到的文本片段或者實(shí)體拼接成一個(gè)圖像描述語(yǔ)句[24-26]。該方法通過(guò)復(fù)雜的預(yù)定義規(guī)則來(lái)檢索文本片段或?qū)嶓w以生成完整的圖像標(biāo)題[27]。與基于模板的方法相比,基于合成的方法生成的圖像描述更具有表現(xiàn)力,但是其參數(shù)個(gè)數(shù)具有不確定性,因而測(cè)試時(shí)計(jì)算量較大?;谡Z(yǔ)言模型的方法是將圖像和語(yǔ)言結(jié)合到一個(gè)多模態(tài)嵌入空間中,使用基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型生成圖像標(biāo)題[28-30]。文獻(xiàn)[28]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對(duì)不同長(zhǎng)度的標(biāo)題進(jìn)行解碼。文獻(xiàn)[29]采用LSTM解碼器對(duì)上下文的圖像描述進(jìn)行解碼。文獻(xiàn)[31]提出一種多模態(tài)對(duì)數(shù)雙線性神經(jīng)語(yǔ)言模型,該模型通過(guò)圖像特征的偏置來(lái)解碼圖像標(biāo)題。文獻(xiàn)[32]將CNN編碼的圖像和分析標(biāo)準(zhǔn)正則學(xué)習(xí)到的語(yǔ)義嵌入作為L(zhǎng)STM解碼器的輸入。文獻(xiàn)[33]將注意力機(jī)制與LSTM解碼器結(jié)合,在字幕生成過(guò)程中注重圖像的各部分。
建筑施工場(chǎng)景環(huán)境具有多變性。施工現(xiàn)場(chǎng)通常存在多種不安全因素,包括施工人員未按規(guī)定佩戴安全帽導(dǎo)致被墜落物體擊傷,以及腳手架、塔吊等因局部結(jié)構(gòu)工程失穩(wěn)造成機(jī)械設(shè)備傾覆、結(jié)構(gòu)坍塌或人員傷亡等,因而本文主要研究以下場(chǎng)景:1)安全防護(hù)場(chǎng)景,如施工人員佩戴安全帽的狀態(tài);2)高空作業(yè)場(chǎng)景,如施工人員在腳手架上;3)地面作業(yè)場(chǎng)景,如施工人員在塔吊下方。在安全防護(hù)場(chǎng)景中檢測(cè)施工人員是否佩戴安全帽,在高空作業(yè)場(chǎng)景和地面作業(yè)場(chǎng)景中檢測(cè)人與腳手架、塔吊的空間位置關(guān)系,并最終生成空間關(guān)系圖像描述語(yǔ)句。
本文生成空間關(guān)系圖像描述的模型包括3個(gè)階段,如圖1所示。第1階段是采用YOLOv3網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè);第2階段是采用關(guān)系檢測(cè)模型結(jié)合對(duì)象坐標(biāo)框信息進(jìn)行關(guān)系檢測(cè),從待測(cè)圖像中檢測(cè)所有對(duì)象之間的空間關(guān)系;第3階段是基于規(guī)則和模板的方法生成關(guān)于空間關(guān)系的圖像描述。
本文使用YOLOv3網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè),這是因?yàn)樵摼W(wǎng)絡(luò)融合分辨率不同的特征圖,具有較高檢測(cè)精度和效率。對(duì)于分離式模型,目標(biāo)檢測(cè)網(wǎng)絡(luò)性能越好,關(guān)系檢測(cè)結(jié)果越優(yōu)。YOLOv3網(wǎng)絡(luò)包含Darknet-53特征提取層和3層輸出層,其中Darknet-53特征提取層由DBL層和res_unit構(gòu)成,YOLO輸出層由尺度為13×13×255、26×26×255、52×52×255的3種特征圖譜構(gòu)成,如圖2所示。該網(wǎng)絡(luò)結(jié)構(gòu)可提高對(duì)不同尺寸物體和遮擋物體的檢測(cè)精度。YOLOv3網(wǎng)絡(luò)以躍層連接的方式進(jìn)行,收斂效果優(yōu)異,且采用多尺度訓(xùn)練策略增強(qiáng)了該網(wǎng)絡(luò)的魯棒性。
圖2 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
圖2中DBL層為YOLOv3網(wǎng)絡(luò)的基本組件,由卷積層、BN層和Leaky relu激活函數(shù)組成,BN層、Leaky relu激活函數(shù)和卷積層不可分離(最后一層卷積除外)。Resn(n為數(shù)字,表示res_block中含有n個(gè)res_unit)為YOLOv3網(wǎng)絡(luò)的大組件,通常有res1、res2、…、res8等。張量拼接(Concat)是將darknet中間層和后面某一層的上采樣進(jìn)行拼接。拼接操作和殘差層的add操作不同,拼接操作會(huì)擴(kuò)充張量維度,而add操作只直接相加不會(huì)改變張量維度。
YOLOv3網(wǎng)絡(luò)采用多尺度輸出并大量使用殘差的躍層連接,是一個(gè)全卷積網(wǎng)絡(luò)。這種殘差結(jié)構(gòu)使得YOLOv3網(wǎng)絡(luò)在結(jié)構(gòu)很深的情況下仍能正常收斂,從而實(shí)現(xiàn)模型的正常訓(xùn)練。在通常情況下,網(wǎng)絡(luò)結(jié)構(gòu)越深,其提取的特征越好,且分類和檢測(cè)效果越佳。殘差網(wǎng)絡(luò)中的1×1卷積使用了網(wǎng)絡(luò)的思想,通過(guò)減少參數(shù)數(shù)量一定程度上減少了計(jì)算量。
YOLOv3網(wǎng)絡(luò)檢測(cè)的每個(gè)對(duì)象均有一個(gè)邊界框代表其空間信息和對(duì)象分類概率,表示為:
Po={Pi}i=1,2,…,N+1
(1)
其中,Pi為待測(cè)物體屬于類別i的概率,N為對(duì)象類別總數(shù),N+1是作為背景的對(duì)象個(gè)數(shù)。每個(gè)被檢測(cè)對(duì)象的位置記為(X,Y,W,H),其中,(X,Y)為圖像平面上邊框左上角點(diǎn)的歸一化坐標(biāo),(W,H)為邊界框的標(biāo)準(zhǔn)化寬度和高度。
YOLOv3網(wǎng)絡(luò)目標(biāo)檢測(cè)過(guò)程具體如下:
1)輸入自制目標(biāo)檢測(cè)數(shù)據(jù)集(以下稱為自制數(shù)據(jù)集)并將其預(yù)處理為YOLO格式數(shù)據(jù)集。
2)送入YOLOv3網(wǎng)絡(luò)訓(xùn)練模型,網(wǎng)絡(luò)將圖片分成S×S個(gè)網(wǎng)格,每個(gè)單元格用來(lái)檢測(cè)中心點(diǎn)在單元格內(nèi)的目標(biāo),并通過(guò)非極大值抑制篩選出最終目標(biāo)檢測(cè)框。
3)測(cè)試圖像,若檢測(cè)目標(biāo)得分大于閾值則標(biāo)注出圖像中對(duì)象及輸出對(duì)象得分,否則將顯示無(wú)法檢測(cè)出圖像中的對(duì)象。
自制數(shù)據(jù)集標(biāo)注了對(duì)象和場(chǎng)景類別,在此數(shù)據(jù)集上訓(xùn)練模型參數(shù),可使得模型能捕捉圖像中的物體信息,同時(shí)包含許多場(chǎng)景先驗(yàn)信息用于捕捉圖像中的場(chǎng)景信息。在一般情況下,將對(duì)象及其特定空間關(guān)系抽象為一種場(chǎng)景,該場(chǎng)景包括3個(gè)方面:1)場(chǎng)景中行為主體表現(xiàn)出不同的行為特征,如施工人員是否佩戴安全帽;2)場(chǎng)景基本不變或者變化很小,如施工樓層等;3)在同一空間中,對(duì)象之間的不同位置關(guān)系形成不同場(chǎng)景,如腳手架和塔吊等。自制數(shù)據(jù)集通過(guò)收集施工現(xiàn)場(chǎng)圖片,按照上述場(chǎng)景的定義進(jìn)行標(biāo)注以支持安全防護(hù)、高空作業(yè)、地面作業(yè)等場(chǎng)景分析。
視覺(jué)關(guān)系的一般表達(dá)式為<主語(yǔ),謂語(yǔ),賓語(yǔ)>,組件謂語(yǔ)為一個(gè)動(dòng)作(如戴著),或者為相對(duì)位置(如左邊、右邊)。關(guān)系檢測(cè)的任務(wù)是檢測(cè)和定位圖像中出現(xiàn)的所有對(duì)象,并預(yù)測(cè)任意兩個(gè)對(duì)象之間所有可能的空間關(guān)系。關(guān)系檢測(cè)過(guò)程如下:
1)輸入自制關(guān)系檢測(cè)數(shù)據(jù)集和由目標(biāo)檢測(cè)模型訓(xùn)練得到的權(quán)重文件,對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理。
2)送入關(guān)系檢測(cè)模型進(jìn)行訓(xùn)練,采用轉(zhuǎn)換嵌入(TransE)算法學(xué)習(xí)主語(yǔ)到賓語(yǔ)之間的轉(zhuǎn)換嵌入,通過(guò)特征提取層提取對(duì)象的類別信息、位置和視覺(jué)特征,預(yù)測(cè)對(duì)象之間的關(guān)系。
3)測(cè)試圖像,若檢測(cè)到對(duì)象對(duì)關(guān)系的得分大于閾值則標(biāo)注出圖像中成對(duì)的對(duì)象及輸出對(duì)象間關(guān)系的三元組,否則無(wú)法檢測(cè)出圖像中對(duì)象之間的關(guān)系。
2.2.1 空間關(guān)系上下左右的定義
定義對(duì)象oi的幾何中心,其中(xi1,yi1)和(xi2,yi2)分別是對(duì)象oi左上角和右下角的坐標(biāo):
center(oi)=[centerx(oi),centery(oi)]=
(2)
定義lx(oi) 和lx(oj)分別為對(duì)象oi和oj邊界框在x方向上的長(zhǎng)度,如果
|centerx(oi)-centerx(oj)|<ε(lx(oi)+lx(oj))
(3)
則定義在x方向上兩個(gè)對(duì)象位于同一位置,否則,如果:
center(oi)
(4)
則認(rèn)為對(duì)象oi在oj的左邊,否則認(rèn)為對(duì)象oi在oj的右邊。
定義ly(oi) 和ly(oj)分別為對(duì)象oi和oj邊界框在y方向上的長(zhǎng)度,如果:
|centery(oi)-centery(oj)|<ε(ly(oi)+ly(oj))
(5)
則定義在y方向上兩個(gè)對(duì)象位于同一位置,否則,如果:
center(oi)
(6)
則認(rèn)為對(duì)象oi在oj的上邊,否則認(rèn)為對(duì)象oi在oj的下邊。
2.2.2 關(guān)系檢測(cè)模型
本文使用TransE算法作為關(guān)系檢測(cè)模型的基礎(chǔ),并加入特征提取層,其中TransE算法通過(guò)在低維空間中映射對(duì)象和謂語(yǔ)特征對(duì)可視化關(guān)系建模,特征提取層以全卷積方式實(shí)現(xiàn)目標(biāo)關(guān)系知識(shí)的遷移。該模型融合了語(yǔ)言先驗(yàn)知識(shí)并提高了關(guān)系檢測(cè)準(zhǔn)確率,其建立在傳統(tǒng)對(duì)象檢測(cè)模型基礎(chǔ)上,可以與YOLOv3網(wǎng)絡(luò)很好地銜接,從而預(yù)測(cè)出對(duì)象之間的空間關(guān)系??臻g關(guān)系采用廣泛使用的形式,其中s和o分別表示主語(yǔ)和賓語(yǔ)類別,p表示關(guān)系謂語(yǔ)。關(guān)系檢測(cè)模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,其中Ws、Wo是特征空間到關(guān)系空間映射的矩陣。
圖3 關(guān)系檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)結(jié)構(gòu)的相關(guān)定義為:
定義1(轉(zhuǎn)換嵌入) 通過(guò)在低維空間里將目標(biāo)和謂語(yǔ)進(jìn)行建模生成視覺(jué)關(guān)系,低維空間里的關(guān)系三元組被認(rèn)為是一種向量轉(zhuǎn)換,如“人+上方≈危險(xiǎn)源”。通過(guò)減少變量可避免學(xué)習(xí)大量主語(yǔ)、謂語(yǔ)、賓語(yǔ)的表示關(guān)系,即使主語(yǔ)或者賓語(yǔ)有較大變換,只需學(xué)習(xí)空間關(guān)系里的“上方”轉(zhuǎn)換向量。
定義2(關(guān)系中的知識(shí)轉(zhuǎn)換) 網(wǎng)絡(luò)中對(duì)象和謂語(yǔ)之間的知識(shí)轉(zhuǎn)移結(jié)合。通過(guò)一種特征提取層提取轉(zhuǎn)換嵌入中對(duì)象的三種類型特征:分類(類概率)、位置(邊界框坐標(biāo)和比例)和視覺(jué)特征。
定義3(類別信息) 一個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)中的(N+1)維向量,用來(lái)表示目標(biāo)的類概率。類別信息在各種視覺(jué)任務(wù)中被廣泛用作語(yǔ)義屬性。
定義4(位置) 一個(gè)表示邊界框參數(shù)的四維向量。前兩個(gè)參數(shù)表示比例不變的平移,后兩個(gè)參數(shù)表示相對(duì)于主體或者目標(biāo)其在對(duì)數(shù)空間的高或?qū)挼淖儞Q。以主體為例:
(7)
其中,(x,y,w,h)和(x′,y′,w′,h′)分別是主體和目標(biāo)的坐標(biāo)。位置特征用于檢測(cè)空間關(guān)系和動(dòng)詞。
定義5(視覺(jué)特征) 一個(gè)從空間卷積特征轉(zhuǎn)換而來(lái)的d維向量。物體的視覺(jué)特征通過(guò)使用線性插值從卷積特征映射提取出來(lái),因而對(duì)象和關(guān)系之間的信息、位置、視覺(jué)特征可以單一的前向或后向傳遞。
2.2.3 坐標(biāo)信息確認(rèn)
關(guān)系檢測(cè)模型可檢測(cè)出圖像中對(duì)象與對(duì)象、對(duì)象與場(chǎng)景之間的空間關(guān)系,對(duì)于同一類對(duì)象間的關(guān)系無(wú)法區(qū)分,例如關(guān)系檢測(cè)模型檢測(cè)的關(guān)系包含“人在人的左邊”“人戴著安全帽”“人在人的右邊”,但是無(wú)法區(qū)分圖中戴著安全帽的人在左邊還是右邊,因而還需利用坐標(biāo)信息進(jìn)一步區(qū)分對(duì)象間的關(guān)系。
南通集裝箱多式聯(lián)運(yùn)尚處于起步階段,絕大多數(shù)企業(yè)不具備策劃、組織、協(xié)調(diào)多式聯(lián)運(yùn)的能力和經(jīng)驗(yàn),整體服務(wù)水平處于較低層次。各企業(yè)間沒(méi)有統(tǒng)一的信息協(xié)調(diào)平臺(tái),各企業(yè)系統(tǒng)各自獨(dú)立運(yùn)行,還處于一種分割的各自為戰(zhàn)的狀態(tài),這也不利用構(gòu)建完善的、通暢的集裝箱聯(lián)運(yùn)體系,無(wú)法實(shí)現(xiàn)無(wú)縫鏈接,聯(lián)運(yùn)效率難以提升。
關(guān)系檢測(cè)模型中存在對(duì)象坐標(biāo)框信息,利用該信息可區(qū)分同類對(duì)象之間的空間關(guān)系,即對(duì)象1位于對(duì)象2的某個(gè)位置。關(guān)系檢測(cè)模型輸出關(guān)系短語(yǔ)由主語(yǔ)、謂語(yǔ)和賓語(yǔ)組成,本文將關(guān)系檢測(cè)模型檢測(cè)到的多個(gè)關(guān)系短語(yǔ)通過(guò)以下方式來(lái)確認(rèn)對(duì)象間的關(guān)系:關(guān)系檢測(cè)模型預(yù)測(cè)出第一個(gè)關(guān)系短語(yǔ),定義一個(gè)存放對(duì)象邊界信息的列表并建立索引,將主語(yǔ)的坐標(biāo)框信息存放于列表中,獲取該坐標(biāo)框信息的索引并添加到主語(yǔ)后,將賓語(yǔ)的坐標(biāo)框信息與列表中存儲(chǔ)的坐標(biāo)框信息進(jìn)行對(duì)比,如果無(wú)相同的坐標(biāo)框信息就重新存放于列表中,獲取該坐標(biāo)信息的索引并添加到賓語(yǔ)后。其他關(guān)系短語(yǔ)的主語(yǔ)與賓語(yǔ)對(duì)象按照上述方式進(jìn)一步區(qū)分,每次向列表中存放對(duì)象坐標(biāo)框信息時(shí),都必須與列表中的邊界框坐標(biāo)信息進(jìn)行對(duì)比,確保存放在列表中的坐標(biāo)框信息不重復(fù),以保證每個(gè)對(duì)象有唯一的下標(biāo)。經(jīng)實(shí)驗(yàn)驗(yàn)證,該方法具有較好的實(shí)驗(yàn)效果,可以區(qū)分戴著安全帽的人在左邊還是右邊。
2.3.1 空間關(guān)系描述的規(guī)則
根據(jù)關(guān)系檢測(cè)模型的檢測(cè)結(jié)果,制定空間關(guān)系描述規(guī)則:從上下關(guān)系考慮,根據(jù)人是否在危險(xiǎn)源的上方或者下方來(lái)確定施工場(chǎng)景中是否存在安全隱患;從左右關(guān)系考慮,由于單人情況下無(wú)需判斷左右關(guān)系,所以只制定了兩人和多人情況下的規(guī)則,根據(jù)各對(duì)象之間的左右關(guān)系以及目標(biāo)對(duì)象是否佩戴安全帽來(lái)確定左邊、右邊的人是否佩戴安全帽。空間關(guān)系描述規(guī)則的具體內(nèi)容如表1所示。
表1 空間關(guān)系描述規(guī)則
2.3.2 空間關(guān)系描述的生成
在采用模板生成空間關(guān)系描述過(guò)程中,可采用模板生成技術(shù)根據(jù)需求設(shè)計(jì)出可能出現(xiàn)的語(yǔ)言情況,并制定相應(yīng)情況的模板,模板中有常量也有變量。空間關(guān)系描述的表達(dá)具有一定規(guī)律,可根據(jù)人們描述空間關(guān)系的固有規(guī)律來(lái)制定描述的固定模板為:“<變量1>位置的人<變量2>安全帽。”該固定模板以檢測(cè)到的信息作為字符串嵌入模板中替換變量。
一幅圖像生成一個(gè)包含空間關(guān)系語(yǔ)句(字幕)的過(guò)程如圖4所示。關(guān)系檢測(cè)模型檢測(cè)的關(guān)系短語(yǔ)、根據(jù)圖像字幕數(shù)據(jù)集生成的語(yǔ)句模板與制定的規(guī)則三者結(jié)合生成圖像字幕。
圖4 圖像字幕生成過(guò)程框架
空間關(guān)系描述是將圖像中對(duì)象之間存在的空間關(guān)系以自然語(yǔ)言的形式進(jìn)行描述,其中空間關(guān)系既包括人戴安全帽的隱性空間關(guān)系,也包括人處于參考對(duì)象某個(gè)位置的顯性空間關(guān)系。通常只有將隱性和顯性的空間關(guān)系相結(jié)合,才能貼切、詳細(xì)地描述一幅圖像。下面以關(guān)系檢測(cè)模型得到的空間關(guān)系示例圖(見(jiàn)圖5)為例來(lái)說(shuō)明如何進(jìn)行有空間關(guān)系的圖像描述。
圖5 空間關(guān)系示例圖
空間關(guān)系描述的語(yǔ)句通常為固定句式,例如“<變量1>位置的人<變量2>安全帽”等,所以空間關(guān)系描述可由模板生成技術(shù)生成。由圖5可以看出,檢測(cè)的空間關(guān)系包含了“人1戴安全帽2”“人3戴安全帽4”“人1在人3的左邊”“人3在人1的右邊”4種關(guān)系,再采用基于規(guī)則的方法匹配滿足4種關(guān)系條件的結(jié)果,將<變量1>替換成“左邊”、<變量2>替換成“戴”,最終采用基于規(guī)則和模板的方法生成空間關(guān)系的自然語(yǔ)言描述為:“左邊的人戴安全帽并且右邊的人戴安全帽”。
實(shí)驗(yàn)采用GeForce GTX 1080 Ti軟件、CUDNN6.0軟件、CUDA8.0軟件和Ubuntu16.04軟件作為圖形處理器(Graphics Processing Unit,GPU),內(nèi)存為12 GB。本文基于tensorfow框架進(jìn)行實(shí)驗(yàn)操作,該框架支持GPU運(yùn)算。
目前在國(guó)內(nèi)外尚未發(fā)現(xiàn)公開(kāi)的施工現(xiàn)場(chǎng)工人作業(yè)圖像標(biāo)準(zhǔn)數(shù)據(jù)集,實(shí)驗(yàn)所用的3 050張圖片通過(guò)從公共數(shù)據(jù)集篩選、從“視覺(jué)中國(guó)”網(wǎng)站收集和自行拍照等方式獲得,其中包含了具有不同施工背景和不同質(zhì)量施工場(chǎng)景的圖片。根據(jù)目標(biāo)檢測(cè)實(shí)驗(yàn)需求,將上述圖片標(biāo)注為VOC2007數(shù)據(jù)集格式,用labelimg進(jìn)行標(biāo)注,保存后生成與所標(biāo)注圖片文件名相同的xml文件,如圖6所示,分別對(duì)每一類圖片進(jìn)行人工標(biāo)注。
圖6 圖片標(biāo)注示例圖
3.2.2 關(guān)系檢測(cè)數(shù)據(jù)集
視覺(jué)關(guān)系檢測(cè)(Visual Relationship Detection,VRD)數(shù)據(jù)集[17]:使用VRD數(shù)據(jù)集進(jìn)行關(guān)系檢測(cè)模型的訓(xùn)練,模型在參數(shù)調(diào)整完成后進(jìn)行再遷移,替換為自制數(shù)據(jù)集進(jìn)行訓(xùn)練。VRD數(shù)據(jù)集共有5 000張圖像,包含100個(gè)對(duì)象類別和70個(gè)關(guān)系。具體而言,VRD數(shù)據(jù)集包含37 993個(gè)關(guān)系三元組注釋,每個(gè)對(duì)象類別包含6 672個(gè)唯一三元組注釋和24.25個(gè)關(guān)系。實(shí)驗(yàn)從VRD數(shù)據(jù)集取4 000張圖像作為訓(xùn)練樣本、1 000張圖像用于測(cè)試。其中,1 877個(gè)關(guān)系只存在于零樣本評(píng)估的測(cè)試集中。
自制數(shù)據(jù)集:將目標(biāo)檢測(cè)數(shù)據(jù)集中收集的圖片按照VRD數(shù)據(jù)集的格式制作用于關(guān)系檢測(cè)實(shí)驗(yàn),標(biāo)注“人在危險(xiǎn)物的上方或下方”“人和人的左右關(guān)系”“人是否佩戴安全帽”以及各個(gè)對(duì)象的坐標(biāo)信息,最終生成json格式文件。
3.2.3 圖像字幕生成數(shù)據(jù)集
用于研究圖像字幕生成的公共數(shù)據(jù)集有COCO數(shù)據(jù)集、Flickr30k數(shù)據(jù)集等,但上述公共數(shù)據(jù)集中均沒(méi)有基于施工場(chǎng)景的圖像字幕數(shù)據(jù)集,因而本文實(shí)驗(yàn)使用的圖像字幕生成數(shù)據(jù)集是由目標(biāo)檢測(cè)實(shí)驗(yàn)中收集的3 050張圖片按照COCO數(shù)據(jù)集格式制作得到。通過(guò)自編程實(shí)現(xiàn)圖片統(tǒng)一命名和統(tǒng)一格式處理,具體流程為:編寫(xiě)一個(gè)腳本程序自動(dòng)獲取圖片文件名、高度、寬度信息,并將其寫(xiě)進(jìn)json文件,為每張圖片人工標(biāo)注五句話。標(biāo)注流程為:對(duì)每句caption進(jìn)行中文描述→翻譯成英文→檢查時(shí)態(tài)(現(xiàn)在時(shí)或現(xiàn)在進(jìn)行時(shí))→檢查語(yǔ)法→復(fù)制到captions_train2018.json文件對(duì)應(yīng)的字幕中→檢查整句話→完成全部圖片標(biāo)注后將captions_train2018.json文件內(nèi)容復(fù)制到https://www.bejson.com/網(wǎng)址中檢查是否為規(guī)范的json文件。
3.3.1 數(shù)據(jù)集預(yù)處理
自制數(shù)據(jù)集為VOC2007格式,目標(biāo)檢測(cè)實(shí)驗(yàn)使用YOLOV3網(wǎng)絡(luò),因而需先將VOC格式的標(biāo)注轉(zhuǎn)換為YOLO格式的txt標(biāo)注,并對(duì)YOLOv3網(wǎng)絡(luò)配置文件的參數(shù)進(jìn)行修改,具體包括:修改filters參數(shù)(該參數(shù)為輸出特征圖的數(shù)量;其值取決于類別、坐標(biāo)和masks的數(shù)量);修改anchors參數(shù)(該參數(shù)值由kmeans聚類算法得到,分別為27、17、52、128、53、34、85、56、88、189、134、223、152、120、205、257、374、588)。
3.3.2 網(wǎng)絡(luò)訓(xùn)練與測(cè)試
目標(biāo)檢測(cè)實(shí)驗(yàn)分為網(wǎng)絡(luò)訓(xùn)練和網(wǎng)絡(luò)測(cè)試2個(gè)階段。
1)網(wǎng)絡(luò)訓(xùn)練階段:先初始化網(wǎng)絡(luò)訓(xùn)練參數(shù):batch參數(shù)(一批樣本數(shù)量)設(shè)置為64;動(dòng)量參數(shù)設(shè)置為0.9,使用小批量隨機(jī)梯度下降進(jìn)行優(yōu)化;權(quán)重衰減參數(shù)設(shè)置為0.005,設(shè)置該值是為防止過(guò)擬合;學(xué)習(xí)率由原來(lái)算法中的0.005變?yōu)?.001。YOLOv3網(wǎng)絡(luò)采用多尺度進(jìn)行網(wǎng)絡(luò)訓(xùn)練,增強(qiáng)了網(wǎng)絡(luò)對(duì)不同尺寸圖像的魯棒性,圖片尺寸為320×320~608×608,采樣間隔為32。實(shí)驗(yàn)中網(wǎng)絡(luò)結(jié)構(gòu)部分參數(shù)如表2所示。
表2 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)部分參數(shù)
2)網(wǎng)絡(luò)測(cè)試階段:輸入一張待檢測(cè)圖片到Y(jié)OLOv3網(wǎng)絡(luò),輸出一張檢測(cè)到目標(biāo)對(duì)象的圖片。
3.3.3 評(píng)估指標(biāo)
目標(biāo)檢測(cè)有多種評(píng)價(jià)指標(biāo),例如目標(biāo)檢測(cè)精度、檢測(cè)效率和定位準(zhǔn)確性等,每種評(píng)價(jià)指標(biāo)的性能側(cè)重點(diǎn)不同。本文實(shí)驗(yàn)側(cè)重于考察目標(biāo)檢測(cè)精度,因此采用多個(gè)類別平均精度的平均值(mean Average Precision,mAP)作為描述目標(biāo)檢測(cè)精度的評(píng)估指標(biāo)。mAP取值范圍為[0,1],mAP值越大表示目標(biāo)檢測(cè)精度越高。精確度的計(jì)算公式如下:
(8)
其中,TP(True Positive)為被模型預(yù)測(cè)為正值的正樣本;FP(False Positive)為被模型預(yù)測(cè)為負(fù)值的正樣本。
3.3.4 結(jié)果與分析
由圖7可以看出,當(dāng)YOLOv3網(wǎng)絡(luò)開(kāi)始訓(xùn)練時(shí),損失值高達(dá)6 000;隨著YOLOv3網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)的增加,損失值逐漸降低;當(dāng)YOLOv3網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)達(dá)到5 000次時(shí),損失值趨于恒定約為0.1。從損失值的收斂情況看,YOLOv3網(wǎng)絡(luò)的訓(xùn)練結(jié)果較理想。
圖7 YOLOv3網(wǎng)絡(luò)訓(xùn)練過(guò)程中損失值隨迭代次數(shù) 的變化曲線
目標(biāo)檢測(cè)實(shí)驗(yàn)的部分檢測(cè)結(jié)果如圖8所示??梢?jiàn)通過(guò)目標(biāo)檢測(cè)實(shí)驗(yàn)檢測(cè)出人、安全帽和腳手架等對(duì)象,這表明YOLOv3網(wǎng)絡(luò)可實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象較準(zhǔn)確地定位。
圖8 目標(biāo)檢測(cè)實(shí)驗(yàn)的部分檢測(cè)結(jié)果
3.4.1 數(shù)據(jù)集預(yù)處理
訓(xùn)練用圖使用一個(gè)“主謂賓”三元組來(lái)標(biāo)記,其中每個(gè)不同的主體或者目標(biāo)用邊界框進(jìn)行注釋。
3.4.2 網(wǎng)絡(luò)訓(xùn)練與測(cè)試
關(guān)系檢測(cè)實(shí)驗(yàn)分為網(wǎng)絡(luò)訓(xùn)練和網(wǎng)絡(luò)測(cè)試2個(gè)階段。
1)網(wǎng)絡(luò)訓(xùn)練階段:圖像尺寸設(shè)置為600像素(最大不能超過(guò)1 000像素),一個(gè)圖像和128個(gè)隨機(jī)選擇的三元組作為每個(gè)批次的輸入。首先在VRD數(shù)據(jù)集上訓(xùn)練模型,模型訓(xùn)練完畢后再用自制數(shù)據(jù)集進(jìn)行訓(xùn)練。采用Adam優(yōu)化器計(jì)算各參數(shù)的自適應(yīng)學(xué)習(xí)率。初始學(xué)習(xí)率均設(shè)置為0.000 01,batch參數(shù)設(shè)置為50,每測(cè)試50個(gè)樣本更新一次參數(shù)。在每次學(xué)習(xí)過(guò)程中,將學(xué)習(xí)后的權(quán)重衰減按照固定比例降低,權(quán)重衰減參數(shù)設(shè)置為0.005。關(guān)系檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)的部分參數(shù)如表3所示。
表3 關(guān)系檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)部分參數(shù)
2)網(wǎng)絡(luò)測(cè)試:輸入一張未標(biāo)注的圖片到關(guān)系檢測(cè)模型,輸出一個(gè)檢測(cè)到不同目標(biāo)的集合,并且輸出每一對(duì)目標(biāo)之間關(guān)系的預(yù)測(cè)評(píng)分。
3.4.3 評(píng)估指標(biāo)
實(shí)驗(yàn)使用召回率(Recall@N)評(píng)估關(guān)系檢測(cè)模型對(duì)空間關(guān)系檢測(cè)的有效性[34],Rec@N用來(lái)計(jì)算每個(gè)圖像前N個(gè)預(yù)測(cè)中所包含正確關(guān)系實(shí)例的比例,計(jì)算公式如下:
(9)
其中,FN(False Negative)表示被模型預(yù)測(cè)為負(fù)值的正樣本。
3.4.4 結(jié)果與分析
關(guān)系檢測(cè)實(shí)驗(yàn)的部分檢測(cè)結(jié)果如圖9所示??梢?jiàn)通過(guò)關(guān)系檢測(cè)實(shí)驗(yàn)檢測(cè)出單人場(chǎng)景中人與物之間的關(guān)系、多人場(chǎng)景中人與人間的關(guān)系,這表明關(guān)系檢測(cè)模型可較準(zhǔn)確地檢測(cè)對(duì)象之間的空間關(guān)系。
圖9 關(guān)系檢測(cè)實(shí)驗(yàn)的部分檢測(cè)結(jié)果
利用坐標(biāo)信息區(qū)分同類對(duì)象的關(guān)系檢測(cè)實(shí)驗(yàn)部分檢測(cè)結(jié)果如圖10所示。可見(jiàn)通過(guò)實(shí)驗(yàn)檢測(cè)出人1在人3的左邊,這表明加入坐標(biāo)信息后關(guān)系檢測(cè)模型可區(qū)分出同類對(duì)象間的空間關(guān)系。
圖10 利用坐標(biāo)信息的關(guān)系檢測(cè)實(shí)驗(yàn)部分檢測(cè)結(jié)果
除了本文采用的關(guān)系檢測(cè)方法(以下稱為本文方法)外,常用的關(guān)系檢測(cè)方法還有Lu’s系列方法和STA方法。Lu’s系列方法采用單獨(dú)預(yù)測(cè)對(duì)象和關(guān)系謂語(yǔ),結(jié)合語(yǔ)言先驗(yàn)知識(shí)進(jìn)行關(guān)系預(yù)測(cè)。STA方法采用訓(xùn)練前重組策略,降低關(guān)系對(duì)于對(duì)象的依賴性再進(jìn)行關(guān)系預(yù)測(cè)。本文方法以TransE算法和特征提取層為基礎(chǔ)結(jié)合坐標(biāo)信息檢測(cè)對(duì)象間的關(guān)系。分別采用Lu’s-V方法[18]、Lu’s-VLK方法、STA方法[35]和本文方法在VRD公共數(shù)據(jù)集和自制數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果如表4所示。可見(jiàn)采用Lu’s-V方法和Lu’s-VLK方法得到的召回率較低;采用STA方法得到的召回率略有提升;采用本文方法得到的評(píng)估指標(biāo)分?jǐn)?shù)較高,在VRD公共數(shù)據(jù)集和自制數(shù)據(jù)集上采用本文方法得到的召回率比采用STA方法得到的分別提高18.63%和20.03%,這表明本文方法更適用于檢測(cè)對(duì)象之間的空間關(guān)系。
表4 不同關(guān)系檢測(cè)方法在不同數(shù)據(jù)集 上得到的召回率
3.5.1 數(shù)據(jù)集預(yù)處理
將圖像字幕數(shù)據(jù)集分割為單詞,按單詞出現(xiàn)的頻率進(jìn)行篩選后建立詞匯字典,詞匯字典里包含單詞、詞頻、單詞編號(hào),出現(xiàn)頻率低于4次的單詞不被收入詞匯字典。
3.5.2 圖像字幕生成的過(guò)程
關(guān)系檢測(cè)模型檢測(cè)的空間關(guān)系為“人1戴著安全帽2”“人1在人3的左邊”“人3在人1的右邊”,根據(jù)定義的規(guī)則,可得到關(guān)系檢測(cè)結(jié)果為“左邊的人戴著安全帽”。句子模板為The
3.5.3 評(píng)估指標(biāo)
本文采用雙語(yǔ)評(píng)估替補(bǔ)(Bilingual Evaluation Understudy,BLEU)方法和METEOR方法對(duì)生成的語(yǔ)句進(jìn)行整體評(píng)估[36-37]。BLEU方法將候選翻譯結(jié)果的N-gram算法與參考結(jié)果的N-gram算法匹配的個(gè)數(shù)進(jìn)行對(duì)比。這些匹配與位置無(wú)關(guān),匹配個(gè)數(shù)越多說(shuō)明候選翻譯越好。BLEU方法是一種改進(jìn)的精度度量方法,缺點(diǎn)為語(yǔ)句簡(jiǎn)短,其計(jì)算值為不同長(zhǎng)度N-gram算法的加權(quán)幾何平均值。METEOR方法通過(guò)將翻譯假設(shè)與參考譯文對(duì)齊并計(jì)算語(yǔ)句相似度評(píng)分來(lái)評(píng)估翻譯假設(shè)。對(duì)于一個(gè)假設(shè)引用對(duì),可能的對(duì)齊空間通過(guò)詳盡地確定語(yǔ)句之間所有可能的匹配而構(gòu)建。如果單詞的表面形式相同,則表明單詞匹配;如果詞干相同,則表明詞干匹配;如果短語(yǔ)在適當(dāng)?shù)尼屃x表中被列出,則表明短語(yǔ)匹配。
3.5.4 結(jié)果分析
將本文模型與m-RNN、NIC、Soft-Attention、Hard-Attention等主流模型在自制數(shù)據(jù)集上的精度進(jìn)行對(duì)比,結(jié)果如表5所示。可見(jiàn)與m-RNN模型和NIC模型相比,本文模型在BLEU-3、BLEU-4、METEOR等評(píng)價(jià)指標(biāo)上分?jǐn)?shù)較高(評(píng)估指標(biāo)值越高,說(shuō)明模型性能越好),其中本文模型的BLEU-4值比NIC模型提高7.3%。這是因?yàn)镹IC模型是較早提出的端到端模型,采用CNN網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)生成圖像描述,因而本文模型的性能整體優(yōu)于NIC模型的。與Soft-Attention模型和Hard-Attention模型相比,本文模型的METEOR值略低,但是反映句子連貫性和準(zhǔn)確率的BLEU-4值較高,其中本文模型的BLEU-4值比Soft-Attention模型提高7.1%,比Hard-Attention模型提高6.3%。這是因?yàn)镾oft-Attention模型雖然在NIC模型的基礎(chǔ)上增加了注意力機(jī)制,但是沒(méi)有考慮描述圖像中對(duì)象之間的空間關(guān)系,所以本文模型的性能比Soft-Attention模型更優(yōu)。
表5 本文模型與其他模型在自制數(shù)據(jù)集上的 評(píng)價(jià)指標(biāo)情況
由表6可以看出,與NIC模型相比,本文模型生成的語(yǔ)句具有更好的空間關(guān)系語(yǔ)義表達(dá),能更準(zhǔn)確地描述施工場(chǎng)景中包含的空間位置關(guān)系。在建筑施工場(chǎng)景中,當(dāng)兩個(gè)人都戴了安全帽時(shí),本文模型描述為“左邊的人戴著安全帽并且右邊的人戴著安全帽”;當(dāng)兩個(gè)人中只有一個(gè)人戴了安全帽時(shí),本文模型明確描述出是左邊的還是右邊的人戴著安全帽。
表6 本文模型與NIC模型生成的圖像描述對(duì)比
本文提出一種融合施工場(chǎng)景及空間關(guān)系的圖像描述生成模型。通過(guò)使用YOLOv3網(wǎng)絡(luò)目標(biāo)檢測(cè)模型訓(xùn)練得到權(quán)重文件,將其與數(shù)據(jù)集輸入到關(guān)系檢測(cè)模型,基于規(guī)則和模板的方法生成圖像描述。實(shí)驗(yàn)結(jié)果表明,本文模型較m-RNN、NIC、Soft-Attention、Hard-Attention模型在圖像描述生成任務(wù)上取得更好的效果,能很好地解決施工現(xiàn)場(chǎng)中人的安全性推斷和描述問(wèn)題。但是本文模型生成的描述語(yǔ)句句式較單一,內(nèi)容上缺乏細(xì)節(jié)描述,下一步將對(duì)此進(jìn)行研究以生成更生動(dòng)的圖像描述語(yǔ)句。