目前無論是電動車還是新車,無論是對面的蔚小理(NIO、小鵬、理想、比亞迪),還是歐美的新車,或多或少都有相關的保護行進間的車子之應用,比如降低車速、移動車身等。
要做這些應用,首先要確立的是機器必須學會檢測物體,如何用主要的表達函數來提高效果,降低損失函數的值,用什麼激活函數和逼近函數等等在。但這些都需要時間和耐心;如果你想涉足機器學習,可以先做一些應用體驗,然後再優化創建機器學習模塊。
下面是一個使用YOLO檢測模塊提醒司機保持安全車距的應用,於實際道路上測試。(Python Coding) 使用Asus ROG Flow Z13 GZ301VV在實際道路上測試惡劣天氣和弱光的情況:
其他情境,晚上車多光線不佳,用同一台機器模擬是否可以提醒司機保持車距:
https://youtu.be/vAe6PHg-NWA
有優點也有缺點,後面會講到。
使用Yolo做實時檢測實驗,實驗目的是提醒用戶在車流中保持距離。
出於以下動機:
接下來,描述應用程序的流程內容。
這里首先(鏈接)參考改善YOLO的使用
然後判斷方式如下:
打開攝像頭,即時抓取圖像,傳給YOLO模塊進行判斷。
紫色決策塊 “detect object Is in Range of detecting” 判斷物體是否滿足檢測條件。檢測到的條件將有兩個線性方程。如果兩者都在這個線性方程後面的塊中,即滿足要求被檢測到,立即用框顏色標記。
動態設置兩個線性方程式,下圖左邊綠線,右邊藍線,線性方程 “ ax+b = y”。 所謂動態,為隨鏡頭狀況調整參數,自動算出二條線的個別 a、b 值,供接下來計算判斷。
從兩側駛來的汽車通常不會越過這兩條線。即使有,在線路中的比例也太小,不能滿足檢測要求;
如果左側車往前走的越遠越快,勢必面積越來越小,對我們相對越安全。
接下來解釋一下流程圖中紅色的決策塊,“Whether the car object in this screen is a car object in the previous round of screen?”,判斷當前對像是否也存在於上一輪畫面中,檢測到,如果是,保存這輛車的對象;不管是不是,都必須送到下一個綠色決策塊。
以下示意同一物件的判斷,前提是擷取的螢幕每幀是連續的。紅色表示下一幀的物件,藍色表示原物件。在連續圖片的狀況下,紅色重疊在藍色原物件,勢必是同一物件。
接下來是流程圖中綠色的決策塊,“Whether the vehicle object is within the dangerous vehicle distance and is closer to you than the previous vehicle object?” 如果危險車距越來越近,則會進行標記提示。
如何判斷危險區域的車輛物體離你越來越近?可以實現計算的面積。如果物體的可視面積越來越大,也意味著物體在物理上離自己越來越近。
詳細過程還是需要根據上面的流程圖。
最後,如果畫面上的每個物件都判斷完畢,馬上從攝影機取即時影像,做新的迭代過程。
因此,非常需要高速計算設備的輔助。恰好華碩的遊戲平板也能滿足這種需求。
型號為華碩 ROG Flow Z13 GZ301VV
下面的鏈接顯示計算需要散熱。這款電競平板設計巧妙,出風口朝上,可以將高速計算芯片和GPU合二為一。
最後總結一下不足和需要改進的地方:
優點是: