1. 視覺測量整體方案
本視覺測量系統(tǒng)采用單目視覺技術(shù)實現(xiàn)目標物距離和幾何尺寸的雙重測量。系統(tǒng)首先通過深度學(xué)習模型(PaddleDetection)快速定位目標物(帶黑框的A4紙),利用目標物在圖像中的像素高度與物理距離的二次函數(shù)關(guān)系,解算目標到基準線的距離D。該函數(shù)模型通過實驗標定獲得,測量范圍100-200cm,精度達±2cm。
對于內(nèi)部幾何尺寸測量,系統(tǒng)創(chuàng)新性地采用中心區(qū)域聚焦策略:在檢測到的目標區(qū)域內(nèi),自動裁剪中心80%區(qū)域排除邊框干擾,通過自適應(yīng)閾值處理和形態(tài)學(xué)濾波增強幾何特征。隨后提取四邊形輪廓,基于圖像中心優(yōu)選算法鎖定目標幾何圖形,最后利用A4紙標準尺寸(210×297mm)與像素尺寸的比例關(guān)系,精確換算內(nèi)部幾何圖形的實際邊長x,測量誤差≤0.6cm。
系統(tǒng)嚴格滿足競賽實時性要求,從圖像采集到結(jié)果顯示完整流程耗時<1s。關(guān)鍵創(chuàng)新點包括:1)動態(tài)閾值窗口技術(shù),根據(jù)目標尺寸自動調(diào)整處理參數(shù);2)幾何特征三級過濾機制(頂點數(shù)/寬高比/中心距離);3)松耦合模塊化設(shè)計,為后續(xù)擴展三角形/圓形測量預(yù)留接口。整套方案在200-1000lux照度下穩(wěn)定工作,已通過基本要求三項測試驗證。
2. 核心算法實現(xiàn)
2.1 目標檢測模塊
模型選擇:采用PaddleDetection深度學(xué)習框架。
檢測對象:A4紙目標物(帶2cm黑色邊框)。
關(guān)鍵參數(shù):model.SetThreshold(0.7, 0.3);
輸出:檢測到的A4紙位置。
2.2 距離測量算法
距離測量基于目標物高度像素值與實際距離的二次函數(shù)關(guān)系,具體的實現(xiàn)代碼如下:
doublereverseToDistance(doubley){ // 構(gòu)造方程:a*x^2 + b*x + (c - y) = 0 doubleA=a; doubleB=b; doubleC=c - y; doublediscriminant=B * B -4* A * C; // 判別式小于0,無實數(shù)解 if(discriminant 0) {? ? ? ? return?-1.0;?// 表示無效解? ? }? ? double?sqrt_d?=?std::sqrt(discriminant);? ? double?x1?=?(-B + sqrt_d) / (2?* A);? ? double?x2?=?(-B - sqrt_d) / (2?* A);? ? // 選擇在合理范圍 [1.0, 2.0] 內(nèi)的解? ? bool?x1_valid?=?(x1 >=1.0&& x1 <=?2.0);? ? bool?x2_valid?=?(x2 >=1.0&& x2 <=?2.0);? ? if?(x1_valid && x2_valid) {? ? ? ? // 如果兩個解都有效,選擇更接近趨勢的(通常 x2 更小,x1 更大,看哪個更合理)? ? ? ? // 實際上由于 a > 0, b < 0,通常 x2 是更合理的(較小的根)? ? ? ? // 但根據(jù)拋物線形狀,我們?nèi)「拷鼣?shù)據(jù)趨勢的? ? ? ? // 可以打印調(diào)試,但通常取接近 1.0~2.0 之間的? ? ? ? return?x2;?// 通常 x2 是物理意義正確的(遞減趨勢)? ? }?else?if?(x1_valid) {? ? ? ? return?x1;? ? }?else?if?(x2_valid) {? ? ? ? return?x2;? ? }?else?{? ? ? ? return?-1.0;?// 無有效解? ? }}
物理原理:目標物表觀尺寸與距離成反比。
標定方式:通過實驗數(shù)據(jù)擬合參數(shù)
3. 幾何特征提取流程
幾何特征提取是視覺測量系統(tǒng)的核心環(huán)節(jié),采用多級處理流程確保測量精度。系統(tǒng)首先在目標檢測獲取的A4紙區(qū)域內(nèi),動態(tài)裁剪中心80%區(qū)域以排除2cm黑色邊框干擾,隨后進行自適應(yīng)二值化處理:基于目標尺寸自動計算閾值窗口(取目標短邊的1/4且保證為奇數(shù)),采用高斯加權(quán)模式增強內(nèi)部幾何圖形與背景的對比度。該自適應(yīng)策略能有效應(yīng)對100-200cm距離范圍內(nèi)目標表觀尺寸的變化。
輪廓處理階段采用三級過濾機制:先通過形態(tài)學(xué)閉運算消除噪點,再提取所有潛在輪廓;然后執(zhí)行嚴格幾何驗證:1) 多邊形逼近頂點數(shù)必須為4(四邊形) 2) 寬高比限制在0.5-2.0范圍 3) 輪廓面積大于40像素。最終通過中心優(yōu)選算法:計算各輪廓點到圖像中心的歐氏距離,選取距離平方和最小的輪廓作為目標幾何圖形,該策略可有效減少透視畸變影響,確保在物面平行于成像平面時獲得最優(yōu)測量結(jié)果。
部分核心代碼如下:
// 提取 ROIcv::Matroi_frame =input_mat(safe_box);if(roi_frame.empty())continue;// 轉(zhuǎn)灰度并二值化提取黑色區(qū)域cv::Matroi_gray, roi_binary;cv::cvtColor(roi_frame, roi_gray, cv::COLOR_BGR2GRAY);// 關(guān)鍵修改1:使用自適應(yīng)閾值處理中心區(qū)域intblock_size = std::min(safe_box.width, safe_box.height) /4;if(block_size %2==0) block_size++; // 確保為奇數(shù)cv::adaptiveThreshold(roi_gray, roi_binary,255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, cv::THRESH_BINARY_INV, block_size,5);// 關(guān)鍵修改2:創(chuàng)建中心區(qū)域ROI(忽略邊緣黑邊)intmargin = std::min(safe_box.width, safe_box.height) /5; // 忽略20%的邊緣區(qū)域cv::Rectcenter_roi(margin, margin, roi_binary.cols -2* margin, roi_binary.rows -2* margin);if(center_roi.width <=?0?|| center_roi.height <=?0)?continue;cv::Mat?roi_center =?roi_binary(center_roi);// 形態(tài)學(xué)操作去噪cv::Mat?kernel =? ? cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5,?5));cv::morphologyEx(roi_center, roi_center, cv::MORPH_CLOSE, kernel);// 查找輪廓(僅在中心區(qū)域)std::vectorvectorPoint>> contours;cv::findContours(roi_center, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
4. 尺寸計算原理
目標物的尺寸計算原理是基于相似理論的比例來進行換算的,核心代碼如下:
// A4紙實際尺寸(毫米)constdoubleA4_WIDTH_MM =210.0;constdoubleA4_HEIGHT_MM =297.0;cv::Rect a4_rect = results[0].box;doublea4_width_px = a4_rect.width;doublea4_height_px = a4_rect.height;// 計算實際尺寸比例doublescale_x = A4_WIDTH_MM / a4_width_px;doublescale_y = A4_HEIGHT_MM / a4_height_px;// 計算內(nèi)部矩形的實際尺寸(單位:毫米)doubleinner_width_mm = inner_width_px * scale_x;doubleinner_height_mm = inner_height_px * scale_x;doubleinner_length_mm = ((inner_width_mm + inner_height_mm) /2) +5;inner_length_cm = inner_length_mm /10.0;// 轉(zhuǎn)換為厘米
5. 性能評估
處理速度:平均推理時間:<100ms,端到端延遲:<1s
測量精度:
| 參數(shù) | 要求精度 | 實測精度 |
|---|---|---|
| 距離D | <= 5cm | <= 2cm |
| 邊長x | <= 1cm | <= 0.6cm |
-
測量
+關(guān)注
關(guān)注
10文章
5537瀏覽量
116279 -
視覺識別
+關(guān)注
關(guān)注
3文章
111瀏覽量
17323
發(fā)布評論請先 登錄
基于SoC的雙目視覺ADAS解決方案
基于SoC的雙目視覺ADAS解決方案
單目視覺SLAM仿真系統(tǒng)的設(shè)計與實現(xiàn)
基于單目視覺的智能車輛視覺導(dǎo)航系統(tǒng)設(shè)計
一種基于圖像處理的雙目視覺校準方法
基于SIFT視覺詞匯的目標識別算法
在自動駕駛過程中 單目視覺識別的作用不可忽視
單目視覺識別的無限市場潛力
基于激光雷達信息與單目視覺信息的車輛識別方法
雙目立體視覺是什么?單目視覺與雙目立體視覺的區(qū)別?

基于凌智視覺識別模塊的基于單目視覺的目標物測量裝置
評論