網頁

2016年11月22日 星期二

Cascade Classifier Training

開啟命令提示字元

set PATH=D:\OpenCV\build_64\install\x64\vc12\bin;%PATH%
set PATH=D:\OpenCV\dep\tbb2017_20160916oss\bin\intel64\vc12;%PATH%
set PATH=D:\Qt\Qt5.7.0_64\5.7\msvc2013_64\bin;%PATH%

cd neg
dir/b>neg.txt
編輯 neg.txt 加入檔案路徑

標註 正樣本
使用 opencv_annotation.exe
"D:\OpenCV\build_64\install\x64\vc12\bin\opencv_annotation.exe" --annotations=20160615.txt --images=20160615\*.jpg
c: add rectangle to current image
n: save added rectangles and show next image
d: delete the last annotation made
<ESC>: exit program(無法使用,請參考下列修正方式)

編輯 opencv_annotation.cpp
case 27
  //destroyWindow(window_name);
  stop = true;
  break;
不然無法用 ESC 結束程式

產生 pos.vec
"D:\OpenCV\build_64\install\x64\vc12\bin\opencv_createsamples.exe" -info pos.txt -vec pos.vec -w 50 -h 25

產生 xml
mkdir xml
"D:\OpenCV\build_64\install\x64\vc12\bin\opencv_traincascade.exe" -data xml -vec pos.vec -bg neg.txt -numPos 150 -numNeg 20 -numStages 20 -maxFalseAlarmRate 0.45 -featureType LBP -w 50 -h 25

-numPos 每級分類器訓練時所用正樣本數目
-numNeg 每級分類器訓練時所用負樣本數目,可大於 -bg 指定的圖片數目
-featureType: HAAR
-featureType: LBP
-mode BASIC 直立
-mode ALL
-minHitRate 0.999 正樣本被判成正樣本的比例
-maxFalseAlarmRate 0.5 負樣本被判成正樣本的比例

錯誤 Required leaf false alarm rate achieved. Branch training terminated.
預設 -maxFalseAlarmRate 0.5

2016年11月7日 星期一

OpenCV statusbar & mouse position

症狀:setMouseCallback 回傳函式的滑鼠位置錯誤,狀態烈沒有顯示滑鼠位置,顏色資訊
對策:開啟 modules/highgui/src/window_QT.h 將下一行增加 virtual 宣告
    void icvmouseProcessing(QPointF pt, int cv_event, int flags);
    virtual void icvmouseProcessing(QPointF pt, int cv_event, int flags);


OpenCV release 版本無法執行

症狀:debug 版本正常,release 版本的程式無法執行,出現如下錯誤
This application failed to start because it could not find or load the Qt platform plugin "windows"
in "".
原因:因為 PATH 環境變數設定錯誤,使用到錯誤的 Qt library
對策:修正 Project Property Pages/Coniguration Properties/Debugging/Environment 的 PATH
PATH=%PATH%;D:\Qt\Qt5.7.0_64\5.7\msvc2013_64\bin;
PATH=D:\Qt\Qt5.7.0_64\5.7\msvc2013_64\bin;%PATH%


除錯路上拾遺

查詢載入 plugin 的過程
設定環境變數 QT_DEBUG_PLUGINS=1
下列兩個環境變數皆可設定 plugin 的路徑
QT_QPA_PLATFORM_PLUGIN_PATH=D:\Qt\Qt5.7.0_64\5.7\msvc2013_64\plugins
QT_PLUGIN_PATH=D:\Qt\Qt5.7.0_64\5.7\msvc2013_64\plugins

編譯 Qt source
1. 新版的 Qt 編譯不能使用 vs2013,要使用 Visual C++ Build Tools(Visual Studio 2015)
2. 編譯需要跳過一些模組
configure.bat -release -nomake examples -skip qtscript