華文網

在圖像中標注新的物件

更多騰訊海量技術文章,請關注雲+社區: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

這些用來分別訓練我們的視覺識別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