您的位置:首頁>正文

在圖像中標注新的物件

更多騰訊海量技術文章, 請關注雲+社區:https://cloud.tencent.com/developer

給定一個圖像, 人類可以很容易地推斷其中的顯著實體, 並有效地描述場景, 如物件所在的位置(在森林或廚房?), 物件具有什麼屬性(棕色或白色?), 更重要的是, 物體如何與場景中的其他物體(在田野裡奔跑, 或被人等等)相互作用。 視覺描述的任務旨在開發視覺系統, 生成關於圖像中物件的上下文描述。 視覺描述是具有挑戰性的, 因為它不僅需要識別物件(熊), 還需要識別其他視覺元素, 如動作(站立)和屬性(棕色), 並構建一個流暢的句子來描述圖像中的物件,

動作和屬性如何相關(如棕熊站在森林中的一塊岩石上)。

視覺描述的現狀

A

B

圖A

圖B

LRCN [Donahue et al。 '15]:站在鬱鬱蔥蔥的綠色田野上的棕熊。 MS CaptionBot [Tran et al。 '16]:一頭大棕熊走過森林。

LRCN [Donahue et al。 '15]:一隻黑熊站在草地上。 MS CaptionBot [Tran et al。 '16]:一隻正在吃草的熊。

由兩個圖像上的現有資訊產生的描述。 左邊是訓練資料中存在的物件(熊)的圖像。 在右邊是模型在訓練中沒有見過的物件(食蟻獸)。

目前的視覺描述或圖像描述模型工作得很好, 但是它們只能描述在現有圖像描述訓練資料集中看到的物件, 而且他們需要大量的訓練樣例才能生成好的描述。 為了學習如何在上下文中描述諸如“狐狼”或“食蟻獸”的物件,

大多數描述模型需要許多狐狼或食蟻獸圖像的例子以及相應的描述。 然而, 目前的視覺描述資料集, 如MSCOCO, 不包含關於所有物件的描述。 相比之下, 最近通過卷積神經網路(CNN)進行物體識別的作品可以識別數百種物體。 雖然物體識別模型可以識別狐狼和食蟻獸, 但描述模型不能構成句子來正確描述這些動物的上下文。 在我們的工作中, 我們通過構建可以描述新物件的視覺描述系統來克服這個問題, 而不需要關於這些物件的圖像和句子。

任務:描述新的物件

在這裡我們更正式地定義我們的任務。 給定由圖像和描述對(成對圖像 - 句子資料, 例如MSCOCO)組成的資料集以及帶有物件標籤但沒有描述的圖像(不成對的圖像資料,

例如ImageNet), 我們希望學習如何描述未配對的物體圖像 - 句子資料。 要做到這一點, 我們必須建立一個模型, 可以識別不同的視覺成分(例如, 狐狼, 棕色, 站立和田野), 並以新穎的方式組成這些模式, 形成一個連貫的描述。 下面我們描述我們的描述模型的核心元件。

我們的目標是描述不具有說明的訓練圖像的各種物體。

使用外部資料來源

為了針對圖像標題訓練資料之外的不同類別物件能夠標記名稱, 我們利用了外部的資料來源。 具體而言, 我們使用帶有物件標籤的ImageNet圖像作為未配對的圖像資料源, 並將來自未注釋的文本庫(如Wikipedia)的文本作為我們的文本資料來源。 這些用來分別訓練我們的視覺識別CNN和語言模型。

有效地利用外部資源培訓

捕獲語義相似性

我們希望能夠識別出那些沒見過的, 但是與在配對圖像句子訓練資料中看到的物件類似的物件(例如, 來自ImageNet)。 我們使用密集詞嵌入來實現這一點。 詞嵌入是詞的稠密高維表示, 其中具有相似含義的詞在嵌入空間中位置更接近。

在我們以前的作品“深度合成字幕(DCC)”[1]中,我們首先在MSCOCO配對圖像描述資料集上訓練描述模型。然後,為了描述新的物件,對於每個新穎的物件(例如okapi),我們使用詞嵌入來識別MSCOCO資料集(在這種情況下是斑馬)中的物件之間最相似的物件。然後,我們將從見過的物件提煉出的參數轉移(複製)到沒見過的物件(例如,複製網路上關於斑馬的重量給霍加皮)。

給新的物件加說明

雖然DCC模型能夠描述幾個沒見過的物件類別,但是將參數從一個物件複製到另一個物件卻非常地生硬死板。例如,對於“球拍”,這個詞就是複製了“網球”的權重作用,從而導致諸如“一個人在球場上打球拍”的句子。在我們最近的工作[2]中,我們直接在語言模型使用詞嵌入。具體來說,我們在語言模型的輸入和輸出中使用GloVe嵌入(https://nlp.stanford.edu/projects/glove/)。這使模型能夠在描述沒見過的物件時捕獲語義相似性。這使得我們的模型能夠生成句子,例如“網球員在揮動球拍擊球”。另外,直接在網路中使用密集詞嵌入使得我們的模型是端到端的可訓練的。

將密集詞嵌入整合到語言模型中以捕獲語義相似性。

在神經網路中的描述模型和遺忘。

我們將視覺網路和語言模型的輸出結合到描述模型。該模型與現有的在ImageNet上預先訓練過的描述模型相似。然而,我們觀察到,雖然模型是在ImageNet上預先訓練好的,但是當模型在COCO圖像 - 描述資料集上進行訓練/調整時,往往會忘記之前看到的內容。蒙特利爾的研究人員以及Google DeepMind等人也觀察到了神經網路中關於遺忘的問題。在我們的工作中,我們使用聯合培訓策略解決了遺忘的問題。

分享特徵和針對不同的資料/任務的聯合訓練來克服“遺忘”

具體來說,我們的網路有三個組成部分:視覺識別網路,描述模型和語言模型。這三個部分共用資料,並協同訓練。在訓練期間,每批輸入包含一些帶有標籤的圖像,一組不同的圖像和標題以及一些簡單的句子。這三類輸入資料訓練網路中的不同部分。由於資料在三個部分之間是共用的,所以這個網路就被訓練出可以識別圖像中的物件,描述圖像和生成句子。這種聯合訓練有助於網路克服遺忘問題,並使模型能夠產生對許多新物件類別的描述。

下一步是什麼?

在我們的模型中最常見的錯誤之一就是無法識別物件,而減少這種情況的方式是使用更好的視覺特徵。另一個常見的錯誤來自生成不流利的句子(一隻貓和一隻貓在床上),或者不符合“常識”(例如,“一個女人正在玩體操”不是特別正確,因為一個人不能玩“ “體操”)。開發可以克服這些問題的解決方案將是有趣的。

在這項工作中,我們提出聯合訓練作為克服遺忘問題的一種策略,但可能我們並不總能有許多不同的任務和資料集來訓練。解決這個問題的另一種方法是建立一個模型,可以學習根據視覺資訊和物件標籤來組合描述。這樣一個模型也應該能夠即時整合物件,也就是說,我們現在預先在一組選定的物件上訓練模型,我們也應該考慮如何針對新資料進行對模型進行逐步的訓練。解決這些問題可以幫助開發更好、更穩定的視覺描述模型。

本博客文章基於以下研究論文:

[1] LA Hendricks,S. Venugopalan,M. Rohrbach,R. Mooney,K. Saenko和T. Darrell。深層成分字幕:描述新的物件類別,沒有配對的訓練資料。在CVPR,2016。

[2] S. Venugopalan,LA Hendricks,M. Rohrbach,R. Mooney,K. Saenko和T. Darrell。字幕與不同的物件的圖像。在CVPR,2017。

翻譯人:胡文翠,該成員來自雲+社區翻譯社

原文連結:http://bair.berkeley.edu/blog/2017/08/08/novel-object-captioning/?

utm_campaign=Artificial%2BIntelligence%2BWeekly&utm_medium=web&utm_source=Artificial_Intelligence_Weekly_67

原文作者:Subhashini Venugopalan and Lisa Anne Hendricks

其中具有相似含義的詞在嵌入空間中位置更接近。

在我們以前的作品“深度合成字幕(DCC)”[1]中,我們首先在MSCOCO配對圖像描述資料集上訓練描述模型。然後,為了描述新的物件,對於每個新穎的物件(例如okapi),我們使用詞嵌入來識別MSCOCO資料集(在這種情況下是斑馬)中的物件之間最相似的物件。然後,我們將從見過的物件提煉出的參數轉移(複製)到沒見過的物件(例如,複製網路上關於斑馬的重量給霍加皮)。

給新的物件加說明

雖然DCC模型能夠描述幾個沒見過的物件類別,但是將參數從一個物件複製到另一個物件卻非常地生硬死板。例如,對於“球拍”,這個詞就是複製了“網球”的權重作用,從而導致諸如“一個人在球場上打球拍”的句子。在我們最近的工作[2]中,我們直接在語言模型使用詞嵌入。具體來說,我們在語言模型的輸入和輸出中使用GloVe嵌入(https://nlp.stanford.edu/projects/glove/)。這使模型能夠在描述沒見過的物件時捕獲語義相似性。這使得我們的模型能夠生成句子,例如“網球員在揮動球拍擊球”。另外,直接在網路中使用密集詞嵌入使得我們的模型是端到端的可訓練的。

將密集詞嵌入整合到語言模型中以捕獲語義相似性。

在神經網路中的描述模型和遺忘。

我們將視覺網路和語言模型的輸出結合到描述模型。該模型與現有的在ImageNet上預先訓練過的描述模型相似。然而,我們觀察到,雖然模型是在ImageNet上預先訓練好的,但是當模型在COCO圖像 - 描述資料集上進行訓練/調整時,往往會忘記之前看到的內容。蒙特利爾的研究人員以及Google DeepMind等人也觀察到了神經網路中關於遺忘的問題。在我們的工作中,我們使用聯合培訓策略解決了遺忘的問題。

分享特徵和針對不同的資料/任務的聯合訓練來克服“遺忘”

具體來說,我們的網路有三個組成部分:視覺識別網路,描述模型和語言模型。這三個部分共用資料,並協同訓練。在訓練期間,每批輸入包含一些帶有標籤的圖像,一組不同的圖像和標題以及一些簡單的句子。這三類輸入資料訓練網路中的不同部分。由於資料在三個部分之間是共用的,所以這個網路就被訓練出可以識別圖像中的物件,描述圖像和生成句子。這種聯合訓練有助於網路克服遺忘問題,並使模型能夠產生對許多新物件類別的描述。

下一步是什麼?

在我們的模型中最常見的錯誤之一就是無法識別物件,而減少這種情況的方式是使用更好的視覺特徵。另一個常見的錯誤來自生成不流利的句子(一隻貓和一隻貓在床上),或者不符合“常識”(例如,“一個女人正在玩體操”不是特別正確,因為一個人不能玩“ “體操”)。開發可以克服這些問題的解決方案將是有趣的。

在這項工作中,我們提出聯合訓練作為克服遺忘問題的一種策略,但可能我們並不總能有許多不同的任務和資料集來訓練。解決這個問題的另一種方法是建立一個模型,可以學習根據視覺資訊和物件標籤來組合描述。這樣一個模型也應該能夠即時整合物件,也就是說,我們現在預先在一組選定的物件上訓練模型,我們也應該考慮如何針對新資料進行對模型進行逐步的訓練。解決這些問題可以幫助開發更好、更穩定的視覺描述模型。

本博客文章基於以下研究論文:

[1] LA Hendricks,S. Venugopalan,M. Rohrbach,R. Mooney,K. Saenko和T. Darrell。深層成分字幕:描述新的物件類別,沒有配對的訓練資料。在CVPR,2016。

[2] S. Venugopalan,LA Hendricks,M. Rohrbach,R. Mooney,K. Saenko和T. Darrell。字幕與不同的物件的圖像。在CVPR,2017。

翻譯人:胡文翠,該成員來自雲+社區翻譯社

原文連結:http://bair.berkeley.edu/blog/2017/08/08/novel-object-captioning/?

utm_campaign=Artificial%2BIntelligence%2BWeekly&utm_medium=web&utm_source=Artificial_Intelligence_Weekly_67

原文作者:Subhashini Venugopalan and Lisa Anne Hendricks

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示