目标检测器训练过程总结(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. 相关知识点

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值