一種基于rnn的圖片描述自動生成方法
【技術(shù)領域】
[0001] 本發(fā)明設及人工智能領域,特別設及一種基于的圖片描述自動生成方法。
【背景技術(shù)】
[0002] 自動圖像內(nèi)容描述是人工智能圖像識別近年興起的新技術(shù)。其目的在于通過算 法,自動把一個圖像的內(nèi)容信息,用自然語言表達出來。Show and Tell :A化ural Image Caption Generato;r,0;riol Vinyals 2014,通過先使用深度網(wǎng)絡提取圖像特征,再使用RNN 模型將圖像特征轉(zhuǎn)化為文字描述,提取出圖像的語義信息。但其是對整個圖像進行整體處 理,不能很好地利用圖像中的空間位置的信息。Show,Attend and Tell :Neural Image (^iptionGeneration with Visual Attention,Kelvin Xu 2015,在其之上加入了顯著性檢 測,對圖像的空間信息有一定的利用,但其也只利用了簡單的RN飾莫型,語義的表達力較弱。
【發(fā)明內(nèi)容】
[0003] 為了克服現(xiàn)有技術(shù)的上述缺點與不足,本發(fā)明的目的在于提供一種基于的圖 片描述自動生成方法,可W自動識別,理解用戶上傳的數(shù)碼圖像,并生成人類能理解的自然 句子。
[0004] 本發(fā)明的目的通過W下技術(shù)方案實現(xiàn):
[0005] -種基于的圖片描述自動生成方法,包括W下步驟:
[0006] S1在計算機上進行訓練過程:
[0007] S1.1采集數(shù)據(jù)集:采集日常生活中各類場景里面的圖像作為訓練圖像,每張訓練 圖像帶上一句或多句描述該圖像內(nèi)容的句子;
[000引S1.2使用深度學習網(wǎng)絡,對訓練集的每一張圖片提取圖像特征;
[0009] S1.3詞性篩選:收集四、六級英語單詞的詞匯表,W及每個單詞的詞性;
[0010] 對于每張訓練圖像對應的一個或多個句子進行詞性篩選:對于句子中的每個單 詞,如果單詞在四、六級詞匯表中排第一的詞性是名詞或者動詞,該單詞留下,否則,把該單 詞去掉;使用篩選之后剩下的單詞組成句子作為數(shù)據(jù)庫;
[0011] S1.4將詞語數(shù)據(jù)轉(zhuǎn)換成特征向量:統(tǒng)計出S1.3中的數(shù)據(jù)庫中所有句子中出現(xiàn)的不 同單詞的數(shù)目,加上一個自定義的END字符,句子的總字符數(shù)為η;并對單詞按字母順序進行 排序,每個單詞在序列中的位置作為該單詞的索引位置;由此把每個單詞表示為一個η維的 單詞特征向量,該向量只有在該單詞的索引位置上為1,其他全為零;η為正整數(shù);
[0012 ] S1.5將單詞特征向量和圖像特征向量統(tǒng)一映射到同一維度k的向量;k為正整數(shù); [OOK] S1.6使用LSTM網(wǎng)絡進行訓練:每個訓練樣例為一張訓練圖像和該訓練圖像所對應 的經(jīng)S1.3篩選的句子;每次隨機選擇一張訓練圖像和一個對應的參考句子;
[0014] S1.7將LSTM網(wǎng)絡的輸入和輸出都設為k維向量,在時刻0,把k維的圖像特征向量傳 入LSTM網(wǎng)絡,網(wǎng)絡輸出一個k維向量;然后將輸出的k維向量左乘一個n*k維的矩陣,得到一 個η維向量;向量上第i維的值代表了索引值為i的單詞的可能性;i為正整數(shù);
[001引SI.8使用SI.7得到的η維向量和SI.6中輸入的參考句子的η維向量進行比較,計算 兩個向量的歐式距離,作為LSTM網(wǎng)絡的誤差,使用反向誤差傳播算法,更新網(wǎng)絡參數(shù);
[0016] S2自動生成圖像描述:
[0017] S2.1在互聯(lián)網(wǎng)上捜集自然語言的句子,形成語料庫;
[0018] S2.2對于測試圖像,先使用深度學習網(wǎng)絡對測試圖像提取圖像特征,再使用S1.7 的方法得到η維的可能性單詞向量;根據(jù)η維向量上每一維值的大小,選出可能性最大的單 詞;
[0019] S2.3將步驟S2.2得到的單詞向量再次輸入LSTM網(wǎng)絡中,得到更新后的輸出單詞可 能性向量;不斷重復此過程,直到入LSTM網(wǎng)絡輸出END單詞;
[0020] S2.4將S2.2和S2.3過程中輸出的單詞,按順序組合成一個句子;使用該句子在 S2.1的語料庫中進行匹配,捜索最相近的句子并輸出,生成測試圖像的描述。
[0021 ]步驟S1.5所述將單詞特征向量和圖像特征向量統(tǒng)一映射到同一維度k的向量,具 體為:
[0022 ] 對η維的單詞向量特征左乘W -個k*n的矩陣,對于m維的圖像特征向量,乘W-個 k*m維的矩陣;由此把單詞特征和圖像特征統(tǒng)一到k維;m為正整數(shù)。
[0023] S1.8所述使用S1.7得到的η維向量和S1.6中輸入的參考句子的η維向量進行比較, 計算兩個向量的歐式距離作為LSTM網(wǎng)絡的誤差,使用反向誤差傳播算法,更新網(wǎng)絡參數(shù),具 體為:
[0024] 在輸入第t個單詞時,t小于句子長度1,使用S1.7的方法,向LSTM網(wǎng)絡輸入?yún)⒖季?子中的第t個單詞,得到η維的可能性向量;使用參考句子中的第t+1個單詞作為參考,t+1個 單詞在η維可能性向量的負數(shù)作為誤差,使用反向誤差傳播算法,更新網(wǎng)絡參數(shù);t為正整 數(shù),1為正整數(shù);
[0025] 在輸入第1個單詞時,使用S1.7的方法,向LSTM網(wǎng)絡輸入?yún)⒖季渥又械牡?個單詞, 得到η維的可能性向量;使用S1.4中加入的END單詞作為參考,END單詞在η維可能性向量的 負數(shù)作為誤差,使用反向誤差傳播算法,更新網(wǎng)絡參數(shù)。
[0026] 與現(xiàn)有技術(shù)相比,本發(fā)明具有W下優(yōu)點和有益效果:
[0027] (1)本發(fā)明很好地融合圖像特征和文字特征,放在統(tǒng)一的框架下進行學習和理解, 使圖像信息和文字信息產(chǎn)生互補。
[0028] (2)本發(fā)明充分考慮到自動文字描述圖片的困難性。采用了把句子中的名詞和動 詞保留,去除其他詞性詞語的方法。保留了原來句子的主干部分(名詞和動詞),去掉其他可 能帶來很大干擾的部分,降低了學習的復雜度,得到了較好的效果。
[0029] (3)本發(fā)明通過不斷增加訓練數(shù)據(jù)庫中的圖像和句子,本發(fā)明的性能可W不斷得 到提高,而不需要重新訓練。
[0030] (4)本發(fā)明中使用了互聯(lián)網(wǎng)上的海量信息作為我們的語料庫,使算法可W輸出更 貼近日常語言的話語。
【附圖說明】
[0031] 圖1為本發(fā)明的實施例的基于的圖片描述自動生成方法的流程圖。
【具體實施方式】
[0032]下面結(jié)合實施例,對本發(fā)明作進一步地詳細說明,但本發(fā)明的實施方式不限于此。 [00削實施例
[0034] 本實施例的一種基于的圖片描述自動生成方法,如圖1所示,包括W下步驟:
[0035] S1在計算機上進行訓練過程:
[0036] S1.1采集數(shù)據(jù)集:從ht化://mscoco.org/網(wǎng)站上下載mscoco數(shù)據(jù)庫,該數(shù)據(jù)庫包 含30萬張圖片,每張圖片帶有5個描述圖像內(nèi)容的句子;
[0037] S1 . 2使用深度學習網(wǎng)絡(參照論文ImageNet Classif ication wi th Deep Convolutional Neural Networks ,Alex Krizhevsky, Ilya Sutskever,Geoffrey E Hinton,NIPS 2012.),對訓練集的每一張圖片提取圖像特征;本實施例選用網(wǎng)絡結(jié)構(gòu)的最 后一個全連接層的輸出m = 4096維向量FiER^96作為圖像的特征向量;
[0038] S1.3詞性篩選:收集四、六級英語單詞的詞匯表,W及每個單詞的詞性;
[0039] 對于每張訓練圖像對應的一個或多個句子進行詞性篩選:對于句子中的每個單 詞,如果在四、六級詞匯表中排第一的詞性是名詞或者動詞,該單詞留下,否則,把該單詞去 掉;使用篩選之后剩下的單詞組成句子,