基於特徵點的物體檢測

2021-08-28 10:25:40 字數 2895 閱讀 2093

本教程是一種用於基於在參考影象和目標影象之間找到點對應關係來檢測特定物件的演算法。儘管尺度變化或平面內旋轉,它仍可以檢測物體。它對於少量的平面外旋轉和遮擋也很穩健。

這種物件檢測方法最適用於呈現非重複紋理圖案的物件,這會產生獨特的特徵匹配。對於均勻著色的物件或包含重複圖案的物件,此技術不太適用。請注意,此演算法用於檢測特定物件,例如參考影象中的大象,而不是任何大象。

使用的

完整的matlab**

%% 清楚工作空間

clc;

clear all;

%% 讀取參考

%% 讀取要處理的

%% 提取特徵點

boxpoints = detectsurffeatures(boximage);

scenepoints = detectsurffeatures(sceneimage);

%% visualize the strongest feature points found in the reference image.

figure;

imshow(boximage);

title('100 strongest feature points from box image');

hold on;

plot(selectstrongest(boxpoints, 100));

%% visualize the strongest feature points found in the target image.

figure;

imshow(sceneimage);

title('300 strongest feature points from scene image');

hold on;

plot(selectstrongest(scenepoints, 300));

%% 提取特徵描述

[boxfeatures, boxpoints] = extractfeatures(boximage, boxpoints);

[scenefeatures, scenepoints] = extractfeatures(sceneimage, scenepoints);

%% 找到匹配點

boxpairs = matchfeatures(boxfeatures, scenefeatures);

%% 顯示匹配效果

matchedboxpoints = boxpoints(boxpairs(:, 1), :);

matchedscenepoints = scenepoints(boxpairs(:, 2), :);

figure;

showmatchedfeatures(boximage, sceneimage, matchedboxpoints, ...

matchedscenepoints, 'montage');

title('putatively matched points (including outliers)');

%% 通過匹配找到特定的物體

[tform, inlierboxpoints, inlierscenepoints] = ...

estimategeometrictransform(matchedboxpoints, matchedscenepoints, 'affine');

%% 顯示匹配效果

figure;

showmatchedfeatures(boximage, sceneimage, inlierboxpoints, ...

inlierscenepoints, 'montage');

title('matched points (inliers only)');

boxpolygon = [1, 1;... % top-left

size(boximage, 2), 1;... % top-right

size(boximage, 2), size(boximage, 1);... % bottom-right

1, size(boximage, 1);... % bottom-left

1, 1]; % top-left again to close the polygon

newboxpolygon = transformpointsforward(tform, boxpolygon);

%% 顯示被檢測到的物體

figure;

imshow(sceneimage);

hold on;

line(newboxpolygon(:, 1), newboxpolygon(:, 2), 'color', 'y');

title('detected box');

OpenCV 基於顏色的物體檢測系統

這次區別於證件照,我試著編寫了一下在複雜背景下分離純色物體的系統,因為只是簡單的程式設計,所以結果有待優化,先分析一下實驗環境 這次的背景雜亂,雖然主體是粉色主導,但是因為光照不統一,色域跨度較大,倒影中也有粉色痕跡,杯壁上有花紋,這種情況下邊緣檢測誤差很大。為了讓計算機更好的識別主體顏色,要先將r...

平面物體檢測

這個教程的目標是學習如何使用 features2d 和 calib3d 模組來檢測場景中的已知平面物體。測試資料 資料影象檔案,比如 box.png 或者 box in scene.png 等。建立新的控制台 console 專案。讀入兩個輸入影象。mat img1 imread argv 1 cv...

DPM物體檢測相關

deformable parts model dpm 簡介 dpm deformable part model 模型結構初解 關於dpmv5 deformable part model 演算法中model結構的解釋 把訓練出來的模型檔案.mat格式轉為.txt格式的 hog 用於人體檢測的梯度方向直...