Donkey Car實做 (2) Train Data蒐集&訓練方法

jolin Lee
jolin Lee
Sep 9, 2018 · 6 min read

繼前篇 Donkey Car(1)介紹材料、組裝、車道設計,本篇會在Train Data蒐集、訓練方式琢磨。


自從組好車,當眾人興高采烈,蒐集資料、Train Model,把Model放進樹莓派,把車子發動,以為有之前組長李翼1.5圈基礎,應該不會太難吧。

但是弔詭之處發生了,車子好像只會預測方向,不會預測速度。即使能預測方向,給它固定速度,在車道也跑不過半圈就出界,無疑是跌破眾人眼鏡。

工程師組成團隊,一步步抽絲剝繭,探討失敗原因。

同樣的模型架構、訓練手法,不同的車子結構、訓練資料。所以在確認過車子鏡頭,拍攝角度的確可以照到前方車道線,看起來只剩下訓練資料,需要改善。


資料蒐集

無人自駕車,相對其他股市預測、AOI檢測題目,訓練資料可說是源源不絕,要多少有多少,但是缺點是受物理環境影響很大(1)車子物理結構(2)現實環境的干擾,如光害(3)場地擺設(4)車道規劃,因此蒐集資料訣竅,顯得舉足輕重。

當初蒐集的資料,沒有標準化,也不知道量化概念,導致不論如何蒐集,都沒有成功案例。

tub-0815,資料量達到49618張照片,模型性能依然很差

仔細看資料內容可以發現,(1)反光(2)黑畫面(3)撞牆畫面,導致整個資料集品質不一。

考量到,開車有許多不同情境,我們開車總會遇到坑洞、突然衝出的車,有一套決策方式(機器學習),來執行解決的方法(演算法)。

所以應該盡可能,把可能遇到的情境,羅列到訓練資料當中,增加訓練資料的多變性,模型也就能學習,人類遇到不同情境,所做出的方法。


資料定義

設計了四種資料型式,蒐集Train Data時遵守Data的比例、跟數量,基本上車子就能很順暢地跑。

  1. 精確開 : 沿著中線開,保持平衡,不要左右搖擺,如圖一左。

資料目的:學習在正常狀況下,車子如何穩定駕駛。

2. 小幅震盪 : 以中線當基準,小幅的左右搖擺,如圖一右。

資料目的:沿中線的駕駛,以不同角度,去觀察車道,使車子能自行修正回中線駕駛。

圖一左:精確開;圖一右:小幅震盪

3.大幅震盪: 與小幅震盪相同,只是增加擺動幅度,以不碰觸邊界為原則,如圖二左。

資料目的:加強小幅震盪效果。

4. 車道邊界: 讓車子在邊界間,來回曲折前進,開到邊界立即折返,如圖二右。

資料目的:神經網路能學習,車道邊界(極值)輪廓究竟在何處,(1)車道寬(2)彎道曲率,無形中能學習下來,使神經網路認知,車道線不可跨越。

圖二左:大幅震盪;圖二右:車道邊界

0816資料集:8月16日蒐集的資料,帶領團隊脫離泥沼,取名0816以茲紀念。

0816資料集是比較完善資料,能夠在車道順暢開,並且資料的數量、比例,以及種類都有設計過。大家各自設計的車道,每圈蒐集的照片,可能會有所不同,我們Train Track是一圈概約1100張照片。

0816資料集。圈數代表,順時針&逆時針開的圈數

要做延伸題目,可以參考下列

5. 避障: 除了車道外,道路上出現障礙物,需要進行閃避,但不可超出車道,需將障礙物不斷隨機擺放。

學習目的:依據障礙物離兩側車道距離,推斷最佳方式是左閃或右閃。

0817資料集:8月17日蒐集的補充資料

為了加強車子穩定,以及增加避障功能,又額外蒐集了不同情境的資料。


訓練方式

(1)0816:順暢開,專注在車道藍色線條。

(2)0817:避障開,專注障礙物閃避。

擁有扎實基礎的訓練資料,作為日後模型訓練基底,我們也意外發現,訓練的步驟,也跟模型性能好壞有關。

像是模型先以0816作為訓練資料,接著再用0817訓練,稱為模型A,效果優於一次性將0816與0817一起訓練的模型B。

模型B時常為了閃避障礙物而出界;相反的,模型A不只掌握了車道不可跨越原則,對於障礙物與車道的閃避關係,也拿捏妥當。

分批循序訓練的性能,比一次性訓練,還要優

這種現象算是Transfer Learning的效果,在學習過0816(48000張),有了車道權重,接著再往上疊加0817(15000張)障礙物閃避,以權重關係來看,車道就是大於障礙物。

有了不可跨越車道的前提下,才去考慮怎麼閃避障礙物。

參照以往專案經驗,都是資料整理好,一次性訓練居多,不太可能每個專案,都分批定義不同資料集特性。

那麼是否有辦法,只用一次性訓練,使得模型B能達成模型A的性能?

我想是有的,(1)增加訓練資料(2)調整資料型態1–5(順順開…避障開)的比例(3)加深模型Layer,這些方法應該都能,讓避障與車道的效果更突出,進而使模型B達到模型A的性能。


第二集篇章用的有點多,雖然Deep Learn,可以省掉ML在特徵工程的功夫,可是它對資料量以及資料品質,會更為挑剔。

所以資料面、跟訓練手法,不容忽視,就像下圖,如果亂塞三寶的Train Data給Donkey Car,車子行為會跟三寶如出一轍。

下一篇將介紹Donkey Car(3)AI模型

集思廣義

一名工程師在AI產業的求生紀錄

jolin Lee

Written by

jolin Lee

集思廣義

一名工程師在AI產業的求生紀錄

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade