深刻淺出自動駕駛(一)-圖像識別

這是自動駕駛的系列文章。自動駕駛的第一步是什麼呢?固然,是識別當前環境,具體來講就是識別本身的正確道路-車道線,入下圖所示python

clipboard.png

1 轉爲灰度圖

彩色的圖是無法識別出車道線的,因此咱們須要把他轉化爲黑白的圖像,入下圖所示oop

clipboard.png

你們知道,咱們的圖像都是由RGB三原色組成的,分別是0-255,因此,咱們只要對非白色的作出處理,把他變成黑色便可,用僞碼錶示優化

loop 讀取圖像中的每個像素
    像素RGB < 閥值  #純白是255,255,255
    該像素 = 黑色
end loop

2 將車道線疊加原圖

clipboard.png

固然,簡簡單單的識別出道路是不行的,咱們還須要在原圖中疊加道路,如上圖所示,主要是一些裁剪合併之類的動做了。spa

3 邊緣發現

以前的車道線都是白的,因此挺好作的,可是很不幸的是,車道並不是都是白的,咱們極可能遇到其它顏色的,並且有時候並不完整,以下圖所示,因此咱們須要其它的方法,好比說「邊緣發現」code

clipboard.png

python提供了一個包,openCV,咱們可使用這個包來協助開發,在開發過程當中還須要進行一些處理,其僞碼以下orm

1 將整個圖像轉爲灰度圖,畢竟不須要那麼多豐富的顏色
2 進行簡單的高斯模糊:GaussianBlur,以減小照片噪聲和細節
3 進行邊緣發現

最終咱們會得出以下圖所示的結果ip

clipboard.png

4 使用Hough Transform辨別車道線

進行邊緣發現以後識別出車道線,如何識別車道線呢?車道線實際上在圖像中表現爲一條直線,因此咱們的目標就是識別出長直線,因此,咱們的目標就是識別出長直線的模式。開發

咱們會用到一種叫作Hough Transform的方法,它是在1962有Hough發明的,它會把 y=mx+b映射成 b=xm+y,將直線變換成點,而後進行識別,以下圖所示,車道線是一條路it

clipboard.png

而後把這條路映射成點form

clipboard.png

以方便識別

進行Hough Transfom後會變成這個樣子

clipboard.png

然後咱們進行優化,好了後會變成這樣

clipboard.png

這樣,咱們就成功的識別出了車道線

(完)

相關文章
相關標籤/搜索