<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>

          計(jì)算機(jī)視覺方向簡介 | 自動(dòng)駕駛中的車道線跟蹤技術(shù)

          共 5896字,需瀏覽 12分鐘

           ·

          2021-05-20 17:57

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

          重磅干貨,第一時(shí)間送達(dá)

          本文轉(zhuǎn)自|人工智能與算法學(xué)習(xí)
          本文討論的重點(diǎn)跟蹤算法如何應(yīng)用在車道線應(yīng)用中,即從得到車道線檢測(cè)結(jié)果開始,到連續(xù)穩(wěn)定地車道線跟蹤的過程。包含車道線模型、魯棒的擬合方法和跟蹤。本文原創(chuàng)。
          車道線檢測(cè)和跟蹤是自動(dòng)駕駛中必不可少的功能,LDW(車道偏離預(yù)警)、LKA(車道保持輔助)等功能模塊都依賴于連續(xù)穩(wěn)定的車道線檢測(cè)和跟蹤。(多)目標(biāo)跟蹤算法已經(jīng)得到充分研究,而且相關(guān)算法解析和綜述網(wǎng)上已經(jīng)有很多了,也可以在計(jì)算機(jī)視覺life相關(guān)文章中找到,不再贅述。但是以上跟蹤的分析,大多針對(duì)點(diǎn)目標(biāo),而此處我們關(guān)注跟蹤算法如何應(yīng)用在車道線應(yīng)用中。一般來說跟蹤和檢測(cè)需要分開實(shí)施,如果有端到端一步實(shí)現(xiàn)檢測(cè)+跟蹤的方法,煩請(qǐng)不吝賜教。
          本文先簡單介紹車道線檢測(cè)結(jié)果和問題,然后建立車道線的多項(xiàng)式模型,以及獲得模型參數(shù)需要的魯棒的擬合算法。接著介紹常見的跟蹤算法,以Kalman濾波為主。最后是車道線相關(guān)資源干貨分享。

          獲得車道線檢測(cè)結(jié)果

          車道線跟蹤前提是拿到車道線檢測(cè)結(jié)果。車道線檢測(cè)的傳統(tǒng)圖像處理方法有:梯度+顏色信息、參數(shù)空間投票、邊緣檢測(cè)+Hough變換及其變形、k-means聚類和利用圖像特征檢測(cè)等方法。傳統(tǒng)的車道檢測(cè)方法需要高度定制化,包括許多手工特征提取和后處理方法。當(dāng)測(cè)試環(huán)境改變時(shí),常常需要大量調(diào)參工作,甚至需要更換后處理方法。很多時(shí)候需要在鳥瞰圖上利用車道線空間相互關(guān)系進(jìn)行處理。
          近兩年(從2017年開始)開始出現(xiàn)了許多基于深度學(xué)習(xí)的方法,如SCNN,VPGNET,Lanenet,甚至是圖像分割(可通行區(qū)域)等,實(shí)現(xiàn)了端到端的檢測(cè),在原圖上很好的利用了環(huán)境信息,提高穩(wěn)定性。
          除了檢測(cè)出存在曲線和位置,還要區(qū)分出不同車道的車道線,通常需要提供左左,左,右,右右共四條車道線,即能區(qū)分出三條車道。
          這里檢測(cè)結(jié)果應(yīng)包括點(diǎn)坐標(biāo)、顏色、線型、置信度等信息。當(dāng)然也有研究把線型的確定稱為車道線識(shí)別。
          當(dāng)狀況良好的時(shí)候,僅靠車道線檢測(cè)就能連續(xù)輸出車道線,例如網(wǎng)上廣為流傳的Udacity提供的開源項(xiàng)目[8],僅靠梯度+顏色信息的檢測(cè)方法,就能檢測(cè)出幾乎所有幀里的車道線,沒有明顯遺漏。因此后處理只需要對(duì)車道檢測(cè)出來的點(diǎn)進(jìn)行擬合并延伸到滅點(diǎn)即可,無需更多跟蹤過程。如下圖所示,當(dāng)前車道線被紅色線標(biāo)記出來。
          但是幾乎所有實(shí)際路況,或多或少存在路面有修補(bǔ)、有積水、有陰影、車道線被遮擋、污損等情況以及車輛顛簸、上下坡等更極端的工況。下面的動(dòng)圖是LaneNet原始檢測(cè)結(jié)果(from Karol Majek),車道線檢測(cè)出的概率越高的地方顏色越亮。其中右側(cè)路沿綠色的檢測(cè)結(jié)果時(shí)斷時(shí)續(xù),在進(jìn)入陰影時(shí),檢測(cè)失效,這是因?yàn)闆]有用跟蹤進(jìn)行結(jié)果穩(wěn)定。因此,引入了車道線跟蹤很重要,根據(jù)歷史狀態(tài)和道路幾何關(guān)系,補(bǔ)充檢測(cè)丟失、錯(cuò)誤的車道線,并使車道線在空間位置上更穩(wěn)定。

          建立車道線模型

          跟蹤第一步,是要根據(jù)場(chǎng)景要求,合理地用較少參數(shù)準(zhǔn)確描述出車道線,即把檢測(cè)結(jié)果抽象成模型參數(shù)。但直接用圖片像素上的曲線建立模型并不理想,而是需要轉(zhuǎn)換到車體坐標(biāo)系下建立模型,這是因?yàn)檐圀w坐標(biāo)系下模型參數(shù)的物理意義才更清晰。而且通常冗余設(shè)計(jì)包含多個(gè)相機(jī),多個(gè)相機(jī)也必須統(tǒng)一到車體坐標(biāo)系。通常使用逆透視變換把圖片坐標(biāo)轉(zhuǎn)化為車體坐標(biāo)。下圖左紅色坐標(biāo)系定義了車體坐標(biāo)系,坐標(biāo)系原點(diǎn)為車輛中心(根據(jù)不同標(biāo)準(zhǔn)車輛中心位置定義不同,不具體討論)。

          假設(shè)路面水平,車道線模型可以用多項(xiàng)式來表示,但是其中的多項(xiàng)式系數(shù)的物理含義并不直觀。我們可以改寫成如下形式
          其中 是車道線的位置即截距(),是車道線角度(),是車道線曲率(),是車道線曲率的變化率()。車道線曲率半徑為 (),如上圖右上的Radius of Curvature的數(shù)值。以上所有參數(shù)都是在處分析的,通過對(duì)求多次導(dǎo)得到。需要說明的是,公式進(jìn)行了必要的近似,只有車輛沿道路正常往前開或轉(zhuǎn)向不明顯——即較小——時(shí),角度才近似于一階項(xiàng)系數(shù),曲率也才能近似于的二階導(dǎo)數(shù)(可參考曲率的定義)。
          另外,也有文獻(xiàn)用車道寬度、車中心偏離車道中心位置、車道線角度以及曲率四個(gè)參數(shù)來表征車道線,如文獻(xiàn)[1] 。還有文獻(xiàn)采用二次B條樣函數(shù)表示車道線模型。
          作為一般討論,這里用水平路面四個(gè)參數(shù)表征一條車道線,較簡潔,而且和真實(shí)物理量之間也有清晰的對(duì)應(yīng)關(guān)系。

          魯棒的曲線擬合

          選定車道線模型后,需要利用車道線檢測(cè)結(jié)果(通常為散點(diǎn),需要事先變換到車體坐標(biāo)下)擬合該模型的參數(shù)。這里主要介紹兩種比較常用的方法,最小二乘法和RANSAC(隨機(jī)抽樣一致性),此處假設(shè)大家都大概了解這兩個(gè)算法的原理。
          最小二乘法是最小化殘差平方和的一種最優(yōu)化方法,廣泛應(yīng)用的原因之一是其平方和的形式,便于整理成矩陣相乘的形式,例如線性最小二乘容易得到閉合解,其中是包含的矩陣。而且平方形式便于求導(dǎo)和泰勒展開,才能有后面的Gauss-Newton和LM最優(yōu)化迭代算法。
          不過,最小二乘法的過擬合問題會(huì)顯著影響車道線擬合效果,造成泛化誤差增加。因?yàn)檐嚨谰€參數(shù)在一定范圍內(nèi)不會(huì)有特別大的突變,如很少曲率特別大的彎道等,所以車道線以低階多項(xiàng)式表達(dá)為主,根據(jù)經(jīng)驗(yàn),二階形式能表示大部分情況。這種情況下如果有車道線檢測(cè)有誤差,會(huì)使得擬合曲線曲率異常,此時(shí)車道線模型中的三階項(xiàng)就會(huì)產(chǎn)生明顯的問題(此時(shí)三階項(xiàng)系數(shù)可能會(huì)異常的大),如下圖所示。而且同一條線前后幀可能也會(huì)跳動(dòng)劇烈,因?yàn)閹c幀之間的噪聲不同,擬合誤差大。解決辦法之一是直接降低擬合階數(shù),不過最好能夠自適應(yīng)地調(diào)節(jié)并切換模型階數(shù),否則失去了該模型的意義。還可以采用帶正則項(xiàng)的最小二乘,閉合解為,其中是正則系數(shù)。因?yàn)檎齽t化抑制了系數(shù)的異常變大,降低了噪聲的影響。下圖是直接最小二乘和帶正則項(xiàng)的最小二乘的擬合效果比較,可以看到后者在高階擬合時(shí)對(duì)噪聲不那么敏感(此處擬合階數(shù)大于3階,只是為了展示問題)。

          即便如此,最小二乘可能仍然不夠魯棒,因?yàn)樽钚《艘盟休斎氲狞c(diǎn)來計(jì)算,異常點(diǎn)不可避免地影響到擬合效果。例如有較大誤差的噪聲信號(hào)的情況(下圖左),或者有多條車道線結(jié)果被錯(cuò)誤包含在一條車道線的結(jié)果中的情況(下圖右)。

          RANSAC算法提供了另一種魯棒性擬合的思路。RANSAC通過迭代算法找到包含最多內(nèi)點(diǎn)(實(shí)際有用的數(shù)據(jù)點(diǎn))數(shù)量的擬合曲線。由于只用內(nèi)點(diǎn)進(jìn)行擬合,而噪聲或另一車道線的數(shù)據(jù)就會(huì)被當(dāng)成外點(diǎn),外點(diǎn)對(duì)擬合沒有任何貢獻(xiàn)。該算法用隨機(jī)數(shù)據(jù)抽樣的數(shù)據(jù)來擬合,因此一定概率能找到最優(yōu)擬合曲線。但是,當(dāng)這個(gè)概率——擬合置信度——很大時(shí),如,就可以認(rèn)為找到的曲線近似等于實(shí)際的曲線。經(jīng)實(shí)驗(yàn)驗(yàn)證,對(duì)于包含%誤差的數(shù)據(jù)集,RANSAC的效果遠(yuǎn)優(yōu)于直接最小二乘法。
          RANSAC算法收斂的關(guān)鍵在于參數(shù)的選取,參數(shù)有:某個(gè)點(diǎn)是外點(diǎn)的概率(噪聲或者錯(cuò)誤車道線),每次抽樣的點(diǎn)數(shù),抽樣次數(shù)和算法收斂設(shè)定的閾值,這幾個(gè)參數(shù)的關(guān)系如下圖所示。下圖的表格為不同條件下的選取。另外,還有一個(gè)參數(shù)是內(nèi)點(diǎn)選取范圍距離,該值與和樣本點(diǎn)方差有關(guān),如時(shí),

          當(dāng)然RANSAC算法在某些情況下也會(huì)擬合錯(cuò)誤,還有其他的魯棒的算法,如Least Median Squares (LMS)、Preemptive RANSAC、PROgressive Sample and Consensus (PROSAC)、M-estimator Sample and Consensus (MSAC) 等。
          擬合后即可以得到車道線模型中的多項(xiàng)式系數(shù)

          選擇車道線跟蹤方法

          跟蹤需要完成的任務(wù)是對(duì)目標(biāo)和其他狀態(tài)量(對(duì)于本研究為多項(xiàng)式系數(shù))進(jìn)行增加、預(yù)測(cè)、更新和刪除四個(gè)操作。以下表格羅列了部分文獻(xiàn)的車道線跟蹤的方法。



          比較常用的跟蹤方法之一是Kalman濾波及其變形,這種方法對(duì)于比較理想的車道線(中斷、遮擋或模糊等比較少)有較好的跟蹤效果。
          Kalman車道線跟蹤的過程如下:


          • (增加)剛開始增加車道線狀態(tài)量向量作為初始化。之后,只要本時(shí)刻有新檢測(cè)結(jié)果輸入,而上一幀沒有對(duì)應(yīng)的車道線信息,即把新檢測(cè)到的車道線狀態(tài)量為賦給,即增加一條車道線。此處檢測(cè)量由測(cè)量方程決定,由于測(cè)量系統(tǒng)參數(shù)矩陣為單位矩陣,計(jì)檢測(cè)到的就是,因此忽略測(cè)量方程。
          • (預(yù)測(cè))首先需要通過上一時(shí)刻車輛狀態(tài)信息(車速和車輛角速度)和上一時(shí)刻狀態(tài)量預(yù)測(cè)本時(shí)刻狀態(tài)量,即狀態(tài)方程為,其中是和車速有關(guān)的矩陣,是和角速度有關(guān)的矩陣,合起來代表以上一時(shí)刻車輛狀態(tài)為條件,對(duì)本時(shí)刻狀態(tài)量的預(yù)測(cè)。
          • (更新)如果本時(shí)刻某條預(yù)測(cè)好的車道線和本時(shí)刻檢測(cè)到的車道線滿足某種匹配規(guī)則,即可認(rèn)為是同一條車道線,需要用Kalman增益綜合利用預(yù)測(cè)和檢測(cè)的信息來更新車道線狀態(tài)。具體做法:系統(tǒng)協(xié)方差矩陣更新為,通常測(cè)試場(chǎng)景一定,假設(shè)系統(tǒng)噪聲協(xié)方差矩陣為一個(gè)固定的對(duì)角方陣。隨后計(jì)算
            此處測(cè)量協(xié)方差矩陣為對(duì)角方陣,可以根據(jù)當(dāng)前檢測(cè)結(jié)果的置信度而改變。最后得到更新的本時(shí)刻狀態(tài)為,更新的本時(shí)刻協(xié)方差矩陣為。其中最關(guān)鍵的是衡量更相信檢測(cè)結(jié)果的程度,或可理解為概率。當(dāng)檢測(cè)抖動(dòng)較大、車道線不清晰、遮擋嚴(yán)重等情況,檢測(cè)的置信度下降,減小,更相信預(yù)測(cè),因此起到穩(wěn)定車道線的作用。
          • (刪除)如果某條車道線一直是預(yù)測(cè)得出的,并沒有匹配上新檢測(cè)的車道線進(jìn)行更新,則當(dāng)前時(shí)刻如果預(yù)測(cè)次數(shù)大于某一壽命閾值后,就刪除。
          如果采用更復(fù)雜的模型,例如狀態(tài)方程或測(cè)量方程是非線性的,以上Kalman濾波不再使用,需要使用拓展Kalman濾波(EKF)。EKF是在把非線性關(guān)系通過泰勒級(jí)數(shù)展開(忽略高次項(xiàng))轉(zhuǎn)化成(偽)線性關(guān)系基礎(chǔ)上的Kalman濾波。
          近年來粒子濾波也廣泛運(yùn)用在車道線檢測(cè)中,因?yàn)镵alman濾波基于噪聲高斯分布的假設(shè),而車道線噪聲分布通常不符合這個(gè)分布,因此粒子濾波一定程度上解決了噪聲任意分布下的跟蹤問題。也有研究把Kalman濾波和粒子濾波結(jié)合起來,同時(shí)具備Kalman濾波穩(wěn)定的優(yōu)點(diǎn)和粒子濾波環(huán)境適應(yīng)性強(qiáng)的優(yōu)點(diǎn)。
          至此,經(jīng)過跟蹤處理,就能夠輸出空間上比較穩(wěn)定、時(shí)間上比較連續(xù)的車道線模型參數(shù)了。利用這些模型參數(shù),就可以把車道線結(jié)果重新投影到原圖上,把結(jié)果顯示出來。

          資源分享

          感覺分享些資源干貨可以有效地提高流量,所以我也放了些覺得比較好的鏈接。
          偏重于車道線跟蹤的文獻(xiàn)和綜述:
          [1] 2006-Video-based lane estimation and tracking for driver assistance Survey, System, and Evaluation
          [2] 2009-Probabilistic Lane Tracking in Difficult Road Scenarios Using Stereovision
          [3] 2013-Integrated Lane and Vehicle Detection, Localization and Tracking A Synergistic Approach
          [4] 2016-A REVIEW ON LANE DETECTION ANDTRACKING TECHNIQUES
          [5] 2006-Single Camera 3D Lane Detection and Tracking Based on EKF for Urban Intelligent Vehicle
          [6] 2006-Realtime lane tracking of curved local road
          [7] 2009-ROBUST LANE DETECTION AND TRACKING WITH RANSAC AND KALMAN FILTER
          開源項(xiàng)目和項(xiàng)目分享:
          [8] Udacity自動(dòng)駕駛項(xiàng)目。https://github.com/udacity/CarND-Advanced-Lane-Lines,https://zhuanlan.zhihu.com/p/52623916
          [9] 百度無人車車道線檢測(cè)挑戰(zhàn)賽。https://github.com/gujingxiao/Lane-Segmentation-Solution-For-BaiduAI-Autonomous-Driving-Competition
          [10] galenballew/SDC-Lane-and-Vehicle-Detection-Tracking(https://github.com/galenballew/SDC-Lane-and-Vehicle-Detection-Tracking)
          [11] 車道線檢測(cè)集錦,其中包括2017-2019年最新的文章、源代碼、blog和數(shù)據(jù)庫等(深度學(xué)習(xí)的檢測(cè)和分割內(nèi)容較多,跟蹤內(nèi)容較少)。https://github.com/amusi/awesome-lane-detection



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

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

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

          交流群


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


          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  精品aaa | 午夜偷拍精品 | 欧美日韩黄 | 黄色国产在线免费看 | 天天操图片 |