於最初的文章,有提到機器學習是趨勢,但怎麼開始、學那些技能、要看那些文件文章、要如何使用工具等等,google後又因資訊太多太複雜,讓學習意願或者動力被澆熄被降低的狀況就會發生。這時會開始思考,有這麼多項目要看,這些資訊到底有何幫助?
可以透過要面對的問題反找適當的資訊學習外,這邊另外給個建議,就是實際動手去做,去創造應用看看,那怕是簡單的任務,又或者是生活上很常見的狀況,都可以去嘗試。尤其是能夠改善自己平時的痛點,是最棒的。做錯了,或效果不如預期,不需要放在心上,因為實際動手參與的過程才是最棒的經驗。當有了經驗,會發現原來機器學習是多麼重要,自然會再度提升學習動機。
失敗的鬼抓人無人機 - 無人機當鬼
2022年疫情,小朋友被關在家時,大人就麻煩了,因為被要求要陪玩。所以想弄一個鬼抓人無人機,讓小朋友在頂樓空曠的室內玩,無人機當鬼。
但是不如預期,失敗了,原因如下:
所以測試的無人機並沒有積極追著人跑,頂多不斷地找尋目標小孩與調整位置:
https://www.youtube.com/shorts/1V4JxKaNIXM
這個經驗就是,要讓機器取得資料,反應時間、機器解析度與環境也是要考慮進來。
記得機器的安全保護還是要做,目的是反過來保護周圍的人,如無人機加裝保護套。
駕駛幫手 - 提醒保持距離
於今年初再度嘗試應用,這次注意到response delay的問題,所以直接結合程式與鏡頭於一台機器上。於是動手做的時刻又來了。
要做這應用,首先要確立的是機器必須學會檢測物體,如何用主要的表達函數來提高效果,降低損失函數的值,用什麼激活函數和逼近函數等等在。但這些都需要時間和耐心;如果你想涉足機器學習,可以先做一些應用體驗,然後再優化創建機器學習模塊。
下面是一個使用YOLO檢測模塊提醒司機保持安全車距的應用,於實際道路上測試。
https://www.youtube.com/watch?v=AhdyZbXmqbQ
此為使用Yolo做實時檢測實驗,程序的流程內容為:
1.參考改善YOLO的使用(鏈接)
2.然後判斷方式如下
打開攝像頭,即時抓取圖像,傳給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?” 如果危險車距越來越近,則會進行標記提示。
如何判斷危險區域的車輛物體離你越來越近?可以實現計算的面積。如果物體的可視面積越來越大,也意味著物體在物理上離自己越來越近。
詳細過程還是需要根據上面的流程圖。
最後,如果畫面上的每個物件都判斷完畢,馬上從攝影機取即時影像,做新的迭代過程。
最後總結一下不足和需要改進的地方:
車子的震動還是會影響判斷,但是如果誤差範圍設置得當,影響不會太大。
鏡頭的廣角,拍攝的圖像是否會失真,需要調整。鏡頭只有一個判斷前方,如果要判斷車身周圍需要多顆鏡頭輔助。
Yolo模塊很棒,但是晚上偶爾會出現一點誤判,如何減少誤判需要調整。
等紅綠燈時,如果車在前排且靠近斑馬線,可能會考慮到前方行駛的車輛和行人。
原因是無法判斷自己的車輛是否已經停止,需要車商提供API獲取車輛相關信息,如車速、控制速度等。
應用的判斷參數可以還是要優化的。
優點是:
1.在YOLO模塊的基礎上,前方主車提醒司機保持車距,精度高。
2.在行動的時候,YOLO的檢測依然靈敏。
3.應用程序可以通過高速計算的平板設備移動到其他車輛、電動機車等。無需購買新車即可體驗機器學習的應用功能。