【个人笔记】OpenCV4 C++ 快速入门 30课

个人资料,仅供学习使用
修改时间——2022年1月28日 06:36:26
学习课程:OpenCV4 C++ 快速入门视频30讲
视频老师:贾志刚

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学堂 / OpenCV课程资料

下载完之后到图中目录: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个参数
			第1个参数 输入
			第2个参数 图像空间大小(默认1.0,即图像仍保持在0~255色彩空间)
			第3个参数 size
			第4个参数 均值
			第5个参数 是否交换RB通道(默认false)
			第6个参数 调整图像大小后是否剪切(默认false)
			第7个参数 输出的blob深度(默认CV_32F)
	
	returns
		按照NCHW(数量,通道,高度,宽度)顺序的4维Mat,blob就是这个4维Mat

Net::setInput方法</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啦啦啦大赛第大所

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

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

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

打赏作者

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

抵扣说明:

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

余额充值