0
本文作者: AI研習(xí)社-譯站 | 2019-02-18 10:32 |
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
Visualization of Deep Learning Feature Maps in Mini Autonomous Vehicles
作者 | Nelson Fernandez
翻譯 | 劉劉1126
校對(duì)、審核 | 醬番梨 整理 | Pita
原文鏈接:
https://towardsdatascience.com/displaying-convnets-feature-maps-on-real-time-video-with-keras-and-opencv-418b986adda7
幾個(gè)月前,我們開始制造Axionaut,一種小型自動(dòng)無線電控制(RC)汽車,并且在巴黎參加了一些比賽。到目前為止一切順利,我們已經(jīng)取得了不錯(cuò)的成績。盡管如此,大家總是對(duì)控制汽車的卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部發(fā)生了什么感到好奇。
我們看到一些關(guān)于如何顯示特征映射和過濾器方面很好的文章,它們?cè)诶斫夂途帉懮窠?jīng)網(wǎng)絡(luò)特征映射時(shí)非常有用。我們還看到了一些很酷的Nvidia視頻,視頻展示了自動(dòng)駕駛汽車上神經(jīng)網(wǎng)絡(luò)實(shí)時(shí)激活的樣子(但是,它們是怎么做到的呢?)。
所以我們決定從頭開始,嘗試在原型中復(fù)制這種體驗(yàn)。為此,我們使用了預(yù)先訓(xùn)練過的Keras Convnet自動(dòng)駕駛模型,還有一些在訓(xùn)練和比賽時(shí)拍攝的視頻。
有了這個(gè)良好的開端,我們花了幾天時(shí)間來尋找一些經(jīng)典問題的答案,比如“網(wǎng)絡(luò)是如何看待世界的”和“網(wǎng)絡(luò)實(shí)際上到底關(guān)注什么”。
我們把體驗(yàn)的結(jié)果顯示在這里,請(qǐng)用科學(xué)的方法訪問:
https://youtu.be/YC13O-U5MnY
實(shí)現(xiàn)
如果你對(duì)我們是如何做到這一點(diǎn)感到好奇的話,首先你需要了解卷積層的特征映射在檢測視野內(nèi)相關(guān)特征時(shí)是如何激活的。這方面Harsh Pokharna的某篇文章做了很好的解釋。
在這種情況下,我們的汽車變成了一個(gè)檢測車道的“專家
就像人一樣,在不考慮其他因素(其他車輛、路標(biāo)、行人或目的地)的情況下,車道會(huì)給我們提供如何做出正確決策的相關(guān)信息。我們應(yīng)該向左轉(zhuǎn)?向右轉(zhuǎn)?繼續(xù)直行?
好吧,讓我們回到正題。我們需要做的第一件事是找到感興趣的卷積層,并且繪制需要激活的熱圖。為此,我們使用了這個(gè)龐大的存儲(chǔ)庫的一個(gè)稍微修改過的版本。
完全重建一次激活意味著要考慮到這里提到的“深”卷積層的作用。
為了簡化,我們要估算出單個(gè)卷積層的激活量,這里使用三次樣條插值法,而不是逆卷積。在對(duì)網(wǎng)絡(luò)上所有特征映射進(jìn)行可視化檢測后,我們選擇了第二個(gè)卷積層。
我們將結(jié)果顯示在這里:
第二層卷積的特征映射
在這一點(diǎn)上,很明顯網(wǎng)絡(luò)主要是在響應(yīng)車道。下一步是將原始輸入圖像與激活重疊,以一種不損壞原始圖像形狀和顏色的方式將響應(yīng)高的區(qū)域清晰地疊加在一起。
這里要用到OpenCV!首先創(chuàng)建一個(gè)二進(jìn)制掩碼,用來分割出激活最高的部分,同時(shí)棑除掉其他的。由于激活映射的區(qū)域較小,我們還需要向上采樣。然后,使用按位運(yùn)算獲得最終合并的圖像。
最先要做的按位運(yùn)算是將二進(jìn)制掩碼和激活映射進(jìn)行“與”運(yùn)算。該操作可以用OpenCV輕松實(shí)現(xiàn),并且分割出映射里激活最高的部分。
二進(jìn)制掩碼
按位運(yùn)算中掩碼和特征向量的“與”運(yùn)算
就像預(yù)期的那樣,我們最終得到了一條完全由卷積神經(jīng)網(wǎng)絡(luò)切割出來的、清晰的車道。
現(xiàn)在我猜你已經(jīng)想到了,為了要完成最終的圖像,我們需要做的第二步按位運(yùn)算:與運(yùn)算。圖像中的冷藍(lán)色是由于Matplotlib (RGB)和OpenCV (BGR)顏色格式不同導(dǎo)致的。你可以搗騰這個(gè)會(huì)變色的色圖來得到不同的顏色。
就這樣,我們?cè)趯?duì)網(wǎng)絡(luò)激活做合理估算的基礎(chǔ)上,將輸入圖像與特征映射做最后整合。
最終整合后的圖像
現(xiàn)在,讓我們用一段視頻來呈現(xiàn)這個(gè)結(jié)果吧。
問題
如果您有任何疑問,我將很樂意在評(píng)論中回答。 此處提供了指向公共存儲(chǔ)庫的鏈接,包括所有代碼和數(shù)據(jù)庫。 不要忘記在Twitter上關(guān)注我們。
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
長按鏈接點(diǎn)擊打開或點(diǎn)擊【迷你自動(dòng)駕駛汽車深度學(xué)習(xí)特征映射的可視化】:
https://ai.yanxishe.com/page/TextTranslation/1206
AI研習(xí)社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
等你來譯:
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。