




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
、簡介目標(biāo)檢測方法最初由PaulViola[ViolaOl]提出,并由RainerLienhart[LienhartO2]對這一方法進行了改善。該方法的基本步驟為:首先,利用樣本(大約幾百幅樣本圖片)的harr特征進行分類器訓(xùn)練,得到一個級聯(lián)的boosted分類器。分類器中的"級聯(lián)"是指最終的分類器是由幾個簡單分類器級聯(lián)組成。在圖像檢測中,被檢窗口依次通過每一級分類器,這樣在前面幾層的檢測中大部分的候選區(qū)域就被排除了,全部通過每一級分類器檢測的區(qū)域即為目標(biāo)區(qū)域。分類器訓(xùn)練完以后,就可以應(yīng)用于輸入圖像中的感興趣區(qū)域的檢測。檢測到目標(biāo)區(qū)域分類器輸出為1,否則輸出為0。為了檢測整副圖像,可以在圖像中移動搜索窗口,檢測每一個位置來確定可能的目標(biāo)。為了搜索不同大小的目標(biāo)物體,分類器被設(shè)計為可以進行尺寸改變,這樣比改變待檢圖像的尺寸大小更為有效。所以,為了在圖像中檢測未知大小的目標(biāo)物體,掃描程序通常需要用不同比例大小的搜索窗口對圖片進行幾次掃描。目前支持這種分類器的boosting技術(shù)有四種:DiscreteAdaboost,RealAdaboost,GentleAdaboostandLogitboost。"boosted"即指級聯(lián)分類器的每一層都可以從中選取一個boosting算法(權(quán)重投票),并利用基礎(chǔ)分類器的自我訓(xùn)練得到。根據(jù)上面的分析,目標(biāo)檢測分為三個步驟:樣本的創(chuàng)建2、 訓(xùn)練分類器3、 利用訓(xùn)練好的分類器進行目標(biāo)檢測。二、樣本創(chuàng)建訓(xùn)練樣本分為正例樣本和反例樣本,其中正例樣本是指待檢目標(biāo)樣本,反例樣本指其它任意圖片。一般情況下我們選取正樣本:負樣本比例為1:2負樣本負樣本可以來自于任意的圖片,但這些圖片不能包含目標(biāo)特征。負樣本由背景描述文件來描述。背景描述文件是一個文本文件,每一行包含了一個負樣本圖片的文件名(基于描述文件的相對路徑)。該文件創(chuàng)建方法如下:按Ctrl+R打開Windows運行程序,輸入cmd打開DOS命令窗口,輸入d:回車,再輸入cdD:\face\negdata進入圖片路徑,再次輸入dir/b>negdata.dat則會圖片路徑下生成一個negdata.dat文件,打開該文件將最后一行的negdata.dat刪除,這樣就生成了負樣本描述文件。dos命令窗口結(jié)果如下圖:出山Bate切七亦”也Dr 1V* 世Ih.-e!?E.創(chuàng)建完之后會在negdata文件夾里面找到一個negdata.dat文件,用記事本打開,把最后行的negdata.dat保存即可。正樣本第一步和負樣本的生成一樣采用Dos命令生成樣本描述文件。具體方法是在Dos下的進入你的圖片目錄,比如我的圖片放在D:\face\posdata下,則:按Ctrl+R打開Windows運行程序,輸入cmd打開DOS命令窗口,輸入d:回車,再輸入cdD:\face\posdata進入圖片路徑,再次輸入dir/b>posdata.dat則會圖片路徑下生成一個posdata.dat文件,打開該文件將最后一行的posdata.dat刪除,這樣就生成了負樣本描述文件。這時候需要注意的一個問題:正樣本描述文件中要把后綴bmp替換成bmp1112020用記事本打開,編輯-替換)而負樣本則不需要此操作。否則會出現(xiàn):invalidbackgrounddescriptionfiles錯誤示例:posdata/1(10).bmp1112020posdata/1(11).bmp1112020posdata/1(12).bmp1112020這里的第一個“1”代表本圖片的個數(shù),后面的“11”表示起始點坐標(biāo)“2020”表示寬高正樣本的大小要保持一致、正樣本的準備工作還沒有結(jié)束哦,請看下面的步驟:由于HaarTraining訓(xùn)練時輸入的正樣本是vec文件,所以需要使用OpenCV自帶的CreateSamples程序(在你所按照的opencv\bin下,如果沒有需要編譯opencv\apps\HaarTraining\make下的.dsw文件,注意要編譯release版的)將準備好的正樣本轉(zhuǎn)換為vec文件。轉(zhuǎn)換的步驟如下:運行CreateSamples程序。(這個可執(zhí)行文件在opencv的安裝目錄里面的bin文件夾中)如果直接在VC環(huán)境下運行,可以在Project'Settings'Debug屬性頁的Programarguments欄設(shè)置運行參數(shù)。下面是一個運行參數(shù)示例:-infoD:\face\posdata\posdata.dat-vecD:\face\pos.vec-num50-w20-h20表示有50個樣本,樣本寬20,高20,正樣本描述文件為posdata.dat,結(jié)果輸出到pos.vec。或者在dos下輸入:"D:\ProgramFiles\OpenCV\bin\createsamples.exe"-info"posdata\posdata.dat"-vecdata\pos.vec-num50-w20-h20運行完了會d:\face\data下生成一個*.vec的文件。該文件包含正樣本數(shù)目寬高以及所有樣本圖像數(shù)據(jù)。結(jié)果入下圖:\face>uD^XProgramFiles\OpenCUXbin\createsanples.exe"-info"posdataXposdatadat"-uecdata\pos.uec-num49-w23-h23Infofilename:posdataXposdata.datIngfiLename:<NULL>Uecfilename:dataXpos.uecBGfilename:<NULL>Hum:49BGcolor:魁BGthreshold:83Inuert:FALSEpaxintensitydeviation:40paxxangled1.1paxi!angled1.1Maxzangled0”5ShousamplestFALSEWidth:20Height:23Createtrainingsamplesfromimagescdllection...^one.Created49samples-info"posdatstlpowdata.D:Xface>"D:XProgramFiles\OpenCUXbinScreatesamples.exe'1dat"-uecdsita\pos.uec-nun49-w20-h20-info"posdatstlpowdata.Infofilename:posdatH'posdata.datImgfilename:<NULL>Uecfilename:dataXpos.uecBGfilename:<NULL>Num:49BGcolor:0BGthreshoId:80Inuert:FALSErlaxint:ensitydeuiation:40rlaxxangle:1.1rlaxyangle:1.1Maxzangle:0.5Shousamples:FALSEUidth:20Height:20Createtrainingsamplesfronimagescollection...Done.Created49samples 「完成49個樣本,這里取的樣本個數(shù)少,但是一定要完成所有樣本的處理Createsamples程序的命令行參數(shù):命令行參數(shù):-vec<vec_file_name>訓(xùn)練好的正樣本的輸出文件名。-img<image_file_name>源目標(biāo)圖片(例如:一個公司圖標(biāo))-bg<background_file_name>背景描述文件。-num<number_of_samples>要產(chǎn)生的正樣本的數(shù)量,和正樣本圖片數(shù)目相同。-bgcolor<background_color>背景色(假定當(dāng)前圖片為灰度圖)。背景色制定了透明色。對于壓縮圖片,顏色方差量由bgthresh參數(shù)來指定。則在bgcolor-bgthresh和bgcolor+bgthresh中間的像素被認為是透明的。-bgthresh<background_color_threshold>-inv如果指定,顏色會反色-randinv如果指定,顏色會任意反色-maxidev<max_intensity_deviation>背景色最大的偏離度。-maxangel<max_x_rotation_angle>-maxangle<max_y_rotation_angle>,-maxzangle<max_x_rotation_angle>最大旋轉(zhuǎn)角度,以弧度為單位。-show如果指定,每個樣本會被顯示出來,按下"esc"會關(guān)閉這一開關(guān),即不顯示樣本圖片,而創(chuàng)建過程繼續(xù)。這是個有用的debug選項。-w<sample_width>輸出樣本的寬度(以像素為單位)-h(huán)《sample_height》輸出樣本的高度,以像素為單位。到此第一步樣本訓(xùn)練就完成了。恭喜你,你已經(jīng)學(xué)會訓(xùn)練分類器的五成功力了,我自己學(xué)這個的時候花了我一天的時間,估計你幾分鐘就學(xué)會了吧。三、訓(xùn)練分類器樣本創(chuàng)建之后,接下來要訓(xùn)練分類器,這個過程是由haartraining程序來實現(xiàn)的。該程序源碼由OpenCV自帶,且可執(zhí)行程序在OpenCV安裝目錄的bin目錄下。Haartraining的命令行參數(shù)如下:-data<dir_name>存放訓(xùn)練好的分類器的路徑名。-vec<vec_file_name>正樣本文件名(由trainingssamples程序或者由其他的方法創(chuàng)建的)-bg<background_file_name>背景描述文件。-npos<number_of_positive_samples>,nneg<number_of_negative_samples>用來訓(xùn)練每一個分類器階段的正/負樣本。合理的值是:nPos=7000;nNeg=3000-nstages<number_of_stages>訓(xùn)練的階段數(shù)。-nsplits<number_of_splits>決定用于階段分類器的弱分類器。如果1,則一個簡單的stumpclassifier被使用。如果是2或者更多,則帶有number_of_splits個內(nèi)部節(jié)點的CART分類器被使用。-mem<memory_in_MB>預(yù)先計算的以MB為單位的可用內(nèi)存。內(nèi)存越大則訓(xùn)練的速度越快。-sym(default)-nonsym指定訓(xùn)練的目標(biāo)對象是否垂直對稱。垂直對稱提高目標(biāo)的訓(xùn)練速度。例如,正面部是垂直對稱的。-minhitrate《min_hit_rate》每個階段分類器需要的最小的命中率??偟拿新蕿閙in_hit_rate的number_of_stages次方。-maxfalsealarm<max_false_alarm_rate>沒有階段分類器的最大錯誤報警率??偟腻e誤警告率為max_false_alarm_rate的number_of_stages次方。-weighttrimming<weight_trimming>指定是否使用權(quán)修正和使用多大的權(quán)修正。一個基本的選擇是0.9-eqw-mode<basic(default)|core|all>選擇用來訓(xùn)練的haar特征集的種類。basic僅僅使用垂直特征。all使用垂直和45度角旋轉(zhuǎn)特征。-w《sample_width》-h(huán)《sample_height》訓(xùn)練樣本的尺寸,(以像素為單位)。必須和訓(xùn)練樣本創(chuàng)建的尺寸相同。一個訓(xùn)練分類器的例子:"D:\ProgramFiles\OpenCV\bin\haartraining.exe"-datadata\cascade-vecdata\pos.vec-bgnegdata\negdata.dat-npos49-nneg49-mem200-modeALL-w20-h20這里正負樣本的個數(shù)一定要和你實際的樣本個數(shù)保持嚴格一致訓(xùn)練結(jié)束后,會在目錄data下生成一些子目錄,即為訓(xùn)練好的分類器。訓(xùn)練結(jié)果如下:恭喜你,你已經(jīng)學(xué)會訓(xùn)練分類器的九成功力了。出現(xiàn)的問題:在訓(xùn)練中后來訓(xùn)練到第九級就不動了,出現(xiàn)了死循環(huán)。最后在論壇上查了下,說是負樣本的問題。
負樣本必須要大于等于正樣本,剛開始的時候我選取的負樣本是20*20雖然和正樣本一樣大,但是出現(xiàn)了死循環(huán),后來換了負樣本就好了。訓(xùn)練完成后Data文件夾下:其中cascade。Xml是訓(xùn)練好的文件,可以直接拿來用了。cascade里面就是訓(xùn)練好的分類器:地址onDf地址onDf:\face\da土殳\(!注弓亡注(1已K-0acascade2xml有的opencv不能自動生成xml文件這時候可以利用 來生成xml四:利用訓(xùn)練好的分類器進行目標(biāo)檢測。文件,使用方法見文件,使用方法見這一步需要用到performance.exe,該程序源碼由OpenCV自帶,且可執(zhí)行程序在OpenCV安裝目錄的bin目錄下。performance.exe-datadata/cascade-infoposdata/test.dat-w20-h20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Kinetin-riboside-d5-N6-Furfuryladenosine-d-sub-5-sub-生命科學(xué)試劑-MCE
- 雜物購銷合同范本
- 綏化租房合同范本
- 鐵塔安裝合同范本
- 2025年血液凈化類產(chǎn)品項目合作計劃書
- 2025年精密過濾輸液器合作協(xié)議書
- 設(shè)計服務(wù)質(zhì)量控制協(xié)議書(2篇)
- 2025年超細粉碎設(shè)備(氣流磨)項目發(fā)展計劃
- 2025年主令電器防雷避雷產(chǎn)品項目合作計劃書
- 教室成長報告范文
- Unit 4 Eat Well(大單元教學(xué)設(shè)計)2024-2025學(xué)年七年級英語下冊同步備課系列(人教版2024)
- 2024-2030年中國游戲直播行業(yè)市場深度分析及投資策略研究報告
- 統(tǒng)編版小學(xué)語文六年級下冊第四單元《理想和信念》作業(yè)設(shè)計
- 2025年度劇本殺劇本版權(quán)授權(quán)與收益分成合同
- 2025年一種板式過濾膜裝置項目投資可行性研究分析報告
- 化驗班組安全培訓(xùn)
- BMS基礎(chǔ)知識培訓(xùn)
- 水刀除銹施工方案
- 英語-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 2024年06月日照銀行社會招聘筆試歷年參考題庫附帶答案詳解
- 烤房租賃合同范例
評論
0/150
提交評論