楊佳云,么一諾,于 鯤,柳秀梅,于明鶴,趙志濱
1.東北大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,沈陽 110000
2.東北大學(xué) 軟件學(xué)院,沈陽 110000
近幾年,隨著卷積神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法越來越成熟?;镜哪繕?biāo)檢測算法是在圖像中識別每個目標(biāo)的所屬類別和位置信息,缺少對于目標(biāo)所應(yīng)滿足的應(yīng)用語義的檢查。例如在生產(chǎn)安全監(jiān)控視頻中,目標(biāo)檢測不僅要識別出安全防護(hù)裝備,還要檢測這些安全防護(hù)裝備是否被規(guī)范穿戴。
本文提出了一種目標(biāo)檢測中語義約束檢查算法,基本思想是:形式化描述應(yīng)用對于目標(biāo)的語義約束,然后與實際的目標(biāo)檢測結(jié)果進(jìn)行一致性判定,從而在目標(biāo)檢測的過程中同步實現(xiàn)語義約束檢查。附加語義約束檢查的目標(biāo)檢測算法具有非常廣泛的應(yīng)用,如標(biāo)準(zhǔn)工裝檢查、消防和安防設(shè)備檢查等等。本文的主要貢獻(xiàn)有:
(1)分析了目標(biāo)檢測中的語義約束類別,并據(jù)此提出語義約束的描述模型,其中包括單類別下目標(biāo)的數(shù)量約束和多個目標(biāo)之間的相對位置約束。
(2)基于基本的目標(biāo)檢測算法,提出了目標(biāo)的數(shù)量計算方法和多個目標(biāo)的空間相對位置計算方法;進(jìn)一步,提出了目標(biāo)檢測結(jié)果與語義約束的一致性判定方法,實現(xiàn)了語義約束檢查。
(3)以電力施工的防護(hù)裝備檢查任務(wù)為例,將目標(biāo)檢測中語義約束檢查算法在真實數(shù)據(jù)集上進(jìn)行驗證,通過檢查安全帽、安全帶和絕緣手套是否規(guī)范佩戴這一應(yīng)用實例驗證算法的有效性。
在計算機(jī)視覺領(lǐng)域內(nèi),目標(biāo)檢測是一個基礎(chǔ)的視覺識別任務(wù)?;镜哪繕?biāo)檢測算法是從給定圖像中檢測出每個目標(biāo)的類別信息和位置信息[1]。近幾年,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法愈加成熟[2]。
文獻(xiàn)[3-5]提出的R-CNN系列是深度學(xué)習(xí)應(yīng)用到目標(biāo)檢測的開山之作,改進(jìn)后的Faster R-CNN雖然檢測準(zhǔn)確率明顯上升,但檢測速度仍然達(dá)不到實時的需求。文獻(xiàn)[6]提出的SSD目標(biāo)檢測算法檢測速度可以達(dá)到實時,但對于小目標(biāo)的檢測效果略差。
從2016年開始,文獻(xiàn)等[7-9]陸續(xù)推出了YOLO系列的端到端目標(biāo)檢測算法。因為具有實時的檢測速度和愈來愈高的準(zhǔn)確率,YOLO系列算法備受歡迎。YOLOv1由于輸出層為全連接層,在檢測時,模型只支持與訓(xùn)練圖像相同的輸入分辨率,且檢測準(zhǔn)確率比之前的R-CNN和SSD都要低。YOLOv2在YOLOv1的基礎(chǔ)上將輸出層改為卷積層,同時引入了Faster R-CNN中anchor box[10]的思想,改進(jìn)了網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計,使模型更加容易學(xué)習(xí)。YOLOv3在YOLOv1和YOLOv2的基礎(chǔ)上調(diào)整了網(wǎng)絡(luò)結(jié)構(gòu),搭建并訓(xùn)練出了最新的Darknet-53模型。使用多尺度預(yù)測的方法提高了對小目標(biāo)物體的檢測精度;同時,將softmax分類器改為logistic分類器[11]改善了目標(biāo)重疊的檢測效果,檢測精度大幅提高。
由于基本的目標(biāo)檢測算法檢測信息的局限性,一些學(xué)者在傳統(tǒng)目標(biāo)檢測算法的基礎(chǔ)上增加了對圖像的語境分析[12]。圖像中的語境分析一般是從全局和局部兩個層次考慮。全局語境是從圖像整體出發(fā)考慮圖像的統(tǒng)計信息;局部語境是利用目標(biāo)周圍的區(qū)域檢測其他的目標(biāo)或像素,分為目標(biāo)級交互和像素級交互[13]。
文獻(xiàn)[14]針對傳統(tǒng)目標(biāo)檢測方法中語義關(guān)系漂移和位置建模偏差的問題,總結(jié)語境信息基本類型和應(yīng)用方法。從圖像空間約束、視頻時空約束和語義語境約束三個方面建立目標(biāo)之間的語義和位置先驗?zāi)P?,改善目?biāo)檢測的效果。文獻(xiàn)[15]將語義約束與視覺定位算法相結(jié)合提出了一種基于語義約束的特征點定位算法,該算法可以剔除大量的誤匹配特征點,有效減少定位匹配階段提取特征點的區(qū)域和特征點的個數(shù),提高特征提取的效率。文獻(xiàn)[16]提出了一種語義規(guī)則和模板相結(jié)合的安全帽佩戴圖像描述生成方法,根據(jù)預(yù)定義規(guī)則結(jié)合語句模板生成描述語句,有效完成了安全帽佩戴描述生成的任務(wù)。
基于以上相關(guān)工作,本文以YOLOv3目標(biāo)檢測模型為基礎(chǔ)提出了一種目標(biāo)檢測中語義約束檢查算法。該算法不僅可以檢測圖像中單類別下目標(biāo)的數(shù)量,還可以檢測出多個目標(biāo)的空間位置信息,實現(xiàn)從圖像中提取更加豐富的內(nèi)容,具有重要的現(xiàn)實意義。
語義約束檢查的目標(biāo)是根據(jù)用戶指定的約束對目標(biāo)檢測結(jié)果進(jìn)行一致性檢查,其中的約束包括單類別下目標(biāo)的數(shù)量約束和多個目標(biāo)的空間位置約束。為此,本文算法需要:提出一種語義約束描述模型;獲得帶有語義信息的目標(biāo)檢測結(jié)果,包括檢出目標(biāo)的數(shù)量和空間位置關(guān)系;帶有語義信息的目標(biāo)檢測結(jié)果與語義約束進(jìn)行一致性檢查。本章對這三方面工作進(jìn)行詳細(xì)介紹。
目標(biāo)檢測任務(wù)輸入是一幅靜態(tài)圖像,其中包含的目標(biāo)也是靜態(tài)的。目標(biāo)檢測中的語義約束可描述為式(1)的形式:
其中,L表示用戶定義的目標(biāo)類別的集合,F(xiàn)表示目標(biāo)實例應(yīng)滿足的語義約束條件的集合。L和F來自于應(yīng)用需求,由用戶定義。靜態(tài)目標(biāo)的語義約束有單類別目標(biāo)的數(shù)量約束和多個目標(biāo)之間的空間位置約束。
(1)單類別目標(biāo)的數(shù)量約束
單類別目標(biāo)的數(shù)量是指屬于同一類別的目標(biāo)的個數(shù),用 |N(L i)|( ?L i∈L)表示,那么類別L i下的實例可以表示為O L i( ?L i∈L)。所以,單類別下目標(biāo)實例的數(shù)量約束如式(2)所示:
(2)多目標(biāo)之間的位置約束
多目標(biāo)之間的空間位置約束是指多個目標(biāo)實例的中心點在空間中的相對位置關(guān)系,由中心點的坐標(biāo)決定。任意多個目標(biāo)之間的相對空間位置均可通過多組雙目標(biāo)之間的空間位置關(guān)系來描述。因此,只需要定義兩個目標(biāo)實例的空間位置關(guān)系即可,如式(3)所示:
其中,d x表示O L i與O L j的水平方向上的空間位置關(guān)系。設(shè)d x表示O L i與O L j的水平距離,當(dāng)d x>0,表示O L i中心在水平方向上沿正向移動d x個單位距離到達(dá)O L j中心;反之,表示O L i中心在水平方向上沿反向移動d x個單位距離到達(dá)O L j中心。同理,d y表示O L i與O L j的垂直方向的空間位置關(guān)系。設(shè)d y表示O L i與O L j的垂直距離,當(dāng)d y>0,表示O L i中心在垂直方向上沿正向移動d y個單位距離到達(dá)O L j中心;反之,表示O L i中心在垂直方向上沿反向移動d y個單位距離到達(dá)O L j中心。
所以,多個目標(biāo)實例之間的位置約束可以描述為式(4)的形式:
目標(biāo)檢測是圖像分析的基礎(chǔ),基本的目標(biāo)檢測算法是從圖像中逐個識別出目標(biāo)的所屬類別和位置信息。其中,位置信息由目標(biāo)的中心坐標(biāo)(x,y)和目標(biāo)的寬度w、高度h表示,目標(biāo)所屬類別為給定標(biāo)簽中置信度最高的標(biāo)簽。
然而,僅提取單個目標(biāo)的類別信息和位置信息往往不足以滿足實際檢測的需要。很多應(yīng)用中的目標(biāo)檢測任務(wù)常常帶有語義約束,典型的包括單類別目標(biāo)的數(shù)量約束和多個目標(biāo)之間的空間位置約束。為此,本文在基本的目標(biāo)檢測的基礎(chǔ)上,提出帶有目標(biāo)數(shù)量和目標(biāo)相對空間位置的語義信息檢測方法。
單類別目標(biāo)的數(shù)量信息可以通過統(tǒng)計目標(biāo)所屬類別標(biāo)簽獲得,只有屬于同一類別的目標(biāo)才進(jìn)行累加計算目標(biāo)數(shù)量。類別L i所包含的目標(biāo)實例數(shù)量?(OL i)的計算式可以表示為公式(5):
其中,Detect()為基本目標(biāo)檢測函數(shù)對檢出目標(biāo)實例的分類結(jié)果。當(dāng)判定目標(biāo)實例屬于某一類別時,該類別數(shù)量加1,反之,則加0。
兩個目標(biāo)的相對空間位置是通過計算兩個目標(biāo)的中心坐標(biāo)位置關(guān)系獲得的。兩個目標(biāo)中心橫坐標(biāo)差值的絕對值表示目標(biāo)間水平方向上的距離,差值的正負(fù)表示目標(biāo)間水平方向上的相對方位信息;同理,兩個目標(biāo)中心縱坐標(biāo)差值的絕對值表示目標(biāo)間豎直方向上的距離,差值的正負(fù)表示目標(biāo)間豎直方向上的相對方位信息。因此,目標(biāo)之間的位置關(guān)系計算式如式(6)所示,形象化描述如圖1所示。
圖1 目標(biāo)間位置信息Fig.1 Location information between objects
算法1帶有語義信息的目標(biāo)檢測算法SemDetect
輸入:Image
1. Inpu(tImage)
2. {}=detec(tImage)
3.for?in{?}:4.//Count the number of single category objects
6.forO L iin{?}:
7.forO L jin{?}:
8.//Calculate location information between objects
為了檢查目標(biāo)是否符合語義約束條件,需將帶有語義信息的目標(biāo)檢測結(jié)果與用戶設(shè)定的約束條件進(jìn)行一致性檢查。由于本文定義了單類別目標(biāo)的數(shù)量約束和多個目標(biāo)之間的位置約束兩種約束條件,所以根據(jù)這兩種約束設(shè)計兩條匹配規(guī)則:一是目標(biāo)數(shù)量匹配規(guī)則;二是目標(biāo)間相對位置匹配規(guī)則。
(1)目標(biāo)數(shù)量匹配
將帶有語義的目標(biāo)檢測結(jié)果中同一類別的目標(biāo)數(shù)量與約束條件設(shè)定的該類別目標(biāo)數(shù)量進(jìn)行一致性檢查,如式(7)所示:
(2)目標(biāo)間空間相對位置匹配
將指定目標(biāo)間的位置關(guān)系與約束條件設(shè)定的位置關(guān)系進(jìn)行一致性檢查,檢查目標(biāo)間的距離是否在最大約束距離允許的范圍之內(nèi)。如式(8)所示:
總體上,當(dāng)所有檢測結(jié)果及其語義均符合用戶指定的語義約束時,才認(rèn)為目標(biāo)檢測結(jié)果滿足語義約束。
算法2目標(biāo)檢測中語義約束檢查算法
本文實驗將使用所提出的目標(biāo)檢測中語義約束檢查算法,判定安監(jiān)視頻中電力工人是否嚴(yán)格按照安全生產(chǎn)規(guī)范要求穿戴施工防護(hù)裝備。
按照電力公司的安全生產(chǎn)規(guī)范要求定義約束條件,工人必須佩戴安全帽、安全帶和絕緣手套。同時,安全帽必須佩戴在頭頂,安全帶必須穿戴在身上,絕緣手套必須戴在手上。上述規(guī)范描述如表1所示。
表1 安全生產(chǎn)規(guī)范的約束條件Table1 Constraints of safety production standard
用YOLOv3模型檢測圖片中的安全帽和臉部、安全帶和胸部、絕緣手套和手部。統(tǒng)計檢測出的安全帽、安全帶和絕緣手套的數(shù)量,并根據(jù)臉部位置檢查安全帽位置;根據(jù)胸部位置檢查安全帶位置;根據(jù)手部位置檢查手套位置。最后,對目標(biāo)檢測結(jié)果與語義約束進(jìn)行一致性判定。所有檢查均合格判定該工人的穿戴符合公司的標(biāo)準(zhǔn),若有一條不符合則判定該工人的穿戴不合格。
本文采用某電力公司采集的施工防護(hù)設(shè)備佩戴視頻作為實驗數(shù)據(jù)集。數(shù)據(jù)集中包含僅戴安全帽、僅戴安全帶、僅戴絕緣手套的圖片,戴其中兩種設(shè)備的圖片和3種設(shè)備均佩戴的圖片,2分鐘左右的視頻,共計4 050幀圖片。根據(jù)統(tǒng)一的標(biāo)注規(guī)則進(jìn)行標(biāo)注,將視頻的80%作為訓(xùn)練集,20%作為測試集進(jìn)行實驗。
本文實驗所使用的操作系統(tǒng)為Ubuntu16.04 LTS,開發(fā)語言為C++,硬件為GeForce GTX 1060 6 GB。
本文提出的方法主要解決的是一個二分類的問題。對于二分類問題的評價,通常使用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1-Score作為評價指標(biāo)來評價分類算法的整體性能。其中,準(zhǔn)確率表示是否規(guī)范穿戴的檢出準(zhǔn)確率;精確率表示規(guī)范穿戴的精確率;召回率表示規(guī)范穿戴的召回率;F1-Score表示規(guī)范穿戴的精確率和召回率的加權(quán)平均。
表2記錄的是在不同閾值設(shè)定下檢測安全帽是否規(guī)范佩戴的實驗結(jié)果;表3記錄在不同閾值設(shè)定下檢測安全帶是否規(guī)范穿戴的實驗結(jié)果;表4記錄在不同閾值設(shè)定下檢測絕緣手套是否規(guī)范穿戴的實驗結(jié)果;表5為最優(yōu)閾值設(shè)定下整體約束檢查的效果評價。
表2 不同閾值設(shè)定下的安全帽佩戴檢測實驗結(jié)果Table 2 Testing results of helmet wearing under different threshold settings
表3 不同閾值設(shè)定下的安全帶佩戴檢測實驗結(jié)果Table 3 Testing results of safetybelt wearing under different threshold settings
表4 不同閾值設(shè)定下的絕緣手套佩戴檢測實驗結(jié)果Table 4 Testing results of insulating gloves wearing under different threshold settings
表5 整體約束檢查實驗結(jié)果Table 5 Testing results of overall constraint check
在進(jìn)行整體約束檢查時,檢查規(guī)則為當(dāng)所有目標(biāo)均符合約束條件時才認(rèn)為合格。那么,整體目標(biāo)檢測效果與每個目標(biāo)的檢測效果息息相關(guān)。因此,表5中呈現(xiàn)的檢測指標(biāo)不高。
圖2為目標(biāo)檢測中語義約束檢查算法檢查規(guī)范佩戴施工防護(hù)設(shè)備實驗的檢測效果圖。其中,圖(a)表示單獨檢測安全帽佩戴情況;圖(b)表示單獨檢測安全帶佩戴情況;圖(c)表示單獨檢測絕緣手套佩戴情況;圖(d)表示整體約束檢測。
圖2 實驗檢測效果Fig.2 Experimental detection results
本文提出的目標(biāo)檢測中語義約束檢查算法檢測一幀圖片的耗時為130 ms左右,幀率為每秒8幀。同時,為了提高檢測準(zhǔn)確率,設(shè)置當(dāng)連續(xù)3幀圖片均不合格時才認(rèn)定其佩戴不規(guī)范。實驗證明該算法能夠有效完成約束條件檢查的任務(wù)。
針對基本目標(biāo)檢測算法僅識別目標(biāo)類別信息和位置信息的問題,本文提出了一種目標(biāo)檢測中語義約束檢查算法。該算法定義了一種語義約束模型,提出了帶有語義信息的目標(biāo)檢測算法,將該目標(biāo)檢測算法提取出的單類別目標(biāo)數(shù)量信息和多個目標(biāo)之間的位置信息與語義約束模型進(jìn)行一致性匹配,從而檢查目標(biāo)是否符合約束條件。實驗表明本文算法在電力施工防護(hù)裝備檢查任務(wù)中表現(xiàn)出了良好的檢查效果。
隨著圖像分析技術(shù)的成熟,監(jiān)控系統(tǒng)朝著智能化的方向發(fā)展將是必然趨勢。本文提出的算法仍然需要深入研究的內(nèi)容:
(1)除了本文提到的兩個約束條件之外,還可以從其他維度對目標(biāo)進(jìn)行更細(xì)致的描述,比如顏色、大小等,從而提高檢測準(zhǔn)確率;
(2)除了本文使用的檢查目標(biāo)檢測結(jié)果與語義約束是否一致的模板匹配函數(shù)之外,可探尋更加準(zhǔn)確有效的匹配函數(shù)檢查目標(biāo)是否滿足約束條件。