<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自動駕駛 | 車道檢測實用算法

          共 6730字,需瀏覽 14分鐘

           ·

          2023-10-23 21:37

          點擊上方小白學(xué)視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達


          作者 | Ethon
          來源 | 決策智能與機器學(xué)習(xí)
          車道識別是自動駕駛領(lǐng)域的一個重要問題,今天介紹一個利用攝像頭圖像進行車道識別的實用算法。該算法利用了OpenCV庫和Udacity自動駕駛汽車數(shù)據(jù)庫的相關(guān)內(nèi)容。
          該算法包含以下步驟:
          1. 攝像頭校準,以移除鏡頭畸變(Lens distortion)的影響
          2. 圖像前處理,用于識別車道線
          3. 道路視角變換(Perspective transform)
          4. 車道線檢測
          5. 車輛定位和車道半徑計算
          01

          攝像頭校準


          攝像頭輸出的視頻可以看做一系列圖像的時間序列。鏡頭的結(jié)構(gòu)特性造成利用針孔攝像機拍攝的圖像容易發(fā)生徑向畸變,導(dǎo)致根據(jù)物體與光軸的距離而導(dǎo)致不一致的放大。

          以下圖片展示了兩種典型的徑向偏差。
          為了 正確的識別圖像中的車道,首先需要消除圖像中的徑向偏差。計算機視覺專家們找到了一種有效的方式來修正徑向偏差:首先將圖像轉(zhuǎn)換成棋盤模型,然后校正攝像頭,使獲得的圖像中白色和黑色格子達到相同規(guī)尺度。
          為了修正失真效應(yīng),需要識別棋盤的中心并利用期望的棋盤尺度來計算失真系數(shù),并用其來消除圖像的徑向失真。
          在上圖中,最左邊的圖像顯示了原始的失真圖像,最右側(cè)的圖可以看出圖像頂部的角度扭曲,中間的圖像是經(jīng)過攝像頭校準后的未失真圖像。
          OpenCV的findChessBoardCornerscalibrateCamera函數(shù)可以用來實現(xiàn)以上的攝像頭校準過程。
          校準完攝像頭后,我們用真實的汽車攝像頭圖像來驗證下效果,結(jié)果如下。
          02

          圖像預(yù)處理


          解決了攝像頭圖像失真問題后,我們繼續(xù)探索檢測車道的算法。在計算機視覺領(lǐng)域,分離和檢測對象的一種常用方法是使用顏色變換和梯度來生成一個具有過濾閾值的二值化圖像。

          對于顏色變換,我們嘗試了HSL、LAB和LUA三種顏色空間,以找出哪一種最適合于過濾在道路上的車道線的像素。
          HSL:  通過對色相(H)、飽和度(S)、明度(L)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的
          LAB:  由亮度(L)和有關(guān)色彩的A, B三個要素組成。L表示亮度(Luminosity),A表示從洋紅色至綠色的范圍,B表示從黃色至藍色的范圍
          LUV:  由CIE XYZ空間經(jīng)簡單變換得到,具視覺統(tǒng)一性。L表示物體亮度,U和V是色度
          經(jīng)過試驗,我們發(fā)現(xiàn)LAB的B道和LUV的L通道是識別車道線的最佳組合。
          接下來,我們試驗了Sobel梯度濾波器。圖像梯度度量了顏色變化的方向強度。Sobel是一種利用高斯平滑和微分運算來降低噪聲影響的梯度濾波器。
          03

          視角變換


          車道檢測的難點在于準確獲得車道線的方向以及角度。在攝像頭的默認視角下,遠離攝像機的物體顯得更小,同時車道線在遠離汽車的方向逐漸相交,這和實際情況是不符的。解決這種視點扭曲的一種方法是改變圖像的視角,比如可以從上往下看(鳥瞰圖)。

          OpenCV提供了 getPerspectiveTransform 
          和 warpPerspective函數(shù),可用于進行圖像的視角變換。首先,我們在圖像中選擇想要變換的區(qū)域,在下圖中,我們選擇了汽車前面的車道線部分。
          接下來,選擇代表目標空間的點集,在本例中,任何矩形內(nèi)的點集都可以。我們可以使用warpPerspective函數(shù)將選定區(qū)域變換到我們選擇的視角中。
          下圖顯示了兩條不同路段的車道線進行視角變換后的結(jié)果。
          04

          車道檢測


          下面,我們正式開始進行車道檢測。在前面的各步驟中,我們進行了圖像的二元閾值化和視角變換,最終獲得一個黑白圖像,其中白色的像素代表我們試圖檢測的車道線的部分。

          接下來,我們需要找到一個最佳起始點來尋找屬于左車道線的像素和屬于右車道線的像素。一種有效的方法是生成圖像中車道線像素的直方圖。直方圖應(yīng)該有兩個尖峰,各代表一條車道線,左邊的尖峰是左邊的車道線,右邊的尖峰是右邊的車道線。
          然后將兩個峰值的位置作為起始點來搜索屬于每條車道線的像素。我們采用了滑動窗口搜索技術(shù),它從底部開始,迭代地掃描到圖像的頂部,并將檢測到的像素添加到列表中。如果在一個窗口中檢測到足夠數(shù)量的像素,那么下一個窗口將以它們的平均位置為中心,這樣我們就沿著像素的路徑尋遍整個圖像。
          在我們檢測到每個車道線的像素之后,我們就可以通過這些點來擬合一個多項式,從而產(chǎn)生一條平滑曲線,從而實現(xiàn)車道線的最佳近似。
          下面的圖像展示了滑動窗口技術(shù)的作用,多項式曲線通過檢測到的車道線像素擬合獲得(紅色為左車道像素,藍色為右車道像素)。
          下面是滑動窗口搜索技術(shù)的另一個視圖,高亮顯示并填充搜索區(qū)域:
          05

          車輛/車道線位置


          最后,利用兩個檢測到的車道線的位置,并假設(shè)攝像頭位于圖像的中心位置,可以計算出汽車相對于車道的位置。根據(jù)圖像的分辨率,能夠進行從像素到米的換算。

          此外,利用尺度測量,我們還可以通過擬合一個新的多項式到物理空間來計算車道線的曲率,然后計算曲率半徑。這條線的曲率半徑就是這兩個半徑的平均值,下圖顯示了兩條車道線的曲線半徑和中心偏移量(圖像中不可見)。
          06

          結(jié)果


          以上介紹了自動駕駛中進行車道線檢測的實用算法,我們通過一個多邊形投影區(qū)域來顯示檢測結(jié)果,可以看到檢測結(jié)果與實際非常吻合。

          聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)習(xí)、交流之目的文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。

                
                
          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 337
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操一操| 欧美黄片亚洲黄片 | 骚妇网 | 欧洲激情网 | 国产美女做爱A片是免费 |