您好,登錄后才能下訂單哦!
本篇文章為大家展示了ModelArts與HiLens是如何讓車自己跑起來的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
(可選,忽略亦可,取決于攝像頭質(zhì)量,對于相機(jī)畸變較大的需要先計(jì)算相機(jī)的畸變矩陣和失真系數(shù),對圖片進(jìn)行校正)圖片校正;
截取感興趣區(qū)域,僅對包含車道線信息的圖像區(qū)域進(jìn)行處理;
對感興趣區(qū)域使用透視變換;
針對不同顏色的車道線,不同光照條件下的車道線,不同清晰度的車道線,根據(jù)不同的顏色空間使用不同的梯度閾值,顏色閾值進(jìn)行不同的處理。并將每一種處理方式進(jìn)行融合,得到車道線的二進(jìn)制圖;
提取二進(jìn)制圖中屬于車道線的像素;
對二進(jìn)制圖片的像素進(jìn)行直方圖統(tǒng)計(jì),統(tǒng)計(jì)左右兩側(cè)的峰值點(diǎn)作為左右車道線的起始點(diǎn)坐標(biāo)進(jìn)行曲線擬合;
使用二次多項(xiàng)式分別擬合左右車道線的像素點(diǎn)(對于噪聲較大的像素點(diǎn),可以進(jìn)行濾波處理,或者使用隨機(jī)采樣一致性算法進(jìn)行曲線擬合);
計(jì)算車道曲率及車輛相對車道中央的偏離位置;
效果顯示(可行域顯示,曲率和位置顯示)。
檢測駕駛過程中道路中其他車輛狀態(tài),顯示車輛類別、置信度,并通過YOLOv3進(jìn)行檢測車輛,然后返回的車輛檢測框的坐標(biāo)與當(dāng)前坐標(biāo)進(jìn)行透視變換獲取大約的距離作為車輛之間的距離dis。
說明:
本Demo的主體框架基于HiLens Kit已經(jīng)基本開發(fā)完成,模型的選擇為基于DarkNet53的YOLOv3模型,權(quán)重為基于COCO2014訓(xùn)練的數(shù)據(jù)集,而車道線的檢測是基于OpenCV的傳統(tǒng)方法實(shí)現(xiàn)的,所以計(jì)算量較大,導(dǎo)致整體速度較慢。
1)考慮到部署,已經(jīng)測試過部署到HiLens Kit了,對了,也支持在HiLens Stuido運(yùn)行模擬測試,更推薦在HiLens Studio哦,比較方便,而且不需要硬件支持,只需要在HiLens Kit或HiLens Studio上安裝pillow庫就行了,關(guān)于如何在HiLens Kit和HiLens Studio上安裝第三方庫,非常簡單的哦,可參考:
在HiLens Kit上:https://bbs.huaweicloud.com/forum/thread-94316-1-1.html
在HiLens Studio上:https://bbs.huaweicloud.com/forum/thread-94317-1-1.html
2)如果想訓(xùn)練或優(yōu)化,由沒有硬件(比如GPU),那么很推薦使用ModelArts了,一站式開發(fā),無縫銜接到HiLens Kit哦, 關(guān)于ModelArts的介紹可參考:https://www.huaweicloud.com/product/modelarts.html
同時(shí)也許還能提升下運(yùn)行速度,這里介紹三種算法,親測都可以部署到HiLens Kit推理使用哦,就在最新的AI Gallery(原AI市場)中哦,這里除了有算法,還有模型、數(shù)據(jù)集等等,很豐富,大家可以自己探索一下,同時(shí)還可以分享自己的算法給其他開發(fā)者,開發(fā)者訂閱即可創(chuàng)建訓(xùn)練使用,很方便,相比于GitHub,不僅提供了源代碼,還提供了用于訓(xùn)練的硬件資源,強(qiáng)大的Tesla V100 32GB版本哦。
(1)YOLOv3_Darknet53,沒錯(cuò),就是著名的YOLOv3,經(jīng)典的目標(biāo)檢測網(wǎng)絡(luò),后續(xù)又推出了YOLOv4、YOLOv5(暫稱此名吧),AI Gallery也推出了YOLOv5的,不過由于PyTorch框架暫不支持模 型轉(zhuǎn)換,所以暫時(shí)放棄了。
關(guān)于YOLOv3_Darknet53的使用方法,算法界面介紹很詳細(xì),這里就不贅述了,可以參考使用,注意模型轉(zhuǎn)換部分請參考這篇博文中模型轉(zhuǎn)換部分哦:https://bbs.huaweicloud.com/blogs/199870
算法備用鏈接為:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=2d52a07e-ccbd-420f-8999-2ea7b4bdd691
(2)YOLOv3_Resnet18(GPU),如果我們只想做車輛的檢測或者為了簡化模型,提高速度,可以選用主干網(wǎng)絡(luò)為Resnet18的YOLOv3,網(wǎng)絡(luò)更輕量,速度會快一些哦。
同樣給上鏈接:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=948196c8-3e7a-4729-850b-069101d6e95c
(3)YOLOv3_Resnet18(Ascend 910),和上面(2)版本差異不大,主要改為由GPU換為Ascend 910訓(xùn)練的,大家可自由選擇哦。
鏈接為:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=7087008a-7eec-4977-8b66-3a7703e9fd22
好了,算法部分解決了,數(shù)據(jù)怎么辦呢?ModelArts的AI Gallery同樣想到了,提供了數(shù)據(jù)集哦,免費(fèi)訂閱,下載到自己的OBS導(dǎo)入就能用了(注意OBS需要一定花費(fèi)),這里我也提供了開源數(shù)據(jù)集的5164張人車圖片,供大家使用哦,上鏈接:https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=a337272b-6918-4282-83d6-2b15e2a4c716
那么數(shù)據(jù)集和算法都有了,該訓(xùn)練了吧,在ModelArts上可以很好完成,憑借強(qiáng)大的Tesla V100 32GB或Ascend 910可以很快完成哦。
完成執(zhí)行如視頻中所示處理的一幀需要約300ms,也就是FPS約為3,不較慢,需要優(yōu)化。我覺得還有很大優(yōu)化空間,比如:
(1)預(yù)處理和后處理很費(fèi)時(shí)間,真正推理很快,可以從這方面加速,不知道開啟多線程是否有提升,應(yīng)該有吧;
(2)應(yīng)該可以更好發(fā)揮專用硬件,記得好像有DVPP和AIPP吧,可以用來做色域轉(zhuǎn)換的操作;
(3) YOLOv3的后處理解析比較麻煩,這里用的是COCO的80類,但可以只用person、car兩類,或者再加一點(diǎn),同時(shí)nms也比較費(fèi)時(shí)間,如果能用算子實(shí)現(xiàn),融合到om模型中,會提速很多;
(4)這里使用的是Python,如果用C++應(yīng)該會提升一些,執(zhí)行效率會高很多吧。
上述內(nèi)容就是ModelArts與HiLens是如何讓車自己跑起來的,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。