1. 程式人生 > >現場丨2017中國計算機大會(CNCC2017)之李飛飛演講:ImageNet之後,計算機視覺何去何從?

現場丨2017中國計算機大會(CNCC2017)之李飛飛演講:ImageNet之後,計算機視覺何去何從?

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

640?wx_fmt=png&wxfrom=5&wx_lazy=1

今天,我就想和大家來分享實驗室的思考和一些比較新的工作。

由於我在國外生活的時間比較長,我可能說英文比說中文要好一點兒。所以,我就要用英文來做這個演講,偶爾會插一些中文詞。謝謝大家。

今天我的主題演講主要是關於計算機視覺。

要聊這個話題,首先,讓我們先從5.4億年前說起。

那個時候,地球基本上沒有陸地,全是海洋。為數不多的低等的生物就生活在海洋裡,當有食物漂過來時,這些生物就趕緊將其吃掉以維持生命。

自那起的1000萬年間,動物的種類和數量迎來了大爆發 。生物的種類從少有的幾種,迅速增長為幾千種之多。這在歷史上被稱為“寒武紀大爆發”。那麼,是什麼引起了這場大爆發呢?

幾年前,澳大利亞的科學家 Andrew Parker找到了答案。

大約在5.4億年前,有的動物開始進化出了簡陋的眼睛。對於一個個體來說,這沒有什麼大不了,不就是多了一個小孔,這個小孔能接收光線,僅此而已。但這對於整個地球而言,可就是一件改變整個生命歷程的大事。

就因為有眼睛,動物們看得見食物了。他們可以從被動獲取食物,變成主動尋找食物。他們學會了隱藏,學會了伺機而動,也學會了快速出擊。

於是,動物的存活率大大提升,而大幅提升的存活率又大大促進了生物的進化。可以這麼說,正是因為視覺的誕生,才有了寒武紀大爆發。

從那以後,動物們開始進化出各種各樣的視覺系統。實際上,視覺已經變成了動物大腦中最為重要的感知神經系統。因為發達的視覺系統,讓他們的生命不斷延續,種類不斷增多。

將目光收回到人類。

視覺讓人們看到這個世界,看懂這個世界,讓人們有能力不停地交流、合作、互動。

在人類的大腦中,視覺神經系統非常重要。甚至可以這麼說,視覺是人類智慧的基石。

正因為如此,我對於計算機視覺這項工作才尤為著迷。這可是人工智慧的關鍵環節啊。可是,計算機視覺應該從哪些地方模仿人類的視覺呢?哪些才是能影響到計算機視覺的里程碑式的事件呢?而且人類對目標識別到底有多擅長?

早在60年代和70年代,認知心理學家以及視覺科學家就指出,人類擁有的視覺系統無與倫比。

有一個來自麻省理工大學的著名實驗是這樣的,我現在要向大家連續播放多幀畫面,每幀的顯示時間僅100微秒。其中,只有一幀的畫面裡有人。你們能找出來嗎?可以舉手示意我一下。

這可不是一個IQ測試,大家儘可以放輕鬆。

實驗的結果是:大多數的人都可以找到這一幀,看出在這一幀中,有個人立在那裡。這太讓人驚歎了!

實驗之前,你不會知道這個人長什麼樣,是男人還是女人,這個人穿著什麼衣服,是什麼姿態。但是,你的視覺系統卻能在如此短的時間內快速地找到這個資訊。

1996年,神經學家Simon J. Thorpe及團隊釋出了一項研究,通過腦電波來觀察人腦對於影象識別的速度。他發現,僅需 100 微秒,大腦就會發出一道區分訊號,對畫面中的物體是否為動物做出判斷。對於複雜目標物件的處理能力,構成了人類視覺系統的基礎。

這個實驗對於計算機視覺的影響巨大。回望20年前,我們能清楚地看到,正是對目標物體的識別的研究促進了整個計算機視覺的大發展。

最近,大家都很瞭解與ImageNet有關的先進的影象識別。其實,從2010年到2017年,ImageNet挑戰了傳統的影象分類。這八年間,我們的社群取得了令人矚目的成績,將錯誤率從 28% 降低到了2.3%。在攻克影象識別的難題的征途上,計算機視覺的研究者們共同努力,取得了非凡的成績。當然,解決影象識別難題的重要里程碑之一是在 2012 年,這是 CNN 第一次在利用大資料進行監督學習領域展現出令人印象深刻的能力。從這一點出發,我們開始進入深度學習革命的新紀元。

但是,我今天的主題並不在ImageNet。固然,ImageNet對人工智慧有重要的貢獻,但是我們必須往前看,看看有什麼技術可以超越ImageNet。影象是視覺體驗的基本要素。但是,在影象之上,還有一些需要探索的東西。

視覺關係理解

比如,有兩張圖片,當我遮擋住其餘部分,只留出一兩個要素時,你會覺得它們很相似。但是,當你看到整張圖片時, 你會發現,它們呈現了兩個完全不同的場景。

這說明影象理解非常關鍵。它超越了ImageNet,和其所代表的影象識別。

那麼,視覺關係的預測或者理解難在哪?

當我們給計算機一張圖片,我們需要演算法通過識別關鍵物件來定位物件的位置以及預測物件之間的關係,這就是視覺關係預測的任務。

過去有一些針對視覺關係的深度研究。但是大部分此方向的研究都侷限於一些特定的或者普遍的關係。而現在,由於計算機在資料和深度學習能力上的提高,我們可以對視覺關係進行更深層次的研究。

我們使用了一個卷積神經網路視覺表示的聯結,以及一個估計互動式視覺元件之間關係的語言模組。

我不會深入這個模型的細節,只是簡單地介紹其結果。我們的模型去年發表在ECCV,能夠估計特殊關係,對比關係,非對稱關係,動詞和動作關係,以及位置關係。因此,我們能夠估算出場景的豐富關係,不只是簡單的感知物件。

相比於目前最先進的技術,我們對基本測試有很好的效能表現。我們不僅能夠進行關係預測,實際上還能對未知的關係進行理解(zero-shot understanding)。例如,在我們的訓練資料集中,我們能發現坐在椅子上的人或者站在地面上的消防隊員。但在測試時,我們有人坐在消防栓上等類似的關係的圖片,而實際訓練時很難收集大量的訓練例項。但我們的模型可以做到對未知東西的學習及理解。這裡還有一個例子,馬戴帽子,實際上另一個關係人騎馬或人戴帽子更為常見。自從我們去年發表在ECCV的工作以來,關係預測的工作已經雨後春筍般發展起來。有些工作的效果已經超過了我們一年前的結果,但我個人很高興看到社群不再侷限於ImageNet提供的內容,而去思考更豐富的場景理解。

但為了做到這一點,我們必須用基準資料集來支援社群。我們已經看到了ImageNet對物體識別做出了特別大的貢獻,但作為一個數據集,這是一個有侷限的資料集。它只有一個資訊位,就是場景中的主要物件。ImageNet之後,社群的同事提出了許多關於資料集的有趣想法。Harry(沈向洋)已經提到的微軟的COCO框架可以識別場景中的更多物件,以及用一個簡短的句子進行描述。但是,還有更多的內容需要解決,特別是物體間的關係,問答,及針對影象場景的問答。

自動生成場景圖

三年前,我們開始收集有關的資料集,目的為了深入場景內容。我們真正關心的是關係,我們將視覺世界視為相互關聯的場景圖。

場景圖是表示物件和關係的基本方式。

通過三年的努力,我們做出了一些通用的資料集。這個通用的視覺資料集包含10w多張影象和對其進行的420萬個影象描述,180萬對問答,140萬標註好的物件,150萬個關係和170萬個屬性。因此,這是一個非常豐富的資料集,其目的是推動我們超越名詞,開展關係理解,紋理推理等研究。

我們已經展示了關係表示,還有什麼其他事情可以做,或者視覺資料集是用來做什麼的?

我要告訴你另一個稱為“場景檢索”的專案。

這實際上是計算機視覺中的一個老問題,很多人都研究過。這是一個相對已經成熟的產品,有點像谷歌影象搜尋。

當我在Google輸入“男人穿套裝”或者“可愛的狗狗”這個詞後,系統會返回給你漂亮的照片。你可以看看結果,非常有說服力。

但我用更復雜的句子,比如“男人穿西裝,抱著可愛的狗”呢?效果就很難說了。

我們希望對我們得到的東西有更多的控制,更豐富的場景檢索。然後,場景檢索模型就沒法實現了,因為它是基於物件的,它並不真正地理解關係。

這裡有一個例子。我想獲得一個男人坐在長凳上的場景,如果我只是基於物件搜尋它,我會得到分離的物件或者錯誤的關係。也許我可以新增一些屬性,但它會丟失物件和其他東西。但是當我新增關係和物件時,我可以立刻得到更加有意義和精確的場景。這就是場景檢索的理念。

我們之前的一個研究是如何表示非常複雜的檢索請求,就像這個描述:一個滿頭灰髮的老女人戴著她的眼鏡,穿著一個敞懷的的黃夾克,等等等。一旦我們有這樣的場景圖,它就變得更容易,成為了一個圖匹配問題。此前我們有在專有裝置上訓練過它。完全可以想象,我們最近幾年可以用深度學習技術將其發揚光大。需要特別注意的是,場景圖是描述複雜場景中豐富內容的基礎。

下面是有關臥室的另一個例子,以及如何使用場景圖來檢索它。這一切都是可行的,它用新的方式來表示複雜的意義和連線的場景。

但是,你們至少應該先問我個問題,她是怎麼得到這些場景圖的?這看起來不容易。

事實上,這在實際應用環境中是完全不可想象的。當我去百度搜索,或者Bing搜尋,或者谷歌搜尋詢問一個影象時,你如何構造場景圖呢?所以我們真正需要做的是自動生成場景圖。

關於自動生成場景圖的論文我們發表在 2017 CVPR 上。

我們使用了一個自動場景圖生成模型來驗證傳遞進行的查詢訊息,感興趣可以檢視我們的論文。相比於其他基準模型(baseline),此模型更接近於真實的場景圖處理。

我們很興奮地看到這個通用的視覺資料集向世界傳達了場景圖表示的概念,我們正在使用這個基準並且鼓勵社群去審視有關關係條件,場景檢索生成等問題。但這些只是越過ImageNet的一些早期問題,它仍然相對簡單。他們只是有關場景的。當你睜開眼睛時,你首先看到的是物體、關係。但視覺智慧或人工智慧比我們要強,那麼,超越早期對畫素的感知外還有什麼呢?

給大家展示一下 10 年前我在研究生時期做的一個實驗,這個實驗是關於人類認知的。我讓參與測試的實驗物件坐在電腦螢幕的前方,然後讓他們看一張閃爍地非常快的圖片,然後這張圖片很快就會被桌布遮擋起來,此處的遮擋是為了控制圖片在螢幕上停留的時長,停留的時間其實非常短。一小時我給他們 10 美元,然後他們在看過圖片之後,需要寫出自己所能記得的關於這張圖片的所有描述。

可以看到,這裡的場景切換非常之快,其中最短的圖片展示時間只有 27 毫秒,也就是 1/45 秒,而圖片停留的最常時間也只有 500 毫秒,也就是 0.5 秒。讓人驚奇的是,我們發現人類能夠將圖片場景描述的非常詳細。只需要 500 毫秒,人類就能夠識別出非常多的內容,比如任務、動作、穿著、情緒、事件、社會角色等等。就算只有 40 毫秒,人類也能夠對(圖片)環境有大致的理解。因此,在視覺系統和描述場景的能力或者語言的能力之間,有一種不尋常的聯絡。我們的實驗室現在正在研究的已經不只是單純的“感知器”,視覺和語言之間的聯絡、視覺和推理之間的聯絡非常非常深,現在的研究還只是開始。

從句子整合到段落

我們最早開始做人類和語言相關的工作可以追溯到 2015 年。

當時,世界上還很少有實驗室用和我們一樣的想法做影象描述:用 CNN 來表示畫素空間,用 RNN 或者 LSTM 來表示序列模型、生成語言。

當時剛剛興起了第一波演算法浪潮,可以根據現有圖片自動生成描述的句子。在這個特殊的例子中,穿著橘色馬甲的建築工人正在路上工作,穿著藍色T恤的人正在彈吉他。這是一個讓人印象深刻的例子,但是一個視覺場景並不是短短的一句話能夠描述的,而是可以分成不同的組成部分,因此我們接下來就做了“dense captioning”:給定一個場景,我們不僅僅只看這張圖片中的整體內容,而是看不同的部分,看感興趣的區域,然後嘗試用語言來描述。

這裡有一個例子,這張圖片的描述由很多不同的部分組成:一部分是關於人騎在大象上,一部分是關於人坐在長椅上,一部分是關於大象本身的描述,一部分是關於大象身後的森林。比起短短的一句話,這種描述方式,能夠提供更多的圖片資訊。

0?wx_fmt=png

這是去年釋出的,今年,就在幾個月以前,我們又往前進了一步,開始生成段落。

當然,你可以說只要先生成句子,然後將句子串聯起來就成了段落,但是通過這種方式生成的段落並不能令人滿意。我們並不想隨意地將句子組合起來,我們必須思考如何將句子組合起來,如何讓句子之間的過度更加自然,這些就是這篇論文背後的想法。儘管我們已經可以生成段落,但是結果仍然不能令人滿意,但是這種方式可以完整地描述場景內容。

自動分割視訊關鍵部分

0?wx_fmt=png

就在幾天前,我的學生在威尼斯舉行的 ICCV 大會上展示了我們的工作。我們將原來靜態圖片上的工作延伸到了視訊上,在這個領域,如何檢索視訊是一個問題。目前,大部分關於視訊的工作,要麼是通過一些關鍵目標來進行檢索,或者對一個事件(如打籃球)進行整體描述。 
0?wx_fmt=png
但是在絕大多數的長視訊中,裡面發生的事件不只一個。於是我們建立了一個包含 20000 段視訊的資料集,並對每個視訊進行註釋,平均每個視訊 3.6 個句子。然後我們提出了一種能夠在整段視訊中臨時檢視的演算法,它能夠自動分割視訊中的關鍵部分,然後用句子描述出來。

對於其完整的模型結構,不過我不打算細講。這個模型的開始的部分是對視訊中的 C3D 特徵進行特徵編碼,剩下的部分則是如何找到關鍵部分並生成描述。

我們跟其他的方法進行了對比,儘管我們是第一個這樣做的,但是和其他的方法相比,我們的方法展現了非常不錯的前景。

這種工作才剛剛起步,但是我非常興奮,因為在計算機視覺領域,人們對視訊的研究還不夠,而這種將視訊和自然語言處理連線起來的能力將會創造非常多的可能和應用領域。

從SHRDLU到CLEVR:模組世界+自然語言

0?wx_fmt=png
演講的最後部分仍然是關於視覺理解和自然語言處理的,但是在這個特殊的例項裡,我想將語言當作推理的媒介,不僅僅是生成描述,而是去推理視覺主題的組成性質。

讓我們回到 40 年前,當時 Terry Winograd 建立了一個早期的 AI,叫作 SHRDLU。SHRDLU 是一個“Block World”。人類提出一個問題:“ the blue pyramid is nice. I like blocks which are not red, but I don’t like many thing which supports a pyramid. Do I like the grey box?”,在這個世界裡,人類會問出非常複雜的問題,而演算法 SHRDLU 需要生成答案:“ No.( Because it supports the pyramid. )”因此這個過程裡面涉及到很多的推理。在那個時候,SHRDLU 還是一個局域規則的系統。如今,我們將這種想法用現代的方法重現,在simulation engine(模擬引擎)中使用現代的圖片創造另一個數據集——“CLEVR”。

“CLEVR”是一個擁有無限多物件模組的資料集合,我們可能產生不同型別的問題。我們生成了各種各樣的問題:一些問題可能是關於attribute(屬性)的,比如“有沒有哪些大型物體和金屬球的數量相同?”;一些問題跟counting(計算)相關,比如“有多少紅色的物體?”;一些問題和comparison(比較)相關;還有一些問題與special relationship(特殊關係)相關,等等。

“CLEVR”是一個非常豐富的資料集,由問答集組成,與場景中內容的含義有關。我們如何看待我們的模型呢?與人進行比較。我們發現僅僅使用venilla,CNN,LSTM作為訓練模型,人類仍然比機器好得多。當機器的平均效能小於70%時,人類可以達到93%左右的精度。 
0?wx_fmt=png
所以有一個巨大的差距。我認為我們差距的原因在於我們的模型不能明確推理。我們把相關的研究也發表在剛剛結束的2017ICCV大會上。

大致原理是,模型首先提取問題並通過自然語言訓練生成器。然後我們利用這個模型進行推理,最後得出這些答案。總的來看,是訓練一個生成器模型。然後,訓練模型和其預測的答案。最後,聯合查詢及模型,可以對最後的QA給出合理的結果。我們的模型比執行基線(baseline)好很多。

由於李飛飛在演講中提到了自然語言處理與視覺識別的結合,也提到了微軟研究院沈向洋對於自然語言的描述等研究,因此,我們也將沈向陽的演講內容整理如下,希望對你有所啟發。

0?wx_fmt=jpeg