基于OpenCV与深度学习框架的物体图像识别

  • 格式:docx
  • 大小:1.98 MB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于OpenCV与深度学习框架Caffe的物体图像识别

摘要:本文主要介绍深度神经网络中的卷积神经的相关理论与技术。研究采用OpenCV深度学习模块DNN与深度学习框架Caffe进行物体识别。采用OpenCV 中的DNN模块加载深度学习框架Caffe模型文件,对物体图像进行识别。实验结果表明,卷积神经网络在物体的识别方面具有较高的准确率。

一.概述

1.1 OpenCV简介

OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV 是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C 函数和少量C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。其最新版本是3.2,于2016年12月23日发布。OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。在其最新版3.2版本中,已经添加了深度神经网络模块,并支持深度学习框架Caffe模型(Caffe framework models)。

1.2 深度学习框架Caffe简介

Caffe(Convolutional Architecture for Fast Feature Embedding)是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清,曾在Google 工作,现任Facebook研究科学家。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换。Caffe的优势

是上手快:模型与相应优化都是以文本形式而非代码形式给出。Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。速度快:能够运行最棒的模型与海量的数据。Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms。模块化:方便扩展到新的任务和设置上。可以使用Caffe提供的各层类型来定义自己的模型。开放性:公开的代码和参考模型用于再现。

二.人工神经网络理论简介

2.1 概述

人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起,以其独特的知识表示方式和智能化的自适应学习能力,引起各学科领域的关注。它实际上是一个有大量简单元件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。

神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),神经网络就是通过这种方式来模拟人类的记忆。网络的输出则取决于网络的结构、网络的连接方式、权重和激活函数。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。神经网络的构筑理念是受到生物的神经网络运作启发而产生的。人工神经网络则是把对生物神经网络的认识与数学统计模型相结合,借助数学统计工具来实现。另一方面在人工智能学的人工感知领域,我们通过数学统计学的方法,使神经网络能够具备类似于人的决定能力和简单的判断能力,这种方法是对传统逻辑学演算的进一步延伸。

图2.1 基本神经元模型

而深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

图2.2深度学习本基本架构示意图

从一个输入中产生一个输出所涉及的计算可以通过一个流向图(flow graph)来表示:流向图是一种能够表示计算的图,在这种图中每一个节点表示一个基本的计算以及一个计算的值,计算的结果被应用到这个节点的子节点的值。考虑这样一个计算集合,它可以被允许在每一个节点和可能的图结构中,并定义了一个函数族。输入节点没有父节点,输出节点没有子节点。这种流向图的一个特别属性是深度(depth):从一个输入到一个输出的最长路径的长度。

2.2 神经网络的特点

神经网络是由存储在网络内部的大量神经元通过节点连接权组成的一种信息响应网状拓扑结构,它采用了并行分布式的信号处理机制,因而具有较快的处理速度和较强的容错能力。神经网络模型用于模拟人脑神经元的活动过程,其中包括对信息的加工、处理、存储、和搜索等过程。人工神经网络具有如下基本特点:

(1)高度的并行性:人工神经网络有许多相同的简单处理单元并联组合而成,虽然每一个神经元的功能简单,但大量简单神经元并行处理能力和效果,却十分惊人。人工神经网络和人类的大脑类似,不但结构上是并行的,它的处理顺序也是并行和同时的。在同一层内的处理单元都是同时操作的,即神经网络的计算功能分布在多个处理单元上,而一般计算机通常有一个处理单元,其处理顺序是串行的。

人脑神经元之间传递脉冲信号的速度远低于冯·诺依曼计算机的工作速度,前者为毫秒量级,后者的时钟频率通常可达108Hz 或更高的速率。但是,由于人脑是一个大规模并行与串行组合处理系统,因而在许多问题上可以做出快速判断、决策和处理,其速度可以远高于串行结构的冯·诺依曼计算机。人工神经网络的基本结构模仿人脑,具有并行处理的特征,可以大大提高工作速度。

(2)高度的非线性全局作用:人工神经网络每个神经元接受大量其他神经元的输入,并通过并行网络产生输出,影响其他神经元,网络之间的这种互相制约和互相影响,实现了从输入状态到输出状态空间的非线性映射,从全局的观点来看,网络整体性能不是网络局部性能的叠加,而表现出某种集体性的行为。

非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性人工神经网络。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

(3)联想记忆功能和良好的容错性:人工神经网络通过自身的特有网络结构将处理的数据信息存储在神经元之间的权值中,具有联想记忆功能,从单一的某个权值并看不出其所记忆的信息内容,因而是分布式的存储形式,这就使得网络有很好的容错性,并可以进行特征提取、缺损模式复原、聚类分析等模式信息处