30 案例:实施人脸检测
opencv知识点:
- 创建和操作综合人工神经网络 -
dnn::Net
类- 读取以
TensorFlow
框架格式存储的网络模型 -readNetFromTensorflow
- 从图像创建4维
blob - blobFromImage
- 设置网络的新输入值-
Net::setInput
- 运行正向传递以计算指定层的输出 -
Net::forward
本课所解决的问题:
- 如何运行opencv4提供的人脸检测模型
1.OpenCV 4
本节课的内容主要基于opencv 4 实现,开始我们先了解一下opencv4
。
OpenCV4.x
发布以来,其依靠良好的接口代码、系统级别的优化、更加通用易学的函数调用,集成OpenVINO
与tensorflow
、caffe
等模型加速推断、实现了从传统的图像处理到基于深度学习的视觉处理路线图的完整拓展。
OpenCV4
毫无疑问是一个OpenCV
发展历史的一个重要里程碑之作。
官方的宣传口号OpenCV4 is more than OpenCV
也充分说明OpenCV4
是整合深度学习的新一代计算机视觉开发框架!
本课将介绍一种opencv4
自带的,一个进行人脸检测的模型
2.下载人脸检测模型和
为了方便,我们不采用视频的方式,我们就直接去下载课程源码zip了
下载完之后到图中目录:opencv_tutorial_data-master → models → face_detector
目标文件夹:安装opencv目录下的sources → samples → dnn → face_detector
3.人脸检测模型演示
开始前,我们可以先把头文件和命名空间补上
这里提一下,当我们使用Net导入模型时,关于模型的各种参数可以从这个文档查看
在运行这个人脸检测模型之前,我们需要先来了解几个API
dnn::Net类
readNetFromTensorflow
blobFromImage
Net::setInput
方法Net::forward
方法Mat::ptr
具体介绍如下
dnn::Net类
dnn::Net类
创建和操作综合人工神经网络
神经网络表示为有向无环图 (DAG),其中顶点是层实例,边指定层输入和输出之间的关系。
每个网络层在其网络内都有唯一的整数id 和唯一的字符串名称。LayerId 可以存储图层名称或图层ID。
此类支持其实例的引用计数,即副本指向同一个实例。
readNetFromTensorflow
readNetFromTensorflow
读取以TensorFlow框架格式存储的网络模型
共2个参数
第1个参数 pb文件路径
第2个参数 pbtxt文件路径
blobFromImage
blobFromImage
从图像创建4维blob(斑点,深度学习相关知识)
共7个参数
第