当前位置:   article > 正文

OpenCV训练自己的物体检测分类器步骤_opencv_traincascade

opencv_traincascade

环境:python3.7  OpenCV3.4.3.18

工具:

opencv_annotation.exe

opencv_createsamples.exe

opencv_traincascade.exe

环境和工具下载安装

OpenCV库在cmd下终端命令
 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.3.18
包括了OpenCV主要模块以及OpenCV贡献库
工具在GitHub上下载
https://github.com/opencv/opencv/releases?after=3.4.3

安装OpenCV后在以下目录

一、准备阶段

 文件模板

 positive_images放置正样本图片、negative_image放置负样本图片、xml为训练好的分类器文件

样本收集

正样本:我们想要正确分类出的类别所对应的样本,例如,我们要对一张图片进行分类,以确定其是否属于菠萝,那么在训练的时候,菠萝的图片则为正样本。

负样本:不是我们想要的分类对应的样本,就是除了菠萝的图片

样本数据越多检测效果越好,正样本的特征越明显越好,负样本背景越复杂越好。

1、去www.kaggle.com下载想要的数据集或者使用scrapy+selenium批量爬取图片

2、自己拍摄想要检测物体的图片

二、预处理

图像的注水处理:通过自动对图像的旋转、平移、缩放从而增加样本数量

比如:通过旋转

  1. "path是图片路径,执行后,会在同一目录下生成11张依次旋转30度的图片"
  2. def spin(path):
  3. retval=cv2.imread(path)
  4. he,we=retval.shape[:2]
  5. for x in range(1,12):
  6. M=cv2.getRotationMatrix2D(center=(we/2,he/2),angle=x*30,scale=1)
  7. M=cv2.warpAffine(retval,M,(we,he))
  8. new_path=path[:-3]+'-spin'+str(x)+'.jpg'
  9. #print(new_path)
  10. cv2.imwrite(new_path,M)

 调节亮度:

  1. "path是图片路径,执行后会在同一目录下生成五张亮度依次递增的图片"
  2. def light(path):
  3. retval=cv2.i
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/263971
推荐阅读
相关标签
  

闽ICP备14008679号