上車:產(chǎn)線缺陷檢測、ADAS感知與SLAM實(shí)戰(zhàn))
簡介視覺技術(shù)在汽車行業(yè)的應(yīng)用.ppt是一份面向工業(yè)視覺與智能制造從業(yè)者的基礎(chǔ)培訓(xùn)資料系統(tǒng)講解機(jī)器視覺在汽車制造中的核心原理與落地場景。內(nèi)容圍繞質(zhì)量檢測、機(jī)器人引導(dǎo)、測量、OCR/OCV、存在/缺失判斷及代碼讀取六大關(guān)鍵應(yīng)用展開并結(jié)合沖壓、白車身、油漆、總裝等真實(shí)產(chǎn)線流程演示如何通過視覺系統(tǒng)提升產(chǎn)品質(zhì)量與生產(chǎn)效率。PPT中穿插康耐視In-Sight、VisionPro等實(shí)際案例涵蓋車身面板3D機(jī)器人引導(dǎo)、凸耳螺母自動緊固、玻璃裝配等典型應(yīng)用可幫助讀者理解從圖像采集、特征定位到與PLC/機(jī)器人通信的完整技術(shù)路徑。資源為單文件PPT演示文稿大小約13.27MB適合作為工業(yè)視覺入門培訓(xùn)、汽車行業(yè)自動化項(xiàng)目方案參考或內(nèi)部技術(shù)分享材料。目前已有109人學(xué)習(xí)內(nèi)容結(jié)構(gòu)完整、圖文并茂便于快速掌握機(jī)器視覺在汽車行業(yè)的應(yīng)用方向。1. 視覺技術(shù)上車真正的量不在自動駕駛而在產(chǎn)線上這份標(biāo)題叫“視覺技術(shù)在汽車行業(yè)的應(yīng)用.ppt”擴(kuò)展開來其實(shí)就是一句話把攝像頭和算法變成產(chǎn)線和車上的“眼睛”去替代人眼做判斷、做測量、做定位。視覺技術(shù)在汽車行業(yè)的落地有三個典型場景產(chǎn)線上的缺陷檢測與裝配校驗(yàn)、ADAS 里的目標(biāo)感知、以及近年越來越熱的視覺 SLAM 在泊車和艙內(nèi)場景的部署。三個場景解決的問題完全不同選型邏輯沒有一套通用的答案參數(shù)更是各調(diào)各的。這篇筆記就按這三條線拆開講把方案選型、最小實(shí)現(xiàn)、必調(diào)參數(shù)和典型坑都說清楚。適合正在做產(chǎn)線視覺項(xiàng)目選型、準(zhǔn)備上車做感知方案驗(yàn)證或者想從傳統(tǒng) CV 轉(zhuǎn)向深度學(xué)習(xí)落地的工程師。2. 產(chǎn)線質(zhì)檢視覺技術(shù)最成熟的落地場景用差影法和深度學(xué)習(xí)兩套方案把缺陷找出來2.1 為什么產(chǎn)線質(zhì)檢是視覺技術(shù)最先跑通的地方環(huán)境可控問題定義清晰汽車行業(yè)的產(chǎn)線質(zhì)檢是視覺技術(shù)落地最成熟、ROI 最清晰的方向。原因在于產(chǎn)線環(huán)境相對可控光照可以做成恒定的相機(jī)位置可以固定被測物體的姿態(tài)也可以通過工裝約束住。環(huán)境可控意味著變量少變量少意味著算法不需要處理極端情況模型穩(wěn)定性就能做得很高。相比之下ADAS 感知要面對的是隨時(shí)變化的光線、天氣和道路環(huán)境難度完全不是一個量級。產(chǎn)線視覺檢測的典型任務(wù)包括發(fā)動機(jī)缸體表面缺陷檢測、車身漆面劃痕檢測、輪胎外觀檢測、螺栓是否漏裝、焊點(diǎn)位置是否偏移、標(biāo)簽貼合位置是否準(zhǔn)確。這些任務(wù)的共同特點(diǎn)是“背景固定、目標(biāo)明確”先做圖像配準(zhǔn)再做差影用模板比對找異常最后把異常區(qū)域分類成缺陷或誤報(bào)。早期行業(yè)普遍用這類傳統(tǒng) CV 方案到現(xiàn)在仍有大量產(chǎn)線在用因?yàn)樗怀詳?shù)據(jù)、不吃 GPU一臺工控機(jī)就能跑起來。深度學(xué)習(xí)介入之后解決的核心問題從“能不能檢出”變成了“誤檢能不能壓得住”。傳統(tǒng)差影法的問題是只要光照稍變、灰塵落在傳感器上、或者產(chǎn)品本身有允許范圍內(nèi)的變形就會產(chǎn)生大量偽缺陷。深度學(xué)習(xí)模型能學(xué)到“什么樣的亮度差異是正常的”從而大幅降低誤檢率。但深度學(xué)習(xí)需要標(biāo)注數(shù)據(jù)而汽車零部件的缺陷樣本往往很少——良品幾萬個缺陷只有幾百個。所以實(shí)際產(chǎn)線方案基本都是兩套結(jié)合差影法做初篩深度學(xué)習(xí)做二次分類。2.2 用差影法做最小可驗(yàn)證方案代碼、參數(shù)與驗(yàn)收邏輯先寫一個最簡的差影法缺陷檢測流程用 OpenCV 就能跑。這套代碼在機(jī)油泵殼體、制動盤、輪轂等規(guī)則金屬件的表面缺陷檢測上都能直接套用。import cv2 import numpy as np # 加載灰度圖像產(chǎn)線采集建議用黑白相機(jī)彩色信息在缺陷檢測里是干擾 img cv2.imread(part_sample.jpg, cv2.IMREAD_GRAYSCALE) # 中值濾波去掉傳感器噪聲避免把噪點(diǎn)當(dāng)缺陷 filtered cv2.medianBlur(img, 5) # 差影與離線標(biāo)定好的良品模板做逐像素差分 diff cv2.absdiff(filtered, template) # 閾值分割超過閾值的像素記為候選缺陷 _, mask cv2.threshold(diff, 60, 255, cv2.THRESH_BINARY) # 形態(tài)學(xué)開運(yùn)算去掉孤立噪點(diǎn)保留連通面積較大的缺陷塊 mask cv2.morphologyEx(mask, cv2.MORPH_OPEN, np.ones((5, 5), np.uint8)) # 連通域分析面積和長寬比過濾 contours, _ cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: area cv2.contourArea(cnt) if area 80: # 面積閾值要按實(shí)際缺陷樣本標(biāo)定不能拍腦袋 x, y, w, h cv2.boundingRect(cnt) print(f缺陷候選: 位置({x},{y}), 寬高({w},{h}), 面積{area})這段代碼里有三個參數(shù)直接影響誤檢率。第一個是閾值 60它決定了多大的灰度差會被當(dāng)作缺陷。設(shè)置方法不是取經(jīng)驗(yàn)值而是找至少 20 個良品樣本算灰度差分布取均值加 5 到 8 倍標(biāo)準(zhǔn)差。第二個是形態(tài)學(xué)核大小 5×5它和相機(jī)分辨率有關(guān)像素尺寸越大核就越大一半乘以 3 到 5。第三個是面積閾值 80這個必須對著真實(shí)缺陷的標(biāo)注框來標(biāo)定——選 10 個真實(shí)缺陷樣本算它們的最小連通域面積再除以 1.5 作為閾值才能留出余量。差影法最大的不穩(wěn)定因素不是算法而是模板和實(shí)際采集圖像沒對齊。哪怕偏差兩三個像素邊緣都會產(chǎn)生嚴(yán)重差分。所以真正上產(chǎn)線之前要做兩步一是把產(chǎn)品用治具夾緊確保每次拍照位姿偏差低于相機(jī)單像素對應(yīng)的物理尺寸二是先做配準(zhǔn)用特征點(diǎn)匹配或相位相關(guān)求出偏移量再對齊不要拿原始圖直接做差影。2.3 深度學(xué)習(xí)二次分類缺陷樣本不夠怎么訓(xùn)練以及數(shù)據(jù)閉環(huán)的搭建差影法篩出來的候選區(qū)域里會有不少良品誤報(bào)比如加工紋路的正常變化、表面的油漬、灰塵等。這時(shí)需要深度學(xué)習(xí)來做二次分類把候選區(qū)域分成“真缺陷”和“偽缺陷”甚至細(xì)分缺陷類型比如劃傷、氣孔、毛刺。模型選擇上產(chǎn)線場景推薦直接用輕量分類網(wǎng)絡(luò)或者小型目標(biāo)檢測網(wǎng)絡(luò)比如 ResNet-18 或者 YOLOv8n 加一個分類頭。不要一上來就上大模型產(chǎn)線上對延遲極其敏感一個檢測節(jié)拍只有幾十秒而分類推理要控制在幾十毫秒內(nèi)。數(shù)據(jù)方面缺陷樣本不夠是普遍問題第一套方案通常只有幾百個真實(shí)缺陷樣本。這時(shí)候做三類數(shù)據(jù)增強(qiáng)最有效一是幾何增強(qiáng)旋轉(zhuǎn)、平移、鏡像二是灰度增強(qiáng)亮度抖動、對比度抖動、高斯噪聲三是仿真增強(qiáng)把真實(shí)缺陷裁剪下來通過 Alpha 混合貼到良品圖的不同位置。Alpha 混合在工業(yè)缺陷場景下非常有效因?yàn)槿毕荼举|(zhì)上是局部光度異常合成樣本和真實(shí)樣本之間的域差異比自然場景小得多。訓(xùn)練完成后模型評估要盯兩個指標(biāo)一是“缺陷召回率”要求不低于 99%漏檢一個缺陷流到下游裝配線上損失是返工成本的上百倍二是“良品通過率”也就是把良品判成缺陷的比例這個指標(biāo)直接決定了產(chǎn)線配置多少個復(fù)檢工位。如果良品通過率低于 95%缺陷攔截下來也要人工復(fù)檢視覺系統(tǒng)省人力就成了空話。實(shí)際項(xiàng)目里這兩個指標(biāo)經(jīng)常沖突壓了誤檢召回就掉所以方案上要留一個置信度滑塊讓產(chǎn)線工藝人員根據(jù)當(dāng)周缺陷率動態(tài)調(diào)整。數(shù)據(jù)閉環(huán)是深度學(xué)習(xí)方案能不能持續(xù)用的關(guān)鍵。每一臺過檢相機(jī)都要自動保存觸發(fā)圖像模型判斷為缺陷的要保存原圖和預(yù)測框判斷為良品但差影法報(bào)警的也要保存。每周人工復(fù)檢的結(jié)果回填到數(shù)據(jù)集里做增量訓(xùn)練形成“產(chǎn)線采集-自動標(biāo)注-人工確認(rèn)-增量訓(xùn)練-模型更新”的閉環(huán)。沒有這套閉環(huán)深度學(xué)習(xí)方案上線三個月后準(zhǔn)確率就會開始退化因?yàn)楫a(chǎn)線換料、光源老化都會讓數(shù)據(jù)分布慢慢漂移。3. ADAS 感知從 YOLO 到 BEV 架構(gòu)傳感器標(biāo)定和模型部署是兩道硬門檻3.1 感知架構(gòu)演進(jìn)路線目標(biāo)檢測、多傳感器融合、BEV 與 TransformerADAS 感知是視覺技術(shù)在汽車行業(yè)里另一個核心場景解決的問題是讓車“看懂”周邊環(huán)境前方有沒有車、行人、騎行者車道線在哪可行駛空間有多大障礙物距離多遠(yuǎn)。早期 ADAS 用傳統(tǒng) CV 做車道線檢測和毫米波雷達(dá)做前向碰撞預(yù)警后來引入深度學(xué)習(xí)做目標(biāo)檢測方案從單目攝像頭加 YOLO 系列模型逐步演進(jìn)到多傳感器融合。當(dāng)前量產(chǎn) ADAS 的主流架構(gòu)是 BEV 感知把多個攝像頭和雷達(dá)的特征統(tǒng)一投影到鳥瞰視角下做融合輸出的是 3D 邊界框和占據(jù)柵格。BEV 方案相比前融合方案的優(yōu)勢是空間統(tǒng)一所有傳感器都在同一坐標(biāo)系下輸出不需要為每個傳感器單獨(dú)做目標(biāo)列表關(guān)聯(lián)。主流實(shí)現(xiàn)里攝像頭分支負(fù)責(zé)提供豐富的語義信息比如車道線、交通標(biāo)志、目標(biāo)類別點(diǎn)云分支負(fù)責(zé)提供精準(zhǔn)距離和速度。純視覺方案則只有攝像頭用 Transformer 的 attention 機(jī)制在不同攝像頭視角之間共享信息。對工程師來說真正要關(guān)注的是算力與精度的權(quán)衡。量產(chǎn)車規(guī)級芯片的算力有限BEV 模型上車的常用做法是把視覺 backbone 用輕量網(wǎng)絡(luò)替換掉在相同精度下把模型體積縮小到原版的三分之一。量化是另一道必過的關(guān)訓(xùn)練時(shí)用 FP32部署時(shí)轉(zhuǎn) INT8精度損失控制在 2% 以內(nèi)是合格線。這塊沒有捷徑只能用大量實(shí)車數(shù)據(jù)去驗(yàn)證。3.2 相機(jī)標(biāo)定與傳感器同步BEV 模型準(zhǔn)不準(zhǔn)一半看標(biāo)定一半看數(shù)據(jù)BEV 感知模型輸出精度上限由輸入質(zhì)量決定而輸入質(zhì)量核心是兩塊相機(jī)內(nèi)外參是否準(zhǔn)確以及多個傳感器的時(shí)間戳是否對齊。不管是換裝后視鏡、碰撞維修還是產(chǎn)線下線標(biāo)定都是 ADAS 系統(tǒng)上線前必做的步驟。內(nèi)參標(biāo)定的標(biāo)準(zhǔn)做法是用棋盤格或者 AprilGrid 標(biāo)定板拍攝 20 到 30 張不同位姿的圖像然后用 Kalibr 工具解算焦距、主點(diǎn)和畸變系數(shù)。外參標(biāo)定則是把相機(jī)坐標(biāo)系和車體坐標(biāo)系對齊量產(chǎn)工藝?yán)锍S脴?biāo)定間里的靶標(biāo)完成。外參標(biāo)定的關(guān)鍵是靶標(biāo)要平整、光源要均勻反光會直接導(dǎo)致角點(diǎn)檢測失敗。后端工程上更隱蔽的問題是時(shí)間同步。常見做法是用 PTP 或者自定義硬件同步信號保證各傳感器時(shí)間戳一致然后在對齊時(shí)間窗口內(nèi)做插值。如果時(shí)間戳偏差達(dá)到 30 毫秒以上高速場景下目標(biāo)距離誤差就可能超過 80 厘米這對 AEB 功能來說是不可接受的。所以上車前要寫一個驗(yàn)證腳本統(tǒng)計(jì)每個傳感器消息的時(shí)間戳間隔畫分布圖凡是出現(xiàn)周期性峰值就要查同步鏈路。這是我在項(xiàng)目里踩過的坑一次高架上對前車距離忽大忽小查了兩天才發(fā)現(xiàn)是攝像頭輸出幀率因?yàn)闇囟缺Wo(hù)從 30fps 掉到了 27fps。3.3 模型上車部署ONNX 轉(zhuǎn) TensorRT 的量化與性能驗(yàn)證模型訓(xùn)練完成后上車部署的典型流程是 PyTorch 訓(xùn)練、導(dǎo)出 ONNX、轉(zhuǎn) TensorRT、做 INT8 量化、最后在嵌入式 GPU 或 NPU 上做延遲測試。這里給一段典型的轉(zhuǎn)換命令# 將訓(xùn)練好的 BEV 感知模型從 ONNX 轉(zhuǎn)為 TensorRT FP16 引擎 trtexec --onnxbev_model.onnx \ --saveEnginebev_model.engine \ --fp16 \ --workspace4096 \ --minShapesinput:1x6x256x704 \ --optShapesinput:1x6x256x704 \ --maxShapesinput:1x6x256x704 \ --calibcalibration.cache參數(shù)含義分別是--fp16表示使用半精度推理--workspace指定轉(zhuǎn)換時(shí)的最大顯存上限--minShapes、--optShapes、--maxShapes定義了動態(tài)輸入尺寸的動態(tài)范圍。--calib是 INT8 量化的校準(zhǔn)緩存文件用實(shí)車采集的圖像數(shù)據(jù)離線生成量化后的模型精度損失需要單獨(dú)驗(yàn)證。部署完成后要做兩件事延遲測試和長時(shí)間穩(wěn)定性測試。延遲測試要覆蓋最壞情況——多個目標(biāo)的復(fù)雜場景下模型推理延遲波動不能超過均值的 20%。長時(shí)間穩(wěn)定性測試至少跑 72 小時(shí)重點(diǎn)觀察顯存是否持續(xù)增長如果顯存曲線一路向上基本可以斷定有張量泄漏這個在 PyTorch 轉(zhuǎn) ONNX 時(shí)最容易出現(xiàn)檢查點(diǎn)是在導(dǎo)出后設(shè)置torch.cuda.empty_cache()和在推理循環(huán)里避免反復(fù)創(chuàng)建新 tensor。4. 視覺 SLAM 在汽車場景落地從自動泊車到產(chǎn)線 AGV定位精度和回環(huán)檢測是核心4.1 視覺 SLAM 上車的第一站自動泊車與記憶泊車2025 年前后機(jī)器人視覺 SLAM 已經(jīng)從實(shí)驗(yàn)室階段進(jìn)入量產(chǎn)方案汽車行業(yè)落地最集中的場景是自動泊車和記憶泊車。自動泊車的特點(diǎn)是低速、場景結(jié)構(gòu)化、環(huán)境相對封閉視覺 SLAM 可以用環(huán)視魚眼相機(jī)估計(jì)車輛位移融合輪速計(jì)輸出停車位識別和泊車路徑。記憶泊車則是在停車場固定路線上的重復(fù)定位視覺 SLAM 提供的就是一條可復(fù)用的先驗(yàn)地圖。視覺 SLAM 在泊車場景里的核心痛點(diǎn)不是算法精度而是魯棒性。停車場的光線變化非常劇烈白天太陽直射導(dǎo)致魚眼相機(jī)過曝、夜晚燈光昏暗導(dǎo)致特征點(diǎn)不足、地下車庫的立柱反光導(dǎo)致誤匹配。實(shí)際項(xiàng)目里解決過曝問題的方法是開啟相機(jī) HDR 模式但 HDR 會增加曝光時(shí)間造成運(yùn)動模糊。所以要在采集頻率和曝光時(shí)間上做平衡低速泊車時(shí)幀率降到 15fps曝光時(shí)間放寬到 30 毫秒以內(nèi)角點(diǎn)提取的質(zhì)量比數(shù)量更重要。4.2 產(chǎn)線 AGV 與機(jī)械臂抓取視覺 SLAM 在制造環(huán)節(jié)的復(fù)用視覺 SLAM 技術(shù)在汽車行業(yè)的另一個落地點(diǎn)是產(chǎn)線物流和上下料環(huán)節(jié)AGV 搬運(yùn)料架時(shí)需要知道自己在地圖里的位置機(jī)械臂抓取發(fā)動機(jī)缸體時(shí)需要識別工件位姿。這兩類場景和泊車有相似之處也有本質(zhì)區(qū)別。相似之處是都需要實(shí)時(shí)定位區(qū)別在于 AGV 和機(jī)械臂對重復(fù)定位精度的要求遠(yuǎn)高于泊車。AGV 的視覺 SLAM 方案通常用二維碼地標(biāo)或者反射板配合里程計(jì)做修正純視覺 SLAM 跑長距離之后會有累積漂移。解決思路是做“視覺 SLAM 地標(biāo)修正”的混合方案視覺 SLAM 負(fù)責(zé)連續(xù)定位每隔 3 到 5 米識別一個地標(biāo)做絕對位置校正。地標(biāo)可以是柱形反光條或者貼在地面的高對比二維碼。每次經(jīng)過地標(biāo)時(shí)把當(dāng)前估計(jì)位置與地標(biāo)已知坐標(biāo)做差用這個差值更新地圖和狀態(tài)估計(jì)里的漂移項(xiàng)。機(jī)械臂抓取則不太依賴 SLAM更多用“眼在手上”的相機(jī)做目標(biāo)檢測和位姿估計(jì)。這里要說的是不要把 SLAM 用在不該用的地方——固定工位的抓取不需要建圖你需要的是精準(zhǔn)的 3D 位姿估計(jì)而不是里程計(jì)。4.3 視覺 SLAM 的工程落地內(nèi)參標(biāo)定、特征提取參數(shù)和回環(huán)檢測的調(diào)參思路視覺 SLAM 系統(tǒng)真正的坑在工程參數(shù)。我用 VINS-Fusion 類方案做過泊車定位第一步就卡在相機(jī)內(nèi)參標(biāo)定上。魚眼相機(jī)的畸變模型和普通針孔相機(jī)不同用錯模型整個系統(tǒng)在圖像邊緣的誤差會明顯增大。標(biāo)定命令參考如下# 用 Kalibr 標(biāo)定魚眼相機(jī)內(nèi)參 kalibr_calibrate_cameras \ --target aprilgrid_6x6.yaml \ --models pinhole-equi \ --bag parking_lot.bag \ --topics /cam0/image_raw \ --show-extraction--models pinhole-equi指定了近似的魚眼模型標(biāo)定板要打印在鋁基啞光材料上不能用普通噴墨紙——表面反光會導(dǎo)致角點(diǎn)提取出現(xiàn) 0.2 像素級別的位置偏差對重投影誤差的指標(biāo)來說有顯著影響。特征提取的參數(shù)對定位精度的影響也很大。視覺 SLAM 里常見的幾個參數(shù)是特征點(diǎn)數(shù)量、金字塔層數(shù)、描述子尺度不變性權(quán)重。特征點(diǎn)數(shù)量不是越多越好在嵌入式平臺上特征點(diǎn)多了每幀處理耗時(shí)會顯著上升而且過多的遠(yuǎn)距離特征點(diǎn)會在車輛轉(zhuǎn)向時(shí)頻繁丟失反而引入錯誤約束。一般車載場景取每幀 150 到 300 個特征點(diǎn)是一個合適的值同時(shí)要保證特征點(diǎn)在圖像中均勻分布如果某一幀特征全部集中在一側(cè)定位精度會明顯劣化?;丨h(huán)檢測是另外一個容易翻車的地方。停車場整天有車進(jìn)進(jìn)出出場景不斷變化回環(huán)檢測很容易被“看起來像但實(shí)際不同”的位置誤導(dǎo)。解決的辦法是回環(huán)檢測只看結(jié)構(gòu)信息不看動態(tài)物體——停車位線、立柱、消防管道這些靜態(tài)特征才是判斷回環(huán)的錨點(diǎn)。工程上簡單有效的做法是把圖像切分為 4×4 的塊只提取每塊里響應(yīng)最強(qiáng)的特征然后對特征描述子做 PCA 降維后再做相似度計(jì)算動態(tài)物體上的特征因?yàn)轫憫?yīng)值不穩(wěn)定會被過濾掉大部分。5. 視覺系統(tǒng)上車的五個常見坑從成像到部署的排查清單5.1 坑一過曝丟細(xì)節(jié)自動曝光在隧道口把車道線抹掉了現(xiàn)象是車輛白天進(jìn)出隧道時(shí)視覺感知突然丟失車道線或者前車目標(biāo)持續(xù)一到三秒足以觸發(fā)一次不必要的減速或者誤判。原因是相機(jī)自動曝光跟不上光照突變畫面過曝導(dǎo)致高光區(qū)域完全變成白色車道線對比度接近零算法自然什么都看不到。解決方案是把相機(jī)曝光模式改為 AE 加亮度上限約束同時(shí)對感知結(jié)果加時(shí)間戳和置信度緩存。當(dāng)曝光亮度超過預(yù)設(shè)上限時(shí)強(qiáng)制切換為短曝光模式并把前一幀的感知結(jié)果保持到曝光恢復(fù)穩(wěn)定。感知模塊里要加一個狀態(tài)機(jī)“曝光恢復(fù)中”的幀不參與決策避免誤觸發(fā)。5.2 坑二光源老化產(chǎn)線換燈后誤檢率飆升現(xiàn)象是同一套差影法代碼同一型號產(chǎn)品某天開始誤檢率從 2% 飆升到 15%復(fù)檢工位排起長隊(duì)。原因是產(chǎn)線某個工位的鹵素?zé)衾匣庾V和光強(qiáng)發(fā)生變化模板還是舊光照下標(biāo)定的整幅圖像灰度分布都變了。解決方法是給視覺機(jī)柜和光源加監(jiān)控采集圖像的同時(shí)記錄光源控制器輸出的電流值定期用照度計(jì)在相機(jī)視野中心測光亮度偏離初始值超過 15% 時(shí)觸發(fā)預(yù)警。差影法模板標(biāo)定前先做一次光照歸一化用視野中固定背景區(qū)域的平均灰度做基準(zhǔn)乘以一個增益系數(shù)把全場灰度扳回模板標(biāo)定時(shí)的水平。5.3 坑三標(biāo)定板反光導(dǎo)致外參標(biāo)定偏了感知地圖對不齊現(xiàn)象是車輛下線標(biāo)定后BEV 視角下多個相機(jī)的拼接邊界出現(xiàn)明顯的錯位車道線在拼接縫處斷掉。原因是標(biāo)定間用的標(biāo)定板表面反光或者標(biāo)定燈光有強(qiáng)反射導(dǎo)致角點(diǎn)檢測位置偏移。解決方法是標(biāo)定板換用啞光材質(zhì)標(biāo)定光源加偏振片并且標(biāo)定圖像采集時(shí)加一個質(zhì)量檢查——每個視角的有效角點(diǎn)數(shù)低于 30 個就重新采集。生產(chǎn)節(jié)拍允許的話連續(xù)標(biāo)定三次取結(jié)果的中位數(shù)能有效避免單次標(biāo)定異常數(shù)據(jù)污染外參。5.4 坑四INT8 量化后小目標(biāo)漏檢行人距離被高估現(xiàn)象是模型從 FP16 轉(zhuǎn) INT8 之后夜間場景下行人檢測置信度從 0.85 掉到 0.3目標(biāo)距離被算法高估。原因是 INT8 量化對低對比度目標(biāo)的特征響應(yīng)損害更大夜間行人對比度低加上量化損失直接掉到置信度門檻以下。解決方法是量化校準(zhǔn)數(shù)據(jù)集里必須包含大量夜間和多云天氣的樣本校準(zhǔn)集分布要和實(shí)際運(yùn)營場景匹配不能只用白天數(shù)據(jù)。如果量化后精度損失超過規(guī)定值采用混合量化方案保留第一層卷積和最后的檢測頭為 FP16中間層做 INT8精度損失通常能收回一半以上代價(jià)是延遲增加百分之十到十五這部分在推理速度預(yù)算里提前留好余量。5.5 坑五回傳數(shù)據(jù)壓縮過度模型訓(xùn)練越訓(xùn)越瞎現(xiàn)象是車端采集圖像回傳到云端做訓(xùn)練模型迭代后準(zhǔn)確率不但沒漲反而在幾個真實(shí)事故場景里表現(xiàn)退化。原因是車端回傳圖像為了節(jié)省流量做了 JPEG 壓縮缺陷細(xì)節(jié)和低對比度目標(biāo)在壓縮過程中丟失訓(xùn)練數(shù)據(jù)變成了失真數(shù)據(jù)。解決方法是建立數(shù)據(jù)回傳的編碼規(guī)范用于 SLAM 和感知訓(xùn)練的關(guān)鍵圖片關(guān)閉壓縮或采用 ROI 內(nèi)無損、背景有損的壓縮策略。數(shù)據(jù)平臺要記錄每一張圖的壓縮失真指標(biāo)比如與原始圖的 PSNR低于 35 分貝的樣本不能進(jìn)入訓(xùn)練集。6. 驗(yàn)證方法論離線回放、影子模式和切片分析缺一個都不算驗(yàn)證完視覺系統(tǒng)上車前驗(yàn)證不能只依賴封閉場地測試更完整的方法是離線回放、影子模式和切片分析三件套。離線回放就是把路采的原始相機(jī)流和傳感器時(shí)間戳喂給感知算法重跑一遍輸出感知結(jié)果和事先標(biāo)注的真值框做對比。這一步的意義是能精確復(fù)現(xiàn)問題而且每次代碼改動后都能用同一份數(shù)據(jù)做回歸測試。做法是寫一個簡單的數(shù)據(jù)回放工具把 ROS bag 里的圖像和時(shí)間戳按原速度讀取喂給感知節(jié)點(diǎn)。影子模式是指新算法與量產(chǎn)算法并行跑但新算法輸出不參與車輛控制只用于收集差異。產(chǎn)線上在用的舊版模型和新版模型同時(shí)推理每次輸出不一致的情況被記錄下來人工確認(rèn)到底誰對。這樣可以在不影響車輛安全的前提下連續(xù)試運(yùn)行兩周覆蓋白天、夜晚、雨天、隧道等真實(shí)工況比開環(huán)測試完整得多。切片分析是定位問題的最后一公里。當(dāng)影子模式發(fā)現(xiàn)新舊算法輸出不一致時(shí)不能只看整體指標(biāo)要把不一致的幀做時(shí)間切片標(biāo)注出當(dāng)時(shí)的天氣、光照、車速、目標(biāo)距離。一個實(shí)用的做法是把每一幀的感知輸出和關(guān)鍵輸入圖保存為一個結(jié)構(gòu)化記錄包含目標(biāo)數(shù)、平均置信度、曝光時(shí)長、車輛速度、轉(zhuǎn)向角。出了問題后直接拉出來看這些維度的分布通常很快就能定位到是哪個場景觸發(fā)了劣化。我自己的習(xí)慣是每臺測試車上都放一套自動記錄程序每 10 秒寫一行摘要數(shù)據(jù)。某個版本在雨天晚上出現(xiàn)車道線抖動回看記錄發(fā)現(xiàn)抖動發(fā)生時(shí)相機(jī)曝光時(shí)間恰好卡在 35 毫秒的臨界點(diǎn)上這才鎖定了曝光策略的問題。記錄摘要數(shù)據(jù)的成本極低排查時(shí)價(jià)值極高算是視覺系統(tǒng)上車投入產(chǎn)出比最高的一件小事。希望這篇筆記能幫你在做視覺技術(shù)落地方案時(shí)少走一圈彎路也希望你從第一個模型上車開始就建好數(shù)據(jù)閉環(huán)和匯總記錄的習(xí)慣。本文還有配套的精品資源點(diǎn)擊獲取