馬天瑤
摘要:在基于圖像進(jìn)行家居虛擬設(shè)計(jì)的應(yīng)用中,由于圖像缺乏場(chǎng)景的深度信息、物體之間存在相互遮擋等問題,給獲取圖像信息帶來一定的挑戰(zhàn)。該文利用深度學(xué)習(xí)技術(shù),提出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)的方法,對(duì)室內(nèi)圖像進(jìn)行特征提取,實(shí)現(xiàn)家具的多標(biāo)簽標(biāo)注,以獲取家具的屬性信息,包括種類、位置、顏色和材質(zhì)等。結(jié)果表明,該方法提高了虛擬展示內(nèi)容的豐富性和精確性,為家居智能交互作了很好的鋪墊。
關(guān)鍵詞: 深度學(xué)習(xí); 圖像標(biāo)注; 卷積神經(jīng)網(wǎng)絡(luò); 循環(huán)神經(jīng)網(wǎng)絡(luò); Faster R-CNN
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)35-0219-03
A Method of Dense Furniture Caption for Indoor Images
MA Tian-yao
(School of Software Engineering, Tongji University, Shanghai 201804, China)
Abstract: In the application of image-based virtual house design system, it becomes a huge challenge to obtaining rich information from images because of some problems such as the lack of scene depth and the occlusion between objects. With the development of deep learning, this paper proposes a method of dense furniture caption for indoor images, which combines CNN and RNN to extract features. It can get multiple information of furniture, such as classification, location, color, material, etc. The result indicates that the method improves the richness and accuracy of furniture information, which makes a great contribution to virtual house design system.
Key words: deep learning; image caption; CNN; RNN; Faster R-CNN
隨著互聯(lián)網(wǎng)的迅速發(fā)展,家居虛擬展示跨越了時(shí)空的局限,幫助用戶直觀、全面地了解到室內(nèi)設(shè)計(jì)方案,因而被家居行業(yè)廣泛接受。近年來,基于圖像進(jìn)行家居虛擬設(shè)計(jì)[1]的方法不斷涌現(xiàn),在一定程度上克服了純3D技術(shù)渲染速度慢、模型制作復(fù)雜等缺點(diǎn),且素材豐富、獲取容易。但是,圖像往往缺少一些關(guān)鍵信息,如場(chǎng)景的深度信息等。同時(shí),室內(nèi)圖像中物品之間存在相互遮擋,這些都會(huì)給獲取圖像信息帶來一定的挑戰(zhàn)。
本文著力于獲取豐富、準(zhǔn)確的圖像信息,利用深度學(xué)習(xí)技術(shù),設(shè)計(jì)出一個(gè)合理的、高效的解決方案來對(duì)室內(nèi)圖像中的家具進(jìn)行多標(biāo)簽標(biāo)注,以獲取其屬性信息,包括種類、位置、顏色以及材質(zhì)等,進(jìn)而降低家居虛擬展示過程的復(fù)雜性,并提高虛擬展示的內(nèi)容豐富性和精確性。
1 基于Faster R-CNN的物體多標(biāo)簽標(biāo)注模型
本文將采用卷積神經(jīng)網(wǎng)絡(luò)Faster R-CNN[2]和循環(huán)神經(jīng)網(wǎng)絡(luò)GRU[3]結(jié)合的方式對(duì)室內(nèi)圖像中的物體進(jìn)行多標(biāo)簽多標(biāo)簽標(biāo)注。首先,將Faster R-CNN的最后一層與兩個(gè)全連接層相連,每個(gè)全連接層都使用ReLU[4]和Dropout[5]。然后,把上述生成的圖像特征和Word2vec生成的詞向量特征作為輸入,連接到GRU中。
在訓(xùn)練GRU時(shí),對(duì)于文本,其詞向量標(biāo)記為。其中,表示區(qū)域編碼,對(duì)應(yīng)特定符號(hào)
1.1 Faster R-CNN的代價(jià)函數(shù)
為了減少Fast R-CNN[6]在計(jì)算候選區(qū)域時(shí)所消耗的時(shí)間,F(xiàn)aster R-CNN在其基礎(chǔ)上提出了候選區(qū)域網(wǎng)絡(luò)(Region Proposal Network, RPN)來加以改進(jìn),生成region proposal。在最后一層卷積層輸出的feature map上設(shè)置了一個(gè)滑動(dòng)窗,該滑動(dòng)窗與RPN進(jìn)行全連接。對(duì)于滑動(dòng)窗滑過的每個(gè)位置,模型中給定若干個(gè)以滑動(dòng)窗中心為中心、不同尺度與長(zhǎng)寬比的anchor,RPN將以每個(gè)anchor為基準(zhǔn)相應(yīng)地計(jì)算出一個(gè)候選區(qū)域。候選區(qū)域網(wǎng)絡(luò)是一個(gè)全卷積網(wǎng)絡(luò),網(wǎng)絡(luò)的第一層將滑動(dòng)窗的輸入特征映射到一個(gè)較低維的向量,然后將該向量輸入到兩個(gè)并列的全連接子層,其中分類層(cls layer)用于輸出該向量對(duì)應(yīng)圖像屬于物體還是背景的概率分布,回歸層(reg layer)用于輸出候選區(qū)域的坐標(biāo)信息。
Faster R-CNN的損失函數(shù)可定義為:
其中,i表示第i個(gè)anchor,表示預(yù)測(cè)其是物體的概率,表示預(yù)測(cè)bounding box的4個(gè)參數(shù)化坐標(biāo)。分類損失是一個(gè)二值分類器的softmax loss,回歸損失。和是兩個(gè)normalization參數(shù),是平衡因子。
對(duì)于bounding box的回歸,4個(gè)參數(shù)化坐標(biāo)定義如下:
其中,x、y、w、h表示box的中心坐標(biāo)以及它的寬度和高度,、、分別針對(duì)于預(yù)測(cè)的box、anchor box和實(shí)際的box(y、w、h類似)??梢哉J(rèn)為是從一個(gè)anchor box到一個(gè)附近實(shí)際的box的bounding box回歸。
1.2 RNN的代價(jià)函數(shù)
GRU是一般RNN的改良,主要是從以下兩個(gè)方面進(jìn)行改進(jìn)。一是,序列中不同的位置處的單詞對(duì)當(dāng)前的隱藏層的狀態(tài)的影響不同,越前面的影響越小,即每個(gè)前面狀態(tài)對(duì)當(dāng)前的影響進(jìn)行了距離加權(quán),距離越遠(yuǎn),權(quán)值越小。二是,在產(chǎn)生誤差時(shí),誤差可能是由某一個(gè)或者幾個(gè)單詞而引發(fā)的,所以應(yīng)當(dāng)僅僅對(duì)對(duì)應(yīng)的單詞權(quán)重進(jìn)行更新。GRU也可以看成是LSTM[]的變種,GRU把LSTM中的forget gate和input gate用update gate來替代。把cell state和隱藏狀態(tài)進(jìn)行合并,在計(jì)算當(dāng)前時(shí)刻新信息的方法和LSTM有所不同。具體更新過程如下:
1) 計(jì)算reset gate和update gate,分別標(biāo)記為和。
2) 計(jì)算候選隱藏層,和LSTM中的,可以看成是當(dāng)前時(shí)刻的新信息。
3) 計(jì)算得到最后輸出的隱藏層信息,與LSTM的區(qū)別是GRU中沒有output gate。
其中,用來控制需要保留多少之前的記憶,如果接近0,那么之前的隱藏層信息就會(huì)丟棄,只包含當(dāng)前詞的信息。則控制需要從前一時(shí)刻的隱藏層中遺忘多少信息,需要加入多少當(dāng)前時(shí)刻的隱藏層信息,如果接近1,相當(dāng)于把之前的隱藏層信息拷貝到當(dāng)前時(shí)刻,可以學(xué)習(xí)長(zhǎng)距離依賴。一般來說那些具有短距離依賴的單元reset gate比較活躍,具有長(zhǎng)距離依賴的單元update gate比較活躍。
RNN的損失函數(shù)通常被定義為交叉熵(cross entropy)。t時(shí)刻的損失函數(shù)計(jì)算如下:
對(duì)于大小為T的文本,其損失函數(shù)定義如下:
1.3 模型的端到端訓(xùn)練
為了給模型更多可以根據(jù)數(shù)據(jù)自動(dòng)調(diào)節(jié)的空間,增加模型的整體契合度,盡可能使模型從原始輸入到最終輸出實(shí)現(xiàn)端到端學(xué)習(xí),本文將在圖像標(biāo)注網(wǎng)絡(luò)結(jié)構(gòu)中增加以下兩個(gè)層:
1) RoI pooling層
由于RoI的尺寸不固定,為了保證每個(gè)RoI的后續(xù)工作能夠正常進(jìn)行,需要有一個(gè)RoI pooling層來提取出固定維度的特征表示。RoI pooling的具體實(shí)現(xiàn)可以看做是針對(duì)RoI區(qū)域的普通feature map的max pooling。
2) RoI warping層
為了使得梯度可以反向傳播到坐標(biāo)上,在RPN之后對(duì)region proposal的位置做二次調(diào)整,需要在RoI pooling層之前添加可以求導(dǎo)的RoI warping層來將殘差傳遞給bounding box。對(duì)于每個(gè)RoI,其feature map都會(huì)被crop和warp到固定大小,轉(zhuǎn)換方法如下:
其中,和分別表示warp之前和之后feature map的元素位置。表示長(zhǎng)度和寬度兩個(gè)方向上的雙線性插值函數(shù)乘積。
于是,根據(jù)鏈?zhǔn)椒▌t,bounding box的參數(shù)導(dǎo)數(shù)計(jì)算如下:
2 家具多標(biāo)簽標(biāo)注訓(xùn)練方法的總體設(shè)計(jì)
在家具多標(biāo)簽標(biāo)注訓(xùn)練方法的總體設(shè)計(jì)中,選擇包含圖像標(biāo)注的MS COCO[8]作為數(shù)據(jù)集輸入至網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練。
由于研究?jī)?nèi)容針對(duì)室內(nèi)圖像中的家具,因此,在把數(shù)據(jù)集輸入至網(wǎng)絡(luò)模型之前需要對(duì)其做預(yù)處理。首先,明確和家具相關(guān)的物體類別;然后,遍歷MS COCO中的標(biāo)注文件,刪除和家具無(wú)關(guān)的標(biāo)注信息,即將室外圖像和室內(nèi)圖像中和家具無(wú)關(guān)的物體當(dāng)成負(fù)樣本。另外,在之后的訓(xùn)練過程中,可以進(jìn)行迭代訓(xùn)練以提高家具識(shí)別的準(zhǔn)確率。
在網(wǎng)絡(luò)模型訓(xùn)練過程中,主要有以下三個(gè)步驟:
1) 模型搭建。首先,選擇同時(shí)支持對(duì)CNN和RNN訓(xùn)練的深度學(xué)習(xí)框架作為平臺(tái)進(jìn)行模型搭建,然后,根據(jù)圖像標(biāo)注的網(wǎng)絡(luò)模型結(jié)構(gòu)設(shè)置各層的排列方式,并且定義filter的數(shù)量和尺寸以及pooling的方式。最后進(jìn)行參數(shù)初始化以及定義超參數(shù)、損失函數(shù)和優(yōu)化方式。這里,超參數(shù)包括mini-batch的大小、學(xué)習(xí)率的大小、正則化的程度以及dropout的比例等。
2) 模型檢查。為了確保模型的正確合理,需要對(duì)搭建的模型進(jìn)行一些檢查,檢查的內(nèi)容包括:
①梯度檢查
把解析梯度和數(shù)值計(jì)算梯度進(jìn)行比較。這里將使用中心化公式近似表示數(shù)值計(jì)算梯度。
②合理性檢查
對(duì)小數(shù)據(jù)子集過擬合。在整個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練之前,嘗試在一個(gè)很小的數(shù)據(jù)集上進(jìn)行訓(xùn)練(比如20個(gè)數(shù)據(jù)),然后確保能到達(dá)0的損失值。在這個(gè)過程中,最好讓正則化強(qiáng)度為0,不然它會(huì)阻止得到0的損失。除非能通過這個(gè)正常性檢查,不然進(jìn)行整個(gè)數(shù)據(jù)集訓(xùn)練是沒有意義的。
3) 模型跟蹤。在超參數(shù)調(diào)優(yōu)時(shí),需要跟蹤一些重要的數(shù)值并繪制圖表,從而知道應(yīng)該如何修改超參數(shù)以獲得更高效的學(xué)習(xí)過程。最后選取表現(xiàn)較好的超參數(shù)。這里需要跟蹤的數(shù)值包括:
①損失值
繪制損失值隨時(shí)間變化的圖表,曲線形狀會(huì)給出關(guān)于學(xué)習(xí)率的設(shè)置情況。過低的學(xué)習(xí)率導(dǎo)致算法的改善是線性的;高一些的學(xué)習(xí)率會(huì)看起來呈幾何指數(shù)下降;更高的學(xué)習(xí)率會(huì)讓損失值很快下降,但是接著就停在一個(gè)不好的損失值上。
②訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率
繪制訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率隨時(shí)間變化的圖表,訓(xùn)練集準(zhǔn)確率和驗(yàn)證集準(zhǔn)確率中間的空隙指明了模型過擬合的程度。一種可能是,相較于訓(xùn)練集,驗(yàn)證集的準(zhǔn)確率低了很多,說明模型有很強(qiáng)的過擬合,遇到這種情況,就應(yīng)該增大正則化強(qiáng)度(更強(qiáng)的L2權(quán)重懲罰,更多的隨機(jī)失活等)或收集更多的數(shù)據(jù);另一種可能是驗(yàn)證集曲線和訓(xùn)練集曲線如影隨形,說明模型容量還不夠大,應(yīng)該增加參數(shù)數(shù)量。
最后,將室內(nèi)圖像輸入至合理超參數(shù)定義下的已訓(xùn)練的標(biāo)注網(wǎng)絡(luò)中,得到圖像中包含物體的區(qū)域的坐標(biāo)信息以及對(duì)應(yīng)的物體的屬性信息,完成家具的多標(biāo)簽標(biāo)注。
3 結(jié)論endprint
在智能家居交互系統(tǒng)中,對(duì)圖像家具信息提取的準(zhǔn)確性和豐富性成為了系統(tǒng)成型的關(guān)鍵。本文研究了卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并以此設(shè)計(jì)和實(shí)現(xiàn)了基于Faster R-CNN的圖像多標(biāo)簽標(biāo)注模型。該方法首次被應(yīng)用到虛擬家居設(shè)計(jì)領(lǐng)域中,提高了虛擬展示內(nèi)容的豐富性和精確性,為家居智能交互作了很好的鋪墊。
參考文獻(xiàn):
[1] 王海菲, 賈金原, 謝寧. 復(fù)雜室內(nèi)圖像的滅點(diǎn)檢測(cè)與箱體重建方法[J]. 計(jì)算機(jī)科學(xué)與探索, 2016, 10(5).
[2] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016:1-1.
[3] Cho K, Merrienboer B V, Gulcehre C, et al. Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation[J]. Computer Science, 2014.
[4] Glorot X, Bordes A, Bengio Y. Deep Sparse Rectifier Neural Networks[C]. International Conference on Artificial Intelligence and Statistics. 2011.
[5] Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1):1929-1958.
[6] Girshick R. Fast R-CNN[J]. Computer Science, 2015.
[7] Hochreiter S, Schmidhuber J. Long Short-Term Memory[J]. Neural Computation, 1997, 9(8):1735.
[8] Lin T Y, Maire M, Belongie S, et al. Microsoft COCO: Common Objects in Context[J]. 2014, 8693:740-755.endprint