2021-12-13 20:47:14 索煒達電子 810
文件編號:A340
文件大?。?/strong>34M
開發(fā)環(huán)境:Python3.6、OpenCV3.4.x
猿創(chuàng)承諾:該項目親測正常運行,需遠程調(diào)試部署需另外收費,確保正常使用,不能正常使用全額退款。
簡要概述:帶轉向輔助和車道偏離監(jiān)控的車道檢測, 本項目旨在演示車道檢測系統(tǒng)如何在配備前置攝像頭的汽車上工作。該系統(tǒng)在越來越多的車輛中占有一席之地,是自動/半自動車輛中使用的高級駕駛員輔助系統(tǒng)(ADAS)的重要組成部分。此功能負責檢測車道、測量曲線半徑(曲線的緊密度)并監(jiān)控從中心的偏移。有了這些信息,該系統(tǒng)通過確保車輛在車道線內(nèi)居中而顯著提高了安全性,并且如果還配置為控制方向盤在高速公路上無需任何駕駛員輸入的情況下緩慢轉彎,則可增加舒適性。這是用于生產(chǎn)車輛的簡化版本,如果提供良好的條件(清晰的車道線、穩(wěn)定的光照條件),則功能最佳。在這個存儲庫中,它包含一個行車記錄儀鏡頭,供腳本使用。
確保兩個文件(laneDetection.py和drive.mp4)位于同一目錄中。
先決條件:
要成功運行項目,需要安裝以下軟件及其各自的版本:
-Python 3.6 or higher
-OpenCV 3 or higher
-Numpy 1.14 or higher
-Scipy 1.1 or higher
工作原理:
laneDetection提供了一個包含汽車在公路上行駛的dashcam畫面的視頻文件。py按照模塊化的方法,Python腳本有幾個函數(shù)來執(zhí)行車道檢測。
圖像處理
readVideo()
首先是readVideo()函數(shù),用于訪問視頻文件驅動器。位于同一目錄中的mp4。
processImage()
此函數(shù)執(zhí)行一些處理技術,以隔離白色車道線,并為后續(xù)函數(shù)的進一步分析做好準備?;旧?,它應用HLS顏色過濾來過濾出幀中的白色,然后將其轉換為灰度,然后應用閾值來去除除車道以外的不必要檢測,變得模糊,最后使用cv2提取邊緣。Canny()函數(shù)。
perspectiveWarp()
現(xiàn)在我們有了我們想要的圖像,透視扭曲被應用。在框架上放置4個點,使其僅圍繞存在車道的區(qū)域(如圖所示),然后將其映射到另一個矩陣上,以創(chuàng)建對車道的鳥瞰。這將使我們能夠處理更精細的圖像,并幫助檢測車道曲率。應注意,如果使用其他視頻,此操作可能會發(fā)生變化。預定義的4個點是根據(jù)這一特定的鏡頭計算的。如果另一個視頻的角度稍有不同,則應重新調(diào)諧。
正在處理的幀的不同階段(左),鳥瞰視圖(右)
車道檢測、曲線擬合和計算
plotHistogram()
繪制圖像下半部分的直方圖是獲取左右車道確切起始位置信息的關鍵部分。在分析直方圖時,可以看到在檢測到所有白色像素的地方有兩個不同的峰值。這是一個很好的指示器,指示左右車道的起始位置。由于直方圖x坐標表示分析幀的x坐標,這意味著我們現(xiàn)在有x坐標開始搜索車道。
顯示白色像素峰值的直方圖
slide_window_search()
滑動窗口方法用于檢測車道及其曲率。它使用上一個直方圖函數(shù)中的信息,并在中間放置一個帶有車道的框。然后根據(jù)上一個框中白色像素的位置將另一個框放在頂部,并將其自身相應地一直放置到幀的頂部。這樣,我們就有了進行一些計算的信息。然后,執(zhí)行二次多項式擬合以在像素空間中具有曲線擬合。
general_search()
在運行slide_window_search()函數(shù)后,這個通用的_search()函數(shù)現(xiàn)在能夠填充檢測到的車道周圍的區(qū)域,再次應用二次多邊形擬合,然后繪制一條黃線,該黃線與車道非常精確地重疊。這條線將用于測量曲率半徑,這對于預測轉向角至關重要。
measure_lane_curvature()
根據(jù)前兩個函數(shù)提供的信息,np。再次使用polyfit()函數(shù),但將值乘以xm_per_pix和ym_per_pix變量,將它們從像素空間轉換為米空間。xm_per_pix設置為3.7/720,車道寬度為3.7米,從直方圖中獲得的左右車道基準x坐標對應于車道寬度(像素),結果約為720像素。類似地,由于幀高度為720,因此ym_per_pix被設置為30/720。
滑動窗口搜索功能可視化(左),常規(guī)搜索功能可視化(右)
可視化與主要功能
draw_lane_lines()
從這里開始,應用一些方法來可視化檢測到的車道和其他信息,以便為最終圖像顯示。此特定功能采用檢測到的車道,并用綠色填充車道內(nèi)的區(qū)域。它還通過獲取左fitx和右fitx列表的平均值并將其存儲在pts_mean變量中(然后用淡黃色表示)來可視化車道中心。該變量還用于計算車輛到任意一側的偏移量或車輛在車道中心的偏移量。
offCenter()
函數(shù)使用pts_mean變量計算偏移值,并以米為單位顯示。
addText()
最后通過在最終圖像上添加文本將完成該過程并顯示信息。
main()
Main函數(shù)是按正確順序調(diào)用所有這些函數(shù)的地方,它包含播放視頻的循環(huán)。
定稿圖像
圖像處理階段
按需寫作:
演示視頻:
點擊查看:系統(tǒng)演示視頻
運行界面:
遠程協(xié)助:
溫馨提示:索煒達.猿創(chuàng)官方提供收費遠程協(xié)助,確保您項目運行成功。
點擊查看:遠程協(xié)助相關事項
我們提供完整項目文件清單如下:
文件目錄
├ 1.項目源碼
├ 2.運行截圖
└ 3.演示視頻