OpenCV Adaboost訓練時資料擴增

2022-08-22 08:15:12 字數 1575 閱讀 2283

更準確的模型需要更多的資料,對於傳統非神經網路機器學習方法,不同的特徵需要有各自相符合的資料擴增方法。

1.   在使用opencv_traincascade.exe 過程中,影象讀取在

classifier.train ->  updatetrainingset( requiredleaffarate, templeaffarate )->fillpassedsamples( 0, numpos, true, 0, posconsumed )->imgreader.getpos( img ) :  imgreader.getneg( img )過程中。

2. 在進行資料增強的過程中,從createsample開始,保證vecfile和樣本數目長度一致。

修改**段依次為:

//int cvcreatetrainingsamplesfrominforf(const char* infoname, const char* vecfilename,

int cvcreatesamplesplus(const char* infoname, const char* vecfilename, int num,

int showsamples,

int winwidth, int winheight)

info = fopen(infoname, "r");

if (info == null)

vec = fopen(vecfilename, "wb");

if (vec == null)

//sample = cvcreateimage(cvsize(winwidth, winheight), ipl_depth_8u, 1);

icvwritevecheader(vec, num, winwidth, winheight);

if (showsamples)

strcpy(fullname, infoname);

filename = strrchr(fullname, '\\');

if (filename == null)

if (filename == null)

else

for (line = 1, error = 0, total = 0; total < num; line++)

}for (i = 0; (i < count) && (total < num); i++, total++)

//}//icvwritevecsample(vec, sample);}}

}//if (src)

//if (error)

}//if (sample)

//fclose(vec);

fclose(info);

return total;

}

修改函式:void icvwritevecsample

//對每個影象寫入正樣本vec

void icvwritevecsampleplus(file* file, cv::mat &sample)

}}

使用c++語言替換掉使用c語言的版本。

同時對生成新的vec增加int extnum = 7;倍。

實訓日誌 專案實訓介面文件

具體要求 若正常返回,code為200,msg設為success即可 若出現錯誤,code為錯誤 msg欄位說明錯誤原因。具體對應介面 功能及細節如下 功能介面 引數輸出 說明登入 account login username 使用者名稱 password 密碼 user id用於之後與使用者相關的...

實訓day08實訓日誌

日期 2019年6月 17日 第 8 天 共 10天 實習地點 科技樓423 教學大綱中規定的實習教學內容 實習 目的及要求 4 掌握mvvm設計模式框架開發 5 通過本課程的學習,培養學生觀察 分析 解決問題的能力 6 培養學生嚴肅認真 實事求是的良好作風。任務完成 情況 主要收穫與 體會模仿了美...

python實訓成果 python實訓第一天

實訓第一天總結 常量 常量也是變數,在python中大家都規定只要是大寫的變數都稱之為常量 使用者與程式互動 數字型別 整型int 浮點型 float 字串型別 列表型別 字典型別 在 內,都逗號隔開,可存放多個值,每個值以key value的形式儲存 存 dict1 取 print dict1 n...