手把手自己造無人駕駛車,是什麼樣的體驗?

2021-09-11 12:44:39 字數 3099 閱讀 3496

文:江浩

9月中旬有幸參加了優達學城、pix 和 autoware 聯合舉辦的線下無人駕駛實訓,收穫頗豐。這篇文章的目的,一方面是我對這次線下實訓的覆盤總結,另一方面,感興趣的同學也可以藉此了解實訓的具體內容。

本次參加實訓的同學都很厲害,有來自上汽、nevs 等主機廠的工程師,有來自滴滴的軟體工程師,有來自創業公司 ceo,還有來自上海交大、同濟和東北大學等知名高校的學霸。而導師們分別來自優達學城、pix 和 autoware 3個主辦方。

實訓基地

實訓的最終目的是實現紅綠燈的啟停。具體來說,車輛在進入無人駕駛模式後,沿著錄制的軌跡自動行駛,當行駛到紅綠燈前方時,對其進行識別。如果是綠燈則繼續行駛,是紅燈則需要在規定的範圍內停車。當綠燈亮起時,車輛再次啟動。

說起來容易做起來難,無人駕駛是乙個系統工程,想用實現這個看似簡單的功能,需要的知識著實不少。下面就來說說我們小隊是如何做的。順便說一句,我們的隊名是「紅鯉魚與綠鯉魚與驢」,考慮到我是南方人實在分不清「l」和「n」的發言,簡稱「鯉魚隊」。

autoware 介面

autoware 介面

然後,把雷射雷達和攝像頭連線到 autoware,通過攝像頭採集試驗場地的環境資料,用來訓練紅綠燈檢測器。

通過手機觀察雷射雷達發出的雷射

接下來是製作高畫質地圖。開車繞行試驗場地,通過車載雷射雷達(velodyne 提供)生成點雲,再通過 autoware 製作成高畫質地圖。

雷射雷達檢車到的試驗場地

高精地圖

製作好高畫質地圖後,就可以實現車輛的尋跡功能了,也就是通過 autoware,讓車輛在設定好的軌道上行駛(無需人工控制),類似於火車沿著軌道行駛,只不過車輛沿著的不是金屬的軌道,而是 autoware 中的「路點」。

autoware 模擬尋跡

實車尋跡

要實現最終目的,還需要編寫乙個紅綠燈檢測器。檢測器對攝像頭拍攝到的影象進行識別,識別的結果輸出給 autoware,再由 autoware 控制車輛行駛或者停止。

最初,我們打算使用深度學習演算法訓練紅綠燈檢測器,但是檢測效果並不好,後來改用傳統的計算機視覺,影象識別的準確率能達到 87%,優化引數後,準確率接近 95%.

這一切都準備完畢後,就可以對車輛進行檢測和優化了。由於前期進度較慢,一直到晚上 8、9 點我們才有時間去試驗場。檢測效果不錯,優化引數後,車輛能夠準確識別紅綠燈,並且在規定範圍內實現啟停。

夜間測試

雖然晚上檢測的效果不錯,但是並不代表白天也是如此。第二天,也就是比賽當天,我們隊的表現並不如人意。原因其實很簡單,白天拍攝到的影象背景太複雜,紅色的地面,綠色的樹木,甚至彩色的衣服(攝影師小妹妹快走開,你的衣服上怎麼紅綠黃三色都有!),都會對紅綠燈的檢測造成影響。而在夜晚,背景一片黑色,紅綠燈的檢測要容易得多。

三色毛衣是鯉魚隊的噩夢

讓我難以理解的是,我編寫的識別紅綠燈的**,使用白天拍攝的影象進行檢測,正確率接近 95%,但是兩天後在試驗場上卻識別不出來了。想必還有許多影響因素沒有考慮到,在無人駕駛領域,我還需要多多研究,提高自己。

雖然最終結果不是太理想,但是在在 5 天的實訓中,我們收穫太多。

1 實車測試

作為優達學城《無人駕駛工程師》的學員,我們都具備一定的相關知識,但是幾乎沒有在真車上做過測試,執行自己的**。這次實訓,讓我們在短短5天的時間裡,實現了從0到1的跨越。我們不但掌握了autoware的基本操作,編寫了相關**,學習了線控知識,還親手生成了點雲和高精地圖,親眼看到自己編寫的**在車輛上執行,親身體驗了測試車輛的整個過程...

2 實踐學過的知識

知識不是用來學的,而是用來實踐的。只有實踐過的知識才能顯示其價值。在完成《高階車道線識別》專案的過程中,為了消除影象失真,需要對攝像頭進行校準。校準很簡單,只需要幾行**。不過,能在實踐中應用這幾行**,仍然讓我有點激動。

圍棋棋盤校準攝像頭

3 體會到模擬和試驗的差距

我是《無人駕駛入門》的助教、《無人駕駛工程師》的學員,完成過紅綠燈檢測、車道線識別、交通標誌識別等專案,但是它們和實訓專案有很大的區別。

首先,以前的專案使用的都是課程中提供的資料集,而實訓中使用的資料都是我們自己採集的。後者需要考慮更多事情比前者多得多。比如,在使用攝像頭採集紅綠燈資料時,需要對攝像頭對焦,否則採集的影象模糊不清,根本無法使用。我們隊由於缺乏經驗,就犯過這樣的錯誤。再比如,《交通路牌識別》這個專案使用深度學習的方法識別 43 種交通標誌,資料集是課程中提供的。而在實訓中,我們需要自己給採集的影象打上標籤,以區分紅綠燈。

其次,模擬中可行的方案,在實車上未必有用。我們的最終目的是在實車上實現紅綠燈的啟停,所以編寫乙個紅綠燈檢測器。我做過乙個識別紅綠燈的專案,準確率達到 95%,這樣的準確率完全可以滿足專案的要求,本來想直接用在這裡,結果卻發現不可行。為什麼?因為專案中使用的資料集只包含紅綠燈,沒有其他干擾,識別起來相對容易。

課程提供的影象

但是攝像頭採集到的影象卻並不是這樣的,影象中還包大量背景資訊,綠色的樹,藍色的天空,紅色的地面,刺眼的陽光,甚至身穿紅綠黃三色毛衣的攝影師小妹妹(曾經的噩夢啊,不過很好奇**會識別成什麼呢?),都會對識別結果造成影響。如何排除這些干擾,也是必須要考慮的。

攝像頭採集的影象

最後,在完成實訓專案的過程中,我對學過的知識又有了更深的理解。比如,曾經做過乙個小習題,讓我利用給定的yaw rate資料,求出汽車行駛時的角度。在數學上這是乙個很簡單的問題,只需要對 yaw rate 求積分就可以了,然而我並不知道這些資料是如何得到的。在這次實訓中,我發現 autoware 匯出的路點資料就包括了這些資料。雖然都是獲得資料,但是自己親手測量資料,和使用別人給的資料,感覺完全不同,這兩者的區別,就好像乙個是看別人玩遊戲,另乙個則是自己親自參與遊戲。

路點資料

4 遇到了不少困難

在實訓過程中,我們也遇到了不少困難。比如,機器部署出現錯誤、作業系統奔潰了、工控機電源燒了、雷射雷達燒了...多虧了優達學城 aaron、pix 曾工以及名古屋大學教授 alex 的幫助,讓我們在第一時間解決了這些問題。遇到困難並不一定是壞事,沒有什麼事情是一帆風順了,如果真的有,那也不值得做。

最後,非常感謝優達學城、pix 和 autoware 聯合舉辦的這次線下實訓,感謝三位導師 aaron、曾工和 alex 對我們的幫助。還得感謝pix的行政人員,每餐都有貴陽美食,每天都有豐富的夜宵,而且還不帶重樣的!回重慶後我稱了**重,足足重了 5 斤。

tba

共享經濟 無人駕駛電動車

摩拜單車和ofo最近在京滬突然就火起來了,不過,你可能不知道,英國人已經打算玩更前衛的了。摩拜單車和ofo最近在京滬突然就火起來了,不過,你可能不知道,英國人已經打算玩更前衛的了。那就是共享電動車。對了,還是無人駕駛的喲。從英國牛津大學孵化出的乙個初創公司,幾天前在英國的公尺爾頓凱恩斯鎮完成了他們的...

第一輛無人駕駛車2

書中提到的城市病就是停車位。說到停車位,我生活的城市,如廣州,汕頭中的一些市中心,就被汽車塞出了毛病。小區裡停放的車輛還占用綠化面積,街道上停放的車輛占用行人路,這些都是城市病。作者設想的未來無人駕駛,街道上穿梭著大量運送倉,這些運送倉不再是傳統意義上的汽車,他們能高效有序的將客戶直接送達目的地,由...

實現sigmoid 手把手教你自己動手實現神經網路

階躍函式是指一旦輸入超過閾值,就切換輸出的函式。上述感知機中使用的就是該種啟用函式,一旦a大於0則,輸出變為1.上述感知機的階躍函式圖形如下,從圖中可以看出該階躍函式以0為界,輸出從0切換為1 或從1切換為0 值呈階梯式變化,因此稱為階躍函式。sigmoid函式與階躍函式對比 sigmoid函式 右...