📖 ZKIZ Archives


看看美國頂級教授的“計算機視覺”課講什麽?

來源: http://newshtml.iheima.com/2014/1226/148587.html


2014年12月20日-21日,我從香港飛往上海,在依圖公司的會議室參加了由加州大學洛杉磯分校UCLA統計系教授Alan Yuille(艾倫.尤爾)講授的“計算機視覺前沿課程”。來自各大高校的計算機系,數學系,物理系不同的背景,超過40名學生一起參加。我們交流下來非常有收獲,也很開心在這里和大家分享。

\依圖科技公司聯合創始人朱瓏(Leo Zhu)和導師Alan Yuille教授對話

很多人第一個問題會問,什麽是計算機視覺?Alan教授首先告訴大家,這個問題其實仁者見仁,智者見智,並沒有固定的答案。以一個對計算機視覺略知一二的“磚家”的角度,作者自己覺著計算機視覺主要是用計算機取代人的眼睛看東西。Alan教授喜歡用亞里士多德的一句話“To Know What is Where by Looking”來詮釋計算機視覺。為了讓大家更好的隊計算機視覺有個概念,作者自己覺著最好的方式還是舉幾個“栗子”。
 
例子1

在世界杯足球賽場的歷史上,出現過不少的“魔鬼進球”疑案,到底進了還是沒進,雙方球員、裁判、觀眾都各執一詞,爭論了長達幾十年也沒有下文。其中最著名的當屬1966年世界杯決賽中,英格蘭隊對陣聯邦德國隊的比賽,英國隊員赫斯特的射門最後恰好落在了門線上(http://songshuhui.net/archives/53739),當時裁判判定進球,英格蘭隊憑借這一進球成功奪冠。不過對於當時這個球到底有沒有越過門線,各界一直爭論不休。直到20世紀九十年代,牛津大學的研究人員另辟蹊徑地回答這一爭議,用計算機視覺技術分享當時的比賽錄像,計算足球在空中的位置,得出的結論是當年赫斯特的進球很可能為無效:皮球在離球網最近的時刻,有99.87%的概率離成為進球的距離要大於6厘米。
 
不過這樣的歷史懸案應該不會在今後的世界杯上再次出現了。在今年巴西世界杯上,“門線技術”被引進到了比賽當中,足球從接近球門到進球再到彈出,整個過程在空中的位置都可以全部偵測和計算出來,是否進球不再需要裁判的眼睛,計算機就可以完全告訴你。門線技術主要依靠兩套系統,一套系統是足球內部和球門上安裝的傳感器系統,另外一個就是由設置在場地不同區域的高速攝像機組成的“鷹眼系統”,可以提供視覺圖片和時間數據進行分析計算,標誌著計算機視覺技術成功應用到了世界杯比賽中。
 
例子2


另外一個很常見的計算機視覺應用應該是人臉識別了,大家在社交網站上上傳一組照片之後,就會發現上面的幾個人臉都被畫上了方框,然而這個簡單的功能在十幾年前的計算機視覺曾是一個巨大難題。計算機不僅可以把人臉圈出來,更可以識別出這張臉是誰,並且已經在實際中有了廣泛應用,在香港和深圳之間幾個繁忙的口岸,人臉識別功能已經在自助過關機器上使用了多年。
 
在這次課程的主辦方依圖公司的展示的產品中,我嘗試著公司的人臉識別的電腦程序進行PK,看誰可以更清楚的分辨幾張看起來很相似的照片,結果發現參與嘗試的十幾個人的“看臉能力”無一可以超過電腦的識別成功率,至於像作者這樣的“臉盲癥”人士識別成功率就非常堪憂了。
 
當然計算機視覺在現實中還有許許多多其他的應用,例如谷歌的圖片搜索功能和汽車車牌號碼的自動識別,這里就不一一列舉了。在三四十年前,計算機視覺曾經是一個大家都感到非常陌生的詞匯,而如今經過Alan Yuille教授和其他計算機視覺領域奠基人的長期不懈努力,計算機視覺技術已經出現在了世界杯賽場上,出現在了擁有億計用戶的各種社交網站上,出現在了世界上最繁忙的海關口岸中……
 
大家可能對於計算機視覺各種炫酷的應用,奇妙的產品以及未來的各種科幻場景更加有興趣,但是這些的背後都離不開看起來有些枯燥的底層的理論和公式。作為一個研究計算機視覺的學者,在課程中,Alan Yuille介紹給大家更多的是計算機視覺前沿的理論性研究。


\Alan Yuille教授在計算機視覺領域從事研究30年
 
首先,人的視覺其實本身是一件很複雜的事情,讓機器和人具備同等程度的視覺感知能力並非易事。Alan告訴大家,你睜開眼睛看清楚一個東西,連1秒的時間都用不上,表面上看起來眼睛眨都沒眨,腦子想都沒想,不費吹灰之力,但這並不意味著視覺的過程就一定比你苦思冥想一道數學題簡單,因為人的大腦分配了大量的資源用於視覺,所有神經元中的40-50%都與視覺功能有關,對視覺的“投入”比嗅覺,聽覺,味覺都多得多,這才使得你看東西輕而易舉。
 
不僅如此,計算機視覺所面對的圖片本身也是非常複雜的,一張普通的照片有幾百萬像素,而每一個像素的顏色值又有紅橙黃綠青藍紫深淺不一很多種可能,這樣一來,世界上沒有兩片完全相同的樹葉,也沒有兩張完全一樣的圖片。同一個人在不同地方,用不同的相機,擺不同的pose,從不同的角度拍,從不同距離拍,穿不同衣服拍,最後得到的照片都各不相同,但是作為一個從圖片中獲取信息的技術,需要從這些各種不同的圖片把同一個人認出來。
 
以一張大象的照片為例,人的眼睛可以將整只大象印入眼簾,也可以將目光聚焦在大象身體的某一個部分,只是轉一下眼球而已。而對於計算機來說,像“盲人摸象” “管中窺豹”一樣提取和處理圖片中各個小的部分的信息,還是處理整只大象的信息,在需要花費多少計算時間、使用何種算法以及完成何種任務都有很大的不同,前者叫Low-level vision,後者叫High-level vision。
 
Low-level vision可以去除掉大象照片中的汙點,可以識別出大象和草坪之間的邊緣,可以從照片中分割出兩只大象大概的區域,卻無法識別出照片里是什麽動物;High-level vision包含了很多的人工智能,比如這是只什麽動物,這只大象是亞洲象還是非洲象,它在照片里在睡覺還是在尋找食物,照片里有沒有缺少什麽東西等等各種分析推理和預測。當然還有介於Low-level vision和High-level vision之間的Mid-level vision,比如大象身上的一些條紋,照片是從哪個角度拍的,大象離鏡頭有多遠等等。
 
可以發現,一張普通照片包含的“信息量很大”,計算機視覺技術需要把它們都提取出來,需要完成的任務實在是很繁重很龐大,如果把圖片里的所有信息全部提取出來簡直需要一個福爾摩斯。Alan告訴大家我們可以有一個計算機視覺的圖靈測試,就是說如果某一天,人類可以從一張圖片里看到想到的東西,攝像機和電腦組成的計算機系統也可以全都看到想到,兩者之間沒有了差別,這樣計算機視覺在達到了終極目標。當然這一天離我們還非常遙遠。面對種種困難,幾十年來,研究人員提出了各種各樣的方法和理論,使得計算機視覺領域本身變得越來越龐大,如今恐怕沒有一本書能完整地囊括所有的計算機視覺知識。
 
在介紹了計算機視覺的整個框架之後,Alan具體介紹了計算機視覺領域內的各個不同的主題。Edge Detection(邊緣檢測)和Image Segmentation(圖像分割)是兩個最基本的計算機視覺算法,都屬於Low-level vision。Edge Detection應用很廣泛,比如在識別一張人臉的時候,人臉和背景之間會有一個邊緣,眼睛、嘴巴、耳朵、鼻子周圍都有一個邊緣,如果能把這些線條從圖片中識別出來,人臉各個部分的大小和位置信息就會變得容易很多。


\(Edge Detection)
 
從數學意義上,邊緣意味著圖片中的像素的顏色值有一個突然的變化,當然很多時候邊緣是比較模糊的,而在不是邊緣的地方顏色值也會因為噪聲而有波動,需要在尋找到邊緣像素的同時,避免把“偽邊緣”識別出來。現在已有一些簡單而有效的Edge Detection方法像Canny Edge Detector,Alan教授在這些方法的基礎上加入了統計學的元素:首先在一些圖片中,人工畫出所有的邊緣線,然後使用這些已有正確答案的測試圖片對各種Edge Detector進行大量測試,按照統計出的結果,更好地判斷邊緣像素,相當於對於各種傳統的方法進行了一次優化。
 
如果可以把一張圖片中的邊緣直接提取出來,就可以以這些線為邊界把圖片分成幾個部分,達到類似於把人臉的部分從背景圖片中提取出來的效果,這就是Image Segmentation。當然Image Segmentation也可以獨立於Edge Detection完成,主要依靠各個部分的像素的一致性,比如人臉都是皮膚的顏色,車表面的都是金屬的樣子,地面都是土壤的樣子,來讓電腦來“五馬分屍”。


\(Image Segmentaion:自動地把圖片中的人,兩輛不同的車,背景以及部分,各自分割出來)
 
按照這樣的思路,最簡單的一種方法是SLIC(Simple Linear Iterative Clustering),相當於把圖片中的位置臨近的像素按照互相之間顏色值的相近“物以類聚”成幾個區域,算法的原理很簡單,主要通過不斷循環重複簡單的步驟。Alan同時也介紹了相對更加複雜的Graph Cut的Image Segmentation方法,用戶需要做的首先是在圖片中劃出一個大概的區域(比如要提取出人臉的區域,就在人臉的周圍粗略的劃出一個方框的區域),然後Graph Cut程序開始運行,選定區域的邊緣會按照“能量最小化”進行優化,最後逐漸收斂在需要分割的區域邊緣上。Alan展示四種不同的Graph Cut優化方法,包括Gibbs Sampling,Belief Propagation,Max flow/Min cut和MFT,並且進行了各種不同Image Segmentation方法得到的結果的比較。
 
在課間時間,我也了解了依圖公司開發的產品,寫到這里可以和課程有些對應的感受和收獲,比如一款可以自動識別車牌和品牌(車型)的軟件,無論汽車在高速行駛,還是在沒有燈光的漆黑夜晚,只要在監控攝像頭覆蓋之下,車牌號和品牌型號都可以被輕松識別,更有趣的是,通過車輛的照片,還可以判斷出車牌的真偽(識別假套牌車輛)。其實在計算機視覺中,無論車牌號,門牌號,還是田野上的巨型文字,從一張圖片中識別出文字屬於High-level vision的典型任務。Alan嘗試著使用時下比較流行的深度神經網絡來解決這一問題。“神經網絡”模仿人的大腦里的神經系統,在電腦程序里虛擬地構建出一個類似於人大腦相互連接的神經元的模型。這個模型像一臺機器一樣,每個神經元是一個零件,這些零件互相連接在一起,有的會很緊,有的會很松,之間每一個連接的強度是一個參數。而深度神經網絡是神經網絡方法中比較複雜的最新一種。通過給神經網絡輸入大量已經識別過的含有文字的圖片,在樣本圖片和標準答案的不斷“訓練”之下,深度神經網絡的各項參數不斷改變,最後可以奇妙的自然而然學會識別圖片中的問題,就如同人類自己並不清楚自己的大腦是怎樣工作一樣,我們也並不完全清楚電腦的深度神經網絡是到底怎樣完成學習的。Alan介紹說,深度神經網絡包含了很多個神經元的層,相當於先從圖片中識別出比較low-level vision的信息,然後逐層深入,提取出low-level vision的信息。深度神經網絡能夠在近些年火起來,主要還是計算機硬件計算能力的增強,像GPU(顯卡)計算的廣泛應用,使得這一在過去只是“紙上談兵”的想法可以真正實現。


\人臉識別能夠在監控攝像頭和海關檢查中大量使用,有時精確度甚至可以超出真人的識別能力,背後依賴著各種識別算法。在課程中,Alan也介紹了自己研究團隊提出的用於人臉識別的Hierarchical Compositional Model。在模型中,整個面部的數據分成了三層來處理,從最高層的整個面部到面部的各個部分(比如眼睛),再到各個細節。這一個模型可以把從High-level vision到Low-level vision不同的算法綜合起來。
 
在整個課程的最後,Alan分享了自己對於什麽樣的學生適合做研究,如何撰寫論文,怎樣做學術報告等方面的心得,並且和大家進行了眾多的問答互動。有同學詢問Alan教授挑選博士學生的標準是什麽,不同於大家普遍認為的GPA高低,GRE成績和發表的論文情況,Alan教授覺著GPA只是代表課程學習能力和考試能力,並不一定意味著研究能力很高,以他自己本人為例,在學校時的課程成績並不出眾,而發表的論文常常無法判斷申請的學生在論文中到底發揮了多大作用。Alan教授覺著最可靠的方式直接的接觸,如果有本科學生參與過他的實驗室的暑期實習,有尚佳表現,就有較大可能被錄取為他的博士學生,如果沒有機會直接接觸,他會參考自己熟悉的其它研究者的推薦意見,覺著他們的意見也是比較可信的。
 
通過這兩天的課程,本文作者獲得了一次難得的機會,在世界頂級的計算機視覺領域科學家的引導下,汲取了大量的關於這一領域的前沿知識和最新研究結果,再次感謝相關TV,感謝主辦方。

 

本文為i黑馬版權所有,轉載請註明出處,侵權必究。


Next Page

ZKIZ Archives @ 2019