OpenCV4.0 DNN-googleNet

2024-05-28 07:38
文章标签 dnn googlenet opencv4.0

本文主要是介绍OpenCV4.0 DNN-googleNet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenCV4.0 DNN-googleNet

OpenCV 4.0最近发布,其中一大亮点便是加入DNN;之前的文章中介绍了OpenCV 4.0的编译,本系列就通过GoogleNet的demo来窥探OpenCV 4.0的DNN。

核心函数介绍

首先需要准备GoogleNet的prototxt,caffemodel,和synset_words.txt;这个在网上很容易下载到。然后就是需要一张RGB或者BGR的测试图片,本文使用的是官方提供的经典图片space_shuttle.jpg。
我们使用的函数非常简单,主要涉及函数有以下几个:

  • readNetFromCaffe
  • blobFromImage
  • setInput
  • forward

blobFormImage

函数原型
Mat cv::dnn::blobFromImage(InputArray 	image,double 	scalefactor = 1.0,const Size & 	size = Size(),const Scalar & 	mean = Scalar(),bool 	swapRB = false,bool 	crop = false,int 	ddepth = CV_32F )		

以上是官方给出的函数原型。

  • image:输入图像
  • scalefactor: multiplier for image values.
  • size:指的不是输入图像的尺寸,是指所需要的尺寸,也就是返回的Mat中数据的尺寸。
  • swapRB:是否交换R和B分量,这在之前的色彩空间转换的文章中介绍过
  • crop:输入图像大小与size不符的时候,是否需要裁剪
  • ddepth:图像的数据类型,目前仅支持32F和8U

以上的参数都很好理解,接下来是关于mean参数,如果之前没有深入研究过深度学习,这个还是不太好理解的。首先给出mean的数值:(104 117 123);数字从什么地方来的呢?这个是在googleNet训练的时候设定的,节选部分train_val.prototxt,可以看到在训练的时候transform_param中设置了mean。

name: "GoogleNet"
layer {name: "data"type: "Data"top: "data"top: "label"include {phase: TRAIN}transform_param {mirror: truecrop_size: 224mean_value: 104mean_value: 117mean_value: 123}data_param {

这篇关于OpenCV4.0 DNN-googleNet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009939

相关文章

深度学习-TensorFlow2 :构建DNN神经网络模型【构建方式:自定义函数、keras.Sequential、CompileFit、自定义Layer、自定义Model】

1、手工创建参数、函数–>利用tf.GradientTape()进行梯度优化(手写数字识别) import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'import tensorflow as tffrom tensorflow.keras import datasets# 一、获取手写数字辨识训练数据集(X_train, Y_train), (X_

自然语言处理-应用场景-问答系统(知识图谱)【离线:命名实体识别(BiLSTM+CRF>维特比算法预测)、命名实体审核(BERT+RNN);在线:句子相关性判断(BERT+DNN)】【Flask部署】

一、背景介绍 什么是智能对话系统? 随着人工智能技术的发展, 聊天机器人, 语音助手等应用在生活中随处可见, 比如百度的小度, 阿里的小蜜, 微软的小冰等等. 其目的在于通过人工智能技术让机器像人类一样能够进行智能回复, 解决现实中的各种问题. 从处理问题的角度来区分, 智能对话系统可分为: 任务导向型: 完成具有明确指向性的任务, 比如预定酒店咨询, 在线问诊等等.非任务导向型:

CV-CNN-2016:GoogleNet-V4【用ResNet模型的残差连接(Residual Connection)思想改进GoogleNet-V3的结构】

Inception V4研究了Inception模块与残差连接的结合。 ResNet结构大大地加深了网络深度,还极大地提升了训练速度,同时性能也有提升。 Inception V4主要利用残差连接(Residual Connection)来改进V3结构,得到Inception-ResNet-v1,Inception-ResNet-v2,Inception-v4网络。 ResNet的残差结构如下

CV-CNN-2015:GoogleNet-V3【贡献:卷积核分解(Factorization)减少参数量,比如将7x7分解成两个一维的卷积(1x7,7x1)】【避免表达瓶颈,更深】

Inception V3一个最重要的改进是分解(Factorization),将7x7分解成两个一维的卷积(1x7,7x1),3x3也是一样(1x3,3x1),这样的好处,既可以加速计算,又可以将1个卷积拆成2个卷积,使得网络深度进一步增加,增加了网络的非线性(每增加一层都要进行ReLU)。 另外,网络输入从224x224变为了299x299。 参考资料: CNN模型合集 | 7

CV-CNN-2015:GoogleNet-V2【首次提出Batch Norm方法:每次先对input数据进行归一化,再送入下层神经网络输入层(解决了协方差偏移问题)】【小的卷积核代替掉大的卷积核】

GoogLeNet凭借其优秀的表现,得到了很多研究人员的学习和使用,因此GoogLeNet团队又对其进行了进一步地发掘改进,产生了升级版本的GoogLeNet。 GoogLeNet设计的初衷就是要又准又快,而如果只是单纯的堆叠网络虽然可以提高准确率,但是会导致计算效率有明显的下降,所以如何在不增加过多计算量的同时提高网络的表达能力就成为了一个问题。 Inception V2版本的解决方案就是修

OpenCV4深度神经网络DNN实战教程

OpenCV4深度神经网络DNN实战教程 1-概述与环境配置2-卷积神经网络概述3-加载网络模型与设置3.1 所需的模型下载3.2 所使用的模型(googlenet)3.3 Net介绍3.4 代码输出网络结构信息3.5 计算后台设置3.6 所有代码 4-图像分类网络inception的使用5-读取分类标签文件显示分类6-对象检测网络介绍7-SSD对象检测网络加载与执行8-SSD对象检测推理输

OpenCV3.3 DNN简介

如今,在机器视觉领域,深度学习已经是最流行且增长最快的一个方向了。OpenCV自3.1版本其就在contrib中加入了DNN模块。到3.3版本时,将DNN模块由contrib提升到了正式代码块中。在住仓库中的位置为:https://github.com/opencv/opencv/tree/master/modules/dnn。同时相较于3.1版本,3.3版本对DNN做了很大改进! 该DNN模块

秃姐学AI系列之:GoogLeNet + 代码实现

目录 GoogLeNet —— 含并行连结的网络 卷积层超参数 Inception块:小学生才做选择,我全要! 为什么要用Inception块? GoogLeNet架构 详细展开每个Stage Stage 1 & 2 Stage 3 Stage 4 & 5 Inception 有各种后续变种 总结  代码实现 Inception Block 逐步实现每个Stage

Tx1内存不足安装opencv4.0

tx1的内存只有16个G,安装opencv和opencv_contrib内存就不够用了。于是,我就用外界SD卡的形式进行安装。在make的时候,到40%时,出现了错误:cmake_symlink_library: System Error: Operation not supported。网上查找原因,说是:创建链接不成功,要确认当前帐户下是否有权限在编译的目录中有创建链接的权限。 网上给出的解

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-27含并行连结的网络GoogLeNet

27含并行连结的网络GoogLeNet import torchfrom torch import nnfrom torch.nn import functional as Fimport liliPytorch as lpimport matplotlib.pyplot as pltclass Inception(nn.Module):# c1--c4是每条路径的输出通道数def