【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

Joker 9年前 (2016-08-26)

Facebook選擇開(kāi)源,為了加速技術(shù)的發(fā)展,當然,也將讓系統變得更好。

【編者按】:本文轉載自新智元,來(lái)源:Facebook 等,譯者:張冬君

昨天谷歌開(kāi)源了TensorFlow自動(dòng)文本摘要生成模型,今天 Facebook 宣布開(kāi)源計算機視覺(jué)系統,稱(chēng)該系統能“從像素水平理解物體”,Facebook 希望開(kāi)源能加速計算機視覺(jué)的發(fā)展。不過(guò),Facebook 并沒(méi)有在自家產(chǎn)品中使用這些工具,像這樣落實(shí)到具體應用前就開(kāi)源,跟通常所說(shuō)的“開(kāi)源”有些不同。對此,Facebook 人工智能團隊 FAIR 的負責人 Yann LeCun 曾表示,正是因為 FAIR 做基礎的、不受制于公司短期效益的研究,才能真正推進(jìn)人工智能技術(shù)發(fā)展。無(wú)論如何,開(kāi)源將加速技術(shù)發(fā)展,當然,也將讓系統變得更好,讓 Facebook 開(kāi)發(fā)更好的圖像、視頻乃至增強現實(shí)產(chǎn)品。以下是 FAIR 宣布開(kāi)源的博客全文。

【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

(文/Piotr Dollar,FAIR 研究員)計算機能像人一樣高效地分辨一張照片中的多個(gè)物體嗎?

人看到一張照片時(shí),能一直追蹤到最后一個(gè)像素,并對物體進(jìn)行區分。在Facebook AI 實(shí)驗室 (FAIR),研究者把計算機視覺(jué)推進(jìn)到了下一個(gè)發(fā)展階段,他們的目標是讓機器像人一樣,以像素級的水平理解圖像和物體。

過(guò)去幾年中,隨著(zhù)深度卷積神經(jīng)網(wǎng)絡(luò )的進(jìn)步和計算架構變得前所未有的強大,機器視覺(jué)系統也在準確性和能力上也迎來(lái)了飛速的進(jìn)步。我們看到,圖片分類(lèi)(比如,圖上都有誰(shuí))和物體感知(物體在哪)上,都有著(zhù)顯著(zhù)的提升??蓞⒁?jiàn)下圖:

【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

但這只是理解圖像或者視頻中最重要的視覺(jué)內容這一方向的開(kāi)始。最近,FAIR 開(kāi)發(fā)了一項用于發(fā)現和切割單張圖像中的每個(gè)物體的新技術(shù),如上圖顯示(c),這是一項關(guān)鍵的能力,將能用于開(kāi)發(fā)全新的應用。

這一技術(shù)的主要驅動(dòng)算法是DeepMask——一個(gè)新的圖像分割框架,以及新的SharpMask ——一個(gè)圖像分割修飾模型。二者的結合,使得FAIR的機器視覺(jué)系統能夠感知并且精確地描繪一張圖片中任何物體的輪廓。識別管道中的最后一步,研究院使用了一個(gè)特殊的卷積網(wǎng)絡(luò ),稱(chēng)為MultiPathNet,為圖片中的物體添加標簽(比如,人、狗或是羊)。

現在,FAIR把DeepMask、SharpMask、MultiPathNet的代碼,以研究論文以及Demo全部開(kāi)源,希望能促進(jìn)機器視覺(jué)領(lǐng)域的飛速發(fā)展。FAIR將會(huì )繼續改進(jìn)這些核心技術(shù),并且持續發(fā)布最新研究成果、向社區更新開(kāi)源工具。

這些工具到底有什么用?

在像素中找出規律

來(lái)看一看這些算法中的構建模塊。

看一眼下面這張圖片,你看到了什么?

【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

一個(gè)攝影師正在使用他的舊式相機、一片草地、背景中的建筑……也許你還注意到了別的許多細節。但是,機器是看不到這些的。在機器的世界里,一張圖像是由一連串的數字組成,這些數字代表了每一個(gè)像素中的顏色值,正如右邊的圖像顯示的那樣。那么,我們該如何讓機器視覺(jué)從超越像素,發(fā)展出對圖像更深層次的理解呢?

由于真實(shí)的世界中,物體和場(chǎng)景的變化幾乎是無(wú)窮盡的,所以這一問(wèn)題并不容易解決。物體是多變的,形狀、外觀(guān)、尺寸、位置、紋理和顏色等等都有很大的不一樣,此外,加上真實(shí)場(chǎng)景幾乎無(wú)窮盡復雜性,比如多變的背景、光線(xiàn)條件以及世界本身的多樣性,你可以看到,這一問(wèn)題有多難。

進(jìn)入深度卷積神經(jīng)網(wǎng)絡(luò )。在物體感知中,與編程式地定義基于規則的系統不一樣,深度網(wǎng)絡(luò )是一個(gè)相對簡(jiǎn)單的架構,擁有數千萬(wàn)參數,通過(guò)訓練而不是設定來(lái)發(fā)揮作用。這些網(wǎng)絡(luò )自動(dòng)地從數百萬(wàn)注釋樣本中學(xué)習模型,在見(jiàn)到足夠多的樣本后,網(wǎng)絡(luò )能夠開(kāi)始對新的圖像進(jìn)行分類(lèi)。深度特別善于回答YES/NO的問(wèn)題,這可以用于分類(lèi),比如,圖片中包含綿羊嗎?

物體分割

那么,要怎么在感知和分割中使用深度網(wǎng)絡(luò )?DeepMask中使用的技巧是,把分割看成是一個(gè)海量的二進(jìn)制分類(lèi)問(wèn)題。

第一,對于一張圖像中的每一個(gè)(重疊的)圖像塊(patch),我們要問(wèn):這個(gè)圖像塊包含一個(gè)物體嗎?第二,如果第一個(gè)問(wèn)題的答案是肯定,那么對于一個(gè)圖像塊中的每一個(gè)像素,我們要問(wèn):這個(gè)像素是圖像塊中心物體的一部分嗎?我們用深度網(wǎng)絡(luò )來(lái)回答每一個(gè)Yes/No的問(wèn)題,并且通過(guò)巧妙設計我們的網(wǎng)絡(luò ),使每個(gè)圖像塊和像素都能被計算,從而我們可以快速發(fā)現并分割一張圖像上的所有物體。

DeepMask采用傳統的前饋深度網(wǎng)絡(luò )設計。在這種網(wǎng)絡(luò )中,隨著(zhù)網(wǎng)絡(luò )階段的逐步深入,信息會(huì )更加抽象、在語(yǔ)義上更有意義。例如,在一個(gè)深度網(wǎng)絡(luò )中的底層可以捕獲邊緣和斑點(diǎn),而上層傾向于獲取更多的語(yǔ)義概念,如動(dòng)物的面部或肢體的存在。通過(guò)設計,這些上層功能以相當低的空間分辨率計算(既是出于計算的原因,也是為了保持不因像素位置的小位移而改變)。這為mask預測帶來(lái)一個(gè)問(wèn)題:上層特征可以用來(lái)預測mask,mask能捕捉一個(gè)物體大致外形,但不能準確捕捉物體的邊界。

這就要使用SharpMask了。 SharpMask優(yōu)化DeepMask的輸出,產(chǎn)生具有更高保真度的能精確框定物體邊界的musk。在DeepMask預測前饋的初始mask通過(guò)網(wǎng)絡(luò )時(shí),SharpMask反轉信息在深度網(wǎng)絡(luò )的流向,并通過(guò)使用逐步較早層網(wǎng)絡(luò )(progressively earlier layers)的特性來(lái)優(yōu)化DeepMask做的預測??梢赃@樣理解:要捕捉物體的總體外形,你必須高度理解你正在看的是什么(DeepMask);但要準確地框定出邊界,你需要使用低層次的特性一直到像素(SharpMask)?;旧?,我們的目標是要以最小的成本利用從網(wǎng)絡(luò )的所有層獲得的信息。

下面是由DeepMask產(chǎn)生并由SharpMask優(yōu)化后的一些示例。為了簡(jiǎn)單展現可視化,我們只展示與圖像中的物體最佳對齊的mask。但是系統還不完善,紅色輪廓標出的是那些人類(lèi)識別出來(lái)但是DeepMask沒(méi)有的物體。

【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

物體分類(lèi)

DeepMask完全不知道具體的對象類(lèi)型,因此,盡管它能框定狗和羊,它也不能區分它們。此外,DeepMask沒(méi)有什么選擇性,會(huì )為不是很有趣的圖像區域生成mask。那么,我們如何縮小相關(guān)mask的范圍,并識別圖像中實(shí)際存在的物體呢?

正如你預期的一樣,我們要再次轉向深度神經(jīng)網(wǎng)絡(luò )。鑒于DeepMask產(chǎn)生的mask,我們訓練一個(gè)單獨的深度網(wǎng)絡(luò )來(lái)對每一個(gè)mask的物體類(lèi)型進(jìn)行分類(lèi)(“無(wú)”也是一個(gè)有效的答案)。我們采用區域卷積神經(jīng)網(wǎng)絡(luò )(Region-CNN),或者簡(jiǎn)稱(chēng)RCNN,這是ROSS Girshick(現在是FAIR的成員)首創(chuàng )的。RCNN有兩個(gè)階段:第一階段是用來(lái)讓計算機關(guān)注特定的圖像區域;第二階段用來(lái)識別區域中存在的物體。在開(kāi)發(fā)RCNN時(shí),可處理的第一階段是相當原始的。通過(guò)使用DeepMask作為RCNN的第一階段和利用深度網(wǎng)絡(luò ),我們得到的檢測精度顯著(zhù)提升,也獲得了分割物體的能力。

為了進(jìn)一步提高性能,我們還使用一個(gè)專(zhuān)門(mén)的網(wǎng)絡(luò )架構來(lái)對每一個(gè)mask進(jìn)行分類(lèi)(RCNN的第二階段)。正如我們所討論的,真實(shí)世界的照片包含多種尺寸的物體,有的藏在背景中,有的雜亂一群,而且還經(jīng)常被遮擋。標準深度網(wǎng)絡(luò )在這種情況下就會(huì )遭遇困難。為了解決這個(gè)問(wèn)題,我們提出了一種改進(jìn)的網(wǎng)絡(luò ),我們稱(chēng)之為MultiPathNet。正如它名字暗示的那樣,MultiPathNet允許信息以多種路徑通過(guò)網(wǎng)絡(luò ),從而使其能夠在多種圖像尺寸和圖像的背景中挖掘信息。

總之,我們的物體檢測系統遵循一個(gè)三階段的過(guò)程:(1)DeepMask生成初始物體mask, (2)SharpMask優(yōu)化這些mask, (3)MultiPathNet識別每個(gè)mask框定的物體。這是我們整個(gè)系統的一些示例輸出:

【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

結果并不完美,但考慮到這種技術(shù)才誕生了幾年而已,這樣的結果也不差。

更加廣泛的應用

視覺(jué)識別技術(shù)有著(zhù)廣泛的潛在用途。比如,打造現在的計算機視覺(jué)技術(shù),使計算機能在照片中識別物體,那么搜索某些沒(méi)有標簽的圖像就會(huì )更容易。失去視力的人,也能知道他們朋友分享的照片里有什么了,因為無(wú)論圖像旁邊有沒(méi)有文字說(shuō)明,系統都能告訴他們照片的內容。

最近,我們展示了正在開(kāi)發(fā)的針對盲人用戶(hù)的技術(shù),該技術(shù)能評估照片并描述其內容。目前,有視覺(jué)障礙的用戶(hù)在Facebook瀏覽圖片時(shí)只能聽(tīng)到分享照片的人的名字。但是,我們想要提供更豐富的描述,如“照片里有沙灘、樹(shù)以及三個(gè)微笑的人”。此外,利用我們正在開(kāi)發(fā)的分割技術(shù),我們想要實(shí)現更加身臨其境的體驗,讓用戶(hù)能夠“看見(jiàn)”照片——用手指劃過(guò)圖像,系統就能描述該圖像的內容。

我們將繼續改善我們的檢測和分割算法。你可以想像有一天,這種圖像檢測、分割和識別能力與AR結合,應用在諸如商業(yè)、醫療或其他領(lǐng)域。

【重磅】Facebook 開(kāi)源計算機視覺(jué)系統,從像素水平理解圖像

此外,我們的下一個(gè)挑戰將是將這些技術(shù)應用于視頻,視頻中的物體一直在移動(dòng)、互動(dòng)并隨時(shí)間變化。我們已經(jīng)在計算機視覺(jué)技術(shù)取得一些進(jìn)展,能觀(guān)看視頻并且實(shí)時(shí)理解和區分視頻的內容。實(shí)時(shí)分類(lèi)可以幫助發(fā)現Facebook上的相關(guān)視頻直播。采用更加優(yōu)化的技術(shù)來(lái)檢測場(chǎng)景、物體和動(dòng)作,有一天可能會(huì )使實(shí)時(shí)旁白成為現實(shí)。我們很高興能繼續推動(dòng)這項技術(shù)的發(fā)展,并在Facebook上為每一個(gè)人提供更好的體驗。

最后,記得關(guān)注微信公眾號:鎂客網(wǎng)(im2maker),更多干貨在等你!

鎂客網(wǎng)


科技 | 人文 | 行業(yè)

微信ID:im2maker
長(cháng)按識別二維碼關(guān)注

硬科技產(chǎn)業(yè)媒體

關(guān)注技術(shù)驅動(dòng)創(chuàng )新

分享到