【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. 自己编写训练和识别的算法
相关推荐
艾莉丝努力练剑7 小时前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
牛哥带你学代码7 小时前
远程打游戏远控测评
人工智能·智能手机
小此方7 小时前
「C++AI大模型接入SDK」(一) API接入与本地两种方式对比、API Key获取、API报文详解与简单API的构建
开发语言·c++·人工智能
geneculture7 小时前
三体虚拟竞赛的极致推演:AI for Dao
人工智能·ai for science·信息科学·哲学与科学统一性·序位逻辑·ai for maths·ai for logic
Raas10012 小时前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持哪些模型?从原理到落地
大数据·人工智能·网关·gateway·mai gateway·企业级产品
豪气的程序猿14 小时前
电商图片工作流怎么选?Lingko AI 对比折叠键盘主图与详情页
人工智能
小刘快学习14 小时前
把 AI 账单拆到部门:企业 AI 网关的精准分账思路
人工智能
米小虾15 小时前
你让监控模型读的思维链,可能是攻击者写好的剧本
人工智能
deepseek2315 小时前
Iris 开源搜索智能体拆解:35B 与 397B 中文仅差 0.3 分,上下文管理胜过堆参数
人工智能·ai agent·开源模型
ai小陈15 小时前
CUDA Stream实战:让数据传输与GPU计算真正重叠
人工智能·深度学习·ai·pdf·云计算·gpu算力