自己訓練的Hog Svm 行人檢測

2021-06-22 05:20:04 字數 1890 閱讀 1919

[cpp] view plaincopyprint

#include "cv.h"

#include "highgui.h"

#include "stdafx.h"

#include #include #include #include #include using namespace cv;

using namespace std;

int main(int argc, char** argv)

else

} }

svm_data.close();//關閉檔案

cvmat *data_mat, *res_mat;

int nimgnum = nline / 2; //讀入樣本數量 ,因為是每隔一行才是路徑,所以要除以2

樣本矩陣,nimgnum:橫座標是樣本數量, width * height:樣本特徵向量,即影象大小

data_mat = cvcreatemat( nimgnum, 1764, cv_32fc1 ); //這裡第二個引數,即矩陣的列是由下面的descriptors的大小決定的,可以由descriptors.size()得到,且對於不同大小的輸入訓練,這個值是不同的

cvsetzero( data_mat );

//型別矩陣,儲存每個樣本的型別標誌

res_mat = cvcreatemat( nimgnum, 1, cv_32fc1 );

cvsetzero( res_mat );

iplimage* src;

iplimage* trainimg=cvcreateimage(cvsize(64,64),8,3);//需要分析的,這裡預設設定是64*64大小,所以上面定義了1764,如果要更改大小,可以先用debug檢視一下descriptors是多少,然後設定好再執行

//開始搞hog特徵

for( string::size_type i = 0; i != img_path.size(); i++ )

//coutifstream img_tst( "e:/svm_test.txt" );//同輸入訓練樣本,這裡也是一樣的,只不過不需要標註屬於哪一類了

while( img_tst )

} img_tst.close();

cvmat *test_hog = cvcreatemat( 1, 1764, cv_32fc1 );//注意這裡的1764,同上面一樣

char line[512];

ofstream predict_txt( "svm_predict.txt" );//把**結果儲存在這個文字中

for( string::size_type j = 0; j != img_tst_path.size(); j++ )//依次遍歷所有的待檢測

int ret = svm.predict(svmtrainmat);//獲取最終檢測結果,這個predict的用法見 opencv的文件

std::sprintf( line, "%s %d\r\n", img_tst_path[j].c_str(), ret );

predict_txt<}

predict_txt.close();

//cvreleaseimage( &src);

//cvreleaseimage( &sampleimg );

//cvreleaseimage( &tst );

//cvreleaseimage( &tst_tmp );

cvreleasemat( &data_mat );

cvreleasemat( &res_mat );

return 0;

}

python通過HOG SVM實現行人檢測思路

1 選取視窗寬高為 64 128 block大小為 16 16畫素,block步長為8畫素,cell為8 8畫素,每個cell分9個bin,其他引數都預設 這樣的話,乙個block有4個cell,乙個cell有9維,那乙個block有 4 9 36維特徵描述子,寬為64,x方向能有 64 8 1 7...

opencv SVM 訓練行人檢測器注意事項

cpp view plain copy color rgb 255,0,0 font size 18px font weight bold font family arial,helvetica,sans serif background color rgb 255,255,255 事項1 支援向量...

訓練自己的物體檢測模型

資料集 一般有兩個 使用labelimg自己標註,或者使用網上開源的資料集。本文使用的是開源的voc 2007,總共有20個分類。資料集包括5001張,以及對應的.xml檔案,分別存放在image和annotation資料夾中。本文通過.csv檔案生成.record檔案,如果習慣直接使用.xml檔案...