如何使用OpenCV實現(xiàn)車道線檢測,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供田家庵企業(yè)網(wǎng)站建設,專注與網(wǎng)站建設、成都做網(wǎng)站、H5技術(shù)、小程序制作等業(yè)務。10年已為田家庵眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
幾乎所有攝像機使用的鏡頭在聚焦光線以捕捉圖像時都存在一定的誤差,因為這些光線由于折射在鏡頭邊緣發(fā)生了彎曲。這種現(xiàn)象會導致圖像邊緣的扭曲。以下視頻用示例解釋了兩種主要的失真類型,強烈建議觀看。
假設我們現(xiàn)在了解什么是徑向失真,需要利用失真系數(shù)(k1、k2 和 k3)來校正徑向失真。calibrateCamera.py是攝像機校準程序,默認情況下不運行該程序。建議在生成目標上的特征點和圖像上的特征點的過程中至少使用20個棋盤圖像。Main中的calibrate()將在/data/calibration中查找圖像,但是我們也可以選擇其他目錄。
圖1 左圖:圖像失真;右:未失真的圖像
去除圖像失真的整個過程是相當有趣的,OpenCV有一個很好的教程,解釋了概念并舉出一些例子。
檢測車道的第一步是調(diào)整我們的視覺系統(tǒng),以鳥瞰的角度來觀察前方的道路,這將有助于計算道路的曲率,因此將有助于我們預測未來幾百米的轉(zhuǎn)向角大小。自上而下視圖的另一個好處是,它解決了車道線相交的問題。實際上只要沿道路行駛,車道線就是平行線。
鳥瞰圖可以通過應用透視變換來實現(xiàn),即將輸入圖像中車道區(qū)域四個點映射到所需點上,從而生成自頂向下的視圖。這些點是根據(jù)個案確定,決定因素主要是攝像頭在車輛中的位置及其視野。圖2中的圖片分別表示輸入和轉(zhuǎn)換后輸出圖像。
圖2 左圖:之前、右側(cè):之后
現(xiàn)在車道線是平行的,下一步將它們從輸入圖像上分割出來。輸入圖像包含RGB3個通道,車道線為白色或黃色?;谶@個假設,輸入圖像可以轉(zhuǎn)換為單個通道灰度圖像,從而消除我們不需要的通道。另一個要轉(zhuǎn)換為的顏色空間是HLS顏色空間,其中S通道可能會根據(jù)照明情況提供較好的結(jié)果。在以下示例中,將使用圖像閾值,因為在給定的輸入圖像中它可以正常工作。圖3在閾值處理后可視化輸出。
圖3 cv2.threshold(image, 220, 225, cv2.THRESH_BINARY)
下閾值(220)和上閾值(225)將根據(jù)輸入圖像手動調(diào)整。OpenCV有基于整體嵌套邊緣檢測的先進技術(shù),而無需對閾值進行任何手動調(diào)整,但本文仍然使用的是簡單的閾值技術(shù)。
預處理輸入圖像后,將在圖像空間中確定并繪制車道。方法是在二進制圖像(閾值圖像)的下半部分繪制非零像素直方圖,以觀察模式:
圖4直方圖x=像素,y = 計數(shù)
由于像素值是二進制的,峰值代表大多數(shù)非零像素的位置,因此可以很好地指示車道線。直方圖中的x坐標用作搜索相應通道的起點?;瑒哟翱诜椒ǖ母拍顚迷谶@里,以下視頻說明了滑動窗口的概念,圖5中是結(jié)果。
圖5.滑動窗口的概念應用于圖 4 的結(jié)果。
滑動窗口有助于估計每個車道區(qū)域的中心,使用這些 x 和 y 像素定位函數(shù)search_around_poly()可以適合二階多項曲線。該函數(shù)適合 f(y)而不是 f(x),因為通道在圖像中是垂直的。圖6很好地說明了這一步。
圖6 在這些通道上檢測到二階多項形
下一步是計算曲率半徑,該半徑可以使用與曲線局部部分附近的點緊密擬合的圓進行計算,如圖 7 所示。曲線在特定點的曲率半徑可以定義為近似圓的半徑。此半徑可以使用圖 7 中的公式計算。
圖7 曲率概念圖的半徑和用于計算 RoC 的方程
最后一步是在這些點之間放置一個多邊形,并將其投影回原始圖像,來突出顯示車道區(qū)域。曲率的車道面積和半徑是根據(jù)像素值計算的,像素值與真實世界空間不同,因此必須轉(zhuǎn)換為現(xiàn)實世界的值,這涉及到測量我們投射扭曲圖像的車道部分的長度和寬度。為簡單起見,我們可以假設大多數(shù)車道通常長 30 米,寬 3.7 米,并且代碼使用這些值將像素空間值轉(zhuǎn)換為實際儀表測量值。
圖 8 最終預期結(jié)果突出顯示車道區(qū)域
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
分享名稱:如何使用OpenCV實現(xiàn)車道線檢測
URL鏈接:http://www.ekvhdxd.cn/article48/gchsep.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、App開發(fā)、網(wǎng)頁設計公司、自適應網(wǎng)站、商城網(wǎng)站、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)