當前位置: 華文問答 > 數碼

研究自動駕駛技術的演算法需要哪些知識?

2017-02-05數碼

無人駕駛車 是一個完整的軟硬件系統。硬件系統除了常規的汽車的配置還涉及到專用於無人駕駛技術的傳感器,比如網絡攝影機,雷達等。每個公司設計無人車的思想不盡相同,因此軟件演算法更是難以概括。

作為一個學生來講,學習無人駕駛,數學知識和編程基礎是必不可少的。

數學知識有大學數學基礎基本就可以入門啦,學過大學數學代表你懂得求導,微積分,線性代數和概率論等知識。此外,有大學數學的素養,當你遇到新的數學問題時也能快速找到學習方法。

在編程基礎中 Python 是非常友好的,Python 易於學習和使用,擁有大量的庫,能夠快速的把你的思路和想法實作。不過當你想把這些演算法移植到硬件器材上或者涉及更低層的方法時你就不得不用 C/C++ 啦。

更多的專業知識比如機器學習,有時我們需要先定義這是一個分類問題還是回歸問題,再設計解決問題的方法;如果我們設計了一個模型,我們也要用機器學習的方法來評估模型的穩健型等。另外還有電腦視覺,影像處理和深度學習。

硬件方面我們可能需要知道使用哪些傳感器,如何采集傳感器的數據,如何處理傳感器數據,將傳感器的資訊進行融合。

當無人車意識到自己處於一個什麽樣的環境中時,它應當知道作出怎樣的決策。你一定還需要控制理論和控制方法甚至車輛動力學的知識等。

在無人車涉及到的如此多的技術中,電腦視覺和影像處理是不可或缺的一部份。以優達學城無人駕駛車工程師(英文) 這門課程第一學期中涉及的到的演算法來舉例說明。

第一學期3個專案涉及到的演算法都是較為基礎的,無人車公司基本都會用到,並且這些技術也相對成熟。

1. Project1 道路線檢測

在這個專案中,需要使用 Python 和 OpenCV 來檢測圖片中的道路線,涉及到的方法有顏色選擇,切圖(ROI, region of interest selection),灰度處理,高斯模糊,邊緣檢測和霍夫變換直線檢測。如果能夠辨識一張圖片中的道路線,那麽對於行駛中的車輛上網絡攝影機即時采集的影像也可以實時分析。

(專案成果:LaneLines)

2. Project 2 交通標誌辨識

無人車也是要懂得交通規則的,所以辨識交通標誌並根據標誌的指示執行不同指令也非常重要。這個辨識交通標誌的專案就需要使用深度學習(摺積神經網絡)的方法來完成。

3. Project 3 高級道路線檢測和車輛檢測

高級的道路線檢測需要計算相機校準矩陣和失真系數對原始影像的失真進行校正;使用影像處理方法,將影像進行二值化處理;套用透視變換來糾正二值化影像(「鳥瞰檢視」);檢測車道並尋找確定車道的曲率和相對於中心的車輛位置;將檢測到的車道邊界扭曲回原始影像;視覺化車道,輸出車道曲率和車輛位置。

還有一個非常有意思的方法是行為複制(Behavioral Cloning),你在遊戲模擬器中開車,並收集道路影像和方向盤角度等資訊,然後搭建一個模型,讓它來學習你開車的方法。最後效果如何不僅取決於模型的質素還取決於你開車的技術,你能明顯看到模型開車的方式中有自己的習慣,這裏有一段我做的專案成果(https://www. bilibili.com/video/av78 80273/ )可以參考!

此外,這門課後面的學習還會涉及到傳感器融合,定位,路徑規劃和控制方法等不同的知識和技術方面。這些都將會在第二和第三個學期逐步開放。

所以,如果題主剛剛進入這個領域不如就從基礎的方法開始不斷探索吧!歡迎交流~

感謝 Udacity 學生 @楊培文 投稿