764
機器人
人工智能如何“看懂世界”
深度學習是機器學習的一個重要分支,是人工智能重要實現方法之一。機器學習在近四十年來發生了巨大的變化:從20世紀80年代符號學習的盛行到九十年代統計學習一統天下,再到近年來深度學習的出現。對比機器學習的發展曆程,深度學習隻是機器學習中一個新興的課題。由於計算能力的發展和大數據的支持,深度學習取得了突破性的進展,被廣泛應用於圖像語音、視頻和自然語言等各個領域。
人工智能通過圖像來看懂事物,理解世界。其中一個重要的技術環節就是圖像的多目標檢測。本文將對多目標檢測的方法進行簡單介紹,本文內容全部內容均摘自書籍“《深度學習入門與實踐》龍飛 王永興著清華出版社”第四章。書中有更全麵的講解和全部的驗證代碼。
圖4.35 Faster R-CNN目標檢測結果
目前目標檢測方向性能較好的技術有Faster R-CNN、YOLO和SSD等。FasterR-CNN是R-CNN和FastR-CNN的改進版,可以說R-CNN、FastR-CNN和FasterR-CNN是同一係列的算法,而YOLO和SSD與FasterR-CNN相比在精度和檢測時間上各有所長。
Fast R-CNN在R-CNN的基礎上性能確實提升不少,但是對於整個算法來說,尋找推薦區域已經成為一個瓶頸。Fast R-CNN和R-CNN都依賴於區域推薦算法來尋找推薦區域,使得整個目標檢測算法被分割成了兩個串行的階段,從而降低了效率。
有鑒於此,Faster R-CNN用深度神經網絡取代區域推薦算法來產生推薦區域,而這個神經網絡正是Fast R-CNN用於特征提取的深度卷積網絡。該網絡加上兩個額外的卷積層即為產生推薦區域的神經網絡,被稱為RPN(Region Proposal Network)。
圖4.32 FasterR-CNN算法實現架構
雖然Faster R-CNN已經將R-CNN這一係列算法的性能推到了極致,但其基本思路依然是先預測推薦區域,再判斷類別,精修位置。與R-CNN相比,Faster R-CNN的速度已然提高了不少。但是囿於R-CNN的這種框架,Faster R-CNN的準確率雖然已經非常可觀,速度卻依然不能盡如人意。
有鑒於此,Girshick再次出手,提出了You Only Look Once算法,並起了個很娛樂化的名字YOLO。YOLO使用單個神經網絡直接從整張圖片的卷積特征中預測邊框和分類,將目標檢測問題重構為單一的回歸問題,這樣就可以省去R-CNN係列算法各構件單獨訓練的時間,從而達到很高的檢測效率。整個檢測過程就好像人類掃一眼圖片就能把圖中所有的物體都識別出來一樣,所以稱為“你隻看一眼”(You Only Look Once)算法。
圖4.36YOLO算法原理
如前所述,YOLO打破了R-CNN係列算法先尋找推薦區域,再判斷類別的架構,采用單個神經網絡來預測邊框位置並判明類別。這樣做與采用VGG的Faster R-CNN相比,檢測精度雖然有所下降,但是檢測速率大幅度提升。SSD借鑒了YOLO的一些思想,不僅使得檢測精度與使用VGG的Faster R-CNN相當,速度比YOLO還有所提升。
SSD依然使用單個神經網絡來預測邊框的位置並判斷類別。與YOLO不同的是,SSD利用了神經網絡中不同層的特征圖來預測邊框和類別,這樣可以利用不同尺度的特征圖,在更廣的範圍上檢測物體。具體做法為:使用VGG截去分類層作為基礎網絡,並在基礎網絡之後添加額外的若幹卷積層。這些卷積層的尺寸遞減,以允許不同尺度範圍的預測。同YOLO類似,SSD在特征圖的每個網格上分配一係列固定大小的邊框,稱為默認邊框(default box),如圖4.37中虛線框所示(《深度學習入門與實踐》書中第四章)。不同層特征圖的尺寸不同,如8×8或4×4。對於每一個默認邊框,需要預測其邊框形狀及坐標,還有其歸屬於每個類的置信度。
如圖4.37 SSD架構圖
SSD算法在精度上超過了YOLO,在檢測速度上也優於YOLO,通過實驗SSD算法模型準確的檢測出上圖人物和車輛的位置,邊框的位置非常準確,並以很高的置信度映射了標簽。同樣的測試圖片用前麵的Faster R-CNN算法檢測的運行時間為1134.771秒,而使用SSD算法隻需要3.18秒。
以上所有內容、數據、圖片均節選自書籍“《深度學習入門與實踐》龍飛 王永興著清華出版社”。除此之外,此書中還有更多關於圖像分類和圖像識別的樣例講解和代碼分析,以及阿爾法圍棋(AlphaGo)的基本原理、深度學習常用算法的總結等重要知識
內容來源:《深度學習:入門與實踐》
作者:龍飛,王永興 著
出版:清華大學出版社
最後更新:2017-10-08 06:29:24