逐飛科技
2021-01-07 Thursday
▌01 前言
各位車友好, 第十六屆全國大學生智能車競賽競速組規(guī)則 發(fā)布后,大家已經注意到由恩智浦贊助的 AI視覺組 是最具有綜合性的一個組,感謝NXP繼續(xù)對大賽的支持,讓我們感覺了挑戰(zhàn)性。
-
第十六屆全國大學生智能車競賽競速組規(guī)則:
https://zhuoqing.blog.csdn.net/article/details/110253008 -
ng.blog.csdn.net/article/details/111352093
關于“ 第十六屆全國大學生智能車競賽競速組-室內視覺組補充說明[2] ”的初稿詳情大家可以通過卓老師的微信公眾號推文了解到,點擊此處查看。
-
第十六屆全國大學生智能車競賽競速組-室內視覺組補充說明:
https://zhuoqing.blog.csdn.net/article/details/111352093
初稿發(fā)布后,很多同學都對AI視覺組產生了濃厚的興趣,同時也產生了很多疑問。所以,我們今天對AI視覺組的賽題進行一個簡單分析,希望能給目前還在迷茫準備階段的車友們打開一些思路。
根據初稿我們知道:車模限定使用C型車、微控制器限定使用NXP公司的MCU,推薦使用i.MX RT系列高性能MCU、傳感器基本不限,可以使用OpenMV RT模塊,但需要提醒的是該模塊并不能完成這個賽題組的所有任務,下文有詳細解釋,請仔細閱讀。
▌02 賽題任務分解
1.循跡
與其他競速組賽道兼容,依然需要循跡,依然包含120°三岔路口,循跡任務推薦采用普通攝像頭來完成,當然,也不是太普通,畢竟是全局快門的總鉆風,這個任務比較傳統(tǒng),這里不再贅述,可以查看往期推文。
2.數字識別
在三岔路口需要對路口處的數字進行識別,并根據數字的奇偶性,來決策應該走左邊還是走右邊,數字識別可以使用OpenMV RT模塊,也可以使用OpenART(本文后面會有OpenART的相關介紹)來完成。
3.AprilTag識別
AprilTag是一個視覺基準庫,在AR,機器人,相機校準領域廣泛使用。設定為與二維碼相似但相對更簡單的特定標志,實現快速檢測。
在賽題中AprilTag碼也代表著數字,依然通過識別其所代表的數字,并判斷奇偶性來得知靶標牌是在賽道的哪一側,AprilTag碼識別可以使用OpenMV RT模塊,也可以使用OpenART(本文后面會有OpenART的相關介紹)來完成。
4.物體識別
賽題中包含動物圖案和水果圖案,這部分內容也是該組別最能體現“AI”的一個環(huán)節(jié)。動物類包含狗、貓、馬、豬、牛五個子類別,水果類包含蘋果、橘子、葡萄、香蕉、榴蓮五個子類別,圖案對象均為全身或整體照片。
關于動物和水果的識別,需要采用第十五屆AI電磁組部署神經網絡模型的方式,來實現對圖案的識別,區(qū)別是數據量大了許多,所以這個環(huán)節(jié)的任務采用OpenMV RT模塊就完成不了了,必定需要部署神經網絡模型,當然也可以在該模塊上自行部署,但該模塊上沒有SDRAM,無法部署較大的模型,所以推薦在獨立的高性能MCU上部署AI模型進行訓練。
這里又提到對MCU性能有要求,因此規(guī)則中推薦使用NXP的i.MX RT系列的高性能MCU。對應的,我們推薦使用RT1064來作為部署AI模型的MCU,同時逐飛的RT1064核心板板載32M SDRAM,正好可以滿足模型數據量對空間的要求。
關于圖案識別的參考數據集及識別示例,NXP都會提供,屆時逐飛也會第一時間進行驗證。同時在這個賽題任務的討論時,基本意見是考慮預賽階段的數據集由組委會統(tǒng)一提供,也就是說預賽中出現的水果和動物圖案,都在預先提供的數據集里,決賽階段選擇預先告知的數據集之外的水果和動物圖案,這樣可以保證大多數同學的完賽率,同時提高決賽階段的競技水平,誰的訓練更充分,誰就更有可能在決賽中的識別環(huán)節(jié)取勝,具體實施方案應該會在正式版的規(guī)則中明確。
同時水果和動物的圖案可能還需要一個外框,用于定位抓圖,通過對圖像中這個外框的識別來定位,將攝像頭中有效的動物水果圖案抓取出來進行識別,避免背景對識別的干擾,這一點也許需要加入到最終的規(guī)則中去,后面逐飛在做驗證時也會更清楚這一點的需求,AprilTag碼的位置與靶標牌的距離及相對位置也需要實際測試,規(guī)則中的距離要求可能需要調整,有待進一步驗證。
5.激光打靶
在識別到圖案為水果時,需要使用車載小型激光發(fā)射器對準靶心發(fā)送一束激光,打中才算完成該項任務,激光發(fā)射的相關技術要求,會在后面的正式規(guī)則文檔中詳細寫出,相對而言,這部分工作需要建立在圖案識別的基礎上,識別準確了,打靶的控制才能準確實現。激光發(fā)射部分的制作很簡單,屆時會給出參考方案和技術指標。激光瞄準部分的機械結構應該需要用到舵機云臺,通過控制來實現瞄準靶心。
▌02 OpenART
接下來給大家簡單介紹一下上文中多次提到OpenART,這究竟是一個什么神器?
OpenART是由恩智浦研發(fā)的,最初的設計構想是做一套基于NXP i.MX RT系列高性能MCU的通用AI教育套件.
⊙ 應用場合:
- 人工智能教育,綜合創(chuàng)新,原型驗證
- 非多媒體數據上的機器學習(異常檢測、姿態(tài)識別、智能控制策略)
- 語音觸發(fā)、聲源定位
- 人臉識別
- 智能可運動物體(模仿+強化學習)-機電聯(lián)動:云臺載具
- 機器視覺(OpenMV,從這里可以看出,它可以替代OpenMV)
- MCU教育
- 傳統(tǒng)算法轉深度學習
⊙ 硬件設計特點:
- 模塊化設計
- 兼容樹莓派通信接口
- 強化數據采集 –攝像頭、多麥克風、多路AD、加速度、陀螺儀、地磁、壓力、溫度、濕度、照度等多傳感器融合
- 尺寸小巧
⊙ 軟件特點:
- RT-Thread內核,驅動,軟件組件及開發(fā)環(huán)境
- Micropython環(huán)境,用于二次開發(fā), AI教學
- OpenMV機器視覺庫,運行OpenMV IDE自帶視覺處理腳本
- eIQ: NXP機器學習開發(fā)包
OpenART套件的軟件部分采用RTOS為基礎,可以說RTOS為這套系統(tǒng)提供了很便捷的開發(fā)方式,對于大賽的AI視覺組來講,有RTOS的加持,可以為軟件設計提供更便捷的開發(fā)環(huán)境。
尤其該賽題組涉及到多任務,及Python和C語言的兩種開發(fā)語言,有了操作系統(tǒng)做多任務分配,就大大的提高了可操作性,同學們可以根據自己的需求和能力,來自由分配和設計自己的整體軟件結構,Python腳本可實現基礎硬件控制,C語言可以完成主控邏輯的程序編寫,同時解決了OpenMV只能用Python文件編寫功能,不能用C語言來編寫實時控制邏輯代碼的問題。
所以OpenART教育套件的軟件結構設計初衷,幾乎完美契合AI視覺組的任務需求,引入RTOS也在這種復雜多任務嵌入式系統(tǒng)的設計中,體現出了巨大的優(yōu)勢。
上面也提到了OpenART本身就可以變身為一個OpenMV,通過Python腳本就可以完成人臉檢測、色塊檢測、邊緣檢測等視覺處理腳本。??同時,現在的OpenART支持3種神經網絡引擎:分別是openMV的舊式nn模塊,tf模塊,以及nncu模塊。將來會支持GLOW。
接下來會制作基于nncu和tf模塊的模型,nncu模塊使用舊式CMSIS-NN API并且優(yōu)化了性能,而tf模塊使用新式CMSIS-NN的"_s8" API,性能有少量下降但8位精度更高。
▲ OpenART工具包架構
按照OpenART的設計思路,基于與智能車大賽AI視覺組任務需求的完美契合,NXP與逐飛聯(lián)合設計了這套硬件,如下圖所示,整個開發(fā)板依然圍繞逐飛RT1064核心板展開,攝像頭可兼容OpenMV4接口的Camera模塊和逐飛的凌瞳彩色攝像頭。
受NXP委托,逐飛正在做基于OpenART的AI視覺組賽題任務驗證,驗證完成后將會給出一個入門參考方案給同學們(包含神經網絡模型部署等),但更多的工作仍需要同學們自己去完成,包括OpenART開發(fā)套件也只能用于學習,只有RT1064核心板、OpenMV RT模塊、凌瞳彩色攝像頭等模塊可以直接用于比賽,參賽作品的拓展板需要同學們根據自己的需求自行設計和裁減。
因為OpenART開發(fā)套件包含的功能較多,對于競賽而言,有些功能是多余的,但如果您對其他部分也感興趣,可以在比賽之余通過開發(fā)板學習到更多的應用。
▲ OpenART 開發(fā)板
好了,本次的AI視覺組賽題分析就先到這了,更多關于AI視覺組的硬件適配,軟件方案的介紹且聽下回分解,歡迎留言或進QQ群(946236488)討論。
本文來自微信公眾號文章:智能車競賽,AI視覺組賽題淺析
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!