您的位置:首页 > 运维架构

opencv机器学习——首次尝试,从单张目标真实样本图像生成多张合成样本图像,并检测验证

2020-06-07 05:29 337 查看

 

软件环境:

ubuntu 18.04

opencv 3.4.9

 

操作步骤:

将相关目录及所需文件创建到opencv自带训练软件目录下

我的opencv3安装目录为:chenlu@chenlupc:~/opencv3/bin

高亮文件及文件夹为训练前需要创建好的:

 

准备正样本和负样本图片,以及创建对应的描述文本:

 

创建样本图片:

此处使用根据一张真实样本图片创建大量的合成的样本图片的方法

createsamples工具及参数及默认值

执行合成样本命令:

成功生成100张样本图片!

 

开始训练:

工具traincascade,参数及默认值

执行训练指令:级联器默认为20层

训练完成!

训练结果保存在xml目录下,cascade.xml为最终模型,各级训练结果及参数都有单独xml保存:

 

加载上述训练好的模型,使用手机拍摄的ROV视频进行实时目标检测,验证效果(可以预期效果很差,结果没有关系,这篇文章的目的是走通opencv模型训练及检测的整个流程),基于opencv自带的facedetect.cpp修改而来。

默认参数效果:

通过调整detectMultiScale()的若干参数,可以在速度和精度2方面做平衡

修改参数后效果:实时性提高很多,同时误检率大大降低,但是准确率依然很低(是由于训练模型使用的样本数据实在少的可怜)

 

NEXT STPE?

使用大量的样本来训练一个较好的模型,期待一个90%准确率以上的检测结果。。。

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: