C++ DNN Opencv3.4 实现人脸计数和人脸检测

本文介绍了如何使用OpenCV 3.4的dnn模块实现人脸检测和计数,通过C++接口加载预先训练的深度学习模型,包括Caffe和TensorFlow模型。文章强调了深度学习在人脸检测中的优势,相较于传统的HAAR级联,深度学习模型更准确、快速。提供了下载模型文件的步骤和演示代码,展示了如何读取模型、初始化网络、调整输入数据并获取输出。
摘要由CSDN通过智能技术生成

前言

OpenCV 3.3正式发布后,对深度学习(dnn模块)提供了更好的支持,dnn模块目前支持Caffe、TensorFlow、Torch、PyTorch等深度学习框架。

另外,新版本中使用预训练深度学习模型的API同时兼容C++和Python,让系列操作变得非常简便

  • 从硬盘加载模型;
  • 对输入图像进行预处理;
  • 将图像输入网络,获取输出的分类。

当然,我们不能、也不该用OpenCV训练深度学习模型,但这个新版本让我们能把用深度学习框架训练好了的模型拿来,高效地用在OpenCV之中。

在很久很久以前,用Opencv2.4x跟Opencv3.0进行人脸检测的时候,都是基于HAAR级联,但是我测试过HAAR级联,明显不太准,而且速度慢。但是现在2020年啦,深度学习的快速发展,使人脸检测 越来越精准,在Opencv4发布以来,官方支持的人脸检测方法已经转换为支持深度学习的快准狠的方法了,就连HAAR级联训练的工具都在Opencv4中除名了,其实已经有了支持深度学习的人脸检测算法,并且准确率和速度都比HAAR好,那再学HAAR级联无疑是浪费时间和精力了,要学会跟着时代的步伐嘛,所以与时俱进很重要的。

注意:本文不涉及任何原理,只讲具体的应用。

一、下载模型文件

在OpenCV的\sources\samples\dnn\face_detector目录下,有一个download_weights.py脚本文件,首先运行一下,下载模型文件。下载的模型文件分别为:
Caffe模型:

res10_300x300_ssd_iter_140000_fp16.caffemodel
deploy.prototxt

tensorflow模型:

opencv_face_detector_uint8.pb
opencv_face_detector.pbtxt

pb文件的能够保存tensorflow计算图中的操作节点以及对应的各张量,方便我们日后直接调用之前已经训练好的计算图。

其中tensorflow的模型OpenCV官方对它进行了量化处理,大小只有2MB左右,非常适合在各种

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青年夏日科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值