當前位置:
首頁 > 新聞 > 多任務深度學習框架在ADAS中的應用 | 分享總結

多任務深度學習框架在ADAS中的應用 | 分享總結

雷鋒網AI科技評論按:在8月10日雷鋒網AI研習社邀請了北京交通大學電子信息工程學院袁雪副教授給我們講解了在高級輔助駕駛系統(ADAS)中的多任務深度學習框架的應用

多任務深度學習框架在ADAS中的應用 | 分享總結

內容提綱:

ADAS系統包括車輛檢測、行人檢測、交通標誌識別、車道線檢測等多種任務,同時,由於無人駕駛等應用場景的要求,車載視覺系統還應具備相應速度快、精度高、任務多等要求。對於傳統的圖像檢測與識別框架而言,短時間內同時完成多類的圖像分析任務是難以實現的。

袁雪副教授的項目組提出使用一個深度神經網路模型實現交通場景中多任務處理的方法。其中交通場景的分析主要包括以下三個方面:大目標檢測(車輛、行人和非機動車),小目標分類(交通標誌和紅綠燈)以及可行駛區域(道路和車道線)的分割。

這三類任務可以通過一個深度神經網路的前向傳播完成,這不僅可以提高系統的檢測速度,減少計算參數,而且可以通過增加主幹網路的層數的方式提高檢測和分割精度。

以下為當天分享的內容總結。

圖文分享總結一、任務分析

多任務深度學習框架在ADAS中的應用 | 分享總結

WHO在2009年統計的一個數據顯示,在全世界範圍內每年由交通事故死亡的人數有123萬人。但是我們知道,在朝鮮戰爭中,整個戰爭死亡的人數也差不多一百多萬。也就是說,每年死於交通事故的人數差不多等於一次非常慘烈的戰爭的死亡人數了。根據WHO統計,在全世界範圍內每年由交通事故造成的死亡人數有123萬之多;而發生交通事故90%是由司機人為原因造成的,比如注意力不集中、超速、安全意識弱等等。所以目前減少交通事故的最主要途徑通過採用高級輔助駕駛系統(ADAS)就是減少認為錯誤。

多任務深度學習框架在ADAS中的應用 | 分享總結

對於ADAS系統,基本上包括這些功能:夜視輔助、車道保持、司機提醒、防撞提醒、車道變換輔助、停車輔助、碰撞疏解、死角障礙物檢測、交通標誌識別、車道線偏移提醒、司機狀態監測、遠光燈輔助等。這些功能是ADAS所必備的。

為了實現這些功能,一般其感測器需要包括視覺感測器、超聲波感測器、GPS&Map感測器、Lidar感測器、Radar感測器,還有一些別的通信設備。但是我們在市面上看到的大多數感測器其功能其實是比較少的,例如mobile I,它只有車道保持、交通標誌識別、前車監測和距離監測的功能,但並不全面。從廠家或者用戶的角度來說,自然我們希望能用最便宜的感測器來完成更多ADAS的功能。最便宜的感測器基本上就是視覺感測器。所以我們設計方案時就想,能不能通過演算法將視覺感測器實現更多ADAS系統的功能呢?這就是我們整個研發的初衷。

此外,我們還需要考慮ADAS的一些特點。ADAS系統(包括無人駕駛)是在一個嵌入式平台下進行的,也就是說它的計算資源很少。那麼我們也必須考慮如何在這樣一個計算資源非常少的基礎上,保證ADAS系統能夠快速且高精度地響應,同時還能保證多任務的需求。這是我們第二個要考慮的問題。

多任務深度學習框架在ADAS中的應用 | 分享總結

為了解決以上兩個問題,我們首先把ADAS的任務分解一下。如圖所示,我們將ADAS的任務分解成目標檢測與識別、圖像分割、攝像機成像目標跟蹤、圖像分割。我們過去一年多的研發工作其實就是,用一個深度學習框架來同時實現上述這四個的功能。

對於一個前向傳播的網路,其計算量和計算時間主要取決於它的參數數量,而80%的參數都來自全鏈接層,所以我們的第一個想法就是去掉全鏈接層。其次,網路越深,它的參數就會越多所以如果我們把目標檢測與識別、圖像分割、攝像機成像目標跟蹤、圖像分割做成四個網路的話,就會有X4倍的參數。

多任務深度學習框架在ADAS中的應用 | 分享總結

所以針對這兩個考量,我們用一個主幹的網路來做前面的運算,然後在後面再根據具體的任務分成多個小的分支加到主幹網路上。這樣多個圖像處理的任務就可以通過一個主幹網路的前向傳播來完成了,其參數大大減少,計算速度也變的更快。同時我們也能實現多個任務同時進行的需求。另外,在最後我們還可以將多個結果進行融合,駕到訓練過程的調整中,這樣就可以提高我們結果的可信性。

但是在這個過程中我們也碰到一些難點。第一個難點就是我們在同一個網路中需要將較大的目標(例如車輛)和較小的目標(例如交通標誌)同時檢測出來。第二個難點是,測速測距時我們需要的目標的位置是非常精確的,目前這個問題我們還沒有解決。

二、模型結構

多任務深度學習框架在ADAS中的應用 | 分享總結

這個是我們設計的網路的一個基本結構。它分為幾個部分:主幹網路(我們稱為解碼器)、多個分支(我們稱為編碼器)和基於CRF的結果融合。現在這個網路我們只設計了兩個編碼器,一個是檢測任務編碼器,還有一個是分割任務編碼器,以後我們還可以增加其他的編碼器。結果融合,主要是想用它來影響主幹網路的一些權重選擇。主幹網路,我們選擇了一些比較有人氣的演算法,例如VGG 16、GoogleNet、ResNet等。分割任務編碼器我們用了FCN編碼器,檢測任務編碼器我們用了YOLO9000編碼器。

1、主幹網路

多任務深度學習框架在ADAS中的應用 | 分享總結

下面我們來詳細看一下這個網路各個部分。首先我們來看主幹網路。主幹網路我們使用了VGG、GoogleNet或者ResNet。這幾個是可選擇的。從右側的這張圖(縱軸是網路深度,圈的大小表示模型的大小)我們可以看到ResNet在深度和大小上都比較好,我們選擇使用ResNet可以有比較好的實時性。

2、FCN語義分割解碼器

多任務深度學習框架在ADAS中的應用 | 分享總結

然後我們看一下FCN語義分割解碼器。在神經網路中,一張圖片經過主幹網路後,再對其提取高維特徵圖。其實這個過程就是用pooling的方法給它降維。結果到了輸出高維特徵圖時,它只有原圖像的1/32大小了。隨後我們採用上採樣把它升維成原圖像大小。上採樣的過程就如左側所示,這個示例中我們將2*2的圖像上採樣成4*4的圖像。

多任務深度學習框架在ADAS中的應用 | 分享總結

上採樣的結果就是解碼器預測出來的,我們將它與標註好的圖像進行比較運算,算出loss,然後對權重進行修改。在上採樣中一個問題就是,比較小的物體是計算不出來的。我們知道一些較淺的卷積層感知閾比較小,它會包含更多比較局部的信息;而較深的卷積層具有較大的感知閾,它能夠學習到更加抽象的信息。於是FCN就通過將pool3、pool4和pool5的信息疊加在一起進行上採樣,這樣就可以做到同時上採樣多個尺度的信息了。

3、目標檢測/識別解碼器 YOLO

多任務深度學習框架在ADAS中的應用 | 分享總結

其次我們再來介紹一下用於目標檢測/識別的解碼器YOLO。我們使用的是YOLO V2的解碼器,但這裡我們先介紹一下YOLO V1。這是YOLO V1的主框架,它的主幹網路是Darknet19,我們不用管它。我們重點關注編碼器的過程。主幹網路輸出的特徵圖,這種特徵圖會用1*1 的卷積核給正規化成7*7*30的特徵圖。那麼這個30是什麼呢?

多任務深度學習框架在ADAS中的應用 | 分享總結

在這樣一個7*7的矩形框中,每一個方形框用一個點來表示。然後我們分別用5維表示包含這個方形框的一個矩形框,其中4維表示x、y、z、w,另外一維為confidence。

多任務深度學習框架在ADAS中的應用 | 分享總結

在YOLO V1中30維的前10個為兩個這樣的矩形框。它們的(x,y,z,w)分別表示了坐標預測,而另外一維為confidence預測。另外的20維為類別預測(也就是說在模型中有20種可能出現的例如汽車、行人之類的模型 )。

多任務深度學習框架在ADAS中的應用 | 分享總結

YOLO V2與V1最大的不同就是採用了Anchor boxes。所謂Anchor boxes就是每個中心預測(例如9種)不同大小和比例的建議框,每一個建議框對應一個4維的坐標預測、1維confidence預測和20維的類別預測。它提出一個非常有意思的思想就是維度聚類,也即現在訓練集里通過聚類的方式算出Anchor boxes的大小。這樣,例如它從9個boxes選出5個boxes。於是對於VOC數據集,總共就5*(4+1+20)=125個輸出維度。

多任務深度學習框架在ADAS中的應用 | 分享總結

YOLO V2 Anchor boxes的選擇以及維度聚類的思想對於我們車載攝像的問題是更有效的,因為我們攝像機的位置是相對固定的,所以我們可以算出每一個目標的大小都是相對比較固定的。

我們在YOLO V2的基礎上也做了一些改動。首先是我們做了一些細粒度特徵,來檢測小目標。其次我們還在淺層特徵中進一步地做坐標預測,然後加到我們的整個預測當中,這樣可以提高小目標的預測。

4、一些思考

多任務深度學習框架在ADAS中的應用 | 分享總結

在這個研究的過程中,我們做了一些思考。

首先,在計算機視覺領域裡,低中層視覺問題更關注原始視覺信號,與語義信息的聯繫相對鬆散,同時也是許多高層視覺問題的預處理步驟。本屆CVPR有關低中層視覺問題的論文有很多,涵蓋去模糊、超解析度、物體分割、色彩恆定性(color constancy)。

其次,在最後的層中抽象的特徵對分類很有幫助,可以很好地判斷出一幅圖像中包含什麼類別的物體,但是因為丟失了一些物體的細節,不能很好地給出物體的具體輪廓,指出每個像素具體屬於哪個物體。

我們該如何將淺層特徵和深層特徵結合起來呢?這其實還需要進一步的研究。

三、資料庫建立

多任務深度學習框架在ADAS中的應用 | 分享總結

在資料庫這方面,我們發現國內的路況與國外路況很不一樣,且中國的車的種類也多種多樣。所以我們開發了一種半自動標註軟體,也就是我們可以通過演算法自動完成車輛標註,同時我們還可以手動修正誤差較大的標註。目前我們已經標註了5萬張矩形標註數據集。我們力爭在年底能夠開放數據集,另一方面我們也能協助企業建立資料庫。

多任務深度學習框架在ADAS中的應用 | 分享總結

另外在資料庫建立方面,我們還要拓展一下資料庫類型。例如通過原來白天的圖片,我們可以生成黑夜的圖片,增加到我們的訓練樣本中去。

四、結果顯示

多任務深度學習框架在ADAS中的應用 | 分享總結

多任務深度學習框架在ADAS中的應用 | 分享總結

雷鋒網註:此處結果顯示僅為展示部分視頻的截圖,視頻詳細內容請關注 AI 研習社:第9期·分享回顧|袁雪:多任務深度學習框架ADAS中的應用。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

上海財大教授何斯邁:當器官移植遇到匹配難題,可以用 AI 提高配對率
英國名校網站被造假,比真的逼格還高?
多任務深度學習框架在ADAS中的應用
高德與千尋達成戰略合作,但韋東說,國內的無人駕駛走入了誤區

TAG:雷鋒網 |

您可能感興趣

使用AMD CPU,打造自己的深度學習伺服器
IBM 的深度學習平台 FfDL
已有25款遊戲支持NVIDIA RTX DLSS深度學習超級採樣技術
全國MATLAB數據、圖像處理及機器學習與深度學習研討會
AMD推出部署就緒深度學習 INFN採用EPYC進行未來研究工作
AI在網路安全領域的應用:機器學習 VS.深度學習
IBM推AI深度學習計劃
DeepMind推出分散式深度強化學習架構IMPALA,讓一個Agent學會多種技能
NVIDIA利用深度學習讓機器人模仿人類行為
深度 | BAIR提出MC-GAN,使用GAN實現字體風格遷移
小米AI移動端深度學習框架MACE開源了!
ADA深度解讀——EOS的最強挑戰者
從 MAX 網站中獲取模型,一秒開始你的深度學習應用
深度學習得靠它!NVIDIA Volta GPU核心架構深層技術
IBM正在研製通用型深度學習晶元
不同的領域、框架,這是一份超全的深度學習模型GitHub集合
深度 | 嵌入技術在Dota2人工智慧戰隊OpenAI Five中的應用
INTERFACE#5袁進輝:深度學習引擎的最優架構
NVIDIA 遷移學習工具包:用於特定領域深度學習模型快速訓練的高級SDK
有料有深度的XPLANE美化貼