如何使用 Opencv 实现人脸检测和人脸识别?

1.人脸检测 CascadeClassifier

    加载 Opencv 自带的人脸检测 haarcascade_frontalface_alt.xml 分类器。

    图像预处理 cvtColor(灰度化) equalizeHist(直方图均衡化)。

    使用 detectMultiScale 函数进行识别。

    使用 rectangle 函数绘制找到的目标矩形框。

    在原图像上 ROI 截取彩色的人脸保存。

2.人脸识别 FaceRecognizer FisherFaceRecognizer LBPHFaceRecognizer

    2.1 人脸识别分类器训练

    样本归一化,即图像大小一致、灰度化、直方图均衡化等。

    Ptr face = EigenFaceRecognizer::create()。

    创建样本和标签向量 std::vector images std::vector labels 并 push_back 加入样本和标签。

    进行训练 face->train(images,labels)。

    保存训练的分类器 face->save("face.xml")。

2.2 人脸识别分类器加载和使用

    加载训练好的分类器 face->load(face.xml)。

    待识别图像预处理 resize cvtColor 等。

    预测输入图像获取标签值 int label = face->predict(Mat src),当然也可以获取 置信度 来调整 阈值。

    根据标签值,绘制 putText 对应的角色名。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 利用opencv实现人脸识别 introduction 使用弱联级分类器主要包含两部分:训练和检测,检测通常使用H...
    lemonCode阅读 3,191评论 0 5
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 15,668评论 4 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,695评论 19 139
  • 第一次见你 我就知道会喜欢你 因为 那天无雨,天微晴 有春风拂面,有万里无云 有花开鸟语,有我也有你 你头向上倚,...
    陈七友阅读 526评论 0 16
  • 文本框架 商业模式 营销模式 营利模式 符合公司运行规律 创新性 1.基于lbs的日志记录 2.社交互联 3.ug...
    CHENGDIEYI阅读 182评论 0 0

友情链接更多精彩内容