中國人工智能資訊智庫社交主平臺新智元主辦的11月8日在北京國家會議中心舉行,大會以“AI 新萬象,中國智能+”為主題,上百位AI領袖作了覆蓋技術、學術和產業最前沿的報告和討論,2000多名業內人士參會。新智元創始人兼CEO楊靜在會上發布全球首個AI專家互動資訊平臺“新智元V享圈”。
新智元 · AI WORLD 2017
演講嘉賓:賈佳亞
【新智元導讀】上,騰訊優圖實驗室杰出科學家、計算機視覺專家賈佳亞教授從前端、后端的視覺AI說起,分享了騰訊優圖在計算機視覺方面做的一些有趣的工作,包括圖像編輯、圖像分割、圖像處理等方面的一些最優的算法,以及卸妝、高清圖像恢復、幾何重建等引人注目的工作。一起來看。
賈佳亞:大家好,非常高興來到這里,前面幾位嘉賓給大家介紹的內容,真的精彩紛呈,我們聽到了外骨骼的發展,也聽到最新的一些底層構架的建立。我的內容可能跟之前的嘉賓有點不一樣,我將從一個計算機視覺研發人員的角度去探討,到底我們現在整個的計算機視覺領域的發展達到什么程度。因為這是AI VISION論壇,所以我想從一個計算機視覺研究者的角度,談談什么東西能做什么東西不能做,反而更契合對這領域的理解。
這一張是我自己的照片,邊上是我的女兒,她現在三歲。三歲的時候我認為她是一個完整的神經網絡的參與者和學習者。她現在在大腦里面構建自己的神經網絡,希望以后把社會知識和課堂、課外學到的知識融合起來。我自己是香港中文大學的教授,從事計算機視覺研究很多年,今年加入騰訊成為騰訊優圖的一分子。優圖是騰訊最核心的AI研究實驗室之一,其中視覺部分尤為重要。
大家有沒有發現看過這么多的科幻小說、科幻電影,很多電影里都會出現一個像助手一樣的人,或者是一個像智能上帝一樣的人,能夠去用旁人的眼光去看待人類社會。大部分科幻電影所幻想的人物構造,通常都有一個人物的外形,要么本身就是一個機器人。所以在人工智能的基本元素里面也繼承了這樣的觀點,我們認為人工智能的發展有四個大的方向,分別是:看、聽、說、行動。今天我講的就是“看”,因為我從事的研究是“看”的領域。
從人類生物學角度來看,有超過30%的視覺神經元參與了視覺有關的活動,當然參與觸覺和聽覺也有神經元,但是數量遠遠少于視覺神經元。原因很簡單,因為我們的世界太復雜了,當我們作為一個高等的智慧生物去了解世界,我們必須有大量的資源和計算花在“看”這部分。所以這就導致了我們在“看”的這個領域能擴展的內容和想做的事情會非常多。
給大家看一個例子,這實際上是一張非常普通的照片,就是一個有樹、有草地、有一頭牛的照片。其實問題不在問這個圖像里面有什么東西,我想問在座的各位這是在什么地方拍的照片。
第一印象大家可能覺得這不是在中國拍的,應該是在歐洲或者是在澳洲或者是在美國。就是說大家會有一個猜測,通過這么一個簡單的圖像,我們已經有一個非常好的對圖像的理解,是延伸在圖像之外的內容的。
再給大家看一張照片。這兩張照片是在同一個地方拍,我相信絕大部分人應該都猜到了,這是在瑞士拍的。這是一個簡單的內容,可以通過簡單的分析,用我們直覺,甚至不需要上網去搜索,我們就能發現其中蘊含的信息,說明我們人類對視覺感覺系統的運用已經到了一個爐火純青的地步。
那么計算機視覺是不是有了跟人類的視覺類似的感受能力呢?為了回答這問題,我給大家看兩個例子。第一個例子是這樣一張圖,大家可以盯著其中一個部分看。大家看其中一個部分的時候,會發現這個圖在動,覺得它在旋轉。這張中間是一個柱狀物體,可能是個比較復雜的幾何形狀,但是這張圖片有沒有在動呢?其實是沒有動的,而你盯著一個地方會覺得它在動。這說明人的視覺有一個運動的估量系統,當一個模式正好符合你的運動估計的視覺準則的時候,即使沒有動的物體,你也會認為它是在運動的。
再給大家看另外一個有趣的例子。請看這個圖,不管從哪個角度看,這只恐龍都在看著你,這是為什么呢?這里面裝了頭可以擺動的裝置嗎?其實沒有。這就是一個紙做的恐龍,不可以移動,但是你會覺得不管走到哪個方向它都看著你,原因是什么?我們慢慢把鏡頭拉遠一點,拉到一個超過了我們剛才的視角范圍的地方,你會發現原來是這只恐龍的頭凹進去了。當我們看到這樣的系統的時候,你會覺得這個頭肯定凸出來,就是整個的外輪廓是往外凸出而不是凹進去,所以這樣的反差會讓你的大腦直覺地認為之前的恐龍的頭是凸出來的。因為有了這樣的直覺,你就會感覺這恐龍不管你走到哪都在看著你,原因就是真實的情況和我們人類大腦處理的情況不一樣。
這兩個例子說明什么呢?說明實際上人類對于視覺的感知是非常難的一件事情,所以想要讓計算機去完整的模擬人的視覺感知也是不太可能的事情。但是至少我們可以達到一個比例了,比如說我們可以在10%的程度上實現計算機對于人類視覺能力的模擬。
那么從產業鏈來看,對于我們國內、國外這么多產業,有這么多新創公司和大公司,到底視覺有多重要。毋庸置疑,比如說現在的新體感游戲,我們可以通過在電腦前面做一些動作,電腦就能知道我們在做什么動作,從而完成游戲過程,這是體感游戲的發展。所以游戲、娛樂是其中一個重要的部分。
當然還有監控。在安防這一塊,以前需要雇上百個人、上千個人去看無數的視頻,才能分析出哪些視頻是有問題的,哪些是沒問題的。現在一個公司可能只需要兩三個負責人員,其他的就交給電腦來分析視頻里有什么異常現象發生。這是一個非常大的可以運用計算機視覺技術的行業。
騰訊擁有國內最大的社交網絡平臺,我們在設計新產品時會希望有新的玩法,讓大家參與互動的時候,比如說能夠判斷年齡,可以改變外貌,可以在APP里面輕易地變得更年輕一點,甚至可以體會一下變成另外一個性別。這是全新的電子化的時代,我們這樣的新的產業可以做得更好一些。
除此之外,還有就是醫療這一領域。智能醫療實際上能推動、替換一部分醫生的工作,計算機能夠在自動化的層面上去分析醫療領域的一些圖像。最后就是自動駕駛,這是計算機視覺應用中很大的一塊。
計算機視覺有很多的分類,我們可以存在不同的理解。計算機視覺分為上層視覺、中層視覺和底層視覺,這是傳統意義上的分類。但是今天我想講,我們可以把計算機視覺分得更加有趣一些。我自己認為可以分成兩種計算機的視覺AI,一個叫前端AI,一個叫后端AI,前端后端這兩個名詞來自軟件工程。這兩個分類的原因是,在軟件工程中有很多的方式、很多的函數負責了不同的功能,為了區別這些功能我們把它們分成前和后。AI發展到一定階段以后,我們發現它的細分種類越來越多,所以也可以用這樣的分類來定義視覺AI。接下來我會講一講我怎么定義前端和后端的視覺AI。
前端和后端的視覺AI
所謂的前端AI,我認為這種AI產生的效果讓大家能看得到,感覺得到,能夠知道發生了什么事情,這樣的AI叫前端的AI。看起來很抽象,但是實際上我們有很多例子可以去說明。我覺得前端AI一個重要的部分就是編輯。
這是在2003年的時候我自己做的第一個研究工作。我們剛才有嘉賓已經介紹過,很多年前手機還是奢侈品,大家的手機唯一的功能是打電話。2003年的時候我們手機已經有一些簡單的功能,但是那時候大部分的手機還是黑白屏幕,沒有攝像頭,只能做一些非常簡單的事情。但是2003年我們已經開始做一些非常有趣的、可能在整個業內其實并沒有太多人知道的工作。比如說當時我自己有一個想法,就是我們出去拍了很多照片,回來以后發現里面有很多場景是我不想要的,比如有一些不想要的人或者景物出現。這時候我想把這些景物除掉,比如說把柱子去掉只留下一個背景。但是呢,當我把柱子抹掉的時候,我發現留下的是一個黑洞,很不好看。
我們當時想把這個事情做好,所以就出現了第一個算法,希望把大的錯誤,或者圖像里不對的地方去掉。所以這個結果現在看起來還是比較驚艷的,這個工作距現在已經有14年的歷史了,這是一個很古老的工作。
后來我在2004年的時候,在微軟跟孫劍博士一起做了一些更加有趣的工作,其中一個很重要的部分,就是做分割。
這樣的應用其實現在很多手機里面還沒有用到,我想給大家看看。比如說有一張很漂亮的圖,我想換一個背景怎么辦?很痛苦,你必須靠人把前景摳出來,就是一個摳圖的過程。摳圖在視覺的歷史里大概有20年了,怎么樣把一張圖摳得最好,這看起來很容易,其實是一件很難的事情。所以我們在2004年的時候,開始跟微軟的一些同事一起做這一件事情,希望能夠提出一個方法。當然我們用了很多的交互,并不是那么智能,但是我們最后實現的效果是能完整把前景分割出來,換成不同的背景。
回到2017年,我們開始做完全不同的一些智能化的操作。我們可以直接利用從網上搜索得到的許許多多各種各樣的人像照片,拿到人像照片后,直接放到我們的系統里面自動做訓練,訓練完了之后我們就直接拿一張新的圖來,這張圖我們從來沒見過,但是我可以實現這張圖背景的自動分割。這樣的系統已經在我們騰訊內部和外部的很多公司上線。也就是說它能夠完成全自動的、對人物景物的理解和分割。
這是另外一個場景。這張圖片在我們數據庫從來沒有出現過,它的前景和背景的顏色很相似,它的毛發給跟我們以前看到的圖像的頭發顏色不一樣,但是我們還是能夠把它分割出來,用我們現在的自動學習的技術。
這個系統完成之后,我們在騰訊內部做了大量的優化。為了讓它能夠在手機端直接用上,我們把它的復雜度從500萬個參數降低到10萬個參數。當只有10萬個參數的時候,就可以實現每秒30幀的在手機端的操作,同時能夠快速對景物的進行智能化理解。這樣一個系統很有用,大家可能覺得這東西不就是一個AR嘛,在臉上貼一些東西、后面換一些背景,但是這對社交網絡而言是一件非常有趣的事情。
前端AI還有另一個很重要的部分就是處理。什么叫處理?這是我們在2008年的時候做的一個工作,這在當年有很大的需求。當時電視機從普通的VGA分辨率上升到高清分辨率,有大量的電影、影視劇的內容之前是并非用高清設備采集的,也就是說它們本來的片源分辨率就很低。所以當時有一個很大的需求,就是能不能用一種上采樣的方式,實現對低分辨率的視頻或者圖像進行放大,使得它在HD的攝像機中能夠順利低播放。這是我們在2008年時做的事情。當時也做了一些成果出來,通過小圖可以把大圖恢復出來。
今年我們提出了一個全新的框架,用深度學習,我們希望能夠用更加有效的AI的方式重建視頻和圖像。當然這個圖大家不需要理解,這是一個非常漂亮的模型。
給大家舉一個例子。這是一個輸入,就是非常小的圖像,我們把它變高清。這是以前方法做出來的結果,其實很多字還是看不清楚,有很多鋸齒,問題也很大。后面是我們今年通過智能化的處理得到的結果,能夠自動實現智能化的上采樣,實現了用一張小圖就可以把大圖恢復的非常好。
今年這個技術在騰訊整個網絡構架全面上線。做這件事有什么意義呢?對于騰訊這樣一家公司而言,我們可能每個月視頻和圖像的上傳量都達到億級,甚至在微信里的上傳量是幾億級,這樣的話帶寬就是一個很大的問題。所以我們用上采樣的方式解決這個問題,就是用戶上傳的時候可以傳小圖,看的時候看大圖,立刻就可以減少帶寬使用量。我們的帶寬使用率超過75%,也就是75%的帶寬可以省下來,可以用這75%的帶寬做其他的事情,上傳圖片更加方便和容易。這是一個全面性的,而且非常有用的算法,已經在大的平臺上產生巨大的影響力。這是我們的結果,你可以看到跟之前的方法相比,在細節上、在內容上都有了巨大的變化。
當然我們也做了其他一些事情,這是跟攝像頭相關的,也是我們原創的新技術。在2008年、2007年的時候我們就想,我們這么多攝像頭,不管是手機還是單反拍的,為什么拍出來都是糊的?很簡單,因為你的運動太快,或者光線曝光不足。所以我們有個想法,能不能通過模糊的圖像把真實的圖像給恢復出來。當時我們做了研究,發現確實可以做,而且可以得到預想不到的結果。我相信如果大家手機里有任何一張這樣的圖像,第一反應是把它刪掉,節省空間。但是我們把這樣的圖像拿出來,發現可以得到更多的信息。后來我們發現甚至可以做更加嚴重的模糊的恢復。我們可以恢復圖像里所有的鱗片細節,它的噪聲細節,和邊緣的部分都可以靈活地恢復出來。
當然我們后來又做了一件事情,我們不但把它的準確率提高了,而且提高了速度,實現了快速去模糊。當時這個算法處理一張圖像大概需要30分鐘。我們在算法層面做了一個巨大的改變,使得我們處理一張圖像需要的時間從30分鐘降低到4秒鐘,就可以將一張模糊圖像恢復成清晰圖像。
后來我們進入了全面的深度網絡時代,我們就用深度網絡做這件事情。這是一個例子,對于這樣的叫做失焦模糊的圖像,我們也可以恢復出非常多的細節原件,這些原件在原有圖像上是基本上看不到的,或者已經丟失掉的,我們都可以恢復出來。這是圖像方面的一個巨大的進步。
圖像前端AI的最后一個是創造。創造這方面也有很多故事可以講。很多人問我,現在AI這么厲害,是不是替代了很多人的工作,以后幫小朋友、幫自己孩子擇業時你選擇什么樣的方向最好?既然很多工作都被計算機替代了,是不是做藝術家最好。我覺得做藝術家是一個不錯的選擇,但是其實計算機也會創造,它也有非常強的能力能夠創造新的東西。所以從這一點來看,我不是很確定當一個藝術家是非常好的想法。
舉一個例子,這兩幅圖像,大家覺得這哪一幅是人畫的?這個問題我在不同的場合問過很多人,之前有很多回答都認為右邊這一幅圖像是人畫的,但是呢實際上左邊這一幅才是人畫的,右邊這一幅是電腦模擬鉛筆畫的方式生成出來的,也就是電腦畫出來的。
到2017年,大家知道得比較多的是我們騰訊優圖做出來的一些黑科技。我有一個學生經常喜歡上網去跟各種各樣的女生聊天。結果他發現每一次聊完天以后,去見面發現女生跟圖片上長得不一樣,這個事情令他很苦惱。我們就想,優圖已經提供了非常強大的、非常好的上妝的算法,但是我們能不能提供卸妝的算法?所以我們為了這樣一個目標,開始做這個項目。這個項目確實經過了一個非常長的過程去分析到底其中有什么問題。
今天給大家看的內容就是這樣一個例子,這是一位老人家的例子。其實看這張圖非常正常,因為現在所有的社交網絡上傳播的圖像都是這樣子的,你覺得這一張圖像還不算是P過的。我給大家看看原來是什么樣的,我們通過AI恢復出來,這個老人家應該是這樣的。
我們做這事情除了既定目標之外,其實也是不斷探索我們在AI技能方面有什么強項可以做,然后通過我們的一個主成分回歸網絡去做這事情。我們通過授權和第三方收集標注的圖像數據,去分析、理解,發現這些圖像都可以通過基本的AI算法把大概的內容恢復出來,這樣就完成了一個卸妝的過程。我相信這項技術或許對于很多的婚慶公司或者婚戀公司是有用處的。
后端的AI更重要:圖像分類、語義分割、實例分割
剛才講完前端的AI,其實后端的AI更重要。后端AI是你不知道它在那里,你也不知道這技術怎么產生的,但是你覺得一定有東西在操作,它不直接創造效果。其中我們知道比較多的是圖像分類。我們現在可以實現上千萬、百萬張圖片的分類過程,比如說這張圖像是一個西紅柿和一個兔子結合的圖像。你看到這一張圖像,可以分析出這是一個老鼠和酒瓶,或者這是一只狗和一朵花。這樣的分類和理解已經達到非常準確的程度,遠遠超過人的理解水平。
除了這之外,我們還有一些科學家不太滿足于做簡單的圖像的理解,我們做物體檢測,我們希望可以實現到上千個種類10億個位置的不同的檢測方式。對一個圖像我們不但可以判斷出這個圖像是什么東西,還能知道每一個圖像的每一個部分是什么,這就是物體檢測。
除此之外還有更難的問題就是語義分割,我們希望不僅僅知道哪個部分是哪一個物體,我們還希望知道每一個像素是什么物體。這是去年在 ImageNet 上的Scene Parsing競賽,我們拿到第一名,這是這個領域內道路級最準確的算法,它可以準確的分析道路里哪個地方是車,哪個地方是道路、哪個地方是樹,精準到每一個像素。把這些信息反饋出來,最后得到一個理解,這種分割的效率和準確度已經非常之高了。
這是其中的一個網絡結構,我們后來把這問題更進一步,我們不但希望知道哪輛是車,我還希望知道哪輛是第一輛車,哪輛是第二輛,哪輛是第三輛。這問題就叫做實例分割,在計算機視覺中這是最難的問題之一。我們去年創造了一個新的算法,去解決實例分割的問題。
2017年我在學校帶領的團隊在 MS COCO 這個計算機視覺最難的比賽里,拿到 Instance Segmentation 第一名。我們可以看一些結果,比如這張圖中這么多車,我們可以完整地分割出車的各個部分,知道哪里是車、哪里是道路,哪個是第一輛車,哪個是第二輛車,甚至哪個是司機,第一個司機、第二個司機的各個不同的位置我們都可以完整地找到。
這是第二張圖,這張圖非常復雜,有很多的香蕉,你可以想象,要知道香蕉種類不難,但是你要知道哪個是第一個香蕉、哪個是第二個香蕉,這是非常困難的問題。
我們的實驗結果是這樣子的,我們看到這一張圖的時候,第一反應是這是小黃人非常喜歡的東西,所以這是為什么之前我們騰訊QQ里面有一個“掃香蕉”的線上活動,受到了眾多用戶的參與,這個場景就非常適合。
還有另外一些例子,比如說這張圖片可以看到,我們可以把雨傘、人都分割的非常準確,實現精準的像素級的理解。我們當時在整個數據集上、在Benchmark上都跑得效果非常好,準確度非常高。
最后一個是推理。在后臺里面其實我們還可以做很多其他的事情。今年我們的一個非常重要的研究方向是希望通過一張完全沒有深度通道的圖像,我們能夠分析它的深度是什么樣的,它的表面的法向量是什么樣的。也就是通過一張RGB的顏色圖,能夠得到它的深度估計,和它的表面的幾何重建的內容。
這項工作確實做到了一個非常不錯的效果,而且它有很多的應用。比如在增強現實中,如果我們有了深度信息,即使相機沒有感應裝置,但是仍然能夠把深度估計出來,這樣我實現更加準確的增加現實的效果。當然我們也可以做機器人,機器人可以有更加便宜或者更加簡單的處理方式去處理深度的內容。當然甚至對自動駕駛也會有很大的幫助。
這是其中的一個例子,在手機上就可以實現。這個技術可以實現后期對焦,也就是我們拍完一張照片以后,可以再去進行對焦,自動分析前景后景。這樣的話,當你已經拍完照片,你還可以去選擇是對焦第一個人身上,還是第二個人身上,這也是非常有趣的現象,而且以后可以在手機上有更大范圍的應用。
總結一下,我覺得現在真的是有非常多的AI技術正在發展,而且有層出不窮的新的應用,尤其在大的平臺上,在巨型的公司里我相信計算機視覺的應用非常之多。所以我想對我們研究人員提出一個非常簡單的要求,希望他富有創造力和廣博的知識,希望他能夠多看看可以怎樣幫助人類社區的發展,能夠創造出什么新的價值。
最后給大家看一張圖像,這是我們騰訊優圖團隊的聚餐,我們自己有口號,我們這團隊叫“學歷高笑點低”。好,謝謝大家。