演算法到實戰,如何把深度學習應用到生活?
計算機視覺是一門研究如何使機器「看」的科學,掌握解決具體計算機視覺任務的方法則會幫助我們解決大規模系統的複雜問題,其應用相當廣泛,包括並不限於:圖像分類,人臉識別;車輛檢測,行人檢測;語義分割,實例分割;目標跟蹤,視頻分割;圖像生成,視頻生成。
為了讓大家更好的理解計算機視覺在人工智慧領域的強大應用,12月7日晚,上海交通大學盧憲凱博士受AI研習社邀請,開展了一場主題為《計算機視覺概述和深度學習簡介》的公開課,盧博士在公開課中給大家介紹了計算機視覺的定義、研究方法和應用舉例,重點介紹深度學習發展歷史,常見深度學習網路介紹和開發平台,幫助計算機視覺入門者和從業者進行有效的基礎夯實和系統梳理。
以下是公開課回顧全文:
計算機視覺定義
首先先講一下計算機視覺的定義,計算機視覺指的是從圖像和視頻中提出數值或符號信息的一個計算。形象點說的話就是計算機視覺是讓計算機具備像人一樣的眼睛去看到圖像,並且理解圖像。
在這裡舉了一個特別簡單的例子,就是微軟亞洲研究院之前開發了一個系統叫how-old.net,當你在這個系統輸入一張圖片進去,一個成年人一個小孩的圖片都可以,它就會給你檢測出這個人的性別以及年齡,像左邊這個圖,輸入的是林志穎和郭德綱的,我們看到它的結果還是比較可靠的,雖然因為林志穎比較特殊(這個大家都知道的)。
再看右邊這張圖,其實就是蠻準的,它首先檢測到了有兩個人臉,一個小女孩的,一個baby的臉,它首先判斷出他們的性別,還把他們的年齡判斷出來,還是挺準的。所以舉例子就是想說計算機視覺它和人理解外面的世界是有點像的,就是要看到圖像,而且能夠理解它。
從獲取圖像到讀懂圖像
從人類的視覺來看的話,我們看到一幅圖片,首先是經過眼睛來看到圖片,然後經過大腦來理解圖片,比如說看到左邊這個圖像的話,大腦中會出現它的一個解釋:這可能是一個花園,可能是春天的花園,裡面有橋有水有樹,有花,是一個綠色的背景等等。
對於計算機來說,它首先會通過一個相機或者一個攝像頭,獲取這張圖片,會用計算機它自己的一些演算法來看圖片,並用預演算法來理解,它也想能夠從圖片中讀出:這是一個花園,這是一個春天這些有橋有水之類的信息。
計算機視覺就是最核心的這一步就是要理解它,理解的過程就是:
第一步先提供給它數據,數據的話其實有靜態的圖片,也有一些視頻。
第二步就是要設計演算法,靠人的大腦那樣去理解它,過程中需要機器學習的演算法,或者是最近非常熱的深度學習的方法。
計算機視覺歸根結底的話,其實就是在做一個回歸或者分類的問題,所以後面講到的大部分的關於計算機視覺的任務,都可以用一個回歸或者一個分類的問題來對它進行建模。這就是關於計算機視覺的一個核心的定義。
計算機視覺的重要性
計算機視覺其實無論是在學術界還是在日常生活中,抑或在工業界都已經有了非常非常多的關注,大家都在研究、應用。
因為這節公開課只是第一節課,所以給大家是從一個更廣泛的一個面上來講,它在日常生活中的一些應用,包括在學術上的一些研究。
第一個計算機視覺非常重要的應用就是圖像識別或者叫圖像分類。大家知道最近谷歌有一個學術的大牛加入,就是李飛飛教授,李飛飛教授他們組織了一個叫IM GENET的分類比賽,比賽已經持續了很多年,主要是要求進行一千多類的生活中常見目標的分類,包括人、背包、交通信號燈、游泳、動物、火柴、打網球等等。
比賽就是要設計一種計算機視覺的演算法,能夠不斷的提升在IM GENET數據集上分類的精度。當然大家後來也看到一些新聞,是說現在基於深度學習的方法,在數據集上其實已經能夠超越人類了。所以數據集是非常有意義的,它推動了計算機視覺的發展,也讓大家更理解到了計算機視覺識別其實對我們生活將是非常重要的一個改變。
圖像識別是計算機視覺裡面的基石。在後續的課程中也會著重的講一下圖像識別:到底計算機是怎麼能夠區分人、書包、交通信號燈這些信息,是怎麼判斷出人在游泳之類的東西。
除了圖像識別任務的話,計算機視覺裡面還有一個是任務就是精細的識別,就是說除了廣義上常見的識別書包或者海報、建築這種,其實在工業界的應用就是特定目標的識別,比如說車牌的識別,其實就已經被應用起來了,就是在高速公路上過ETC的車道的話,你不需要經過個人工收費口,它就會拍你的車牌,把你的車牌的信息識別出來,就對應著它的收費情況。
還有一個就是個人臉識別,包括之前支付寶的人臉支付等等應用也說明了,其實計算機視覺已經非常廣泛的應用到了日常的生活中,像右邊圖的話就非常有意思,它屬於人臉識別精細的一種識別,就是它不僅要識別出它的屬性,比如說人的年齡大約是多少?
像奧巴馬這張圖的話,它就是不僅要識別出它是奧巴馬本人,它要知道奧巴馬的年齡,它的性別,它有沒有戴眼鏡,它的嘴唇是什麼樣的,還有表情的識別,就是它的情緒是什麼樣的,因為表情識別也是一個非常關鍵的,對於這種文化體育類娛樂休閑產品來說,能夠更好地識別交互,特別是人機交互過程中的話,人的表情是非常重要的,最後的三個參數就是表示要對它進行一定的校正的話,需要的參數。
通過這兩個例子也說明就是說計算機視覺裡面的第一個就是圖像識別這塊的話,現在已經大家都在向更專業的方向在做,而且它已經廣泛的運用到了生活中的方方面面。
講完第一個任務之後,在講計算機視覺裡面的第二個任務就是目標檢測,目標檢測是一個非常非常有趣的一個工作,特別對於學術界來說是一個非常非常有趣的一個方向,因為它是一個非常有用,但是又比較難做的事情。
目標檢測任務的話,簡單來說就是給定左邊這樣一幅圖像,需要把感興趣的前景目標(所謂的前景目標就是除了對信息沒有特別幫助的一些,剩下的都作為前景,比如說在這幅圖裡面的話,有兩隻狗,有棵聖誕樹等等)。
目標檢測本質上是在做這樣一件事情:就是要把所有的感興趣的前景目標給它檢測出來,把它的類別貼上標籤,就是像右邊圖就表示做了一次檢測之後的結果,會檢測到兩隻狗一隻貓,並打上標籤,標明有兩個狗,有一個貓。
目標檢測的話,它其實是對剛才講的圖像識別的一個進一步的發展,要知道圖片裡面有哪些類別,還要知道它的位置,所以它做的是兩個任務,相當於既要把目標找到,還要把類別給識別出來,目標檢測雖然難,但是它的功能強大了非常多。
舉一個例子現在在安防領域還有城市市政這塊非常有用的例子,就是行人檢測與車輛檢測,比如說在一個智能攝像頭的終端,需要把攝像頭裡面看到的所有的行人給它檢測出來,檢測出來有什麼用?
如果這裡面的行人的人流非常大的話,就可以迅速的把攝像頭裡面的人群給它估計出來,對於將來可能發生一定的異常事件的話是起到一個預警作用。
右邊的圖也非常簡單,就是說如果能及時的把道路裡面的車輛的給檢測出來,就可以統計它的個數,就可以實時地估計出它的車流密度,這樣的話對於疏解城市的交通也是非常有幫助的。
像上面兩個例子都只是在目標檢測裡面兩個非常細化的子任務,而且也已經在整個的日常生活中得到了應用,都已經默默的在為生活的方便提供幫助。
再講的就是第三個任務就是分割。分割是計算機視覺裡面也是一個非常難的任務,分兩種分割,一種是圖像的語義分割,一種是個體的分割。
像左邊圖講的就是圖像的語義分割,語義分割做的事情就是給了你一張圖片之後,想把整個圖片割成一塊一塊獨立的個體,像這個圖片裡面貓是一個前景,它踩在了一個草地上,背景裡面是有藍天還有樹木,所以就想把它們整體的分割出來,像第二個圖裡面是有牛在草地上,背景有天空也有樹木,所以就需要把構成圖的不同的類別給它更精細地分別出來。
因為其實人很多時候比如說要解釋圖的話,到哪個地方是前景,哪些地方是背景,還要知道目標是什麼?這就是語義分割要做的一件事情。
還有一種比語義分割更難一點的一種任務,現在也開始非常受到關注,就是個體的分割,它比語義分割要更難一點,其實就相當於在檢測任務上加上了分割,就是說不僅要把所有的目標給它分出來,比如這裡不僅要把狗給分出來,還要區分某個狗在哪個位置,就是把它的位置信息給它標定出來。
因此,計算機視覺剛才介紹的這三個任務識別檢測和分割,它們是一點一點在增加難度。就相當於視覺識別是基礎中的基礎,檢測是識別加定位,個體分割的話就是檢測加分割,其實這樣做的目的就是由易到難,逐漸的去靠近人在理解圖像的過程中的能力。
對人類來說可能是很容易的一件事情,但是對計算機視覺來說,由於給它看到的就只是一些像素,如何能夠讓它去理解,這個過程就像可能教嬰兒去學習一樣,肯定是一個由簡到難的一個過程。因此像個體分割任務的話,也是這幾年隨著微軟亞洲研究院、Facebook等在這方面做了出色的工作,才得到了廣泛的關注。
講完了計算機視覺裡面的三大基本任務之後,其實計算機視覺還取得了許多非常有用的一些任務,這些任務的話也有非常廣泛的應用,其中一個就是視覺目標跟蹤。
視覺目標跟蹤可以這樣描述:就是給你一段視頻,這段視頻往往就是一個相機或者是攝像頭拍攝的一段視頻,視頻它會第一幀告訴你,你感興趣的目標是什麼,然後我就只提供圖中這樣一些信息,需要實時的在此後的把感興趣的目標位置給找出來。
這樣一個任務的話就是一個非常有用的,比如說擴展到多目標跟蹤裡面,這是一個候機大廳或者一個商場裡面,把每一個人都實時的跟蹤上,這樣會建立每一個人的軌跡,同時就可以對一些異常行為進行檢測,比如說某個人突然和另一個發生了這種交互或者其他,那就可能認為它們兩個人有可能在打架或者是故意丟棄一個包之類的。這些任務的話,就可以通過給視覺目標跟蹤來對它進行建模。
另外一方面就是對於車輛的跟蹤,因為像右邊圖講的就是有一輛無人駕駛的車輛,它裡面有一個前置攝像頭,需要拍到前面的幾輛車,把它實時的跟蹤住,並且計算出當前車與前車之間的距離,這也是視覺目標跟蹤的一個應用。
推薦閱讀:
※純乾貨:一篇文章講清楚人工智慧、機器學習和深度學習的區別
※乾貨 | 深度學習時代的目標檢測演算法
※一頁紙說清楚「什麼是深度學習?」
※加州大學伯克利分校:劉子緯博士——基於深度學習的以人為中心的計算
※深度學習發展簡要筆記