NEIL: Extracting Visual Knowledge from Web Data
知識圖譜總結
常識知識圖譜:
Cyc:An introduction to the syntax and content of cyc
ConceptNet:“Conceptnet—a practical commonsense reasoning tool
NEIL: Extracting Visual Knowledge from Web Data
- 知識圖譜總結
- 背景
- 動機
- NEIL可行原因:
- 貢獻
- 相關工作
- 3、技術方法
- 3.1 通過谷歌圖像搜索的種子分類器
- 3.2 關系抽取
- 3.3 通過標記新實例進行再訓練
- 實驗細節
- 4、實驗結果
- 4.1 NEIL的統計數據
- 4.2 定性細節
- 4.3 通過人體受試者評估質量
- 4.4 運用知識完成視覺任務
背景
提出了NEIL(永無休止的圖像學者),一個每天24小時,每周7天運行的計算機程序,自動從互聯網數據中提取視覺知識。NEIL使用一種半監督學習算法來共同發現常識關系(例如,“Corolla是一種/看起來類似于Car”,“Wheel是Car的一部分”),并給給定的視覺類別的實例標上標簽,這是一個嘗試開發世界上最大的可視化結構化知識庫,以最少的人力標記工作。截至2013年10月10日,NEIL已經在200個核心集群(超過350K CPU小時)上連續運行了2.5個月,擁有1152個對象類別、1034個場景類別和87個屬性的本體。在此期間,NEIL發現了1700多個關系,標記了400K多個可視化實例。
動機
計算機視覺最近的成功主要歸功于視覺知識的不斷增長,如場景、物體、動作、屬性以及它們之間的上下文關系等。但當我們繼續前進時,一個關鍵的問題出現了:我們如何在一個巨大的規模上收集這些結構化的視覺知識?最近的嘗試如ImageNet和Visipedia試圖利用人類智能來完成這項任務,我們認為這類方法缺乏收集大量視覺知識所需的豐富性和可伸縮性。ImageNet中只有7%的數據有邊界框,關系仍然通過Wordnet提取。本文提出了一種從互聯網規模數據中自動提取視覺知識的方法,從圖像和視頻中自動提取知識的可行性本身取決于計算機視覺的技術水平。雖然我們已經見證了檢測和識別任務的重大進展,但要自動提取給定圖像的語義內容,我們還有很長的路要走。那么,真的有可能使用現有的方法直接從網絡數據中收集視覺知識嗎?
1.1 NEIL:一個每天24小時,每周7天運行的計算機程序。為了(1)語義理解網絡上的圖像
(2)利用語義理解,用新的標記實例和常識關系來拓展其知識庫(3)使用這個數據集和這些關系構建更好的分類器和檢測器,反過來有助于提高語義理解。
NEIL是一個受約束的半監督學習系統,利用大規模的視覺數據來自動提取常識關系,然后用這些關系來標記現有類別的視覺實例,是一種嘗試以最少的人力開發世界上最大的視覺結構化知識庫(反應互聯網上圖像的事實內容的知識庫,這將對許多計算機視覺和人工智能工作有用)。
NEIL可以使用web數據提取(1)帶有邊界框的對象類別的標記實例(2)已標記的場景實例(3)標記屬性的例子(4)物體類別的可視子類(5)關于場景、物體和屬性的常識關系。
NEIL可行原因:
(1)宏觀視野vs.微觀視野:
“微觀視野”這個術語來指代傳統范式:輸入是一張圖像,輸出是從圖像中提取的一些信息。
“宏觀視野”定義為一種范式:輸入是大量圖像,所需的輸出是在視覺數據中提取重要或有趣的模式(例如,在賽道上經常檢測到汽車)。這些模式幫助我們提取常識關系。
注意,關鍵的區別在于,宏觀視覺不需要我們理解語料庫中的每一幅圖像,并提取出所有可能的模式。相反,它依賴于理解一些圖像,并從統計上結合這些證據來建立我們的視覺知識。
(2)視覺世界的結構:利用視覺世界的結構,建立了檢測和分類的約束,這些全局約束以類別之間的常識關系表示,大多數以前的工作使用手工定義的關系或在監督設置中學習關系。我們的關鍵見解是,在大范圍內,人們可以在聯合半監督學習框架中同時標記可視化實例和提取常識關系。
(3)語義驅動知識獲取,對視覺知識使用語義表示,基于語義類別對視覺數據進行分組,并建立語義類別之間的關系,這允許使用基于文本的索引工具來初始化可視化知識庫學習。
貢獻
(1)提出了一種通過宏觀視野從互聯網上收集視覺知識的永不停歇的學習算法。在一個200核的集群上,NEIL已經連續運行了2.5個月;
(2)正在自動地建立一個大型的可視化結構化知識庫,它不僅包括場景、對象和屬性的標記實例,還包括它們之間的關系。雖然NEIL的核心SSL算法使用固定的詞匯表,但也使用來自NELL本體的名詞短語來增加我們的詞匯表。目前,我們不斷增長的知識庫擁有1152個對象類別、1034個場景類別和87個屬性的本體。NEIL已經發現了1700多種關系,并標記了這些類別的400K多個可視化實例。
(3)我們展示了在巨大的規模下聯合發現關系和標記實例如何為改善半監督學習提供約束。
相關工作
近年來的研究主要集中在以大數據集的形式提取知識進行識別和分類。
構建數據集常用的方法是由積極的團隊或者群體的力量進行手動注釋,為了最大限度地減少人工工作量,最近的研究也集中在主動學習,主動學習選擇最有信息的標簽請求。然而,這兩個方向都有一個主要的限制:注釋代價昂貴,容易出錯。有偏差而且不能伸縮。
另一種方法是使用視覺識別從互聯網上自動提取這些數據集。自動創建數據集最常用的一種方法是使用圖像搜索結果,并通過視覺分類器或是文本和視覺空間中的某種形式的聯合聚類對其進行重新排序。另一種使用半監督框架,少量標記數據和大量未標記數據一起使用,來學習可靠和健壯的可視化模型,這些種子圖像可以手動標記或者基于文本搜索的手動檢索。
自動化方法的問題是少量的標記實例或圖像搜索結果不能為學習魯棒的視覺分類器提供足夠的約束,這些方法存在著語義偏移(避免語義偏移的一種方法是利用基于可視數據的附加約束:基于視覺相似度、語義相似度或者多個特征空間,這些約束在本質上是弱的,視覺相似性僅僅建模了視覺相似的圖像應該受到相同的標簽的約束,另一方面,我們的視覺世界是高度結構化的,物體種類共享部分屬性,對象和場景有很強的上下文關系),因此需要一種方法來捕捉視覺世界的豐富結構,并且在半監督學習中利用這種結構。
近年來通過上下文關系建模我們視覺世界的豐富結構方面取得了巨大的進步,所有的這些關系可以提供豐富的約束,這些約束可以幫助改進SSL。但是最大的問題是如何獲得這些關系。
一種是通過文本分析的方法,然而正如已經指出的那樣,我們需要獲得的視覺知識如此明顯,以至于沒有人會花時間把它寫下來并放到網上。
在這項工作中,我們認為在大規模情況下,人們可以共同發現關系和約束SSL問題來提取視覺知識和學習視覺分類器和檢測器。根據基于文本的永不停息的學習算法,我們提出一種永不停息的視覺學習算法,該算法在提取全局關系、標記數據和學習分類器、檢測器之間循環,用于從互聯網構建視覺知識,我們的工作也與屬性發現有關。在我們的示例中,只關注語義屬性,目標是發現語義關系并對可視化實例進行語義標記。
3、技術方法
我們的目標是從網絡上的視覺數據池中提取視覺知識。
視覺知識定義為任何有助于提高視覺任務(如圖像理解和物體/場景識別)的信息。
視覺知識的一種形式是標記不同類別或標記段/邊界的例子。標記的例子幫助我們學習分類器或檢測器,并提高圖像理解能力。另一個視覺知識的例子是關系。例如,空間上下文關系可以用來提高物體識別的能力。本文將視覺知識表示為語義類別的標注實例以及語義類別之間的關系。
我們的知識庫由以下的例子組成:(1)對象(如Car, Corolla);(2)場景(如Alley、Church);(3)屬性(如藍色、現代)。注意,基于對象,我們學習檢測器,對于場景,我們構建分類器,然而在本文的其他部分,我們將交替使用術語檢測器和分類器。知識庫中包含四種關系:(1) Object-Object (e.g., Wheel is a part of Car);(2) Object-Attribute (e.g., Sheep is/has White);(3) Scene-Object (e.g., Car is found in Raceway); (4) Scene-Attribute (e.g., Alley is/has Narrow).
方法概要如圖所示:
使用谷歌搜索來下載每個對象、場景和屬性類別的數千張圖像,然后我們的方法使用一種迭代方法來清理標簽,并以半監督的方式訓練檢測器、分類器。
對于一個給定的概念(如汽車),首先使用基于范例的聚類方法發現潛在的視覺子類別和這些子類別的邊界框。然后使用聚類和定位的結果訓練一個概念的多個檢測器(每個子類別一個檢測器)。然后這些檢測器和分類器用于對數百萬幅圖像進行檢測,學習基于共發生統計的關系。
在這里,我們利用了我們對宏觀視角感興趣的事實,因此只使用自信檢測/分類構建共現統計。一旦我們有了關系,我們將它們與我們的分類器和檢測器一起使用來標記大量的噪聲圖像(第3.3節)。將最有信心的標記圖像添加到標記數據池中,并用于重新訓練模型,這個過程會不斷重復。在每次迭代中,我們學習更好的分類器和檢測器,這反過來幫助我們學習更多的關系,并進一步約束半監督學習問題。下面詳細描述每個步驟。
3.1 通過谷歌圖像搜索的種子分類器
半監督算法的第一步是為視覺類別創建分類器。建立分類器的一種方法是通過一些人工標注的種子圖像。這里采用基于文本的圖像檢索引擎為訓練初始化檢測器提供種子圖像。對于場景和屬性分類器,直接使用這些檢索到的圖像作為正數據。然而這種方法失敗的原因主要有四個:
(1)離群值,由于基于文本的圖像檢索不完善,下載的圖像通常有不相關的圖像/離群值
(2)一詞多義ii,很多情況下,語義類別可能會超載,一個語義類別可能有多個含義(apple可以同時表示公司和水果)
(3)視覺多樣性,由于不同的視點、光照等原因,檢索到的圖像可能存在著較大的類內變異
(4)定位,在許多情況下,檢索到的圖像可能是一個沒有邊界框的場景,因此需要在訓練檢測器之前對概念進行定位。
目前的大多數方法都通過聚類來處理這些問題。聚類有助于處理視覺多樣性和發現多義檢索,可以幫助我們根據聚類中心的距離來排除異常值,聚類的一種簡單方法是在所有可能的邊界框上使用k-means,然后使用具有代表性的集群作為視覺子類別。然而使用k-means聚類存在兩個問題:(1)高維性,我們使用color HOG表示和標準距離度量在高維中不能很好的工作(2)可伸縮性,大多數聚類方法傾向于劃分完整的特征空間,在給出的示例中,由于沒有提供邊框,所以每個圖像都會創建數百萬個數據點,其中大多數數據點都是異常值,最近的研究表明,k-means是不可伸縮的,由于他為每個數據點分配成員,所以性能很差。
建議對聚類使用以下兩步方法:第一步,從谷歌image search中挖掘下載的圖像集用來創建候選對象窗口,具體來說,每一幅圖像都用于使用最近提出的exemplar-LDA訓練檢測器,然后使用這些探測器對下載的同一組圖像進行密集檢測,從多個檢測器中選擇得分較高的前k個窗口,修剪出異常值,因為候選窗口是通過代表性選擇的,在圖三中,沒有任何一個三輪車探測器指向圓點或是人們吃東西這樣的異常點,這些圖像在候選階段已經被拒絕,一旦有了候選窗口,就在下一步對他們進行聚類。但是不使用高維的CHOG表示來進行聚類,使用每個窗口的檢測痕跡(表示為窗口上種子檢測器的ELDA分數的向量)創建K*K親和矩陣,親和矩陣的元素(i,j)項是窗口i和j的這個向量的點積。直觀的說,如果在兩個窗口上觸發了同一組檢測器,這一步將連接候選窗口,一旦有了親和力矩陣,將使用標準的親和性傳播算法對候選窗口進行聚類,親和傳播算法允許我們為每個聚類提取一個代表性窗口,充當對象的標志性圖像。聚類之后我們使用集群中四分之三的圖像為每個聚類/子類別訓練一個檢測器,剩下的四分之一用作校準的驗證集。
3.2 關系抽取
一旦我們初始化了對象檢測器、屬性檢測器、屬性分類器和場景分類器,我們可以使用它們自動地從數據中提取關系,核心思想是:我們不需要從互聯網上下載每一張圖像,而是要大規模檢測和分類的統計模式。這些模式可用于在每次迭代關系中選擇top-N關系。具體來說,我們提取了四種不同的關系:
(1)object-object關系:
1)包括部分關系如眼睛是嬰兒的一部分
2)分類關系:如BMW320是一種車
3)相似性關系:如天鵝與鵝看起來相似。
為了提取這些關系,首先構建一個共檢測矩陣,矩陣中的元素表示同時檢測到對象類別i和j的概率。直觀上,當對象檢測器i檢測到的包圍框中包含的對象j時,共檢測矩陣中的值就高。
為了考慮到到處發射的探測器和有很多探測的圖像,將共檢測矩陣歸一化,歸一化的矩陣中的元素表示檢測器i對于圖像物體類別j的頂部檢測的平均分。
一旦我們選擇了一種類別之間的關系,我們會學習他在相對位置、相對長寬比、相對分數和檢測大小的均值和方差方面的特征。例如,鼻子和臉的關系特征是低相對窗口大小(鼻子小于面部面積的20%,鼻子的相對位置在臉的中心)。這用來定義兼容函數,兼容函數用來評價i類和j類的檢測是否兼容。還定義相對特征將關系劃分為兩個語義類別(部分的、分類的/相似的)以使可視化數據庫具有人類可交流的觀點。
(2)object-attribute關系:第二種關系是對象-屬性關系,比如披薩是圓的,向日葵是黃色的。
為了提取這些關系,我們使用和在已標記的示例中檢測屬性的相同辦法,這些檢測和他們的分數被用來建立一個規范化的共同檢測矩陣,該矩陣被用來尋找最相關的對象-屬性關系
(3)scence-object關系:該算法提取的第三類關系是場景-物體關系,包括車輛段有公交車、監控室里由監視器等關系,為了提取場景與物體之間的關系,在不同場景類別的隨機采樣圖像上使用物體檢測器,然后使用這些檢測結果來創建規范化的共存矩陣(類似于對象-對象關系),矩陣中中元素表示物體類別i和場景類別j的實例檢測的可能性。
(4)Scene-Attribute關系:提取的場景-屬性關系包括海是藍色的,巷子是窄的等場景屬性關系,這里采用一種簡單的場景-屬性關系提取方法:計算聯合矩陣,矩陣中的元素表示屬性i在場景圖象j上的平均分類分數,共分類矩陣最上邊的條目用于提取場景-屬性關系。
3.3 通過標記新實例進行再訓練
一旦我們擁有了一組初始化的分類器/檢測器和一組關系,我們使用他們來找到不同對象和場景類別的新實例,然后將這些新實例添加到已經標記的數據集中,使用已經更新的已標記數據重新訓練新的分類器/檢測器,然后這些新的分類器被用來提取更多的關系,這些關系有被用來標記更多的數據等等。
找到新實例的一種方法是直接使用檢測器本身,例如使用汽車檢測器來尋找更多的汽車,然而這種方法會產生語義漂移,為了避免語義漂移,我們使用上一節中提取的豐富關系集,并確保新標記的汽車實例滿足提取的關系。(例如:有輪子,在跑道中找到)
用RoR_{o}Ro?,RAR_{A}RA?和RSR_{S}RS?表示在t次迭代中object-object,object-attribute和scence-object集,如果?i\phi _{i}?i?表示從物體檢測器i中檢測到的物體,ωk\omega _{k}ωk?表示場景檢測器中的場景,ψi,j\psi _{i,j}ψi,j?表示兩個物體種類之間的兼容性函數,那我們可以使用下方的上下文得分函數找到物體類別i的新實例:
?i(x)+∑i,j?RO∪RA?j(xl)ψi,j(x,xl)+∑i,k?Rsωk(x)\phi _{i}(x)+\sum_{i,j\epsilon R_{O}\cup R_{A}}\phi _{j}(x_{l})\psi _{i,j}(x,x_{l})+\sum_{i,k\epsilon R_{s}}\omega _{k}(x)?i?(x)+i,j?RO?∪RA?∑??j?(xl?)ψi,j?(x,xl?)+i,k?Rs?∑?ωk?(x)
其中xxx表示被評估的窗口,xlx_{l}xl?表示相關的物體/屬性類別的頂部檢測器的窗口。
上述的等式由三部分:
第一部分是物體類別部分,通過窗口xxx的svm探測器的分數計量。
第二個部分時如果物體類別i和物體屬性類別j存在有關系(i,j)時這個類別的一部分的兼容性,例如如果車輪是汽車的一部分存在在類別中,這個部分將會是車輪檢測器的得分和車輪的窗口xxx和汽車的窗口xxx之間的兼容性得分。
最后一個部分是計量場景-圖像的兼容性,因此,如果知識庫中包含關系“汽車被發現在公路上”,這部分提高了賽車在公路場景中的檢測分數,在每次迭代中,我們還添加了不同場景類別的新實例,使用下面給出的上下文評分函數找到場景類別k的新實例:
ωk(x)+∑m.k?RA‘ωm(x)+∑i,k?Rs?i(xl)\omega _{k}(x)+\sum_{m.k\epsilon R_{A`}}\omega _{m}(x)+\sum_{i,k\epsilon R_{s}}\phi _{i}(x_{l})ωk?(x)+m.k?RA‘?∑?ωm?(x)+i,k?Rs?∑??i?(xl?)
其中RA‘R_{A`}RA‘?表示場景-屬性關系,上式中由三個部分:
第一部分是場景類別本身的外觀項,使用場景分類器進行估計,第二部分是屬性類別的外觀項,使用屬性分類器進行估計,這個部分保證如果場景-屬性關系存在則屬性分類器的得分應該是高的。
第三部分是物體類別的外觀項,使用相應的物體探測器進行估計,這個部分保證如果場景-物體關系存在,那么物體檢測器應該能夠在檢測場景中檢測到物體。
實驗細節
為了訓練場景和屬性分類器,首先從每個圖像中提取3912維特征向量。特征向量包括512D GIST特征,并且結合SIFT、HOG、實驗室的顏色空間和紋理基元,字典的大小分別為1000,1000,400,1000。從其他類別中隨機抽取窗口的特征值作為反例,用于支持向量機訓練和硬挖掘。對于物體和屬性部分,我們使用CHOG特征,其bin大小為8,我們使用潛在支持向量機模型(不含部件)訓練檢測器。
4、實驗結果
通過定性結果、通過人體實驗進行驗證以及對象檢測和場景識別等任務的定量結果來證明視覺知識的質量。
4.1 NEIL的統計數據
NEIL的核心算法時使用固定的詞匯,我們使用來自NEIL的名詞短語來增加NEIL的詞匯。
截至2013年10月10日,尼爾擁有1152個物體類別、1034個場景類別和87個屬性,已經下載了超過200萬張圖片來提取當前的結構化知識。
為了引導我們的系統,使用一些來自imagnet、sun或者來自谷歌image search的top圖像,為了在本文中進行廣泛的實驗評估。在過去的2.5個月里,我們在steroid上訓練了NEIL(200核而不是通常使用的30核),NEIL已經完成了16次迭代,并且標記了超過400k個視覺實例(包括30萬個帶有邊界框的對象)。提取了1703中常識關系,讀者可以瀏覽當前的視覺知識庫,并且可以從www.neil-kb.com上下載探測器。
4.2 定性細節
首先展示了NEIL提取視覺知識的一些定性結果,圖4顯示了提取的可視化子類別,以及屬于每個子類別的幾個標記實例。
從圖中可以看出,NEIL算法通過聚類過程有效地處理了類內變異和多義問題。
不同概念集群的純粹性和多樣性表明,上下文關系有助于我們的系統對語義漂移的魯棒性,以及確保多樣性。圖5顯示了尼爾提取的場景-對象和對象-對象關系的一些定性示例。它有效地使用一些自信檢測來提取有趣的關系。
圖6顯示了NEIL提取的一些有趣的場景-屬性和對象-屬性關系。
4.3 通過人體受試者評估質量
接下來需要評估NEIL提取的視覺知識的質量。需要指出的是對整個NEIL系統進行廣泛而全面的評估是一項極其困難的任務。評估每一個標記實例和每一個關系的正確性是不切實際的。因此,我們隨機抽取500個可視化實例和500個關系,并使用人類專家來驗證它們。在第6次迭代結束時,尼爾提取的關系有79%是正確的,尼爾標記的視覺數據有98%是正確的。我們還評估了每個迭代的關系正確性:在迭代1時,超過96%的關系是正確的,到迭代3時,系統穩定,提取的關系是正確的80%。雖然目前系統沒有顯示出任何主要的語義漂移,但隨著尼爾年齡的增長,我們確實計劃繼續評估和廣泛分析知識庫。還評估了尼爾生成的邊界盒的質量。為此隨機抽取了100幅圖像,并標記了真實邊界框。在標準的交集-聯合度量中,NEIL生成的邊界盒與地面真實值平均重疊0.78次,為了說明任務的難度,標準的Objectness算法生成的邊界框平均有0.59個重疊。
4.4 運用知識完成視覺任務
最后,我們想展示NEIL學到的視覺知識在標準視覺任務上的有用性:如物體檢測和場景分類。
在這里,我們還將比較我們方法的幾個方面:
(a)我們首先比較我們自動標記的數據集的質量。作為基線,我們直接在從谷歌Image Search下載的種子圖像上訓練分類器/檢測器。
(b)我們將尼爾方法與不提取/使用關系的標準自舉方法進行比較(c)最后,我們將通過檢測和分類具有和不具有學習到的關系的新的測試數據來證明關系的有用性。
場景分類:
首先為場景分類任務評估我們的視覺知識。我們使用Flickr圖片構建了一個包含600張圖片(12個場景類別)的數據集。我們將我們的場景分類器的性能與從谷歌圖像搜索(我們的種子分類器)的前15幅圖像訓練的場景分類器進行比較。我們還將性能與不使用任何關系提取的標準自舉方法進行比較。表1顯示了結果。
我們使用平均精度(mean average precision, mAP)作為評價指標。結果表明,自動關系提取有助于約束學習問題,因此學習后的分類器具有更好的性能。最后,如果我們也使用來自尼爾關系的上下文信息,我們的表現就會得到顯著的提升。
物體檢測:
我們也評估我們提取的視覺知識的任務的目標檢測。我們使用Flickr數據進行測試,構建了包含1000張圖片(15個對象類別)的數據集。我們將性能與直接使用來自谷歌Image Search的圖像(top-50和top-450)訓練的目標檢測器進行比較。我們也比較了在寬高比、HOG聚類和我們提出的聚類程序后訓練的檢測器的性能。表2顯示了檢測結果。
使用來自谷歌圖像搜索的450張圖像會因為噪聲檢索而降低性能。雖然其他的聚類方法也有幫助,但我們的聚類過程的收獲要大得多。最后,使用NEIL訓練的探測器比標準自舉工作得更好。
總結
以上是生活随笔為你收集整理的NEIL: Extracting Visual Knowledge from Web Data的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G(IMT-2020)简介
- 下一篇: 软工作业 2:时事点评-红芯浏览器事件