opencv3.3版本訓練自己的物體分類器
Opencv訓練自己分類器
注:此文是我整理了網上的各方資料彙集而成,由於在實踐中遇到了很多坑,所以把自己的成功訓練的經驗寫下來做個筆記給大家做個參考
1.準備訓練樣本圖片
1.1樣本的採集:
樣本圖片最好使用灰度圖,且最好根據實際情況做一定的預處理;樣本數量越多越好,儘量高於1000,樣本間差異性越大越好
正負樣本比例為1:3最佳;尺寸為20x20最佳。
1.1.1正樣本
訓練樣本的尺寸為20*20(opencv推薦的最佳尺寸),且所有樣本的尺寸必須一致。如果不一致的或者尺寸較大的,可以先將所有樣本統一縮放到20*20。
以下就是我用來訓練的正樣本:
1.1.2負樣本
這裡要提醒一下,雖然負樣本就是樣本中不存在正樣本的內容。但也不能隨意的找些圖片來作為負樣本,比如什麼天空,大海,森林等等。最好是根據不同的專案選擇不同的負樣本,比如一個專案是做機場的人臉檢測,那麼就最好從現場拍攝一些圖片資料回來,從中採集負樣本。其實正樣本的採集也應該這樣。不同的專案,就採集不同的正樣本和負樣本。因為專案不同,往往相機的安裝規範不同,場景的拍攝角度就不同。
1.1.3 準備好工作目錄
negdata目錄: 放負樣本的目錄
posdata目錄: 放正樣本的目錄
xml目錄: 新建的一個目錄,為之後存放分類器檔案使用
negdata.txt: 負樣本路徑列表
posdata.txt:
正樣本路徑列表
pos.vec: 後續自動生成的樣本描述檔案
opencv_createsamples.exe: 生成樣本描述檔案的可執行程式(opencv自帶)
opencv_haartraining.exe: 樣本訓練的可執行程式(opencv自帶)
將下圖中的所有檔案拷貝到樣本同級目錄
1.1.4生成樣本描述檔案
1,生成正樣本描述檔案
進入posdata目錄
執行dir /b/s/p/w *.jpg > pos.txt
2,生成負樣本描述檔案
進入negdata目錄
執行dir /b/s/p/w *.jpg > neg.txt
開啟正負樣本描述檔案如圖:
將jpg全部替換成下面的格式
圖中劃線處為圖片畫素大小
將正負樣本描述檔案拷貝到與opencv_createsamples.exe檔案同一目錄
1.1.5生成.vec檔案
opencv_createsamples.exe -vec pos.vec -info pos.txt -num 18500 -w 20 -h 20
opencv_createsamples.exe -vec neg.vec -info neg.txt -num 10500 -w 50 -h 50
說明:
-info,指樣本說明檔案
-vec,樣本描述檔案的名字及路徑
-num,總共幾個樣本,要注意,這裡的樣本數是指標定後的20x20的樣本數,而不是大圖的數目,其實就是樣本說明檔案第2列的所有數字累加
-w -h指明想讓樣本縮放到什麼尺寸。這裡的奧妙在於你不必另外去處理第1步中被矩形框出的圖片的尺寸,因為這個引數幫你統一縮放!(我們這裡準備的樣本都是20*20)
1.1.6訓練樣本
新建檔案traincascade.bat
把
opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 500 -numNeg 656 -numStages 20 -w 20 -h 20 -mode ALL
pause
複製進去儲存
把pos.txt和neg.txt改回如圖格式(注意:這一步至關中重要)
然後雙擊traincascade.bat進行訓練
說明:
點選訓練後會出現如圖所示代表正確訓練中
訓練結束後會在xml目錄下生成如圖檔案(其中cascade.xml就是我們訓練得到的分類器)
相關推薦
opencv3.3版本訓練自己的物體分類器
Opencv訓練自己分類器 注:此文是我整理了網上的各方資料彙集而成,由於在實踐中遇到了很多坑,所以把自己的成功訓練的經驗寫下來做個筆記給大家做個參考 1.準備訓練樣本圖片 1.1樣本的採集:
3.8 Softmax迴歸 3.9 訓練一個softmax分類器
3.7Softmax迴歸 (1)Softmax迴歸的功能: 答案:分類 (2)舉例: 答案 :系統中輸入一張圖片P,通過Softmax層,系統會
OpenCV學習筆記——用haar特徵訓練自己的分類器(再做手勢檢測)
資料還是得看啊,又讀了經典文獻《Robust Real-Time Face Detection》,不願意讀原文的朋友可以看看http://blog.csdn.net/hqw7286/article/details/5556767,作者把文中的要點基本也都總結出來了。Ope
OpenCV學習筆記(三十三)——用haar特徵訓練自己的分類器(再做手勢檢測)
資料還是得看啊,又讀了經典文獻《Robust Real-Time Face Detection》,不願意讀原文的朋友可以看看http://blog.csdn.net/hqw7286/article/details/5556767,作者把文中的要點基本也都總結出來了。Ope
opencv訓練自己的分類器
注意 這個哥們寫的非常詳細(http://blog.csdn.net/liuqz2009/article/details/62222597) 點1.建立正負樣本的時候,負樣本需要一起歸一化,灰度處理而且負樣本是正樣本1.2到1.5倍比較好,這裡自己寫了一個程式統一批量處理(
opencv 訓練自己的分類器
1、opencv 3.1.0 和 3.2.0 已經沒有了convert_cascade.c 檔案,開啟 ..\opencv-3.1.0\sources\samples\ 和 ..\opencv-2.4
opencv學習筆記——自己訓練人臉識別分類器
在使用opencv自帶的分類器haarcascade_frontalface_alt.xml進行人臉識別的基礎認識後,決定自己訓練一個分類器看一下效果。該過程大致可分為三個階段:樣本採集、分類器訓練和運用訓練好的分類器進行人臉檢測。1、樣本的採集 在
使用Opencv的opencv_traincascade來訓練屬於自己的分類器,檢測自己想檢測的東西,666,從使用到放棄。
提供一個人臉檢測的訓練工程,其裡面包括原始的訓練樣本、製作好的訓練樣本、訓練指令等,感覺其樣本分類特別麻煩其下載地址為: 1 、opencv裡的分類器大概介紹: OpenCV中有兩個程式可以訓練級聯分類器: opencv_haartraining and open
關於opencv中訓練級聯分類器所使用opencv_createsamples.exe和opencv_traincascade.exe的引數的詳細說明
關於如何訓練分類器來識別一個新目標,可以看這裡。 重點注意事項: OpenCV中有兩個程式可以訓練級聯分類器: opencv_haartraining and opencv_traincascade。opencv_traincascade 是一個新程式,使用Op
使用TensorFlow slim資料夾當中的inception_resnet_v2網路訓練自己的分類資料集
每個資料夾存放一種類別的圖片 資料夾名稱即為類別名稱 轉換資料集為TFRecords格式的檔案: 進入下載以後的資料夾中/models/research/slim/,使用pycharm開啟slim資料夾,開啟轉換格式的檔案download_and_c
7.3 樸素貝葉斯分類器
樸素:屬性條件獨立性假設。即假設每個屬性獨立地對分類結果發生影響。 樸素貝葉斯分類器重寫了書中的式(7.8)為: P(c∣x)=P(c)P(x∣c)P(x)=P(c)P(x)∏i=1dP(xi∣c)P(
目標檢測(從樣本處理到訓練檢測)訓練級聯分類器
一直在複習期末考試,沒能及時的將整個檢測過程寫來了。正好最近考完了,而且上個月做的檢測結果出現部分的漏檢,於是決定從頭再來一次,就當做是加深印象了。做的這個實驗是百香果的識別與檢測,類似行人和人臉檢測,下面簡單寫點自己對訓練級聯分類器整個流程淺薄的認識。下面就開始啦,整個訓
linux下,使用opencv訓練級聯分類器opencv_traincascade
參考: http://jingyan.baidu.com/article/4dc40848f50689c8d946f197.html http://blog.csdn.net/xidianzhimeng/article/details/10470839 http://w
opencv中應用HOG特徵訓練SVM多分類器的一般框架
1.HOG特徵提取 opencv裡關於HOG特徵的提取是通過函式HOGDescriptor()來完成的,主要有下面4個建構函式: CV_WRAP HOGDescriptor() : winSize(64,128), blockSize(16,16), blockStri
7.3 樸素貝葉斯分類器
樸素:屬性條件獨立性假設。即假設每個屬性獨立地對分類結果發生影響。 樸素貝葉斯分類器重寫了書中的式(7.8)為: P (
caffe 訓練自己的分類模型
學習caffe的最終目的,是可以利用自己的資料集,訓練模型,並解決實際問題。 所以在前面跑通了mnist和cifar-10例程的基礎上,嘗試訓練自己的模型,從頭到尾走一遍所有的流程。準備資料、訓練並得到模型,利用模型進行分類預測。 一、準備資料 1、在網上找了一些圖片,分
Mxnet(3)-SSD訓練自己的資料
整個ssd的安裝和訓練可以按照官方的例子。 需要注意的是需要編譯ssd相關的程式碼,可以通過兩種方式進行: 直接把ssd目錄下的operator中的檔案複製到src/operator,然後再編譯 設定config.mk,把EXTRA_OPERATOR
pyTorch——訓練第一個分類器要點解讀
網路構建 資料載入 * 引入函式庫 import torch import torchvision import torchvision.transforms as transforms *將讀入的資料進行轉化: transform = tra
基於PyTorch的深度學習入門教程(五)——訓練神經網路分類器
前言本文參考PyTorch官網的教程,分為五個基本模組來介紹PyTorch。為了避免文章過長,這五個模組分別在五篇博文中介紹。本文是關於Part4的內容。Part4:訓練一個神經網路分類器前面已經介紹了
用opencv3.3自帶的traincascade.exe訓練LBP特征的分類器
不能 有效 格式 aar file jpg for rotation 方差 opencv3.3中有可以訓練分類器opencv_traincascade.exe,可以用HAAR、LBP和HOG特征訓練分類器。 這個函數都可以在opencv\build\x64\vc14\bin