用opencv的traincascade訓練檢測器

2021-07-30 12:54:57 字數 1153 閱讀 5865

#1,準備正負樣本

注意:正負樣本比例一般為1:3,負樣本只需要名稱,正樣本還要個數和位置引數。

正樣本要歸一化為統一大小。

正樣本描述檔案與正樣本放到乙個資料夾pos中,負樣本描述檔案放到當前資料夾,還需要部分opencv的檔案以備下用,檔案組織如下所示:

#2,生成正樣本的.vec檔案

命令:opencv_createsamples.exe -vec pos.vec -info pos/pos.txt -bg neg.txt -w 50 -h 50 -num 1000

網上有很多關於這個命令引數的說明,可以去了解下,也可以去createsamples.cpp中查詢。

我用的是一張上多個sample,所以我沒有引數-w 50 -h 50,然後我希望描述檔案中有的sample都寫入.vec檔案中,因此也沒有-num 1000引數,在cmd中執行命令之後為:

#3,開始訓練

命令:opencv_traincascade.exe -data dt -vec pos.vec -bg neg.txt -numpos 34 -numneg 100 -numstages 16 -precalcvalbufsize 200 -precalcdxbufsize 1000 -featuretype hog -w 50 -h 50

執行命令之後,會-numstages個下面的結果:

#4,結果資料夾

第三步中的-data dt引數指出的中間結果和最終結果的最終存放處,cascade.xml是最終的結果。下面是結果資料夾的截圖:

還有一些細節上的問題和bug的除錯沒有寫上來,會在後面寫篇部落格闡述。

用IPP給OpenCV加速

用ipp給opencv加速 因為opencv曾由intel效能基元 ipp 團隊主持,而且幾個主要開發者都與ipp團隊保持著良好的關係,所以opencv利用了ipp高度手工優化的 來實現加速。使用ipp獲得的提速是非常顯著的。圖1 4比較了另外兩個視覺庫lti lti 和vxl vxl 與openc...

用OpenCV實現Otsu演算法

最近在學習影象分割反面的知識,在岡薩雷斯的那本書上看到otsu演算法,身邊的同學都是用matlab來實現這個演算法。我覺得matlab寫得話,但是 的效率應該不會高。於是又惡補了一些opencv的一些基本知識,然後看了augusdi的部落格,分析了一下他的 並附上,第二份 是來自某一位大牛的 寫得更...

Python用OpenCv捕捉你的頭像

效果圖 紅框是我的標記 需載入人臉模組 連線 提取碼 nscr 匯入opencv模組 import cv2 載入人臉模型,字串是檔案路徑 face cv2.cascadeclassifier c users admin desktop iamge haarcascade frontalface al...