<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 解決方案 > 自動(dòng)駕駛中基于地圖的視覺(jué)定位方法

自動(dòng)駕駛中基于地圖的視覺(jué)定位方法

作者: 時(shí)間:2025-03-13 來(lái)源:點(diǎn)云PCL 收藏

摘要

本文引用地址:http://dyxdggzs.com/article/202503/468063.htm

本論文是在高級駕駛員輔助系統,特別是自動(dòng)駕駛車(chē)輛的背景下進(jìn)行的。其目的是提出一種增強道路車(chē)輛定位的方法。提出的方法是使用攝像頭檢測車(chē)道線(xiàn),并將其與地圖匹配,以定位車(chē)輛的正確位置。本文分為三個(gè)部分:地圖、直線(xiàn)檢測器和定位,該地圖基于OpenStreetMap數據,線(xiàn)檢測器是基于邊緣檢測的,將結果與迭代最近點(diǎn)算法進(jìn)行了比較,使用了諸如ROS(用于數據同步)和CUDA(用于并行化)等技術(shù)。

介紹

本文的目的是實(shí)現一種使用信息和地圖來(lái)改進(jìn)車(chē)輛定位的方法。我們還希望驗證以下限制:

?實(shí)時(shí)處理

?適合車(chē)輛使用的廉價(jià)設備

?嵌入在車(chē)輛上。方法如圖1.1所示。

它分為三個(gè)部分:

?OpenStreetMap地圖的處理

?車(chē)道線(xiàn)檢測

?定位,包括與ICP算法的比較

圖1.1:該方法的三個(gè)部分:地圖生成、邊緣檢測和與ICP算法配準

OpenStreetMap數據

為了改進(jìn)定位方法,我們需要精確的地圖,此外,由于我們的成本限制,我們希望它是免費和開(kāi)源的。因此,OpenStreetMap看起來(lái)是一個(gè)很好的解決方案,因為它是免費的、開(kāi)源的和用戶(hù)自制的,這意味著(zhù)它易于使用并適應我們的需求。

OpenStreetMap數據由三個(gè)基本原語(yǔ)組成:

?節點(diǎn)

?路線(xiàn)

?關(guān)系

節點(diǎn)用其緯度和經(jīng)度定義地理點(diǎn),這可以是真實(shí)的物理對象,例如公共汽車(chē)站,也可以是定義道路形狀的假想點(diǎn)。路線(xiàn)定義更復雜的特征,如道路和邊界,它們包含在節點(diǎn)的有序列表中,節點(diǎn)列表定義特征的形狀。如果道路的第一個(gè)節點(diǎn)和最后一個(gè)節點(diǎn)相同,則這是一條可以定義區域的封閉道路,關(guān)系描述節點(diǎn)、路線(xiàn)和/或路線(xiàn)關(guān)系之間的其他約束。如圖3.1所示

圖3.1:在自頂向下視圖上表示OpenStreetMap數據

車(chē)道線(xiàn)生成

OpenStreetMap的一個(gè)問(wèn)題是它缺少車(chē)道線(xiàn)數據,因此,必須在地圖上添加車(chē)道標記,這是使用道路和車(chē)道數據半自動(dòng)完成的,我們創(chuàng )建了一個(gè)新的OpenStreetMap地圖標簽來(lái)識別車(chē)道標記,標記的鍵是“標記”,其值是“中間”或“邊框”,具體取決于線(xiàn)的位置。

然后,對于每條道路,我們創(chuàng )建了道路上車(chē)道數加上一條的線(xiàn),邊界線(xiàn)的“標記”標記值為“border”,其他線(xiàn)的值為“middle”。如圖3.2所示,這一部分由我們所稱(chēng)的線(xiàn)生成器自動(dòng)完成。線(xiàn)生成器對每條道路進(jìn)行迭代,然后對道路的每個(gè)節點(diǎn)進(jìn)行迭代,以將節點(diǎn)復制所需的次數,從而創(chuàng )建表示車(chē)道標記的新道路。由于車(chē)道相對于節點(diǎn)坐標的位置沒(méi)有約定,我們決定將坐標設置為道路的中心,并在道路兩側分割車(chē)道。

圖3.2:車(chē)道線(xiàn)生成器從數據庫中獲取原始數據以生成線(xiàn)并將其放回數據庫,在手動(dòng)校正之前,它是離線(xiàn)完成的。

圖3.3:車(chē)道標記生成的表示

最終手動(dòng)糾正了一些地方,主要是十字路口,這是使用專(zhuān)用軟件完成的,用戶(hù)可以使用衛星視圖作為參考,獨立地移動(dòng)每個(gè)節點(diǎn)和路徑,這部分是離線(xiàn)完成的,然后數據庫可以被其他算法使用。這是一個(gè)漫長(cháng)而挑剔的過(guò)程,這顯示了OpenStreetMap對于全面實(shí)現的另一個(gè)好處,因為如果我們發(fā)布新標簽,所有貢獻者都可以做到這一點(diǎn)。圖3.3顯示了數據轉換的結果,圖3.4顯示了帶有衛星圖像的十字路口的詳細視圖。

圖3.4:對十字路口等復雜區域的數據進(jìn)行了校正,這里是帶有衛星視圖的校正十字路口的詳細視圖。

主要內容

邊緣檢測器

這部分描述了用于檢測車(chē)道標記的方法。它基于López提出的方法,并使用邊緣作為特征來(lái)檢測線(xiàn)條。

該方法使用圖像的拉普拉斯值來(lái)檢測邊緣,如Tran和Lux提出的,對于每個(gè)圖像,算法遵循以下步驟:

1.使用攝像機相對于車(chē)輛的位置、車(chē)輛相對于地面的橫滾角和俯仰角將圖像投影到水平面中。

2.拉普拉斯算子的計算。

3.消除拉普拉斯算子低于閾值的像素。

4.梯度的計算以及拉普拉斯算子與梯度之間的比率。

5.消除比率低于其他閾值的像素。

6.海森矩陣、其特征值及其特征向量的計算。

7.消除特征值幾乎相等的像素。

第一步允許我們在與地圖相同的平面上工作,并使用相機校準信息以及車(chē)輛的橫搖角和俯仰角進(jìn)行投影,使用橫搖角和俯仰角可以校正投影,它們由慣性測量單元(IMU)給出。然后,通過(guò)保持像素具有較高的拉普拉斯值,我們只保持亮的對象被對應于邊緣的較暗區域包圍。拉普拉斯算子的定義如下:

在圖3.5中,我們可以看到圖像的拉普拉斯算子,需要進(jìn)一步的步驟來(lái)提取車(chē)道標記。

圖3.5:拉普拉斯計算結果

拉普拉斯算子和梯度范數之間的比率允許移除這些對象的邊緣,從而只允許保留每個(gè)邊緣的中心部分。事實(shí)上,在明亮物體的中間,梯度幾乎為零,而在邊緣,梯度將非常高。因此,通過(guò)除以梯度的范數,我們去除了與明亮對象邊界相對應的像素。

在圖3.6中,我們可以看到算法的結果。圖像3.6a是來(lái)自照相機的圖像,圖像3.6b是該圖像在俯視圖上的投影,圖像3.6c示出了檢測到的線(xiàn)。

圖3.6 車(chē)道線(xiàn)邊緣線(xiàn)檢測

ICP算法

在這部分我們描述了ICP算法,該算法用于配準地圖和檢測到的車(chē)道線(xiàn),然后校正車(chē)輛的定位,該算法包括將檢測到的線(xiàn)與地圖中存儲的線(xiàn)進(jìn)行匹配,找到校正地圖中車(chē)輛位置的變換,并在應用變換后進(jìn)行迭代。

車(chē)道線(xiàn)匹配

匹配的輸入是被視為車(chē)道標記的像素點(diǎn)云,以及從GPS給出的位置周?chē)牡貓D中提取的局部路段列表,對于點(diǎn)云中的每個(gè)點(diǎn),我們搜索與預定義范圍內的點(diǎn)最近的線(xiàn),該方向與赫森矩陣的主分量一致,這允許在不同方向上存在線(xiàn)時(shí)進(jìn)行更好的匹配,定義范圍是為了避免將點(diǎn)與距離太遠的線(xiàn)匹配,一開(kāi)始不超過(guò)一條車(chē)道,如果沒(méi)有像素匹配,則范圍會(huì )增加,然后使用該匹配來(lái)找到校正的位置,通過(guò)最小化以下誤差的變換給出校正位置:

平臺和測試環(huán)境

平臺測試已使用雷克薩斯LS600h完成,如圖4.1所示,配備了以下傳感器:

?GPS

?IMU

?單目RGB攝像頭

?立體攝像頭

?激光雷達

?CAN總線(xiàn)

在我們的實(shí)驗中,我們只使用GPS、IMU和單目攝像頭。

環(huán)境測試

環(huán)境由不同類(lèi)型的道路組成,包括十字路口和環(huán)島,但主要是公路。預定義路線(xiàn)見(jiàn)圖4.2,長(cháng)11.3公里。它由公路、帶有十字路口和環(huán)形交叉口的居民道路組成,測試主要在天氣條件良好的白天進(jìn)行。

圖4.2 測試路線(xiàn)

圖8,E形序列算法的結果,(a) 軌跡結果,其他算法由于假回環(huán)而不準確,(b) 我們算法的拒絕回環(huán)的結果,具有低權重(紅線(xiàn))的約束對優(yōu)化軌跡沒(méi)有貢獻

車(chē)道線(xiàn)檢測

實(shí)現該檢測在C++中完成,使用OpenCV庫進(jìn)行圖像處理,并使用ROS管理所有傳感器和平臺部件之間的交互,尤其是圖像和慣性數據之間的同步。因此,輸入是來(lái)自攝像機的圖像以及車(chē)輛的橫搖角和俯仰角,輸出是被視為車(chē)道標記的像素點(diǎn)云。為了提高性能,使用CUDA和GPU并行化拉普拉斯、梯度和海森矩陣計算。這允許使用實(shí)時(shí)算法,因為圖像處理速度更快。

結果在圖3.6和4.3中,我們可以看到公路線(xiàn)路檢測的結果,結果很好,因為所有的線(xiàn)都被檢測到了,而在沒(méi)有線(xiàn)的地方?jīng)]有檢測到,然而,太細的線(xiàn)并不總是被檢測到或僅部分被檢測到,但這并不是一個(gè)真正的問(wèn)題,因為一條線(xiàn)具有更多的像素不會(huì )顯著(zhù)增加ICP的結果,我們也可以在長(cháng)線(xiàn)上看到一些混疊,事實(shí)上它們并不總是對齊的,這是因為我們只保留一個(gè)像素寬的線(xiàn),在住宅道路上,檢測也適用于線(xiàn)路,但也有很多檢測不是車(chē)道標記,例如,人行道、電桿或樹(shù)木通常被檢測為直線(xiàn),因為它們的細長(cháng)形狀和顏色比背景更亮。我們可以在圖4.4中看到,檢測到了線(xiàn)條,但也檢測到了背景中的物體,如安全欄桿或樹(shù)木。環(huán)島的結果甚至是最糟糕的,因為攝像機看不到太多道路,事實(shí)上,當進(jìn)入環(huán)島時(shí),道路會(huì )超出攝像機的視野。

圖4.3:公路上的車(chē)道線(xiàn)檢測

圖4.4:環(huán)島道路上的車(chē)道線(xiàn)檢測

討論

車(chē)道線(xiàn)檢測器在高速公路場(chǎng)景中有很好的結果,但在其他類(lèi)型的道路上則有更多的混合結果。這些結果主要是由于這樣一個(gè)事實(shí),即在高速公路上,圖像的大部分被道路覆蓋,但在居民區,攝像機看到更多的背景,因此圖像包含更多無(wú)用信息。改進(jìn)這些結果的一種方法可以是使檢測器適于檢測不同尺寸的線(xiàn),而不是在這里針對平均尺寸的線(xiàn)校準檢測器。此外,更好的相機方向也可以改善結果,因為對于這種應用,我們只需要看到道路,并且在投影圖像時(shí)會(huì )導致更少的誤差。

ICP

實(shí)現這一部分也在C++中實(shí)現,并使用ROS處理不同幀之間的點(diǎn)云和轉換。

ICP改善定位的結果高度依賴(lài)于車(chē)道線(xiàn)檢測器的結果,事實(shí)上,當車(chē)道線(xiàn)檢測器返回良好的結果時(shí),我們可以期望ICP獲得良好的結果,但如果檢測不好,ICP最有可能出現偏差。因此,結果對于高速公路場(chǎng)景來(lái)說(shuō)是好的,這意味著(zhù)定位得到了很好的修正,因為汽車(chē)被檢測到在右側車(chē)道上,而對于有很多十字路口和環(huán)形交叉口的道路來(lái)說(shuō)則不太好。在圖4.5中,我們可以看到公路情景下的ICP結果。

圖4.5:公路上的ICP修正

它發(fā)生在一條兩車(chē)道的道路上,然后與另一條雙車(chē)道的道路匯合,在右下角,我們可以看到攝像機的視圖,因此我們位于最右邊的車(chē)道上,綠色線(xiàn)條與地圖的線(xiàn)條相對應,紅點(diǎn)對應于檢測到的線(xiàn),紅色箭頭與GPS給出的位置相對應,GPS將汽車(chē)置于最左側車(chē)道的左側,白色矩形表示汽車(chē)處于正確的位置,它位于最右側車(chē)道的中間,即正確的位置。在車(chē)道數較多的道路上,如高速公路,幾條車(chē)道的匹配可能會(huì )出錯,實(shí)際上,車(chē)道的相對位置幾乎總是正確的,但車(chē)道數的偏移有時(shí)可能會(huì )出錯,它取決于初始位置,初始位置在開(kāi)始時(shí)設置為GPS位置,當初始位置距離實(shí)際位置不太遠時(shí),或者當車(chē)道不太多時(shí),如在高速公路入口道路上,校正效果很好。在住宅道路上,如果車(chē)道線(xiàn)探測器工作良好,則結果相當。但是,當到達十字路口或環(huán)形交叉路口時(shí),結果的質(zhì)量會(huì )下降,因為在那里,由于線(xiàn)路檢測不良,ICP最有可能偏離,只有當匹配次數較低時(shí),算法才會(huì )收斂到GPS位置,這相當于重置位置。

討論

ICP運行良好,但仍有一些改進(jìn),由于未濾波,有時(shí)位置會(huì )出現一些跳躍,因此,可以添加濾波以平滑校正位置的變化,從而避免一些不連續性,改進(jìn)該算法的另一種方法是根據車(chē)道線(xiàn)檢測器的結果對每個(gè)點(diǎn)的誤差進(jìn)行加權。另一個(gè)需要修正的問(wèn)題是縱向修正,即道路方向的修正。事實(shí)上,在直線(xiàn)道路上,橫向位置得到了很好的校正,但改變車(chē)輛的縱向位置不會(huì )影響匹配,因為我們將點(diǎn)與線(xiàn)匹配,因此也不會(huì )影響結果。糾正這種情況的一種方法是考慮汽車(chē)的速度,并使用它來(lái)糾正縱向位置。我們還簡(jiǎn)要測試了與ICP不同的方法,以改進(jìn)居住道路上的算法結果,我們實(shí)現了一個(gè)粒子濾波器,其中使用車(chē)道線(xiàn)檢測器的結果和匹配來(lái)評估每個(gè)粒子。它改善了住宅道路上的結果,因為由于線(xiàn)路檢測不良導致的結果被過(guò)濾,但也惡化了公路上的結果??傮w結果稍好一點(diǎn),但缺乏準確性,因此,它不是一個(gè)可行的解決方案,但這兩種解決方案可以結合起來(lái),以改進(jìn)全局方法。

總結

我們提出了一種使用信息和開(kāi)源地圖在道路上定位車(chē)輛的方法,該方法根據開(kāi)發(fā)的軟件的不同模塊分為三個(gè)部分,第一部分對地圖進(jìn)行了處理,分析了OpenStreetMap中的現有數據,并用車(chē)道標記數據對其進(jìn)行了擴展,第二部分對應于使用攝像機和車(chē)道檢測方法的車(chē)道標記檢測,第三部分也是最后一部分實(shí)現了ICP算法,將檢測到的線(xiàn)路與地圖中存儲的線(xiàn)路進(jìn)行比較,然后返回車(chē)輛的更新定位,我們的結果表明,該方法是可行的,事實(shí)上,我們在高速公路上取得了不錯的成績(jì),而在其他類(lèi)型的道路上取得了更多喜憂(yōu)參半的成績(jì),這主要是由于道路的質(zhì)量以及攝像機看到的有用數據的數量。




關(guān)鍵詞: 汽車(chē)電子 ADAS 視覺(jué)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>