駕駛感知:實(shí)時(shí)檢測(cè)如何守住安全邊際)
1. 感知層為何成了自動(dòng)駕駛的“決勝局”很多人聊自動(dòng)駕駛習(xí)慣性先聊算力平臺(tái)、激光雷達(dá)數(shù)量、城區(qū)智駕開(kāi)城名單但真正讓車(chē)在路口剎得住、在鬼探頭面前躲得開(kāi)的那一層往往是感知層。感知層的任務(wù)其實(shí)很樸素把傳感器送進(jìn)來(lái)的原始數(shù)據(jù)快速變成車(chē)能理解的結(jié)構(gòu)化信息——目標(biāo)是誰(shuí)、在哪兒、速度多少、會(huì)不會(huì)撞上。決策和規(guī)劃再聰明如果感知層給的是遲到的、漏檢的、或者框錯(cuò)位置的信息一切都白搭。所以圈內(nèi)經(jīng)常說(shuō)一句話感知層差一幀決策層差一條命。YOLO26這名字嚴(yán)格說(shuō)起來(lái)并不是官方正式發(fā)布的某個(gè)版本更貼切的理解是——它代表著YOLO系列實(shí)時(shí)目標(biāo)檢測(cè)算法在自動(dòng)駕駛場(chǎng)景下的又一次系統(tǒng)性演進(jìn)。從最早的YOLO到后來(lái)的多代迭代這個(gè)家族的核心理念一直沒(méi)變用盡可能低的算力開(kāi)銷換取盡可能快的檢測(cè)速度和盡可能高的精度讓檢測(cè)模型真正能跑在車(chē)端的嵌入式芯片上而不是只能在云端顯卡上表演。我為什么愿意專門(mén)寫(xiě)一篇東西聊YOLO26和自動(dòng)駕駛道路安全的關(guān)系因?yàn)檫@兩年我看了太多項(xiàng)目模型在服務(wù)器上mAP刷得很漂亮一上實(shí)車(chē)就露餡要么幀率掉到十幾幀要么夜間工況漏檢率陡升。感知層的真實(shí)戰(zhàn)場(chǎng)從來(lái)不在論文數(shù)據(jù)集里而在雨天的高速匝道、黃昏的城市交叉口、逆光的地庫(kù)入口。這篇文章會(huì)從感知層為什么是安全破局點(diǎn)的底層邏輯講起再把YOLO系列演進(jìn)的路線和YOLO26所代表的技術(shù)方向逐個(gè)拆開(kāi)最后落回到工程落地層面講講數(shù)據(jù)集、蒸餾、量化部署這些真正決定實(shí)車(chē)表現(xiàn)的東西。想研究感知算法的人做嵌入式AI部署的工程師或者單純想搞明白“車(chē)到底是怎么看見(jiàn)世界的”的愛(ài)好者都能在里頭找到自己關(guān)心的那部分。2. 底層邏輯為什么感知層的實(shí)時(shí)性直接等于安全邊際2.1 從剎車(chē)距離倒推感知延遲預(yù)算要理解實(shí)時(shí)檢測(cè)和道路安全之間的關(guān)系不能只停留在“快一點(diǎn)總比慢一點(diǎn)好”的直覺(jué)層面得把賬算清楚。我們按一個(gè)典型城市工況來(lái)算車(chē)輛以60km/h行駛也就是約16.7m/s。從感知發(fā)現(xiàn)障礙物到車(chē)輛完全剎停整個(gè)鏈條包括感知時(shí)間、決策規(guī)劃時(shí)間、執(zhí)行機(jī)構(gòu)響應(yīng)時(shí)間、制動(dòng)建壓時(shí)間。假設(shè)決策和執(zhí)行加起來(lái)能控制在300ms以內(nèi)——這已經(jīng)是相當(dāng)優(yōu)秀的系統(tǒng)水平了——那么留給感知的延遲預(yù)算其實(shí)非常緊張。舉個(gè)例子如果感知端從圖像采集到輸出目標(biāo)框需要150ms那么從發(fā)現(xiàn)前方靜止障礙物到車(chē)開(kāi)始減速已經(jīng)過(guò)去了約450ms車(chē)輛向前滑行了7.5米。如果感知端能做到50ms以內(nèi)同樣條件下車(chē)輛只多滑行2.5米就被系統(tǒng)捕獲。5米的差距在城市鬼探頭場(chǎng)景里就是“撞上”和“擦著過(guò)去”的區(qū)別。這個(gè)計(jì)算還沒(méi)考慮傳感器本身的曝光時(shí)間、傳輸延遲和同步誤差。所以感知層對(duì)實(shí)時(shí)性的要求不是產(chǎn)品經(jīng)理拍腦袋定的“看起來(lái)流暢”而是由物理定律倒推出來(lái)的硬指標(biāo)。2.2 漏檢率與誤檢率的雙重困境自動(dòng)駕駛感知還有一個(gè)特別坑的地方漏檢和誤檢是一對(duì)蹺蹺板。純粹追求低漏檢模型會(huì)把大量背景區(qū)域也當(dāng)成目標(biāo)誤檢率飆升車(chē)會(huì)在空曠路段莫名急剎輕則造成駕乘體驗(yàn)極差重則引發(fā)后車(chē)追尾。反過(guò)來(lái)一味壓低誤檢又容易把真正的小目標(biāo)、遮擋目標(biāo)給過(guò)濾掉釀成大禍。YOLO系列這類單階段檢測(cè)器之所以在自動(dòng)駕駛感知里能站住腳核心優(yōu)勢(shì)在于它把“框出目標(biāo)”這件事做成了一個(gè)統(tǒng)一的回歸問(wèn)題天然比“先提候選框再分類”的兩階段方法更快也更容易在精度和召回之間找到工程可用的平衡點(diǎn)。到了YOLO26所代表的這一代模型不再只是輸出一個(gè)框和類別還會(huì)輸出更豐富的屬性信息——目標(biāo)朝向、關(guān)鍵點(diǎn)、運(yùn)動(dòng)狀態(tài)、甚至遮擋程度。這些額外輸出對(duì)下游的軌跡預(yù)測(cè)和風(fēng)險(xiǎn)判斷非常有價(jià)值比如檢測(cè)到行人正在橫穿比檢測(cè)到行人靜止站在路邊決策層的反應(yīng)策略是完全不同的。3. 技術(shù)演進(jìn)YOLO系檢測(cè)器是如何一步步逼近車(chē)規(guī)級(jí)要求的3.1 從骨干網(wǎng)絡(luò)到頸部融合的關(guān)鍵躍遷YOLO系列每一次大版本迭代幾乎都在做同一件事在保持單階段檢測(cè)器簡(jiǎn)潔性的前提下不斷縮小與兩階段檢測(cè)器的精度差距。早期YOLO版本被詬病對(duì)小目標(biāo)不友好很重要的原因是骨干網(wǎng)絡(luò)下采樣倍數(shù)過(guò)高小目標(biāo)在經(jīng)過(guò)多層卷積后特征已經(jīng)幾乎消失。后續(xù)版本引入更細(xì)粒度的特征融合結(jié)構(gòu)讓淺層的高分辨率特征和深層的語(yǔ)義特征充分融合小目標(biāo)的召回率才有了實(shí)質(zhì)性的提升。YOLO26所代表的這一代技術(shù)方向延續(xù)并且強(qiáng)化了這個(gè)思路。它的骨干網(wǎng)絡(luò)在保持較高下采樣倍數(shù)的同時(shí)通過(guò)更精細(xì)的跨階段連接來(lái)保留空間細(xì)節(jié)頸部融合部分則做得更徹底不只做同一層次的特征拼接而是引入了跨尺度的循環(huán)反饋機(jī)制讓高層語(yǔ)義信息能夠回頭指導(dǎo)淺層特征的表達(dá)。你可以把它理解成以前是人眼直接看整張圖找目標(biāo)現(xiàn)在是先快速掃一遍建立全局印象再帶著“哪片區(qū)域更可疑”的先驗(yàn)知識(shí)回到局部仔細(xì)看。這種機(jī)制對(duì)自動(dòng)駕駛特別有價(jià)值因?yàn)榈缆穲?chǎng)景里的目標(biāo)尺度差異極大——遠(yuǎn)處的行人可能只有幾十個(gè)像素近處的卡車(chē)卻占據(jù)半個(gè)畫(huà)面。3.2 無(wú)錨框檢測(cè)頭與任務(wù)對(duì)齊的實(shí)踐價(jià)值另一個(gè)值得重點(diǎn)說(shuō)的技術(shù)取向是無(wú)錨框檢測(cè)頭YOLO系列從某個(gè)階段開(kāi)始廢棄了預(yù)設(shè)錨框的做法改為直接預(yù)測(cè)目標(biāo)中心點(diǎn)到四條邊的距離。這個(gè)改動(dòng)看起來(lái)只是算法細(xì)節(jié)實(shí)際影響非常大。預(yù)設(shè)錨框的尺寸和比例需要針對(duì)數(shù)據(jù)集人工調(diào)參不同場(chǎng)景的最優(yōu)錨框差異巨大高速公路上的車(chē)輛多為細(xì)長(zhǎng)形城市十字路口的行人高寬比又完全不同。無(wú)錨框方式讓模型跳過(guò)了這一層先驗(yàn)束縛能夠更自由地學(xué)習(xí)各種形態(tài)的目標(biāo)泛化能力明顯更好。與檢測(cè)頭配套的標(biāo)簽分配策略也在演進(jìn)。早期版本簡(jiǎn)單粗暴地通過(guò)IoU閾值劃分正負(fù)樣本導(dǎo)致很多處于模糊地帶的目標(biāo)被白白浪費(fèi)。新一代的分配策略會(huì)綜合考慮分類置信度與定位質(zhì)量的聯(lián)合影響把那些“框得有點(diǎn)偏但內(nèi)容確實(shí)像目標(biāo)”的樣本也利用起來(lái)。從實(shí)際項(xiàng)目經(jīng)驗(yàn)看這種精細(xì)化分配對(duì)行人、騎行者這類非剛性目標(biāo)的檢測(cè)穩(wěn)定性幫助很大尤其是身體姿態(tài)變化劇烈、輪廓不穩(wěn)定的時(shí)候。3.3 輕量化設(shè)計(jì)的代價(jià)平衡YOLO系列一直有個(gè)令人糾結(jié)的矛盾模型越大精度越高但車(chē)端芯片的算力是固定成本不可能為了跑一個(gè)超大模型無(wú)限堆硬件。YOLO26這個(gè)方向上輕量化不是簡(jiǎn)單地把網(wǎng)絡(luò)變窄變淺而是做結(jié)構(gòu)性的重設(shè)計(jì)。深度可分離卷積、重參數(shù)化結(jié)構(gòu)、注意力機(jī)制的輕量化改造這些手段組合在一起目標(biāo)是讓模型在同樣算力下跑得更快或者在同樣速度下精度更高。我在實(shí)際項(xiàng)目里測(cè)過(guò)很多輕量化方案最大的體會(huì)是只看參數(shù)量和理論計(jì)算量遠(yuǎn)遠(yuǎn)不夠。有些模型參數(shù)量看著很小但實(shí)際推理時(shí)間反而不理想原因是某些算子在嵌入式芯片上沒(méi)有高效實(shí)現(xiàn)或者內(nèi)存訪問(wèn)模式很糟糕。真正的輕量化要結(jié)合目標(biāo)芯片的算子庫(kù)、內(nèi)存帶寬、緩存大小來(lái)綜合評(píng)估不能紙上談兵。這也是為什么同樣一個(gè)模型在不同的車(chē)規(guī)級(jí)芯片上表現(xiàn)可能一個(gè)天上一個(gè)地下。4. 數(shù)據(jù)與場(chǎng)景讓檢測(cè)模型真正理解道路的復(fù)雜性4.1 極端場(chǎng)景數(shù)據(jù)的“長(zhǎng)尾效應(yīng)”自動(dòng)駕駛感知另一大難題是數(shù)據(jù)分布的長(zhǎng)尾效應(yīng)。常規(guī)道路場(chǎng)景——晴天、直道、車(chē)輛正常行駛——這些數(shù)據(jù)容易采集模型也容易學(xué)得好。真正要命的是那些低概率但高危險(xiǎn)的事件前車(chē)突然掉落貨物、行人從大車(chē)車(chē)頭前方竄出、夜間不開(kāi)燈的電動(dòng)車(chē)橫穿、雨天后視鏡反光中的摩托騎手。這些場(chǎng)景發(fā)生的概率低但一旦發(fā)生對(duì)感知系統(tǒng)的要求極高。YOLO26這類模型要在這些場(chǎng)景下可靠工作靠的不只是算法結(jié)構(gòu)本身還有數(shù)據(jù)策略。我在幾個(gè)項(xiàng)目中總結(jié)出的經(jīng)驗(yàn)是對(duì)于長(zhǎng)尾場(chǎng)景寧可犧牲一些常規(guī)場(chǎng)景的冗余數(shù)據(jù)也要保證極端場(chǎng)景的覆蓋度。常規(guī)晴天直道的樣本如果占了訓(xùn)練集的90%模型當(dāng)然會(huì)在這些樣本上表現(xiàn)很好但它的決策邊界會(huì)被這些海量相似樣本“帶偏”對(duì)真正需要泛化能力的危險(xiǎn)場(chǎng)景反而缺乏響應(yīng)。實(shí)際操作中我會(huì)把訓(xùn)練數(shù)據(jù)里的場(chǎng)景維度打散白天/夜晚/黃昏、晴天/雨天/霧天、城市/高速/鄉(xiāng)村、擁擠/空曠按場(chǎng)景而非按幀數(shù)來(lái)配比數(shù)據(jù)。4.2 標(biāo)注質(zhì)量如何決定模型上限很多團(tuán)隊(duì)容易忽略一個(gè)事實(shí)標(biāo)注質(zhì)量對(duì)模型性能的影響往往比換個(gè)更大的骨干網(wǎng)絡(luò)更明顯。自動(dòng)駕駛目標(biāo)的標(biāo)注難度相當(dāng)高尤其是遮擋目標(biāo)、小目標(biāo)、密集目標(biāo)。一輛公交車(chē)擋住后面一半的轎車(chē)這個(gè)轎車(chē)到底標(biāo)不標(biāo)標(biāo)了模型要去學(xué)一個(gè)被遮擋大半的奇怪形狀不標(biāo)模型在實(shí)車(chē)上遇到同類場(chǎng)景就很茫然。針對(duì)這個(gè)問(wèn)題我踩過(guò)不少坑之后形成了自己的一套做法對(duì)于嚴(yán)重遮擋且確實(shí)無(wú)法明確類別的目標(biāo)建議標(biāo)注為忽略區(qū)域而不是硬標(biāo)成某一類對(duì)于只露出一小部分、但語(yǔ)義明確的道路參與者比如只露出一個(gè)輪子的騎行者則必須完整標(biāo)注實(shí)際可見(jiàn)部分同時(shí)標(biāo)注遮擋關(guān)系。這些細(xì)節(jié)直接影響模型學(xué)到的特征表達(dá)比調(diào)十幾個(gè)epoch的學(xué)習(xí)率影響大得多。如果你手上有現(xiàn)成的開(kāi)源數(shù)據(jù)集直接用YOLO26訓(xùn)練出來(lái)的模型往往在公開(kāi)榜單上還行一到實(shí)車(chē)就露餡很大程度就是因?yàn)殚_(kāi)源數(shù)據(jù)集的標(biāo)注策略跟你的目標(biāo)場(chǎng)景不匹配。4.3 數(shù)據(jù)增強(qiáng)在線增強(qiáng)是免費(fèi)的推理精度數(shù)據(jù)增強(qiáng)策略也很關(guān)鍵。現(xiàn)在的檢測(cè)訓(xùn)練流程里在線數(shù)據(jù)增強(qiáng)尤其是馬賽克增強(qiáng)、隨機(jī)仿射變換、混合增強(qiáng)幾乎是標(biāo)配。馬賽克增強(qiáng)把四張圖拼接成一張訓(xùn)練樣本能在同樣訓(xùn)練步數(shù)下大幅增加每張圖的目標(biāo)數(shù)量和場(chǎng)景多樣性隨機(jī)仿射變換讓模型學(xué)會(huì)在不同視角、不同尺度下識(shí)別同一目標(biāo)。這些增強(qiáng)手段本質(zhì)上是免費(fèi)的推理精度因?yàn)樗辉黾尤魏尾渴鸪杀局挥绊懹?xùn)練過(guò)程。但增強(qiáng)不是越猛越好。我在項(xiàng)目里發(fā)現(xiàn)過(guò)度的幾何增強(qiáng)比如超大角度的旋轉(zhuǎn)、極端縮放會(huì)導(dǎo)致模型學(xué)到不真實(shí)的形態(tài)分布在實(shí)車(chē)場(chǎng)景里反而產(chǎn)生誤檢。合理的做法是根據(jù)目標(biāo)類別定制增強(qiáng)強(qiáng)度。對(duì)于車(chē)輛這種形態(tài)剛性強(qiáng)的目標(biāo)可以做大幅度旋轉(zhuǎn)和縮放對(duì)于行人這種姿態(tài)本來(lái)就多變的旋轉(zhuǎn)角度要適度收斂不然模型容易把倒立的人影也當(dāng)成行人。5. 工程落地從訓(xùn)練到車(chē)端部署的完整鏈路5.1 訓(xùn)練與蒸餾讓大模型當(dāng)導(dǎo)師小模型上臺(tái)表演直接訓(xùn)練一個(gè)輕量化模型去達(dá)到車(chē)規(guī)級(jí)精度難度很大。業(yè)界通用的做法是先訓(xùn)練一個(gè)參數(shù)量較大的高精度模型教師模型再通過(guò)知識(shí)蒸餾把教師模型的“知識(shí)”遷移到輕量化模型學(xué)生模型上。蒸餾的核心思想是讓學(xué)生模型不僅學(xué)會(huì)正確答案還要學(xué)會(huì)教師模型在錯(cuò)誤答案上的分布特征——也就是“這玩意兒看起來(lái)有點(diǎn)像卡車(chē)但更可能是公交車(chē)”這類軟信息。在我實(shí)際操作的蒸餾方案中有幾個(gè)關(guān)鍵細(xì)節(jié)決定成敗。第一蒸餾不只在輸出層做中間層特征也要做對(duì)齊淺層特征的對(duì)齊尤其重要它決定了學(xué)生模型能不能學(xué)到教師模型的底層視覺(jué)能力。第二蒸餾的loss權(quán)重不能一成不變前期加大分類蒸餾的權(quán)重讓模型快速收斂后期加大特征蒸餾的權(quán)重做精細(xì)調(diào)優(yōu)這樣的分段策略比固定權(quán)重效果好很多。第三教師模型和學(xué)生模型的架構(gòu)差異不宜過(guò)大如果結(jié)構(gòu)差距懸殊學(xué)生模型很難學(xué)到教師模型的表達(dá)能力蒸餾效果會(huì)大打折扣。5.2 量化與推理優(yōu)化YOLO26上車(chē)的最后一公里模型訓(xùn)練完之后距離真正跑在車(chē)端還有一道大坎量化與推理優(yōu)化。車(chē)規(guī)級(jí)芯片普遍使用INT8量化來(lái)提升推理速度、降低內(nèi)存帶寬消耗。把FP32模型直接轉(zhuǎn)成INT8精度損失常常讓人頭大尤其是檢測(cè)框的回歸分支對(duì)量化誤差格外敏感。我在項(xiàng)目里會(huì)做兩件事來(lái)緩解這個(gè)問(wèn)題。第一件是量化感知訓(xùn)練。不是訓(xùn)練完再做后訓(xùn)練量化而是從訓(xùn)練階段就模擬量化帶來(lái)的精度損失讓模型在量化狀態(tài)下重新適應(yīng)。實(shí)際操作中我習(xí)慣在訓(xùn)練的最后幾個(gè)epoch才開(kāi)啟量化感知因?yàn)閺念^開(kāi)啟會(huì)導(dǎo)致訓(xùn)練不穩(wěn)定。第二件是逐層敏感性分析對(duì)不同層采用不同精度的混合量化方案。有些層對(duì)量化極其敏感比如第一層卷積、最后的回歸頭我會(huì)讓這些層保留FP16甚至FP32精度其他層用INT8這樣能在精度損失極小的情況下拿到接近全I(xiàn)NT8的加速比。這個(gè)分析過(guò)程雖然費(fèi)時(shí)間但它是值得的——我在一個(gè)項(xiàng)目中靠這個(gè)手段把模型mAP損失從0.8%壓到了0.2%以內(nèi)。5.3 感知輸出的結(jié)構(gòu)化編碼檢測(cè)模型輸出的是一堆矩形框和類別置信度但下游決策模塊需要的不是這些裸數(shù)據(jù)而是結(jié)構(gòu)化的目標(biāo)列表每個(gè)目標(biāo)有ID、類別、位置、尺寸、速度、朝向。所以檢測(cè)模塊通常還要接一個(gè)后處理管線做跟蹤關(guān)聯(lián)、狀態(tài)估計(jì)、目標(biāo)級(jí)融合。YOLO26這一代檢測(cè)頭直接輸出更豐富的目標(biāo)屬性其實(shí)給后處理省了很多事。比如直接回歸目標(biāo)中心點(diǎn)的速度矢量、目標(biāo)朝向角度這些信息在傳統(tǒng)的檢測(cè)器里往往需要額外的小網(wǎng)絡(luò)或者時(shí)序?yàn)V波才能拿到。檢測(cè)頭直接輸出速度信息配合跟蹤算法做一階濾波能在幾幀之內(nèi)就穩(wěn)定估計(jì)出目標(biāo)的運(yùn)動(dòng)趨勢(shì)對(duì)預(yù)判危險(xiǎn)特別有價(jià)值。這套做法的另一個(gè)好處是降低系統(tǒng)復(fù)雜度——不再需要額外的目標(biāo)測(cè)速網(wǎng)絡(luò)整個(gè)感知鏈路更簡(jiǎn)潔出問(wèn)題的環(huán)節(jié)更少這對(duì)功能安全是有直接益處的。6. 實(shí)車(chē)場(chǎng)景中的典型問(wèn)題與排查技巧實(shí)錄6.1 夜間與逆光工況下的漏檢夜間漏檢是自動(dòng)駕駛感知最典型的頑疾。很多模型在夜間城市道路上對(duì)行人的漏檢率比白天高出一倍以上原因很直接可見(jiàn)光圖像在低照度下信噪比急劇下降行人對(duì)比度低、邊緣模糊而且夜間行人經(jīng)常處在車(chē)燈直射的逆光區(qū)域亮部和暗部的動(dòng)態(tài)范圍差異巨大。排查這一類問(wèn)題時(shí)我通常不會(huì)急著調(diào)模型結(jié)構(gòu)而是先看數(shù)據(jù)分布。如果訓(xùn)練集里夜間樣本占比不足10%再好的模型結(jié)構(gòu)也白搭。我試過(guò)的有效做法是保證訓(xùn)練集里夜間/黃昏樣本占比達(dá)到30%以上并且專門(mén)對(duì)逆光場(chǎng)景做數(shù)據(jù)增強(qiáng)。具體來(lái)說(shuō)可以用亮度擾動(dòng)模擬不同的光照條件再用局部Gamma校正模擬車(chē)燈照射下的局部過(guò)曝。經(jīng)驗(yàn)表明針對(duì)夜間工況做數(shù)據(jù)層面的補(bǔ)齊比換一個(gè)更大的骨干網(wǎng)絡(luò)效果更立竿見(jiàn)影而且不增加任何推理成本。6.2 小目標(biāo)漏檢的排查思路遠(yuǎn)處的行人、摩托車(chē)、錐桶都是典型的小目標(biāo)。當(dāng)目標(biāo)在圖像中的尺寸小于32×32像素時(shí)很多檢測(cè)器的召回率會(huì)斷崖式下跌。排查小目標(biāo)漏檢時(shí)我會(huì)按順序查三個(gè)環(huán)節(jié)第一是標(biāo)簽分配策略?;贗oU的分配方式對(duì)小目標(biāo)非常不友好因?yàn)樾∧繕?biāo)的高質(zhì)量預(yù)測(cè)框數(shù)量和Anchor數(shù)量天然少正樣本不足導(dǎo)致模型“看不到”小目標(biāo)。需要檢查訓(xùn)練日志里的正樣本統(tǒng)計(jì)如果小目標(biāo)的正樣本數(shù)量明顯低于其他尺寸目標(biāo)優(yōu)先考慮調(diào)整分配策略。第二是特征金字塔的淺層輸出是否被充分使用很多模型在部署時(shí)為了省算力砍掉了淺層分支這是撿了芝麻丟西瓜小目標(biāo)檢測(cè)能力直接崩掉。第三是數(shù)據(jù)增強(qiáng)里的縮放策略如果隨機(jī)縮放尺度范圍沒(méi)有覆蓋小目標(biāo)出現(xiàn)的尺度區(qū)間模型當(dāng)然學(xué)不會(huì)。6.3 誤檢的常見(jiàn)來(lái)源和調(diào)參方向誤檢往往比漏檢更讓人挫敗因?yàn)檎`檢通常意味著模型學(xué)了不該學(xué)的特征。我在項(xiàng)目里遇到最多的一種誤檢是模型把路邊的廣告牌上的人像檢測(cè)為真實(shí)行人。這類誤檢的根源在于訓(xùn)練數(shù)據(jù)里行人樣本和類似行人的紋理樣本分布不均衡模型把“人形輪廓”當(dāng)成了充分特征而沒(méi)有學(xué)到更細(xì)粒度的判別特征。面對(duì)誤檢問(wèn)題我的排查步驟是先把誤檢樣本收集起來(lái)做硬負(fù)樣本挖掘把這些樣本重新加入訓(xùn)練集讓模型明確看到“這個(gè)不是行人”。同時(shí)考慮降低模型的置信度閾值是否合理——很多團(tuán)隊(duì)為了壓漏檢把閾值調(diào)得極低誤檢率當(dāng)然就壓不住了。合理的做法是閾值調(diào)到能讓系統(tǒng)“稍有保守但不至于神經(jīng)質(zhì)”的位置配合時(shí)序跟蹤和后驗(yàn)確認(rèn)機(jī)制用多幀信息來(lái)濾除單幀的孤立誤檢。7. 幾個(gè)特別想說(shuō)給后來(lái)人的經(jīng)驗(yàn)做了這么多年感知落地我特別想強(qiáng)調(diào)一件事別被排行榜上的精度數(shù)字迷惑。業(yè)界常用的某個(gè)檢測(cè)數(shù)據(jù)集精度榜單上模型之間的差距可能只有0.5%但到了真實(shí)道路場(chǎng)景這些模型的表現(xiàn)差距可以拉到天壤之別。原因很簡(jiǎn)單公開(kāi)數(shù)據(jù)集和真實(shí)道路場(chǎng)景的數(shù)據(jù)分布差異遠(yuǎn)大于模型之間的結(jié)構(gòu)差異。選型時(shí)我一般會(huì)自己準(zhǔn)備一套“私有場(chǎng)景集”專門(mén)挑實(shí)車(chē)上容易出問(wèn)題的場(chǎng)景雨天夜景、逆光隧道口、密集非機(jī)動(dòng)車(chē)流在這套場(chǎng)景集上做模型對(duì)比比看任何公開(kāi)榜單都有說(shuō)服力。另外關(guān)于實(shí)時(shí)檢測(cè)的“實(shí)時(shí)”二字不同場(chǎng)景的容忍度完全不同高速公路巡航對(duì)感知延遲的要求反而比城市低速?gòu)?fù)雜路口寬松因?yàn)檐?chē)速高但場(chǎng)景相對(duì)簡(jiǎn)單前方目標(biāo)出現(xiàn)后留給系統(tǒng)的反應(yīng)時(shí)間窗口更長(zhǎng)的前提是感知距離足夠遠(yuǎn)城市路口車(chē)速不高但目標(biāo)密集、情況瞬息萬(wàn)變對(duì)感知延遲更敏感。做系統(tǒng)設(shè)計(jì)時(shí)不要一刀切地定一個(gè)“實(shí)時(shí)”指標(biāo)而是按場(chǎng)景拆分預(yù)算分別設(shè)計(jì)感知延遲上限。最后再分享一個(gè)小技巧模型評(píng)估時(shí)一定要把“截?cái)嗄繕?biāo)”單獨(dú)統(tǒng)計(jì)。所謂截?cái)嗄繕?biāo)就是處于圖像邊緣、被畫(huà)面邊界切掉一半的物體。這類目標(biāo)在量產(chǎn)車(chē)上特別常見(jiàn)——環(huán)視攝像頭、前視攝像頭邊緣區(qū)域都會(huì)頻繁出現(xiàn)。很多模型在中心區(qū)域表現(xiàn)很好一遇到邊緣截?cái)嗄繕?biāo)就掉鏈子原因就是訓(xùn)練數(shù)據(jù)里邊緣截?cái)鄻颖静蛔?。我?xí)慣在訓(xùn)練時(shí)專門(mén)對(duì)圖像做隨機(jī)裁剪增強(qiáng)把目標(biāo)強(qiáng)制截?cái)嗟疆?huà)面邊緣讓模型從小就見(jiàn)過(guò)“半個(gè)車(chē)”“半個(gè)行人”這樣實(shí)車(chē)跑起來(lái)邊緣區(qū)域的檢測(cè)穩(wěn)定性會(huì)好很多。這些經(jīng)驗(yàn)看起來(lái)都不夠“高大上”但說(shuō)句實(shí)話自動(dòng)駕駛感知的工程化就是這樣——沒(méi)有那么多神秘的黑科技關(guān)鍵是把基礎(chǔ)功夫做到位把每一個(gè)容易被忽視的細(xì)節(jié)都填上。