当前位置: 首页 > news >正文

【OpenCV】使用opencv找哈士奇的脸

我是一名资深的游戏客户端,没事的时候我喜欢捣鼓点好玩的

2016年,看了下人脸识别,我寻思是不是也能狗脸识别,遂有了这个demo。从有道云把笔记搬过来

OpenCV

用于识别图像,盘它

准备工作

  • 安装opencv,配置环境变量,主要是方便在命令行里面运行opencv的exe
  • 下载官网的人脸识别例子程序
  • 训练哈士奇face分类器
  • 替换例子中的文件名为自己需要的,运行

训练分类器

  1. 正负样本准备
  2. 训练

我的工程目录结构

在这里插入图片描述

1.负样本-bad-放图片
2.正样本-right-放图片
3.data-分类器xml存放目录,不手动新建,会报错
4.target-哈士奇整身图片,用于测试编写的程序识别是否成功
5.bg.dat,告知样本创建程序和训练程序负样本图片的位置
6.info.dat,正样本图片位置,脸的坐标区域
7.pos.vec,运行创建样本命令后,生成的样本描述bg.dat
bad/b (1).jpg
bad/b (2).jpg
bad/b (3).jpg
......info.dat
right/1.jpg 1 0 0 129 142
right/2.jpg 1 0 0 88 94
right/3.jpg 1 0 0 57 76

执行成功的命令行代码

  • 创建样本:
    • opencv_createsamples.exe -vec pos.vec -bg bg.dat -num 3 -w 24 -h 24 -info info.dat
  • 训练:
    • opencv_traincascade.exe -data data -vec pos.vec -bg bg.dat -numPos 3 -numNeg 17 -numStages 3 -precalcValBufSize 32 -precalcIdxBufSize 64 -featureType LBP -w 24 -h 24 -weightTrimRate 0.95 -maxDepth 1

命令行结果

在这里插入图片描述
在这里插入图片描述

识别结果

在这里插入图片描述

如何优化

  1. 对训练的图片和待识别的图片,预处理,灰度图,模糊,来减少干扰
  2. 自己编写训练和识别的算法

相关文章:

  • RabbitMQ 各类交换机
  • 从一次日期格式踩坑经历,谈谈接口设计中的“约定大于配置“
  • Razor编程中@符号的全面解析与深度应用指南
  • JavaScript 自定义对象详解
  • Java多线程从入门到精通
  • 【JavaSE】绘图与事件入门学习笔记
  • 【会员专享数据】2017-2024年我国分省的10米精度土地覆盖数据
  • Boost ASIO 库深入学习(2)
  • 【时时三省】(C语言基础)局部变量和全局变量例题
  • 【51单片机】3. 数码管大师
  • 【CUDA 】核函数性能分析工具
  • PLC入门【2】PLC的接线
  • 系统模块与功能设计框架
  • 【Java学习笔记】System类
  • Linux下的进程调度机制
  • 深入理解 Java 的反射、注解与动态代理
  • 2025新高考二卷选择题第一题题解
  • LangChain4j 1.x 核心源码剖析-基础篇
  • 【项目实训项目博客】用户使用手册
  • Secs/Gem第十二讲(基于secs4net项目的ChatGpt介绍)
  • vs2015网站开发/大片网站推广
  • 该网站的域名已经被其他人绑定/网络快速排名优化方法
  • wordpress 更新主题/优化大师的三大功能
  • 那些平台可以给网站做外链/seo网站关键词优化工具
  • 做网站代理商好赚吗/软文写作案例
  • 中国排名高的购物网站/杭州网站seo推广软件