目標檢測器訓練過程總結(HyperLPR)

1. 項目背景

  開源項目HyperLPR,在車牌粗定位(提取)階段,依賴於訓練好的模型文件cascade.xml,而該文件是一個由基於OpenCV的Haar級聯分類器訓練出來的模型,HyperLPR作者有在他的博客中談到了該模型文件的訓練過程。
  車牌粗定位大致程序流程:
enter description here
  以下內容記錄訓練cascade.xml模型文件的過程。

2. 環境準備

3. 數據準備

  • 正樣片:最好使用項目具體應用,若無,可用開源項目Plate_Recognition-LPRnet下的車牌圖像作爲正樣片,此項目正樣片應置於train-detector/china/目錄下
  • 負樣片:train-detector下的raw-neg已包含

4. prep.py使用說明

4.1. 變量說明

  • 調整國家和車牌長度寬度,將以下代碼置於導包語句後
    enter description here
  • OPENCV_DIR:opencv安裝目錄
    OPENCV_DIR= 'D:\\ProgramData\\OpenCV3.0.0\\opencv\\build\\x64\\vc11\\bin'
  • BASE_DIR:指定prep所在的目錄
    BASE_DIR = 'G:\\PycharmProjects\\train-detector\\'
  • OUTPUT_DIR:訓練模型輸出目錄
  • INPUT_NEGATIVE_DIR:負樣本放置目錄
    INPUT_NEGATIVE_DIR = BASE_DIR + 'raw-neg\\'
  • INPUT_POSITIVE_DIR:正樣本輸出目錄
    INPUT_POSITIVE_DIR = BASE_DIR + COUNTRY + '\\'

4.2. 訓練過程(cmd切換到prep所在目錄下)

  1. & ‘D:\ProgramData\Python27\python.exe’ prep.py neg
  2. & ‘D:\ProgramData\Python27\python.exe’ prep.py pos
  3. & ‘D:\ProgramData\Python27\python.exe’ prep.py train---->生成的語句複製運行
    enter description here

複製生成的語句運行(改低posNum)
訓練過程
enter description here
可能出現的問題:<BEGIN OpenCV Error: Bad argument (Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file. ) in CvCascadeImageReader::PosReader::get, file C:\buildslave64\win64_amdocl\master_PackSlave-win64-vc11-shared\opencv\apps\traincascade\imagestorage.cpp, line 157
解決方法:參數numPos調低,如此處正樣片有752,可設置numPos爲652,原因參見

4.3. 訓練結果

train-detector/out/cascade.xml

5. 相關知識點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章