日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记13--障碍物检测之基于图像障碍物检测

發(fā)布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记13--障碍物检测之基于图像障碍物检测 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本系列博客包括6個專欄,分別為:《自動駕駛技術概覽》、《自動駕駛汽車平臺技術基礎》、《自動駕駛汽車定位技術》、《自動駕駛汽車環(huán)境感知》、《自動駕駛汽車決策與控制》、《自動駕駛系統(tǒng)設計及應用》,筆者不是自動駕駛領域的專家,只是一個在探索自動駕駛路上的小白,此系列叢書尚未閱讀完,也是邊閱讀邊總結邊思考,歡迎各位小伙伴,各位大牛們在評論區(qū)給出建議,幫筆者這個小白挑出錯誤,謝謝!
此專欄是關于《自動駕駛汽車環(huán)境感知》書籍的筆記



1.障礙物檢測

1.1 環(huán)境感知與識別概述

  • 環(huán)境感知對象主要包括:行駛路徑、周邊物體、駕駛狀態(tài)、駕駛環(huán)境;
  • 行駛路徑包括:結構化道路和非結構化道路;
  • 結構化道路包括:車道線、道路邊緣、道路隔離物、惡劣路況的識別;
  • 非結構化道路包括:可行駛路徑的確認和前方路面環(huán)境的識別;
  • 周邊物體包括:車輛、行人、地面上可能影響車輛通過性、安全性的其他各種移動或靜止障礙物的識別及各種交通標志的識別;
  • 環(huán)境感知與識別傳感器系統(tǒng)通常采用攝像頭、激光雷達、毫米波雷達等多種傳感器來感知環(huán)境;
  • 攝像頭和激光雷達:可用于進行車道線檢測;
  • 攝像頭可完成對紅綠燈的識別;
  • 攝像頭可通過深度學習把障礙物進行細致分類,激光雷達能把障礙物分大類,激光雷達能完成對物體距離的準確定位;
  • 毫米波雷達完成障礙物運動速度、方位等識別;
  • 1.2 障礙物檢測之基于圖像檢測

    障礙物檢測技術包括:

  • 基于圖像的障礙物檢測;
  • 基于激光雷達的障礙物檢測;
  • 基于視覺和激光雷達融合的障礙物檢測;
  • 基于圖像的障礙物檢測算法大致分為:一階段檢測算法和二階段檢測算法;
    一階段檢測算法:YOLO和SSD;
    二階段檢測算法:RCNN;

    1.2.1 基于二維圖像的障礙物檢測

  • YOLO系列障礙物檢測
    YOLO(You Only Look Once)是將物體檢測作為回歸問題求解的一種一階段檢測算法;
    YOLO基于一個單獨的端到端網絡,完成從原始圖像的輸入到物體位置和類別的輸出;
    YOLO與RCNN、Fast RCNN、Faster RCNN區(qū)別:

  • YOLO訓練和檢測均是在一個單獨網絡進行,沒有顯式求取區(qū)域候選框的過程;RCNN/Fast RCNN采用分離的模塊(獨立于網絡之外的選擇性搜索方法)求取候選框(可能包含物體的矩形區(qū)域),訓練過程分為多個模塊進行;Faster RCNN使用RPN(Region Proposal Network)卷積網絡替代RCNN/Fast RCNN的選擇性搜索模塊,將RPN集成到Fast RCNN檢測網絡中,得到一個統(tǒng)一的檢測網絡;
  • YOLO輸入圖像經過一個推理,得到圖像中所有物體的位置和其所屬類別及相應的置信概率;RCNN/Fast RCNN/Faster RCNN將檢測結果分為兩部分求解:物體類別(分類問題)和物體位置(標注框(bounding box));
  • YOLO系列障礙物檢測核心思想:

  • 網絡定義

  • YOLO檢測網絡包括:24個卷積層和2個全連接層;
  • 卷積層:用來提取圖像特征;
  • 全連接層:用來預測圖像位置和類別概率;
  • 輸出表達(representation)定義

  • YOLO將輸入圖像分成S×S個格子,每個格子負責檢測"落入"該格子的物體;
  • 若某個物體的中心位置的坐標落入到某個格子,那么這個格子負責檢測出這個物體;
  • 每個格子輸出B個標注框信息,及C個物體屬于某種類別的概率信息;
  • 標注框信息包含5個數(shù)據(jù)值:x、y、w、h、confidencex、y、w、h、confidencexywhconfidence
  • x、yx、yxy:表示當前格子預測得到的物體的標注框的中心位置的坐標;
  • w、hw、hwh:表示標注框的寬度和高度;實際訓練過程中,w、hw、hwh的值使用圖像的寬度和高度進行歸一化到[0,1][0,1][0,1]區(qū)間內;x、yx、yxy是標注框中心位置相對于當前格子位置的偏移值,并歸一化到[0,1][0,1][0,1]
  • confidenceconfidenceconfidence反映當前標注框是否包含物體及物體位置的準確性,計算方式:confidence=P(object)confidence=P(object)confidence=P(object)
    若標注框包含物體,則P(object)=1P(object)=1P(object)=1,否則P(object)=0P(object)=0P(object)=0
  • YOLO網絡的全連接層輸出維度S×S×(B×5+C);
  • IOU(Intersection Over Union)為預測標注框與物體真實區(qū)域的交集面積(以像素為單位,用真實區(qū)域的像素面積歸一化到[0,1]區(qū)間);
  • 由于輸出層為全連接層,因此在檢測時,YOLO訓練模型只支持與訓練圖像相同的輸入分辨率;
  • 每個格子可以預測B個標注框,但最終只選擇IOU最高的標注框作為物體檢測輸出,即每個格子最多只預測出一個物體;當物體占畫面比例較小,每個格子包含多個物體,但只能檢測出其中一個;
  • 損失(loss)函數(shù)定義
    YOLO使用均方和誤差作為loss函數(shù)來優(yōu)化模型參數(shù),即網絡輸出的S×S×(B×5+C)維向量與真實圖像的對應S×S×(B×5+C)維向量的均方和誤差;
    loss=∑i=0s2coordError+iouError+classErrorloss=\sum^{s^2}_{i=0}coordError+iouError+classErrorloss=i=0s2?coordError+iouError+classError
    其中:
    coordErrorcoordErrorcoordError:預測數(shù)據(jù)與標定數(shù)據(jù)之間的坐標誤差;
    iouErroriouErroriouError:IOU誤差;
    classErrorclassErrorclassError:分類誤差;

    YOLO對loss的計算進行了修正:

  • 位置相關誤差(坐標、IOU)與分類誤差對網絡loss的貢獻值不同,YOLO在計算loss時,使用λcoord=5\lambda_{coord}=5λcoord?=5修正coordErrorcoordErrorcoordError
  • 計算IOU誤差時,包含物體的格子與不包含物體的格子,二者的IOU誤差對網絡loss的貢獻值不同;YOLO使用λnoobj=0.5\lambda_{noobj}=0.5λnoobj?=0.5修正iouErroriouErroriouError
  • 對于相等的誤差值,大物體誤差對檢測的影響應小于小物體誤差對檢測的影響;YOLO將物體大小的信息項(w和h)(w和h)(wh)進行求平方根來改進這個問題;
  • SSD障礙物檢測
    SSD(Single Shot Multibox Detector)是一種單一階段檢測算法,只需要用到圖像一次,無須先產生候選框再進行分類和回歸,直接在圖像中不同位置進行邊界框的采樣,使用卷積層進行特征提取后直接進行分類和回歸;

    SSD檢測的主要設計理念:

  • 使用不同尺度下的特征圖進行檢測
    SSD通過提取不同尺度下的特征圖來做檢測,SSD使用了6種不同尺寸的特征圖來進行檢測;在卷積神經網絡中,較低層級的特征圖尺寸較大,在這種特征圖上的候選框在原圖上覆蓋范圍較小;較高層級的特征圖的尺寸較小,候選框在原圖上的覆蓋范圍大;如下圖2所示。

  • 采用卷積層做檢測
    SSD直接采用卷積對不同特征圖進行特征提取;如圖1所示,對于尺寸為m×nm\times{n}m×n,維數(shù)為ppp的特征圖,SSD使用3×3×p3×3×p3×3×p的卷積核來進行卷積;輸出:一種為用于分類的置信度分數(shù);一種是用于回歸的位移量;

  • 采用不同尺度和縱橫比的候選框
    SSD在每個單元格設置不同尺度和縱橫比的默認框,對于一個尺寸為m×nm\times{n}m×n的特征圖,假定每個單元格有kkk個默認框,則該特征圖有m×n×km\times{n}\times{k}m×n×k個默認框;如圖2,每個單元格設定有4種不同尺寸的默認框,則該圖網絡有38×38×4+19×19×6+10×10×6+5×5×6+5×5×6+3×3×4+1×1×4=873238\times{38}\times{4}+19\times{19}\times{6}+10\times{10}\times{6}+5\times{5}\times{6}+5\times{5}\times{6}+3\times{3}\times{4}+1\times{1}\times{4}=873238×38×4+19×19×6+10×10×6+5×5×6+5×5×6+3×3×4+1×1×4=8732個默認框;

    對于每個默認框,SSD的預測值:分類的置信度和邊界框的回歸值。
    1. 分類:SSD把背景單獨作為一類,在VOC數(shù)據(jù)集上,SSD的每個默認框會輸出21類置信度,其中20類為VOC的目標種類;
    2. 邊界框的回歸值:預測真實邊界框ggg相對于默認框ddd的中心(cx,cy)(cx,cy)(cx,cy)和寬(w)(w)(w)、高(h)(h)(h)的轉換量,預測值的真實值的計算方式:g^cx=(gcx?dcx)/dw,g^cy=(gcy?dcy)/dh\hat{g}^{cx}=(g^{cx}-d^{cx})/d^w,\hat{g}^{cy}=(g^{cy}-d^{cy})/d^hg^?cx=(gcx?dcx)/dwg^?cy=(gcy?dcy)/dh g^w=log?(gwdw),g^h=log?(ghdh)\hat{g}^w=\log(\frac{g^w}{d^w}),\hat{g}^h=\log(\frac{g^h}{d^h})g^?w=log(dwgw?)g^?h=log(dhgh?)
    假定數(shù)據(jù)集有ccc種目標,則每個默認框需要預測c+1c+1c+1個類別概率和444個坐標相關的轉換量;

  • 損失函數(shù)定義
    SSD的損失函數(shù)由位置誤差(localization loss,loc)和置信度誤差(confidence loss,conf)組成;令xijp={1,0}x^p_{ij}=\{1,0\}xijp?={1,0}表示第iii個默認框是否與第jjj個真實框匹配,NNN為匹配的默認框總數(shù),ccc為類別置信度預測值,ggg為真實邊界框,lll為預測框,總的損失函數(shù)為:L(x,c,l,g)=1N(Lconf(x,c)+αLloc(x,l,g))L(x,c,l,g)=\frac{1}{N}(L_{conf}(x,c)+\alpha{L_{loc}(x,l,g)})L(x,c,l,g)=N1?(Lconf?(x,c)+αLloc?(x,l,g))
    位置誤差LlocL_{loc}Lloc?,采用Smooth L1 loss(平滑的L1損失):Lloc(x,l,g)=∑i∈PosN∑m∈(cx,cy,w,h)xijksmoothL1(lim?g^jm)L_{loc}(x,l,g)=\sum^N_{i\in{Pos} }\sum_{m\in{(cx,cy,w,h)}}x^k_{ij}smooth_{L1}(l^m_i-\hat{g}^m_j)Lloc?(x,l,g)=iPosN?m(cx,cy,w,h)?xijk?smoothL1?(lim??g^?jm?)
    置信度誤差LconfL_{conf}Lconf?,采用softmax loss:Lconf(x,c)=?∑i∈PosNxijplog?(c^ip)?∑i∈Neglog?(c^ip)L_{conf}(x,c)=-\sum^N_{i\in{Pos}}x^p_{ij}\log(\hat{c}^p_i)-\sum_{i\in{Neg}}\log(\hat{c}^p_i)Lconf?(x,c)=?iPosN?xijp?log(c^ip?)?iNeg?log(c^ip?) c^ip=exp?(cip)∑pexp?(cip)\hat{c}^p_i=\frac{\exp(c^p_i)}{\sum_p\exp(c^p_i)}c^ip?=p?exp(cip?)exp(cip?)?
    總誤差函數(shù)的權重系數(shù)α\alphaα通過交叉驗證設置。

  • Faster RCNN障礙物檢測
    介紹:Faster RCNN由Ross B. Girshick等人在2016年提出,是一種二階段檢測算法;Faster RCNN將體征提取模塊、候選框生成模塊、邊框回歸和目標分類模塊整合到一個網絡,綜合性能大大提高。

  • 特征提取模塊
    Faster RCNN特征提取網絡使用VGG16,是一個通過反復堆疊3×3卷積和2×2最大值池化的16層網絡;輸入圖像大小是3×224×224,輸出特征是51×39×256;
  • 候選框生成模塊(RPN)
    Faster RCNN使用Region Proposal Networks(RPN)生成檢測框;
  • 邊框回歸和目標分類模塊
    通過RPN得到候選框后,使用ROI pooling將每個候選框對應的特征轉換成7×7的大小;將每個候選框的特征輸入到邊框回歸和目標分類模塊,得到每個候選框的類別,類別數(shù)n+1n+1n+1nnn是障礙物類別,1是背景;
    在Faster RCNN中的兩個損失:分類損失和標注框回歸損失;
    分類損失:簡單的交叉熵;
    標注框回歸損失:平滑的L1損失;
    smoothL1(x)={0.5x2×1/σ2∣x∣<(1/σ2)∣x∣?0.5其他smooth_{L1}(x)= \begin{cases} 0.5x^2\times{1/\sigma^2}&|x|<(1/\sigma^2) \\ |x|-0.5& 其他 \end{cases}smoothL1?(x)={0.5x2×1/σ2x?0.5?x<(1/σ2)?
  • 總結

    以上是生活随笔為你收集整理的学习笔记13--障碍物检测之基于图像障碍物检测的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。