馬天瑤
摘要:在基于圖像進行家居虛擬設計的應用中,由于圖像缺乏場景的深度信息、物體之間存在相互遮擋等問題,給獲取圖像信息帶來一定的挑戰。該文利用深度學習技術,提出了一種結合卷積神經網絡和循環神經網絡的方法,對室內圖像進行特征提取,實現家具的多標簽標注,以獲取家具的屬性信息,包括種類、位置、顏色和材質等。結果表明,該方法提高了虛擬展示內容的豐富性和精確性,為家居智能交互作了很好的鋪墊。
關鍵詞: 深度學習; 圖像標注; 卷積神經網絡; 循環神經網絡; Faster R-CNN
中圖分類號:TP391 文獻標識碼:A 文章編號: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
隨著互聯網的迅速發展,家居虛擬展示跨越了時空的局限,幫助用戶直觀、全面地了解到室內設計方案,因而被家居行業廣泛接受。近年來,基于圖像進行家居虛擬設計[1]的方法不斷涌現,在一定程度上克服了純3D技術渲染速度慢、模型制作復雜等缺點,且素材豐富、獲取容易。但是,圖像往往缺少一些關鍵信息,如場景的深度信息等。同時,室內圖像中物品之間存在相互遮擋,這些都會給獲取圖像信息帶來一定的挑戰。
本文著力于獲取豐富、準確的圖像信息,利用深度學習技術,設計出一個合理的、高效的解決方案來對室內圖像中的家具進行多標簽標注,以獲取其屬性信息,包括種類、位置、顏色以及材質等,進而降低家居虛擬展示過程的復雜性,并提高虛擬展示的內容豐富性和精確性。
1 基于Faster R-CNN的物體多標簽標注模型
本文將采用卷積神經網絡Faster R-CNN[2]和循環神經網絡GRU[3]結合的方式對室內圖像中的物體進行多標簽多標簽標注。首先,將Faster R-CNN的最后一層與兩個全連接層相連,每個全連接層都使用ReLU[4]和Dropout[5]。然后,把上述生成的圖像特征和Word2vec生成的詞向量特征作為輸入,連接到GRU中。
在訓練GRU時,對于文本,其詞向量標記為。其中,表示區域編碼,對應特定符號
1.1 Faster R-CNN的代價函數
為了減少Fast R-CNN[6]在計算候選區域時所消耗的時間,Faster R-CNN在其基礎上提出了候選區域網絡(Region Proposal Network, RPN)來加以改進,生成region proposal。在最后一層卷積層輸出的feature map上設置了一個滑動窗,該滑動窗與RPN進行全連接。對于滑動窗滑過的每個位置,模型中給定若干個以滑動窗中心為中心、不同尺度與長寬比的anchor,RPN將以每個anchor為基準相應地計算出一個候選區域。候選區域網絡是一個全卷積網絡,網絡的第一層將滑動窗的輸入特征映射到一個較低維的向量,然后將該向量輸入到兩個并列的全連接子層,其中分類層(cls layer)用于輸出該向量對應圖像屬于物體還是背景的概率分布,回歸層(reg layer)用于輸出候選區域的坐標信息。
Faster R-CNN的損失函數可定義為:
其中,i表示第i個anchor,表示預測其是物體的概率,表示預測bounding box的4個參數化坐標。分類損失是一個二值分類器的softmax loss,回歸損失。和是兩個normalization參數,是平衡因子。
對于bounding box的回歸,4個參數化坐標定義如下:
其中,x、y、w、h表示box的中心坐標以及它的寬度和高度,、、分別針對于預測的box、anchor box和實際的box(y、w、h類似)。可以認為是從一個anchor box到一個附近實際的box的bounding box回歸。
1.2 RNN的代價函數
GRU是一般RNN的改良,主要是從以下兩個方面進行改進。一是,序列中不同的位置處的單詞對當前的隱藏層的狀態的影響不同,越前面的影響越小,即每個前面狀態對當前的影響進行了距離加權,距離越遠,權值越小。二是,在產生誤差時,誤差可能是由某一個或者幾個單詞而引發的,所以應當僅僅對對應的單詞權重進行更新。GRU也可以看成是LSTM[]的變種,GRU把LSTM中的forget gate和input gate用update gate來替代。把cell state和隱藏狀態進行合并,在計算當前時刻新信息的方法和LSTM有所不同。具體更新過程如下:
1) 計算reset gate和update gate,分別標記為和。
2) 計算候選隱藏層,和LSTM中的,可以看成是當前時刻的新信息。
3) 計算得到最后輸出的隱藏層信息,與LSTM的區別是GRU中沒有output gate。
其中,用來控制需要保留多少之前的記憶,如果接近0,那么之前的隱藏層信息就會丟棄,只包含當前詞的信息。則控制需要從前一時刻的隱藏層中遺忘多少信息,需要加入多少當前時刻的隱藏層信息,如果接近1,相當于把之前的隱藏層信息拷貝到當前時刻,可以學習長距離依賴。一般來說那些具有短距離依賴的單元reset gate比較活躍,具有長距離依賴的單元update gate比較活躍。
RNN的損失函數通常被定義為交叉熵(cross entropy)。t時刻的損失函數計算如下:
對于大小為T的文本,其損失函數定義如下:
1.3 模型的端到端訓練
為了給模型更多可以根據數據自動調節的空間,增加模型的整體契合度,盡可能使模型從原始輸入到最終輸出實現端到端學習,本文將在圖像標注網絡結構中增加以下兩個層:
1) RoI pooling層
由于RoI的尺寸不固定,為了保證每個RoI的后續工作能夠正常進行,需要有一個RoI pooling層來提取出固定維度的特征表示。RoI pooling的具體實現可以看做是針對RoI區域的普通feature map的max pooling。
2) RoI warping層
為了使得梯度可以反向傳播到坐標上,在RPN之后對region proposal的位置做二次調整,需要在RoI pooling層之前添加可以求導的RoI warping層來將殘差傳遞給bounding box。對于每個RoI,其feature map都會被crop和warp到固定大小,轉換方法如下:
其中,和分別表示warp之前和之后feature map的元素位置。表示長度和寬度兩個方向上的雙線性插值函數乘積。
于是,根據鏈式法則,bounding box的參數導數計算如下:
2 家具多標簽標注訓練方法的總體設計
在家具多標簽標注訓練方法的總體設計中,選擇包含圖像標注的MS COCO[8]作為數據集輸入至網絡模型中進行訓練。
由于研究內容針對室內圖像中的家具,因此,在把數據集輸入至網絡模型之前需要對其做預處理。首先,明確和家具相關的物體類別;然后,遍歷MS COCO中的標注文件,刪除和家具無關的標注信息,即將室外圖像和室內圖像中和家具無關的物體當成負樣本。另外,在之后的訓練過程中,可以進行迭代訓練以提高家具識別的準確率。
在網絡模型訓練過程中,主要有以下三個步驟:
1) 模型搭建。首先,選擇同時支持對CNN和RNN訓練的深度學習框架作為平臺進行模型搭建,然后,根據圖像標注的網絡模型結構設置各層的排列方式,并且定義filter的數量和尺寸以及pooling的方式。最后進行參數初始化以及定義超參數、損失函數和優化方式。這里,超參數包括mini-batch的大小、學習率的大小、正則化的程度以及dropout的比例等。
2) 模型檢查。為了確保模型的正確合理,需要對搭建的模型進行一些檢查,檢查的內容包括:
①梯度檢查
把解析梯度和數值計算梯度進行比較。這里將使用中心化公式近似表示數值計算梯度。
②合理性檢查
對小數據子集過擬合。在整個數據集進行訓練之前,嘗試在一個很小的數據集上進行訓練(比如20個數據),然后確保能到達0的損失值。在這個過程中,最好讓正則化強度為0,不然它會阻止得到0的損失。除非能通過這個正常性檢查,不然進行整個數據集訓練是沒有意義的。
3) 模型跟蹤。在超參數調優時,需要跟蹤一些重要的數值并繪制圖表,從而知道應該如何修改超參數以獲得更高效的學習過程。最后選取表現較好的超參數。這里需要跟蹤的數值包括:
①損失值
繪制損失值隨時間變化的圖表,曲線形狀會給出關于學習率的設置情況。過低的學習率導致算法的改善是線性的;高一些的學習率會看起來呈幾何指數下降;更高的學習率會讓損失值很快下降,但是接著就停在一個不好的損失值上。
②訓練集和驗證集的準確率
繪制訓練集和驗證集的準確率隨時間變化的圖表,訓練集準確率和驗證集準確率中間的空隙指明了模型過擬合的程度。一種可能是,相較于訓練集,驗證集的準確率低了很多,說明模型有很強的過擬合,遇到這種情況,就應該增大正則化強度(更強的L2權重懲罰,更多的隨機失活等)或收集更多的數據;另一種可能是驗證集曲線和訓練集曲線如影隨形,說明模型容量還不夠大,應該增加參數數量。
最后,將室內圖像輸入至合理超參數定義下的已訓練的標注網絡中,得到圖像中包含物體的區域的坐標信息以及對應的物體的屬性信息,完成家具的多標簽標注。
3 結論endprint
在智能家居交互系統中,對圖像家具信息提取的準確性和豐富性成為了系統成型的關鍵。本文研究了卷積神經網絡和循環神經網絡的訓練,并以此設計和實現了基于Faster R-CNN的圖像多標簽標注模型。該方法首次被應用到虛擬家居設計領域中,提高了虛擬展示內容的豐富性和精確性,為家居智能交互作了很好的鋪墊。
參考文獻:
[1] 王海菲, 賈金原, 謝寧. 復雜室內圖像的滅點檢測與箱體重建方法[J]. 計算機科學與探索, 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