0
本文作者: AI研習(xí)社-譯站 | 2018-08-28 11:34 |
雷鋒網(wǎng)按:本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 Deep Learning in Aerial Systems Using Jetson,作者為 Ahmad Kiswani, Amit Aides and Mark Silberstein。
翻譯 | 青翼出沒一笑揚(yáng) 老王家會(huì)霏的魚 校對(duì) | Lamaric 整理 | MY
無(wú)人駕駛空中系統(tǒng)(UAS)在過去十年中被廣泛應(yīng)用,盡管 UAS 最早被應(yīng)用在軍事上,事實(shí)證明,它們?cè)诤芏嗥渌I(lǐng)域都是有用的,包括農(nóng)業(yè)、地理制圖、航空攝影、搜索和救援等。然而這些系統(tǒng)都需要一個(gè)人循環(huán)完成遠(yuǎn)程控制、場(chǎng)景識(shí)別和數(shù)據(jù)獲取。這不僅增加了操作成本,而且將應(yīng)用范圍極大程度上限制在了能夠進(jìn)行遠(yuǎn)程控制的應(yīng)用范圍內(nèi)。
圖 1:2015 年 AUVSI SUAS 競(jìng)賽隊(duì)伍。地面目標(biāo)可以在團(tuán)隊(duì)前面看到。照片由 AUVSI Seafarer 分會(huì)提供。
我們的工作致力于將深度學(xué)習(xí)引入無(wú)人駕駛系統(tǒng),主要是通過以下兩點(diǎn):
針對(duì)特定任務(wù)優(yōu)化深度神經(jīng)網(wǎng)絡(luò),比如對(duì)象檢測(cè)、目標(biāo)識(shí)別、重建、定位等;
針對(duì)成本和性能對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化。我們通過現(xiàn)有平臺(tái)的嵌入式圖形處理單元(GPU)來(lái)平衡高性能與低功耗,比如英偉達(dá)的 Jetson TK1 開發(fā)工具和 Jetson TX1。
2016 年我們的技術(shù)團(tuán)隊(duì)參加了由國(guó)際無(wú)人駕駛系統(tǒng)協(xié)會(huì)(AUVSI)舉辦的無(wú)人機(jī)系統(tǒng)競(jìng)賽,并獲得了第 4 名的成績(jī)。在這篇文章中,我們將闡述怎樣基于 Jetson 在 Aerial 系統(tǒng)內(nèi)進(jìn)行深度學(xué)習(xí)。
競(jìng)賽的規(guī)則是安全地應(yīng)用和執(zhí)行系統(tǒng)工程原理,并開發(fā)和操作自主無(wú)人駕駛系統(tǒng)(UAS),成功地完成一組特定的任務(wù)。
其中的一項(xiàng)任務(wù)是對(duì)地面目標(biāo)進(jìn)行自動(dòng)檢測(cè),定位和分類(ADLC)。每個(gè)地面目標(biāo)都包含了位置(經(jīng)緯度)、形狀(圓,三角等)、字母(每個(gè)地面目標(biāo)都被一個(gè)居中單詞表示,如圖 1 所示)、字母方向和顏色這幾個(gè)特征。這些地面目標(biāo)在競(jìng)賽前都是未知的,并被分散在雜亂無(wú)章的任務(wù)區(qū)域中。無(wú)人機(jī)需要在任務(wù)區(qū)域的上空飛行并識(shí)別這些目標(biāo)以及它們的屬性和位置。
在這篇文章中,我們將介紹構(gòu)建此類系統(tǒng)的一些約束和挑戰(zhàn),并解釋我們?nèi)绾卧?Jetson TK1 開發(fā)人員工具包中使用深度學(xué)習(xí)來(lái)在可變條件下實(shí)現(xiàn)人類級(jí)別的準(zhǔn)確性。
系統(tǒng)描述
我們?cè)?ATHENA 無(wú)人機(jī)視覺和圖像科學(xué)實(shí)驗(yàn)室(VISL)開發(fā)我們的系統(tǒng),這是一個(gè)由 20 個(gè)學(xué)生成立的技術(shù)空中系統(tǒng)(TAS)小組。實(shí)驗(yàn)室配備了一臺(tái) Sony a-6000 的相機(jī),可以以每秒兩幀的速度產(chǎn)生 24M 像素的彩色圖像。覆蓋任務(wù)搜索區(qū)域只需要大約 10 分鐘,整個(gè)飛行任務(wù)時(shí)間少于 30 分鐘。這要求系統(tǒng)平均以小于 0.7 秒/張的速度處理 1200 張圖像。
圖 2:ATHENA 空中技術(shù)系統(tǒng)團(tuán)隊(duì)在 2016 年競(jìng)賽中使用的無(wú)人機(jī)
我們選擇了英偉達(dá) Jetson TK1 工具作為我們的主要圖像處理單元,因?yàn)樗?GPU 以輕量和緊湊的方式為卷積神經(jīng)網(wǎng)絡(luò)提供了非常高性能且高效的計(jì)算。我們能夠優(yōu)化內(nèi)存密集型應(yīng)用程序,以適應(yīng) Jetson 的 2GB 內(nèi)存,并獲得處理圖像所需的數(shù)據(jù)速率。
我們針對(duì)競(jìng)賽做了以下設(shè)計(jì):
設(shè)計(jì) ADSL 算法作為級(jí)聯(lián)分類器在任務(wù)流程的早期階段用來(lái)排除掉那些檢測(cè)目標(biāo)之外的圖像。這節(jié)省了計(jì)算資源同時(shí)加快了每幀圖像的平均處理速度。
設(shè)計(jì)深度學(xué)習(xí)網(wǎng)絡(luò)時(shí)在正確率和速度之間找到一個(gè)平衡點(diǎn)。
多核的并行 CPU 共享算法(Jetson 有一個(gè) 4 核的 ARM CPU)。
使用一臺(tái)獨(dú)立的機(jī)載計(jì)算機(jī)來(lái)控制相機(jī)并與地面工作站通信。這保證了 Jetson 僅用來(lái)處理圖像任務(wù)。
從 Jetson 操作系統(tǒng)中去除不必要的模塊(Linux For Tegra:L4T)來(lái)釋放內(nèi)存以支撐較大的神經(jīng)網(wǎng)絡(luò)。
算法描述
我們按照四級(jí)管道實(shí)現(xiàn) ADLC 算法,如圖 3 所示。
使用區(qū)域檢測(cè)算法實(shí)現(xiàn)目標(biāo)檢測(cè)。
使用一個(gè)深度神經(jīng)網(wǎng)絡(luò) DNN1 來(lái)實(shí)現(xiàn)形狀分類。
字符分割。
使用另外一個(gè)深度神經(jīng)網(wǎng)絡(luò) DNN2 來(lái)實(shí)現(xiàn)字符分類。
圖 3:ADLC 算法管道 : 藍(lán)色方塊由 CPU 處理,綠色方塊由 GPU 處理。
ADLC 算法的結(jié)果被發(fā)送到地面基站并且在傳統(tǒng)的 GUI 中顯示給無(wú)人機(jī)操作者(圖 4)。
圖 4:ADLC 用戶界面顯示算法的不同階段以及最終的分類。
區(qū)域檢測(cè)
我們選擇在 CPU 上運(yùn)行標(biāo)準(zhǔn) blob 檢測(cè)算法來(lái)實(shí)現(xiàn)區(qū)域檢測(cè)。這使得 GPU 可以解脫出來(lái)去執(zhí)行分類任務(wù)。blob 檢測(cè)算法能夠檢測(cè)圖片中的顯著性區(qū)域,而且可以在縮小的圖像上執(zhí)行來(lái)以精度換取速度。使用目標(biāo)的大小及凸性等標(biāo)準(zhǔn)可以進(jìn)一步篩選候選者。我們使用 OpenCV4Tegra 作為算法的優(yōu)化方法,并且并行運(yùn)行四個(gè)檢測(cè)任務(wù)。
使用神經(jīng)網(wǎng)絡(luò)進(jìn)行區(qū)域探測(cè)是十分可能的,而且有著 Jetson TX1 的更高性能的 GPU,我們希望我們的下一代系統(tǒng)能夠在整個(gè)管道中使用端到端的深度學(xué)習(xí),甚至對(duì)相機(jī)拍攝的高分辨率圖像進(jìn)行處理。
形狀分類
從全分辨率圖像中裁剪出目標(biāo)候選,并將其縮小成 32 x 32 像素的碎片,隨后用卷積神經(jīng)網(wǎng)絡(luò)(CNN;見圖 5)處理它們。我們精心的的設(shè)計(jì)了能夠在輕量級(jí)計(jì)算的同時(shí)保持高精度的網(wǎng)絡(luò)。除了組織者定義的形狀分類外,我們還加入了一個(gè)「無(wú)目標(biāo)」的分類來(lái)識(shí)別誤報(bào)。被識(shí)別為「無(wú)目標(biāo)」或者被分類到低可信度的部分將會(huì)被丟棄。在管道的這個(gè)節(jié)點(diǎn)上,絕大多數(shù)的誤報(bào)都被消除了。
我們使用 CAFFE with cuDNN 來(lái)進(jìn)行 DNN 推斷。
圖 5:Blob 檢測(cè)和形狀分類階段。
字符分割
在這一步,被分類成確定形狀(圓,正方形等等)的碎片經(jīng)過預(yù)處理生成目標(biāo)內(nèi)字符的二進(jìn)制掩碼。我們假設(shè)碎片的背景是相對(duì)均勻的,在目標(biāo)周圍進(jìn)行嚴(yán)格的剪切。我們使用 k 均值聚類法來(lái)將碎片中的像素聚為三類:背景、形狀和字符。我們使用前兩個(gè)矩對(duì)簇進(jìn)行分析,并將字符類的像素點(diǎn)轉(zhuǎn)換成目標(biāo)字符的二進(jìn)制掩碼。
字符的識(shí)別和定向
字符的二進(jìn)制掩碼被傳遞到字符識(shí)別階段。最初我們打算使用 Tesseract OCR 算法,但是我們發(fā)現(xiàn)這個(gè)算法對(duì)圖像的質(zhì)量太過敏感,對(duì)單一字符的精確度非常低。因此最終,我們訓(xùn)練了一個(gè)傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)來(lái)處理這一步。
除了字母數(shù)字類,我們還訓(xùn)練了網(wǎng)絡(luò)來(lái)對(duì)旋轉(zhuǎn)字符和無(wú)目標(biāo)類進(jìn)行區(qū)分。前一階段的字符的二進(jìn)制掩碼被饋入到網(wǎng)絡(luò)中,每旋轉(zhuǎn) 15°便獨(dú)立分成一部分。網(wǎng)絡(luò)將可信度最高的角度作為正確答案。我們從旋轉(zhuǎn)角度和相機(jī)方向來(lái)推斷字符的方向。加入旋轉(zhuǎn)字符提高了系統(tǒng)的精確性。我們推測(cè)到它允許網(wǎng)絡(luò)在區(qū)分字母和非字母時(shí)更加靈活。
圖 6: 采用旋轉(zhuǎn)字符方法確定方向的字符分割和分類階段
神經(jīng)網(wǎng)絡(luò)訓(xùn)練
我們沒有有競(jìng)賽目標(biāo)的標(biāo)準(zhǔn)數(shù)據(jù)集,而且建立一個(gè)足夠大的可用于訓(xùn)練的數(shù)據(jù)集是非常需要精力的并且需要?jiǎng)?chuàng)造數(shù)千個(gè)真實(shí)目標(biāo)來(lái)覆蓋所有可能的圖形、字符以及顏色的組合。除此之外,可能還需要上百種測(cè)試來(lái)捕捉目標(biāo)的圖像,所有我們根據(jù)綜合目標(biāo)訓(xùn)練了我們的深度神經(jīng)網(wǎng)絡(luò)。
我們創(chuàng)造了兩個(gè)合成數(shù)據(jù)集,一個(gè)用來(lái)訓(xùn)練圖形神經(jīng)網(wǎng)絡(luò)而另一個(gè)用來(lái)訓(xùn)練字符神經(jīng)網(wǎng)絡(luò)。我們通過從降采樣圖形中隨機(jī)裁剪碎片并在隨機(jī)位置賦予隨機(jī)目標(biāo)來(lái)創(chuàng)造形狀樣品。在賦予目標(biāo)之前亮度被設(shè)為于整塊碎片相匹配,而且加入了泊松噪聲來(lái)模擬相機(jī)捕獲時(shí)的噪聲。目標(biāo)被混合再來(lái)碎片中以避免鋒銳的邊緣。
圖 7: 覆蓋在真實(shí)圖像上的合成目標(biāo)。只有右上角的星星 C 才是真正的目標(biāo)。
我們通過在全分辨率下生成形狀目標(biāo),然后用與之前的分割算法相似的 k 均值聚類的方法提取目標(biāo)字符創(chuàng)造了字符樣本。采用這個(gè)方法合成目標(biāo)可用使目標(biāo)不僅在人眼看來(lái)很真實(shí),而且他們也模仿了系統(tǒng)捕獲和處理真實(shí)圖形的過程。圖 7 顯示了合成目標(biāo)的樣品。唯一的真實(shí)目標(biāo)是在頂部右側(cè)的帶有字母 C 的星星。
以上描述的過程使創(chuàng)建龐大的數(shù)據(jù)集成為可能。每個(gè)數(shù)據(jù)集包括 500K 個(gè)帶標(biāo)簽的樣本并分類在不同的類別中。字符數(shù)據(jù)集包含額外的旋轉(zhuǎn)字符類。而且,為了防止網(wǎng)絡(luò)對(duì)合成目標(biāo)過擬合,我們?cè)谟?xùn)練集中增加了在實(shí)驗(yàn)條件下捕獲的以及過去競(jìng)賽中的真實(shí)目標(biāo)物。
訓(xùn)練過程
我們將訓(xùn)練集數(shù)據(jù)的 80% 用于訓(xùn)練,10% 用于測(cè)試,10% 用于驗(yàn)證。我們使用 DIGITS 和一個(gè) NVIDIA Titan X (Maxwell)來(lái)進(jìn)行訓(xùn)練并且在僅僅 28 分鐘的訓(xùn)練時(shí)間內(nèi)就達(dá)到了 98% 的精確度。
我們進(jìn)一步驗(yàn)證了在實(shí)驗(yàn)中的圖片以及過去幾年的比賽中的圖片。這些圖片中出現(xiàn)的少量的目標(biāo)比大量的驗(yàn)證更有質(zhì)量。這個(gè)設(shè)置模仿了真實(shí)的競(jìng)賽場(chǎng)景,有利于比較不同網(wǎng)絡(luò)的特點(diǎn)。
總結(jié)與展望
......
想要繼續(xù)閱讀,請(qǐng)移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/679
更多精彩內(nèi)容盡在 AI 研習(xí)社。
不同領(lǐng)域包括計(jì)算機(jī)視覺,語(yǔ)音語(yǔ)義,區(qū)塊鏈,自動(dòng)駕駛,數(shù)據(jù)挖掘,智能控制,編程語(yǔ)言等每日更新。
雷鋒網(wǎng)雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。