本發(fā)明屬于圖像分析識別技術(shù)領(lǐng)域,特別涉及一種基于自然語言語義的圖像目標檢測方法。
背景技術(shù):
圖像目標識別是計算機視覺領(lǐng)域研究的核心任務(wù)之一,近年來隨著深度學習在圖像領(lǐng)域的成功應(yīng)用,目標識別的研究也取得了突破性的進展,檢測的精度相比傳統(tǒng)的方法取得了很大的提高,在某些領(lǐng)域已經(jīng)被商業(yè)化的應(yīng)用到了人們的生活中,比如阿里巴巴的刷臉支付、智能交通道路目標識別等。但是傳統(tǒng)的目標識別方法的識別結(jié)果往往是一些事先定義好的某個類別的物體,比如人臉、車等,而一幅圖像中包含的內(nèi)容遠遠不止一些相互獨立的物體,還包含了物體的屬性、物體的空間關(guān)系、物體的邏輯關(guān)系等信息,這些信息不能夠只用一些類標簽進行描述,而是需要使用自然語言進行描述,這也是更符合人類思維的描述方式。
圖像目標識別任務(wù)包括目標備選集的產(chǎn)生、備選目標的特征抽取、備選目標的分類以及備選目標的位置修正等4個基本子任務(wù),F(xiàn)aster-RCNN模型是傳統(tǒng)目標識別方法的典型代表,該方法利用深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)合RPN網(wǎng)絡(luò)來解決這4個子任務(wù),其中用于產(chǎn)生目標備選集的RPN網(wǎng)絡(luò)本質(zhì)上也是一個深度卷積神經(jīng)網(wǎng)絡(luò),所以整個模型可以以一種端到端的方式進行訓練,相比之前的以不同的方法來分別解決這些子任務(wù)的目標識別方法,F(xiàn)aster-RCNN在訓練的效率以及識別的精度上有了很大的提升,但是Faster-RCNN模型的識別對象仍只是預先定義好類標的物體,并不能結(jié)合自然語言進行目標識別?,F(xiàn)有的結(jié)合自然語言進行目標檢測的方法例如SCRC模型(spatial context recurrent convnet),大部分利用了非深度學習的方法來產(chǎn)生目標備選集,例如選擇性搜索等,然后再用卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶模型(LSTM)分別提取圖像和自然語言的特征進行目標檢測,整個框架不支持端到端的訓練,檢測的效率與精度有待提高。
技術(shù)實現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種基于自然語言語義的圖像目標檢測方法,將Faster-RCNN模型中的分類器模塊替換為處理自然語言信息的LSTM模塊,同時利用Faster-RCNN模型中的RPN網(wǎng)絡(luò)來產(chǎn)生目標備選集,通過結(jié)合目標的自然語言描述進行圖像目標檢測,實現(xiàn)了一種支持端到端計算的網(wǎng)絡(luò)結(jié)構(gòu),提高了目標檢測的效率與精度。
為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種基于自然語言語義的圖像目標檢測方法,包括以下基本步驟:
(1)在ImageNet數(shù)據(jù)集上,訓練Faster-RCNN模塊的Fast-RCNN卷積神經(jīng)網(wǎng)絡(luò)以及RPN網(wǎng)絡(luò)部分;
(2)利用訓練好的Faster-RCNN模塊提取的圖像特征訓練LSTM模塊;
(3)輸入圖像和目標查詢短語到模型中進行圖像目標檢測。即,對于訓練好的模型,給定一個圖像以及要查詢的目標的自然語言短語描述,從圖像中即可檢測出相應(yīng)目標。
上述步驟1的具體過程為:Faster-RCNN網(wǎng)絡(luò)由RPN網(wǎng)絡(luò)和Fast-RCNN網(wǎng)絡(luò)通過共享卷積層組成,采用4步交替訓練來訓練模型,第一步先訓練RPN網(wǎng)絡(luò)。第二步使用RPN網(wǎng)絡(luò)作為目標備選集產(chǎn)生模塊來訓練Fast-RCNN網(wǎng)絡(luò)。第三步將Fast-RCNN的卷積層網(wǎng)絡(luò)權(quán)值賦予RPN網(wǎng)絡(luò)的卷積層,然后固定RPN網(wǎng)絡(luò)的卷積層不變,單獨訓練RPN網(wǎng)絡(luò)的分類層和回歸層。第三步后RPN網(wǎng)絡(luò)和Fast-RCNN網(wǎng)絡(luò)實現(xiàn)了卷積層共享,第四步固定共享卷積層和RPN不變,訓練Fast-RCNN其余的網(wǎng)絡(luò)層。這四步的交替訓練可以迭代進行多次,訓練過程中使用誤差的反向傳播算法計算梯度,使用隨機梯度下降算法更新網(wǎng)絡(luò)權(quán)值。
上述步驟2的具體過程為:訓練LSTM模型的數(shù)據(jù)集為ReferIt數(shù)據(jù)集,訓練樣本是個三元組[I,R,D],其中I表示輸入圖像,R表示圖像上的目標,D表示對目標的描述,一張圖片可以有多個目標,每個目標可以有多個描述,模型訓練的目標是最大化目標區(qū)域產(chǎn)生對應(yīng)自然語言描述的似然函數(shù),表示為損失函數(shù)其中N表示圖片數(shù)目,其中,N表示圖像數(shù)目,Mi表示第i張圖像中的目標數(shù)目,Dij表示第i個圖像的第j個目標的描述短語的個數(shù),Si,j,d表示自然語言描述短語,概率p(Si,j,d|context)就表示了圖像中的目標區(qū)域產(chǎn)生對應(yīng)自然語言描述的條件概率。LSTM模型參數(shù)可以使用在大型語料庫上訓練好的LSTM語言模型的參數(shù)來初始化,然后在ReferIt數(shù)據(jù)集上使用誤差的反向傳播與隨機梯度下降算法來調(diào)整模型的參數(shù)直至達到收斂條件。
上述步驟3的具體過程為:首先將圖像輸入共享卷積神經(jīng)網(wǎng)絡(luò)提取圖像的特征圖,該卷積神經(jīng)網(wǎng)絡(luò)主要由若干的卷積層和池化層構(gòu)成,每個卷積層都用一個卷積核對上一層得到的特征圖做卷積操作,然后將卷積得到的結(jié)果用激活函數(shù)做非線性變化,這里的激活函數(shù)主要使用增強線性單元Relu,其函數(shù)形式為f(x)=max(0,x),將卷積層的計算結(jié)果通過池化層的下采樣操作后就可以得到下一層的特征圖。卷積神經(jīng)網(wǎng)絡(luò)計算的特征圖作為RPN網(wǎng)絡(luò)的輸入,由RPN網(wǎng)絡(luò)計算目標備選集,其中每個備選目標是一個矩形區(qū)域表明可能是物體的目標區(qū)域,一個目標區(qū)域由4個數(shù)值[x,y,w,h]確定,其中x和y表示矩形區(qū)域的左上角坐標,w和h表示區(qū)域的寬和高。目標備選集結(jié)合圖像的特征圖經(jīng)過ROI(Region of interest)池化層可以直接得到備選目標區(qū)域的特征。最后,LSTM模塊將圖像的全局特征、備選區(qū)域的局部特征以及備選區(qū)域的位置信息作為上下文,計算該備選區(qū)域產(chǎn)生目標查詢短語描述的條件概率條件概率最大備選目標區(qū)域就是圖像目標識別的結(jié)果。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
1、使用RPN網(wǎng)絡(luò)來產(chǎn)生目標備選集,通過共享卷積神經(jīng)網(wǎng)絡(luò)使得產(chǎn)生目標備選集的計算代價基本為零。
2、在計算條件概率時引入目標位置以及圖像全局特征等上下文信息,可以提高識別的精度。
3、通過將LSTM模型結(jié)合到Faster-RCNN框架中,使得整個檢測過程可以端到端的計算完成,進一步提高檢測效率。
附圖說明
圖1為本發(fā)明的基于自然語言語義的圖像目標檢測方法流程圖。
具體實施方式
為了更具體地敘述本發(fā)明,下面結(jié)合附圖和具體實施方式對本發(fā)明的技術(shù)方案進行詳細說明。
本發(fā)明如圖1所示,包括如下步驟:
1.在ImageNet數(shù)據(jù)集上訓練Faster-RCNN模塊的共享卷積神經(jīng)網(wǎng)絡(luò)和RPN網(wǎng)絡(luò)部分。
2.使用ReferIt數(shù)據(jù)集中給出的帶目標自然語義標注的圖像數(shù)據(jù)訓練LSTM模型。
3.對于訓練好的模型,給定一個圖像以及要查詢的目標的自然語言短語描述,從圖像中檢測出相應(yīng)目標。
具體地,對于輸入的圖像,首先利用共享卷積神經(jīng)網(wǎng)絡(luò)提取圖像的特征圖,卷積神經(jīng)網(wǎng)絡(luò)由一系列的卷積、激活函數(shù)激活以及池化操作構(gòu)成,其中卷積操作可以表示為其中I表示圖像的像素值,W表示卷積核權(quán)值,進行卷積后使用激活函數(shù)進行非線性變換,常見的激活函數(shù)包括增強線性單元f(x)=max(0,x)、雙曲正切函數(shù)等,池化操作主要進行信息的下采樣,可以通過取最大值或者取平均值的方式進行。為了增加模型的泛化能力,對部分卷積層的計算結(jié)果進行LRN操作(local response normalization),LRN操作可以表示為其中表示第i個卷積核在圖像(x,y)位置的經(jīng)過激活的卷積計算結(jié)果,整個式子相當于對每個卷積核的計算結(jié)果用其相鄰的卷積核計算結(jié)果進行歸一化。
目標備選集的產(chǎn)生由RPN網(wǎng)絡(luò)完成,RPN網(wǎng)絡(luò)在卷積層抽取的特征圖上用滑窗遍歷每個位置,在每個位置生成k個anchor,每個anchor可以理解為一個小矩形區(qū)域,對于每個anchor通過分類層和回歸層分別計算得分與位置坐標,計算的得分表示對應(yīng)anchor屬于目標區(qū)域的概率,在進行檢測時,得分最高的若干個anchor就可以作為目標備選集輸出。RPN網(wǎng)絡(luò)得到的目標備選集可能存在很多重復的目標區(qū)域,可以采用非極大值抑制算法來消除重復的備選目標,該算法以得分最高的目標區(qū)域為準,篩除與之重疊面積較大的備選目標。
在訓練RPN網(wǎng)絡(luò)時,需要將每個anchor分為正樣例和負樣例,區(qū)分方法是將產(chǎn)生的anchor與已知的目標區(qū)域進行比較,如果存在某個已經(jīng)的目標區(qū)域與anchor的重疊率達到某個閾值,通常取0.7,那么就將該anchor歸為正樣本,如果anchor與所有的目標區(qū)域的重疊率都很低,就將該anchor歸為負樣本,正樣本anchor分配類標1,負樣本anchor分配類標0,判斷某個anchor是否為目標區(qū)域就對應(yīng)了一個分類問題。RPN網(wǎng)絡(luò)的任務(wù)可以細分為anchor的分類與位置的預測,可以使用多任務(wù)的損失函數(shù)來同時針對這兩個目標進行訓練,損失函數(shù)表示為其中pi表示網(wǎng)絡(luò)分類輸出,pi*表示anchor實際類標,ti表示網(wǎng)絡(luò)預測的位置,ti*表示已知目標區(qū)域的位置。
RoI池化層使用最大池操作將備選區(qū)域的特征圖轉(zhuǎn)換為一個H×W的固定大小的特征圖,具體的做法是,將大小為w×h的目標備選區(qū)域細分為H×W個子區(qū)域,每個子區(qū)域的大小為然后對每個子區(qū)域內(nèi)的特征值取最大值保留得到H×W的固定大小的特征圖。
得到備選目標區(qū)域的特征圖后,需要計算該目標區(qū)域產(chǎn)生目標查詢短語的條件概率其中si表示查詢語句中第i個單詞的詞向量表示,詞向量表示是指首先根據(jù)詞典將單詞表示為one-hot向量e,然后使用特征矩陣W得到單詞的詞向量表示W(wǎng)×e,其中特征矩陣W的每一行為詞典中每個單詞的特征向量。c表示上下文信息,這里的上下文信息包括查詢圖像的全局特征圖F1,備選目標區(qū)域的局部特征圖F2以及備選目標區(qū)域的位置信息L,將這三者拼接為一個向量表示C=[F1,F2,L],用C初始化LSTM隱藏狀態(tài)的初始值h0和細胞狀態(tài)的初始值C0,計算條件概率p(st|s1,s2,....,st-1,c)可以用公式表示為:
p(st|s1,s2,....,st-1,c)=softmax(ht),其中ht表示t時刻LSTM模型的隱藏狀態(tài)向量,t時刻的隱藏狀態(tài)可由t時刻的細胞狀態(tài)和輸出門計算得到:ht=tanh(Ct)pt,細胞狀態(tài)Ct和輸出門pt的計算可以表示為:
ft=σ(bf+Ufxt+Wfht-1)
gt=σ(bg+Ugxt+Wght-1)
It=tanh(bI+UIxt+WIht-1)
Ct=ftCt-1+gtIt
pt=σ(bp+Upxt+Wpht-1)
公式中的xt表示查詢短語中第t個單詞的詞向量表示st。計算出每個備選目標區(qū)域的條件概率P(S|c)后,取條件概率最大的區(qū)域作為目標檢測的結(jié)果。
以上對本發(fā)明所提供的一種基于自然語言語義的圖像目標檢測方法進行了詳細介紹,本文對本發(fā)明的原理進行了闡述,以上詳細步驟的用于幫助理解本發(fā)明的方法及核心思想;同時,對于本領(lǐng)域的技術(shù)人員,根據(jù)本發(fā)明的思想,在具體的實現(xiàn)方式上均會有變化和改進之處,這些變化和改進均屬于本發(fā)明的保護范圍之內(nèi)。