1. 程式人生 > >你聽說過無人駕駛

你聽說過無人駕駛

<article>         <div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">                                             <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-e2445db1a8.css">                         <div class="htmledit_views">                  <p></p> <blockquote style="font-size:16px;border-left:5px solid rgb(238,238,238);color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;"> <p> 引言:我們已經拉開了全自動無人駕駛的序幕,在幕布之後是我們精彩的未來,但你可能不知道的是無人駕駛系統是一個複雜的系統,系統主要由三部分組成:演算法端、Client端和雲端。演算法端從感測器原始資料中提取有意義的資訊以瞭解周遭的環境情況,並根據環境變化做出決策。跟隨本文一起簡單瞭解下無人駕駛演算法吧。<br> 本文選自《第一本無人駕駛技術書》。</p> </blockquote> <p></p> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 算法系統由幾部分組成:第一,感測,並從感測器原始資料中提取有意義資訊;第二,感知,以定位無人車所在位置及感知現在所處的環境;第三,決策,以便可靠、安全地抵達目的地。</p> <h1 id="1" style="font-size:36px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t0"></a> 1.感測</h1> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 通常來說,一輛無人車裝備有許多不同型別的主感測器。每一種型別的感測器各自有不同的優劣,因此,來自不同感測器的感測資料應該有效地進行融合。現在無人駕駛中普遍使用的感測器包括以下幾種。<br> (1)GPS/IMU:GPS/IMU 感測系統通過高達200 Hz頻率的全球定位和慣性更新資料,以幫助無人車完成自我定位。GPS是一個相對準確的定位用感測器,但是它的更新頻率過低,僅有10Hz,不足以提供足夠實時的位置更新。IMU的準確度隨著時間降低,因此在長時間距離內並不能保證位置更新的準確性;但是,它有著GPS所欠缺的實時性,IMU的更新頻率可以達到200Hz或者更高。通過整合GPS與IMU,我們可以為車輛定位提供既準確又足夠實時的位置更新。<br> (2)LIDAR:鐳射雷達可被用來繪製地圖、定位及避障。雷達的準確率非常高,因此在無人車設計中雷達通常被作為主感測器使用。鐳射雷達是以鐳射為光源,通過探測鐳射與被探測物相互作用的光波訊號來完成遙感測量。鐳射雷達可以用來產生高精度地圖,並針對高精地圖完成移動車輛的定位,以及滿足避障的要求。以Velodyne 64-束鐳射雷達為例,它可以完成10Hz旋轉並且每秒可達到130萬次讀數。<br> (3)攝像頭:攝像頭被廣泛使用在物體識別及物體追蹤等場景中,在車道線檢測、交通燈偵測、人行道檢測中都以攝像頭為主要解決方案。為了加強安全性,現有的無人車實現通常在車身周圍使用至少八個攝像頭,分別從前、後、左、右四個維度完成物體發現、識別、追蹤等任務。這些攝像頭通常以60Hz的頻率工作,當多個攝像頭同時工作時,將產生高達1.8GB每秒的鉅額資料量。<br> (4)雷達和聲吶:雷達把電磁波的能量發射至空間中某一方向,處在此方向上的物體反射該電磁波,雷達通過接收此反射波,以提取該物體的某些有關資訊,包括目標物體至雷達的距離、距離變化率或徑向速度、方位、高度等。雷達和聲吶系統是避障的最後一道保障。雷達和聲吶產生的資料用來表示在車的前進方向上最近障礙物的距離。一旦系統檢測到前方不遠有障礙物出現,則有極大的相撞危險,無人車會啟動緊急剎車以完成避障。因此,雷達和聲吶系統產生的資料不需要過多的處理,通常可直接被控制處理器採用,並不需要主計算流水線的介入,因此可實現轉向、剎車或預張緊安全帶等緊急功能。</p> <h1 id="2" style="font-size:36px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t1"></a> 2.感知</h1> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 在獲得感測資訊之後,資料將被推送至感知子系統以充分了解無人車所處的周遭環境。在這裡感知子系統主要做的是三件事:定位、物體識別與追蹤。</p> <h2 id="3" style="font-size:30px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t2"></a> 1)定位</h2> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> GPS以較低的更新頻率提供相對準確的位置資訊,IMU則以較高的更新頻率提供準確性偏低的位置資訊。我們可以使用卡爾曼濾波整合兩類資料各自的優勢,合併提供準確且實時的位置資訊更新。如下圖所示,IMU每5ms更新一次,但是期間誤差不斷累積精度不斷降低。所幸的是,每100ms,我們可以得到一次GPS資料更新,以幫助我們校正IMU積累的誤差。因此,我們最終可以獲得實時並準確的位置資訊。然而,我們不能僅僅依靠這樣的資料組合完成定位工作。原因有三:其一,這樣的定位精度僅在一米之內;其二,GPS訊號有著天然的多路徑問題將引入噪聲干擾;其三,GPS必須在非封閉的環境下工作,因此在諸如隧道等場景中GPS都不適用。<br><a style="color:rgb(0,193,222);background:0px 0px;" target="_blank"><img src="https://img-blog.csdn.net/20170526103723110?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="基於GPS/IMU定位的原理圖" title="基於GPS/IMU定位的原理圖" style="border:0px;vertical-align:middle;"></a><br> 基於GPS/IMU定位的原理圖<br> <br> 因此作為補充方案,攝像頭也被用於定位。<br> <a style="color:rgb(0,193,222);background:0px 0px;" target="_blank"><img src="https://img-blog.csdn.net/20170526103901985?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="基於立體視覺測距的流程圖" title="基於立體視覺測距的流程圖" style="border:0px;vertical-align:middle;"></a><br> 基於立體視覺測距的流程圖<br> <br> 簡化來說,基於視覺的定位由三個基本步驟組成:① 通過對立體影象的三角剖分,首先獲得視差圖用以計算每個點的深度資訊;② 通過匹配連續立體影象幀之間的顯著特徵,可以通過不同幀之間的特徵建立相關性,並由此估計這兩幀之間的運動情況;③ 通過比較捕捉到的顯著特徵和已知地圖上的點計算車輛的當前位置。然而,基於視覺的定位方法對照明條件非常敏感,因此其使用受限且可靠性有限。<br> 因此,藉助於大量粒子濾波的鐳射雷達通常被用作車輛定位的主感測器。由鐳射雷達產生的點雲對環境進行了“形狀化描述”,但並不足以區分各自不同的點。通過粒子濾波,系統可將已知地圖與觀測到的具體形狀進行比較以減少位置的不確定性。<br> 為了在地圖中定位運動的車輛,可以使用粒子濾波的方法關聯已知地圖和鐳射雷達測量過程。粒子濾波可以在10cm的精度內達到實時定位的效果,在城市的複雜環境中尤為有效。然而,鐳射雷達也有其固有的缺點:如果空氣中有懸浮的顆粒(比如雨滴或者灰塵),那麼測量結果將受到極大的擾動。<br> <a style="color:rgb(0,193,222);background:0px 0px;" target="_blank"><img src="https://img-blog.csdn.net/20170526111046529?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="圖片描述" title="圖片描述" style="border:0px;vertical-align:middle;"></a><br> 定位中的多感測器融合<br> <br> 因此,我們需要利用多種感測器融合技術進行多型別感測資料融合,處理以整合所有感測器的優點,完成可靠並精準的定位。</p> <h2 id="4" style="font-size:30px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t3"></a> 2)物體識別與跟蹤</h2> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 鐳射雷達可提供精準的深度資訊,因此常被用於在無人駕駛中執行物體識別和追蹤的任務。近年來,深度學習技術得到了快速的發展,通過深度學習可達到較顯著的物體識別和追蹤精度。<br> 卷積神經網路(CNN)是一類在物體識別中被廣泛應用的深度神經網路。通常,CNN由三個階段組成:① 卷積層使用不同的濾波器從輸入影象中提取不同的特徵,並且每個過濾器在完成訓練階段後都將抽取出一套“可供學習”的引數;② 啟用層決定是否啟動目標神經元;③ 匯聚層壓縮特徵對映圖所佔用的空間以減少引數的數目,並由此降低所需的計算量;④ 一旦某物體被CNN識別出來,下一步將自動預測它的執行軌跡或進行物體追蹤。<br> <a style="color:rgb(0,193,222);background:0px 0px;" target="_blank"><img src="https://img-blog.csdn.net/20170526104122348?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="物體識別和跟蹤示意" title="物體識別和跟蹤示意" style="border:0px;vertical-align:middle;"></a><br> 物體識別和跟蹤示意<br> <br> 物體追蹤可以被用來追蹤鄰近行駛的車輛或者路上的行人,以保證無人車在駕駛的過程中不會與其他移動的物體發生碰撞。近年來,相比傳統的計算機視覺技術,深度學習技術已經展露出極大的優勢,通過使用輔助的自然影象,離線的訓練過程可以從中學習影象的共有屬性以避免視點及車輛位置變化造成的偏移,離線訓練好的模型直接應用在線上的物體追蹤中。</p> <h1 id="5" style="font-size:36px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t4"></a> 3.決策</h1> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 在決策階段,行為預測、路徑規劃及避障機制三者結合起來實時地完成無人駕駛動作規劃。</p> <h2 id="6" style="font-size:30px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t5"></a> 1)行為預測</h2> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 在車輛駕駛中主要考驗的是司機如何應對其他行駛車輛的可能行為,這種預判斷直接影響司機本人的駕駛決策,特別是在多車道環境或者交通燈變燈的情況下,司機的預測決定了下一秒行車的安全。因此,過渡到無人駕駛系統中,決策模組如何根據周圍車輛的行駛狀況決策下一秒的行駛行為顯得至關重要。<br> 為了預測其他車輛的行駛行為,可以使用隨機模型產生這些車輛的可達位置集合,並採用概率分佈的方法預測每一個可達位置集的相關概率。<br> <a style="color:rgb(0,193,222);background:0px 0px;" target="_blank"><img src="https://img-blog.csdn.net/20170526111411706?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="圖片描述" title="圖片描述" style="border:0px;vertical-align:middle;"></a><br> 面向行為預測的隨機模型示意<br> </p> <h2 id="7" style="font-size:30px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t6"></a> 2)路徑規劃</h2> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 為無人駕駛在動態環境中進行路徑規劃是一件非常複雜的事情,尤其是在車輛全速行駛的過程中,不當的路徑規劃有可能造成致命的傷害。路徑規劃中採取的一個方法是使用完全確定模型,它搜尋所有可能的路徑並利用代價函式的方式確定最佳路徑。然後,完全確定模型對計算效能有著非常高的要求,因此很難在導航過程中達到實時的效果。為了避免計算複雜性並提供實時的路徑規劃,使用概率性模型成為了主要的優化方向。</p> <h2 id="8" style="font-size:30px;font-weight:500;color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;line-height:1.1;"><a name="t7"></a> 3)避障</h2> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 安全性是無人駕駛中最重要的考量,我們將使用至少兩層級的避障機制來保證車輛不會在行駛過程中與障礙物發生碰撞。第一層級是基於交通情況預測的前瞻層級。交通情況預測機制根據現有的交通狀況如擁堵、車速等,估計出碰撞發生時間與最短預測距離等引數。基於這些估計,避障機制將被啟動以執行本地路徑重規劃。如果前瞻層級預測失效,則第二級實時反應層將使用雷達資料再次進行本地路徑重規劃。一旦雷達偵測到路徑前方出現障礙物,則立即執行避障操作。</p> <p style="color:rgb(51,51,51);font-family:PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif;font-size:16px;"> 本文選自<a href="http://www.broadview.com.cn/book/101" rel="nofollow" style="color:rgb(0,193,222);text-decoration:none;background:0px 0px;" target="_blank">《第一本無人駕駛技術書》</a>,點此連結可在博文視點官網檢視此書。<br> <a style="color:rgb(0,101,126);text-decoration:underline;background:0px 0px;" target="_blank"><img src="https://img-blog.csdn.net/20170526111904275?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="圖片描述" title="圖片描述" style="border:0px;vertical-align:middle;"></a><br> 想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。</p> <br><p><a href="http://click.aliyun.com/m/22025/" rel="nofollow" target="_blank">原文連結</a></p>             </div>                 </div>              </article>