学习笔记 | 深度卷积神经网络在计算机视觉中的应用

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 学习笔记 | 深度卷积神经网络在计算机视觉中的应用

图像识别是一种利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是计算机视觉领域的一个主要研究方向,在以图像为主体的智能化数据采集与处理中具有十分重要


的作用和影响。目前图像识别技术在图像搜索、商品推荐、用户行为分析以及人脸识别等互联网应用产品中,,同时在智能机器 人、无人自动驾驶和无人机等高新科技产业以及生物学、医学和地质学等众多学科领域具有广阔的应用前景。早期的图像识别系统一般都是针对某个特定的识别任务,且数据的规模不大,泛化能力较差,难以在实际应用问题当中实现精准的识别效果。


1 卷积神经网络


80年代中期,Fukushima等基于感受野概念提出的神经认知机,可以看作是卷积神经网络(Convolution  neural networks,CNNs)的第一次实现,也是第一个基于神经元之间的局部连接性和层次结构组织的人工神经网络。\


1 概念

卷积神经网络是一种为了处理二维输入数据而特殊设计的多层人工神经网络,网络中的每层都由多个二维平面组成,而每个平面由多个独立的神经元组成,相邻两层的神经元之间互相连接,而处于同一层的神经元之间没有连接。CNNs采用了权值共享网络结构使之更类似于生物神经网络,同时模型的容量可以通过改变网络的深度和广度来调整,对自然图像也具有很强的假设(统计的平稳性和像素的局部相关性)。因此,与每层具有相当大小的全连接网络相比,CNNs能够有效降低网络模型的学习复杂度,具有更少的网络连接数和权值参数,从而更容易训练。


2 网络结构


image.png



image.png



INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)-OUTPUT(输出层)


上图展现的是一个简单的卷积神经网络模型,该网络模型有两个卷积层和两个子采样层交替组成。


3 卷积特征提取cov2d

对于大尺寸的图像识别问题,首先从图像中随机选取一小块局域作为训练样本,从该小块样本中学习到一些特征,然后将这些特征作为滤波器,与原始整个图像作卷积运算,从而得到原始图像中任一位置上的不同特征的激活值。局部感知:人的大脑识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。也就是你看人一样,不是一下把整张脸看完,而是看鼻子,眼睛嘴巴等,才有了整体的认知。


image.png



输入图像是32*32*3,3是它的深度3(即R、G、B),卷积层是一个5*5*3的filter(感受野),这里注意:感受野的深度必须和输入图像的深度相同。通过一个filter与输入图像的卷积可以得到一个28*28*1的特征图,上图是用了两个filter得到了两个特征图;我们通常会使用多层卷积层来得到更深层次的特征图。


计算过程:


W:矩阵宽,H:矩阵高,F:卷积核宽和高,P:padding(需要填充的0的个数),N:卷积核的个数,S:步长


width:卷积后输出矩阵的宽,height:卷积后输出矩阵的高


width = (W - F + 2P)/ S + 1


height = (H - F + 2P) / S + 1


当conv2d(), max_pool()中的padding=‘SAME’时,width=W,height=H,当padding=‘valid’时,P=0


输出图像大小:(width,height,N)


filter:相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维。


4 激活函数

所谓激活,实际上是对卷积层的输出结果做一次非线性映射。


如果不用激励函数(其实就相当于激励函数是f(x)=x),这种情况下,每一层的输出都是上一层输入的线性函数。容易得出,无论有多少神经网络层,输出都是输入的线性组合,与没有隐藏层的效果是一样的,这就是最原始的感知机了。通俗地讲,激活函数的作用就是将多个线性输入转换为非线性的关系。如果不使用激励函数,神经网络的每层都只是做线性变换,即使是多层输入叠加后也还是线性变换。通过使用激励函数引入非线性因素后,使神经网络的表示能力更强了。比如:


relu函数:tf.nn.relu(features, name=None)

Sigmoid函数    tf.sigmoid(x, name=None)

tanh函数,反正切函数  tf.tanh(x, name=None)

Softplus    tf.nn.softplus(features, name=None)

Relu6函数   tf.nn.relu6(features, name=None)

image.png



1.5 池化层pooling


池化(Pooling):也称为欠采样或下采样。主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。用池化层减少图像空间的大小,在每一个图层维度上独自完成,保持图像的纵深不变,主要有:


Max Pooling:最大池化;max-pooling,能减小因卷积层参数误差造成估计均值偏移的误差,更多的保留纹理信息。


Average Pooling:平均池化 ;mean-pooling,能减小因邻域大小受限造成的估计值方差增大的误差,更多的保留图像的背景信息,对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征


image.png



计算:池化后的大小


width = (W - F)/ S + 1


height = (H - F) / S + 1



1.6 全连接层


经过前面若干次卷积+激励+池化后,终于来到了输出层,模型会将学到的一个高质量的特征图片全连接层。全连接层主要对特征进行重新拟合,减少特征信息的丢失;输出层主要准备做好最后目标结果的输出。全连接层在整个卷积神经网络中起到”分类器”作用,其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。因此,可以引入dropout操作,来随机删除神经网络中的部分神经元,来解决此问题。还可以进行局部归一化(LRN)、数据增强等操作,来增加鲁棒性。


 当来到了全连接层之后,可以理解为一个简单的多分类神经网络(如:BP神经网络),通过softmax函数得到最终的输出。整个模型训练完毕。



2 图像分类


图像分类问题是通过对图像的分析,将图像划归为若干个类别中的某一种,主要强调对图像整体的语义进行判定。


3 物体检测


与图像分类比起来,物体检测是计算机视觉领域中一个更加复杂的问题,因为一张图像中可能含有属于不同类别的多个物体,需要它们均进行定位并识别其种类。因此,在物体检测中要取得好的效果也比物体分类更具有挑战性,运用于物体检测的深度学习模型也会更加复杂。


4 姿态估计


姿态估计是时下最为重要的计算机视觉挑战性问题之一,原因在于它可以被很快地应用到人物追踪、动作识别以及视频相关的视频分析上,比如视频监控和视频搜索等实际应用面非常广。姿态估计的主要任务就是,给定一张图,图中会有一个人,你需要给出这个人的姿态动作是什么样的。


5 图像分割


图像分割是这样一类问题:对于一张图来说,图上可能有多个物体、多个人物甚至多层背景,希望能做到对于原图上的每个像素点,能预测它是属于哪个部分的(人、动物、背景……)。图像分割作为许多计算机视觉应用研究的第一步十分关键。


6 人脸识别


人脸识别是图像识别领域一个非常重要的研究方向,由于人脸图像具有易采集的特性,因此受到了许多行业的关注,具有非常广阔的应用前景和巨大的商业市场。人脸识别技术主要包括人脸检测、人脸特征提取和人脸识别3个过程。人脸检测是从输入图像或视频流中检测并提 取人脸图像,并进 一 步给出人脸的位置、大小以及各个主要面部器官的位置信息。


相关文章
|
7天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。
|
8天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
8天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
35 5
|
8天前
|
数据可视化 算法 安全
员工上网行为管理软件:S - PLUS 在网络统计分析中的应用
在数字化办公环境中,S-PLUS 员工上网行为管理软件通过精准的数据收集、深入的流量分析和直观的可视化呈现,有效帮助企业管理员工上网行为,保障网络安全和提高运营效率。
18 1
|
5天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
15 2
|
6天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
5天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
5天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。
|
5天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术以及安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和建议来保护个人信息和设备安全。

热门文章

最新文章