華東理工大學(xué)信息科學(xué)與工程學(xué)院 童云斐 陳俊詠 李佳寧 潘澤恩
為了解決場景理解在無標(biāo)簽數(shù)據(jù)時難以適用的情況,以及無監(jiān)督學(xué)習(xí)的場景理解存在的魯棒性差、未能滿足多任務(wù)需求等缺點(diǎn),基于Mask R-CNN、struct2depth、SfMLearner模型,通過模型訓(xùn)練、圖像預(yù)處理、多任務(wù)耦合等方法,用拍攝的實(shí)景視頻驗(yàn)證模型效果,并和原模型處理結(jié)果作對比。實(shí)驗(yàn)結(jié)果表明,進(jìn)行預(yù)處理后的圖像結(jié)果前景輪廓更加清晰,我們的模型實(shí)現(xiàn)了多任務(wù)的場景理解,而原模型僅實(shí)現(xiàn)了單一任務(wù)。改進(jìn)的無監(jiān)督學(xué)習(xí)多任務(wù)場景理解算法不僅提升了魯棒性,而且直接反映了物體到相機(jī)的距離,同時提高了深度估計的精度。
隨著汽車行業(yè)的快速發(fā)展,為提供更便利安全的駕駛服務(wù),無人駕駛技術(shù)開發(fā)已經(jīng)成為汽車及信息行業(yè)的熱門研究對象。場景理解是輔助駕駛中關(guān)鍵性環(huán)節(jié),常見的場景理解任務(wù)包括深度估計、目標(biāo)識別、語義分割等。本課題擬對無監(jiān)督單目相機(jī)場景理解技術(shù)的實(shí)現(xiàn)展開研究?;跓o標(biāo)簽圖像的場景理解算法無需價格高昂的標(biāo)簽數(shù)據(jù),應(yīng)用范圍廣泛;除外,還可同時實(shí)現(xiàn)多種任務(wù)的耦合訓(xùn)練,提高算法精度并降低訓(xùn)練難度,有很好的研究前景。
本文完成的場景理解任務(wù)包括目標(biāo)識別、運(yùn)動分割和深度估計。目標(biāo)識別任務(wù)旨在檢測前景中的物體對象,并對其進(jìn)行識別分類,得到對象的屬性信息。由于使用到分類算法,此部分網(wǎng)絡(luò)模型是有監(jiān)督地訓(xùn)練的。運(yùn)動分割模塊是為了將前景中可能運(yùn)動的物體分離出來,方便后續(xù)單獨(dú)進(jìn)行深度估計,減小誤差。深度預(yù)測網(wǎng)絡(luò)使用卷積自編碼器,將原圖像經(jīng)過編碼解碼得到深度信息圖。通過單目序列圖像前后幀間視差可以推導(dǎo)相機(jī)的運(yùn)動情況,結(jié)合運(yùn)動信息訓(xùn)練深度估計網(wǎng)絡(luò),得到好的估計模型。場景理解網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
圖1 場景理解網(wǎng)絡(luò)結(jié)構(gòu)圖
對于目標(biāo)識別任務(wù),我們使用了一個預(yù)訓(xùn)練的監(jiān)督模型。參考Mask R-CNN的方法,此網(wǎng)絡(luò)預(yù)先進(jìn)行單獨(dú)訓(xùn)練,獨(dú)立于深度模型。在目標(biāo)識別網(wǎng)絡(luò)訓(xùn)練完成后,輸入圖片序列,該網(wǎng)絡(luò)會將圖片調(diào)整為神經(jīng)網(wǎng)絡(luò)需要的大小并做歸一化處理,在上述操作完成后,目標(biāo)識別網(wǎng)絡(luò)會對圖片中可能存在的對象做預(yù)測,提供識別出來的對象的掩膜信息、對象邊界框的位置及大小信息、對象類型的預(yù)測結(jié)果以及該預(yù)測結(jié)果的置信度。本文設(shè)置了顯示在圖像上的預(yù)測對象置信度的閾值,限制了只有置信度高于90%的預(yù)測結(jié)果,才會將相應(yīng)的掩膜和邊界框添加到圖像上。
本文使用的方法參考的是Casser等人提出的struct2depth模型。在圖像輸入深度網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)之前,分析圖像的結(jié)構(gòu)信息,對場景中的單個對象建模,分離可能運(yùn)動的前景物體和靜止背景。攝像機(jī)自我運(yùn)動和物體運(yùn)動都是通過單目圖像序列幀與幀之間的視差來進(jìn)行學(xué)習(xí)的。對于場景中的任意一點(diǎn),根據(jù)其與相機(jī)的相對運(yùn)動關(guān)系,可以反推出該點(diǎn)的運(yùn)動參數(shù),由此可對前景中識別到的對象進(jìn)行單獨(dú)的運(yùn)動建模。
與單目相機(jī)相比,雙目設(shè)備可以利用兩個視點(diǎn)的位置視差對圖像進(jìn)行立體的理解。本文使用的方法參考了Zhou等人提出的SfMLearner模型,通過利用單目序列圖像前后幀由相機(jī)運(yùn)動產(chǎn)生的視差對圖像場景進(jìn)行深度估計。模型由兩個網(wǎng)絡(luò)組成,深度估計網(wǎng)絡(luò)Depth CNN以及用于得到相機(jī)自運(yùn)動矩陣的Pose CNN。
深度估計網(wǎng)絡(luò)使用的是多尺度卷積自編碼器,其是一種常見無監(jiān)督卷積神經(jīng)網(wǎng)絡(luò)模型,也被多次應(yīng)用到無監(jiān)督深度估計任務(wù)中。模型由編碼器和解碼器組成,生成多尺度的目標(biāo)圖像。Pose CNN以連續(xù)的2幀圖像作為輸入,生成相機(jī)位姿變換矩陣,描述相機(jī)在兩幀圖像前后的運(yùn)動情況,包括視角旋轉(zhuǎn)和位置移動。將相機(jī)運(yùn)動情況在世界坐標(biāo)系中建模,可以將其在拍攝兩幀圖像時刻的前后位置變化分解成六自由度運(yùn)動參數(shù)。
對于進(jìn)行預(yù)處理后的圖像,其特征被增強(qiáng),輪廓更加清晰,實(shí)驗(yàn)效果更好。本項(xiàng)目中對圖像進(jìn)行了自適應(yīng)對比度增強(qiáng)(Adaptive Contrast Enhancement,ACE)。不同于全局的圖像增強(qiáng),本項(xiàng)目對圖像對比度弱的部分做增強(qiáng),得到的效果更好。
具體實(shí)現(xiàn)方法如下:
首先,計算圖像中每個點(diǎn)的局部均值M(i,j)和局部標(biāo)準(zhǔn)差σ(i,j)。像素值計算公式如式(1),其中,I(i,j)是增強(qiáng)后的像素值,f(i,j)是該點(diǎn)的像素值,M為全局均值,α是一個系數(shù)參數(shù),一般取值在0到1之間。
對于彩色圖像,本方法將圖像轉(zhuǎn)到Y(jié)UV色彩空間,增強(qiáng)Y通道明亮度后再轉(zhuǎn)回RGB空間。
將本文實(shí)驗(yàn)結(jié)果與我們參考的深度估計鄰域的另外兩個模型進(jìn)行對比。
如實(shí)驗(yàn)結(jié)果圖如圖2所示,SfMLearner模型可以大致估計場景的深度前后關(guān)系,對前景物體有識別,但是不夠魯棒、準(zhǔn)確。struct2depth模型可以識別前景中的對象,對前景中的行人和樹木都有實(shí)例分割的效果。我們在圖像進(jìn)入模型推斷前加上特征增強(qiáng)的預(yù)處理過程,使得前景輪廓更加明確了。最后,加上預(yù)訓(xùn)練的目標(biāo)識別模塊,可以分割并識別前景中的對象類別。我們還在圖像中添加了方框和文本信息幫助理解,方框標(biāo)出實(shí)例對象,文本標(biāo)注其類別、置信度以及深度估計值。
圖2 結(jié)果對比圖
本文針對目前無監(jiān)督學(xué)習(xí)場景理解算法存在的模型魯棒性不足、未能滿足多任務(wù)需求等問題,提出改進(jìn)的結(jié)合Mask R-CNN的無監(jiān)督學(xué)習(xí)多任務(wù)場景理解方法。我們在結(jié)合相機(jī)自運(yùn)動的深度理解模型基礎(chǔ)上,在數(shù)據(jù)預(yù)處理階段加入了自適應(yīng)對比度增強(qiáng)算法以增強(qiáng)圖片對比度,在目標(biāo)識別階段加入了掩膜以降低靜態(tài)物體或者場景對后續(xù)深度估計造成的干擾,并且更便于觀察深度預(yù)測圖中物體所在位置。實(shí)驗(yàn)結(jié)果表明,本文方法在深度預(yù)估精度上有一定的提高,且對對象的識別更加準(zhǔn)確。但目前存在一部分靜態(tài)目標(biāo)或場景被錯誤識別為對象,如何改善模型以去除這些錯誤識別的對象是我們后續(xù)研究的方向。