版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、級聯(lián)分類器訓練引言級聯(lián)分類器的工作主要包括兩個階段:訓練和檢測。檢測階段被描述在一個常規(guī)的OpenCV文件的objdetect 模塊的文檔里。文檔介紹了級聯(lián)分類器的一些基本信息。目前的指南描述了如何訓練級聯(lián)分類器:一個訓練數(shù)據(jù)集和運行訓練應用程序的準備。 重要的筆記 在OpenCV里有兩個應用程序可以用來訓練級聯(lián)分類器:opencv_haartraining和opencv_traincascade。opencv_traincascade是一個較新的版本,用C+按照OpenCV 2.x API的標準編寫。但這兩個應用程序之間的主要區(qū)別是,opencv_traincascade同時支持 Haar
2、Viola2001 和LBP Liao2007(局部二值模式)的特征。相比于Haar特征,LBP特征是整數(shù),所以用LBP訓練和檢測比用Haar特征快好幾倍。至于LBP和Haar的檢測質(zhì)量取決于訓練:首先是訓練數(shù)據(jù)集的品質(zhì)還有訓練參數(shù)。訓練一個和基于Haar的分類有幾乎相同的質(zhì)量的基于LBP的分類是有可能的。opencv_traincascade和opencv_haartraining以不同的文件格式存儲訓練好的分類器。值得注意的是,較新的級聯(lián)檢測接口(見objdetect模塊的級聯(lián)分類器類)兩種格式都支持。opencv_traincascade可以用舊格式保存(輸出)訓練好的級聯(lián)。但openc
3、v_traincascade和opencv_haartraining無法在中斷后以另一種格式加載(輸入)一個分類器來進一步訓練。 注意,opencv_traincascade應用程序可以使用TBB實現(xiàn)多線程。在多核模式下使用,OpenCV必須要用TBB來構(gòu)建。并且這有一些和訓練相關的輔助工具。opencv_createsamples是用來準備正訓練數(shù)據(jù)集和測試樣本集的。 opencv_createsamples產(chǎn)生一個opencv_haartraining和opencv_traincascade都支持的 格式的正樣本數(shù)據(jù)集。輸出的是一個以*.VEC為后綴的文件,它是一種包含圖像的二 進制格式。
4、opencv_performance可用于評估分類器的質(zhì)量,但是只能評估opencv_haartraining的 訓練。 它需要一個圖像標記的集合,運行分類器并且報告性能,即找到的對象的數(shù) 量,沒有對象的數(shù)量,錯誤警報的數(shù)量等信息。 因為opencv_haartraining是一個過時的應用,只對opencv_traincascade進行進一步的講解。為opencv_traincascade準備訓練數(shù)據(jù)時opencv_createsamples工具是必需的,所以它也將被詳述。opencv_createsamples工具一個opencv_createsamples工具提供了數(shù)據(jù)集的生成功能,寫和
5、讀,用數(shù)據(jù)集這個術語作為訓練集和測試集的統(tǒng)稱。訓練數(shù)據(jù)準備為了訓練我們需要一組樣本。有兩種類型的樣品:正和負。負樣本對應于非目標圖像。正樣本對應于包含了被測物體的圖像。集負樣本必須手動創(chuàng)建,而一組正樣本由opencv_createsamples工具創(chuàng)建。負樣本負樣品來自任意圖像。這些圖像必須不包含被檢測對象。負樣本被放在一個特殊的文件里。這是一個在它的每一行包含一個負樣本圖像的文件名的文本文件(相對于描述文件的目錄)。這個文件必須手動創(chuàng)建。注意,負樣本和樣本圖像也被稱為背景樣本或背景樣本圖像,并在此文件中是可交換的。被描述的圖像可以具有不同的尺寸。但每個圖像應該是(但不一定)大于訓練窗口的大小
6、,因為這些圖像被用來進行再次抽取,變成具有訓練尺寸的負面圖像。描述文件的一個實例:目錄結(jié)構(gòu):/img img1.jpg img2.jpgbg.txt文件bg.txtimg/img1.jpgimg/img2.jpg正樣本正樣本用opencv_createsamples工具來創(chuàng)建。他們可能是從一個包含對象的單幀圖像或先前標記的圖像的集合中創(chuàng)建。請注意,你需要一個大的正樣本數(shù)據(jù)集把它送給你之前提到的工具,因為它只適用于透視變換。例如,你可能只需要一個正樣本,像opencv標志這樣的一個明顯的規(guī)則物體,但對于面孔這樣的,你絕對需要成百上千個正樣本。在面孔的這種情況下,你應該考慮所有的種族和年齡組,情緒
7、又或者胡子的風格。因此,一個單幀的物體圖像可能包含公司徽標。那么一大組的正樣本被通過隨機旋轉(zhuǎn)從而給定的對象的圖像創(chuàng)造,改變標志的強度以及放置標志的任意背景的數(shù)量和范圍的隨機性可以通過opencv_createsamples工具的命令行參數(shù)控制。命令行參數(shù):-vec 輸出文件的名字中包含正的訓練樣本。-img 源對象的圖像(如,公司標志)。-bg 背景描述文件;列出了作為背景的隨機扭曲版本的對象的圖像。-num 產(chǎn)生正樣本的數(shù)量-bgcolor 背景顏色(目前灰度圖像被假定);背景顏色為透明色。因為可能有壓縮失真,顏色容錯的數(shù)量可以通過 -bgthresh被指定。所有像素在bgcolor-bgt
8、hresh 到bgcolor+bgthresh的范圍內(nèi)被認為是透明的。-bgthresh -inv如果指定,顏色取反。-randinv如果指定,顏色將隨機取反。-maxidev 在最突出的樣本像素的最大強度偏差。-maxxangle -maxyangle -maxzangle 給最大旋轉(zhuǎn)角度一定的弧度。-show有用的調(diào)試選項。如果指定,每個樣品將被顯示。按ESC鍵結(jié)束創(chuàng)建樣本過程。-w 寬度(像素)的輸出樣本。-h 高度(像素)的輸出樣本。-pngoutput使用此選項打開opencv_createsamples工具生成一個PNG樣本集合和大量相關注釋文件,而不是一個單一的vec(矢量)文件
9、。opencv_createsamples工具可以以多個模式工作,即:從一個單一的圖像和一個背景的集合中創(chuàng)建訓練集:以一個單一的VEC文件作為輸出;以一個JPG圖片集合和注釋列表文件作為輸出;以一個的PNG圖像集合和相關的文件注釋作為輸出;將采集樣品標記為VEC格式;顯示vec文件的內(nèi)容。從一個單一的圖片和背景的集合中創(chuàng)建訓練集并以一個單一的VEC文件作為輸出下面的程序是一個用來創(chuàng)建一個樣本對象的實例:源圖像被隨機的繞著三個軸旋轉(zhuǎn)。選擇的角度被-max?angle限制。然后 在bg_color-bg_color_threshold; bg_color+bg_color_threshold強度范
10、圍內(nèi)的像素解釋為透明。白噪聲添加到前景的強度上。如果 -inv 參數(shù)被指定然后指定前景像素強度取反。如果-randinv的值被指定隨后指定算法隨機選擇是否在該樣本上進行取反。最后,得到的圖像放置到從背景描述文件中任意抽取出的背景上,調(diào)整到所需的大小,通過-w和-h來指定隨后存儲到通過命令行選項指定的VEC文件中。創(chuàng)建訓練集作為一個PNG圖像的集合為了獲得這種行為, -img, -bg, -info 和-pngoutput 鍵值應指定。用 -info的鍵值指定文件名,應包括至少一個水平層次的目錄,該目錄將作為訓練集的頂層目錄。例如,調(diào)用opencv_createsamples如下所示:openc
11、v_createsamples -img /home/user/logo.png -bg /home/user/bg.txt -info /home/user/annotations.lst -pngoutput -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1輸出將具有以下結(jié)構(gòu):/home/user/ annotations/ 0001_0107_0099_0195_0139.txt 0002_0107_0115_0195_0139.txt . neg/ pos/ 0001_0107_0099_0195_0139.png 0002_0107_0115_
12、0195_0139.png . annotations.lst在TXT格式的注釋目錄里包含樣品中關于以下一個文件格式的對象包圍盒的信息:Image filename : /home/user/pos/0002_0107_0115_0195_0139.pngBounding box for object 1 PASperson (Xmin, Ymin) - (Xmax, Ymax) : (107, 115) - (302, 254)創(chuàng)建測試集設置為JPG圖像的集合這種變異的用法非常類似于上一個,但是以不同的格式產(chǎn)生輸出;獲得這樣的行為 -img, -bg 和-info 的值應指定。例如,調(diào)用 o
13、pencv_createsamples如下:opencv_createsamples -img /home/user/logo.png -bg /home/user/bg.txt -info annotations.lst -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1目錄結(jié)構(gòu):info.datimg1.jpgimg2.jpg文件info.datimg1.jpg 1 140 100 45 45img2.jpg 2 100 200 50 50 50 30 25 25將樣品的標記集合變?yōu)閂EC格式正樣本也可以從之前的標記圖像集合中獲得。這個系列是由一個類似
14、背景描述文件的文本文件描述。此文件的每一行對應一個圖像。該行的第一個元素是文件名。其次是對象實例的數(shù)量。下面的數(shù)字是對象的邊界矩形的坐標(x,y,寬度,高度)。描述文件的一個實例:目錄結(jié)構(gòu):/img img1.jpg img2.jpginfo.dat文件info.dat:img/img1.jpg 1 140 100 45 45img/img2.jpg 2 100 200 50 50 50 30 25 25圖像img1.jpg包含單獨的對象實例的邊框坐標:(140,100,45,45)。圖像img2.jpg包含兩個對象實例。為了從這樣的集合建立正樣品,-info應該被指定而非-IMG:-info
15、 文件標注圖像集合的描述。在這種情況下,樣品的創(chuàng)建的方案如下。對象的實例是從圖像中采集。然后調(diào)整到目標樣本的大小和存儲在輸出的矢量文件。應用不變形,所以唯一的影響參數(shù)是-w,-h, -show 和-num.顯示VEC(矢量)文件內(nèi)容opencv_createsamples工具可用于檢查存儲在正樣本文件中的樣本。為了做到這點,只有-vec,-w和-h的參數(shù)應被指定。為了訓練要注意的是,怎樣生成帶有正樣本的vec文件不重要。但opencv_createsamples工具是唯一能通過OpenCV收集/創(chuàng)建一個正樣本矢量文件的方式,??梢栽谶@里找到VEC文件的例子opencv/data/vec_fil
16、es/trainingfaces_24-24.vec它可以用下面的窗口大小訓練的人臉檢測:- w 24 -h 24。級聯(lián)訓練下一步是分類器的訓練。正如上面提到的opencv_traincascade或opencv_haartraining可以用來訓練一個級聯(lián)分類器,但只有較新的opencv_traincascade被將進一步描述。對opencv_traincascade應用程序的命令行參數(shù)進行有目的歸類:常見的參數(shù):-data 被訓練好的分類器應該被存儲在哪里。-vec 帶有正樣本的VEC文件(由opencv_createsamples工具創(chuàng)建的)。-bg 背景描述文件。-numPos -nu
17、mNeg 用于每個分類器訓練階段的正/負樣本的數(shù)目-numStages 需培養(yǎng)的階數(shù)。-precalcValBufSize 預先計算的特征值的緩沖區(qū)大?。∕B)。-precalcIdxBufSize 預先計算的特征指標的緩沖區(qū)大小(MB)。你有更多的記憶就會有更快的訓練過程。-baseFormatSave這個參數(shù)是很實在的,以防使用的是Haar-like特征。如果被指定,級聯(lián)將以舊格式保存。-acceptanceRatioBreakValue此參數(shù)用來確定如何精確你的模型是否繼續(xù)學習和何時停止。一個好的方針是培養(yǎng)不超過10e-5,保證模型不過度訓練你的訓練數(shù)據(jù)。默認情況下,此值設置為1來禁用此
18、功能。級聯(lián)參數(shù):-stageType 階段的類型。目前只有boosted分類器支持階段類型。-featureType特征的類型:HAAR -haar-like 特征,LBP -局部二值模式 -w -h 訓練樣本的大?。ㄒ韵袼貫閱挝唬?。在訓練樣本的創(chuàng)建過程中必須使用完全相同的值(opencv_createsamples工具)。boosted分類器的參數(shù):-bt boosted分類器的類型: DAB - Discrete AdaBoos,RAB - Real AdaBoost,LB - LogitBoost, GAB - Gentle AdaBoost。 itRate 最小所需的分類器,每個階段的命中率。整體命中率可估計為(min_hit_rate number_of_stages)。 -maxFalseAlarmRate 最大期望的分類各階段的誤報率。整體的誤報率可估計為(max_false_alarm_rate number_of_stages)。 -weightTrimRate 指定是否應使用重量微調(diào)。0.95是一個不錯的選擇。 -maxDepth 一個分支的最大深度。1是一個不錯的選擇,這是樹樁的例子。 -maxWeakCount 每串級弱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國表面肌電測試系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國一次鋰亞硫酰氯電池行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國動態(tài)圖像粒度粒形分析系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2023年全球及中國無人駕駛接駁小巴行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025小飯店員工的勞動合同范本
- 出境旅游合同書
- 2025辦公室裝修合同書集錦
- 房產(chǎn)股權轉(zhuǎn)讓合同
- 存量房買賣合同合同范本
- 陸路貨物運輸合同承運人定義年
- 2023學年度第一學期高三英語備課組工作總結(jié)
- 臨建標準化圖集新版
- 安監(jiān)人員考核細則(2篇)
- 生活老師培訓資料課件
- 2020年新概念英語第一冊lesson97-102單元檢測
- 腹主動脈瘤(護理業(yè)務學習)
- 注射用醋酸亮丙瑞林微球
- 大學生就業(yè)指導PPT(第2版)全套完整教學課件
- 家具安裝工培訓教案優(yōu)質(zhì)資料
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報
- envi二次開發(fā)素材包-idl培訓
評論
0/150
提交評論