文档库 最新最全的文档下载
当前位置:文档库 › 基于某OpenCV与深度学习框架的物体图像识别

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

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

基于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)联想记忆功能和良好的容错性:人工神经网络通过自身的特有网络结构

将处理的数据信息存储在神经元之间的权值中,具有联想记忆功能,从单一的某个权值并看不出其所记忆的信息容,因而是分布式的存储形式,这就使得网络有很好的容错性,并可以进行特征提取、缺损模式复原、聚类分析等模式信息处理工作,又可以作模式联想、分类、识别工作。它可以从不完善的数据和图形中进行学习并做出决定。由于知识存在于整个系统中,而不只是一个存储单元中,预订比例的结点不参与运算,对整个系统的性能不会产生重大的影响。能够处理那些有噪声或不完全的数据,具有泛化功能和很强的容错能力。

一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。

(4)良好的自适应、自学习功能:人工神经网络通过学习训练获得网络的权值与结构,呈现出很强的自学习能力和对环境的自适应能力。神经网络所具有的自学习过程模拟了人的形象思维方法,这是与传统符号逻辑完全不同的一种非逻辑非语言。自适应性根据所提供的数据,通过学习和训练,找出输入和输出之间的在关系,从而求取问题的解,而不是依据对问题的经验知识和规则,因而具有自适应功能,这对于弱化权重确定人为因素是十分有益的。

(5)知识的分布存储:在神经网络中,知识不是存储在特定的存储单元中,而是分布在整个系统中,要存储多个知识就需要很多。在计算机中,只要给定一个地址就可得到一个或一组数据。在神经网络中要获得存储的知识则采用“联想”的办法,这类似人类和动物的联想记忆。人类善于根据联想正确识别图形,人工神经网络也是这样。神经网络采用分布式存储方式表示知识,通过网络对输入信息的响应将激活信号分布在网络神经元上,通过网络训练和学习使得特征被准确地记忆在网络的连接权值上,当同样的模式再次输入时网络就可以进行快速判断。

(6)非凸性:一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。

正是神经网络所具有的这种学习和适应能力、自组织、非线性和运算高度并行的能力,解决了传统人工智能对于直觉处理方面的缺陷,例如对非结构化信息、语音模式识别等的处理,使之成功应用于神经专家系统、组合优化、智能控制、预测、模式识别等领域。

2.3 卷积神经网络

卷积神经网络(Convolutional Neural Networks,CNN)就是深度学习结构的一种。它是一种受视觉神经机制的启发而设计的多层感知器。1962年,Hubel和Wiesel对猫的视觉皮层细胞的进行了相关研究,并提出了一种称之为感受野(ReceptiveField)的概念。1980年,Fukushima在感受野概念的基础上提出了神经认知机(Neocognitron)模型,该模型可以看作是CNN的第一个实现,也是感受野概念首次应用于在人工神经网络领域。

图2.3 输入图像的部分区域是隐藏神经元的局部感受野

CNN是一种特殊的深层的网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的,另一方面同一层中某些神经元之间的连接的权重是共享的。它的局部连接和权值共享的网络结构与生物神经网络非常类似,降低了网络模型的复杂度,减少了权值的数量。

基于OpenCV识别库的面部图像识别系统的设计

基于OpenCV识别库的面部图像识别系统的设计 本系统采用J2EE技术并以OpenCV开源计算机视觉库技术为基础,实现一套具有身份验证功能的面部图像识别信息管理系统。系统使用MySQL数据库提供数据支撑,依托于J2EE的稳定性和Java平台的可移植性使得本系统可以在各个操作系统平台中运行,同时提供在互联网中使用面部识别技术的一套较为完备的解决方案。 标签:OpenCV;人脸识别;生物学特征 引言 随着信息技术的飞速发展以及互联网的深入普及,越来越多的行业和领域使用信息技术产品以提高工作效率和管理水平。但是由于人们隐私信息的保护意识薄弱,出现了许多信息安全的问题。在人们对于信息安全越来越重视的情况下,许多技术被应用到信息安全领域中来。较为先进的技术有虹膜识别技术、遗传基因识别技术以及指纹识别技术等。而论文采用的是当前热点的面部图像识别技术。 1 系统实现算法及功能分析 1.1 面部图像的生物学特征模型的建立 本系统是利用面部图形的生物学特征来识别不同的人。由于每个人的面部图像都有各自的特征但又具有一定的通性,需要应用生物学中相关知识加以解决。可以利用已有的生物学测量手段以及现有的算法构建人的面部图像生物学特征模型(简称:面部模型),并应用于系统中,面部模型的建立为面部图像识别的功能提供实现依据。 1.2 知识特征库及面部识别引擎的建立 在前述面部模型建立完成后,需要建立相应的知识库以及面部识别引擎方可进行身份的识别。可经过大量数据的采集和分析后建立知识库,并根据知识库的特点建立相应的识别引擎。此识别引擎对外开放,在本系统中提供其它外来程序的调用接口,其它系统能够通过本接口实现识别引擎的调用实现对于面部图形的识别,从而达到识别引擎的可复用性。在技术条件允许的情况下,提供知识库的智能训练以及半自动构建支持。 1.3 面部图像的采集与预处理 本系统中采用了预留API接口,利用USB图形捕获设备采集数据图像。经过USB设备的捕获,使用JMF(Java Media Framework)来处理已捕获的图像数据,对捕获的图像进行面部图行检测和实时定位跟踪。

基于OpenCv的图像识别

基于2DPCA的人脸识别算法研究 摘要 人脸识别技术是对图像和视频中的人脸进行检测和定位的一门模式识别技术,包含位置、大小、个数和形态等人脸图像的所有信息。由于近年来计算机技术的飞速发展,为人脸识别技术的广泛应用提供了可能,所以图像处理技术被广泛应用了各种领域。该技术具有广阔的前景,如今已有大量的研究人员专注于人脸识别技术的开发。本文的主要工作内容如下: 1)介绍了人脸识别技术的基础知识,包括该技术的应用、背景、研究方向以及 目前研究该技术的困难,并对人脸识别系统的运行过程以及运行平台作了简单的介绍。 2)预处理工作是在原始0RL人脸库上进行的。在图像的预处理阶段,经过了图 象的颜色处理,图像的几何归一化,图像的均衡化和图象的灰度归一化四个过程。所有人脸图像通过上述处理后,就可以在一定程度上减小光照、背景等一些外在因素的不利影响。 3)介绍了目前主流的一些人脸检测算法,本文采用并详细叙述了Adaboost人脸 检测算法。Adaboost算法首先需要创建人脸图像的训练样本,再通过对样本的训练,得到的级联分类器就可以对人脸进行检测。 4)本文介绍了基于PCA算法的人脸特征点提取,并在PCA算法的基础上应用了 改进型的2DPCA算法,对两者的性能进行了对比,得出后者的准确度和实时性均大于前者,最后将Adaboost人脸检测算法和2DPCA算法结合,不仅能大幅度降低识别时间,而且还相互补充,有效的提高了识别率。 关键词:人脸识别 2DPCA 特征提取人脸检测

2DPCA Face Recognition Algorithm Based on The Research Abstract:Face recognition is a technology to detect and locate human face in an image or video streams,Including location, size, shape, number and other information of human face in an image or video streams.Due to the rapid development of computer operation speed makes the image processing technology has been widely applied in many fields in recent years. This paper's work has the following several aspects: 1)Explained the background, research scope and method of face recognition,and introduced the theoretical method of face recognition field in general. 2)The pretreatments work is based on the original ORL face database. In the image preprocessing stage, there are the color of the image processing, image geometric normalization, image equalization and image gray scale normalization four parts. After united processing, the face image is standard, which can eliminate the adverse effects of some external factors. 3)All kinds of face detection algorithm is introduced, and detailed describing the Adaboost algorithm for face detection. Through the Adaboost algorithm to create a training sample,then Training the samples of face image,and obtaining the cascade classifier to detect human face. 4)This paper introduces the facial feature points extraction based on PCA ,and 2DPCA is used on the basis of the PCA as a improved algorithm.Performance is compared between the two, it is concluds that the real time and accuracy of the latter is greater than the former.Finally the Adaboost face detection algorithm and 2DPCA are combined, which not only can greatly reduce the recognition time, but also complement each other, effectively improve the recognition rate. Key words:Face recognition 2DPCA Feature extraction Face detection

基于opencv对图像的预处理

基于opencv 对图像的预处理 1.问题描述 本次设计是基于opencv 结合c++语言实现的对图像的预处理,opencv 是用于开发实时的图像处理、计算机视觉及模式识别程序;其中图像的预处理也就是利用opencv 对图像进行简单的编辑操作;例如对图像的对比度、亮度、饱和度进行调节,同时还可以对图像进行缩放和旋转,这些都是图像预处理简单的处理方法;首先通过opencv 加载一幅原型图像,显示出来;设置五个滑动控制按钮,当拖动按钮时,对比度、亮度、饱和度的大小也会随之改变,也可以通过同样的方式调节缩放的比例和旋转的角度,来控制图像,对图像进行处理,显示出符合调节要求的图像,进行对比观察他们的之间的变化。 2.模块划分 此次设计的模块分为五个模块,滑动控制模块、对比度和亮度调节模块、饱和度调节模块、缩放调节模块、旋转调节模块,他们之间的关系如下所示: 图一、各个模块关系图 调用 调用 调用 调用 滑动控制模块 对比度和亮度调节模块 饱和度调节模块 缩放调节模块 旋转调节模块

滑动控制模块处于主函数之中,是整个设计的核心部分,通过createTrackbar创建五个滑动控制按钮并且调用每个模块实现对图像相应的调节。 3.算法设计 (1)滑动控制: 滑动控制是整个设计的核心部分,通过创建滑动控制按钮调节大小来改变相应的数据,进行调用函数实现对图像的编辑,滑动控制是利用createTrackbar(),函数中包括了滑动控制的名称,滑动控制显示在什么窗口上,滑动变量的地址和它调节的最大围,以及每个控制按钮应该调用什么函数实现什么功能; (2)对比度和亮度的调节: 对比度和亮度的调节的原理是依照线性理论,它的公式如下所示:g(x)=a* f(x) +b,其中f(x)表示源图像的像素,g(x)表示输出图像的像素,参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度,参数b通常被称为偏置(bias),常常被用来控制图像的亮度; (3)饱和度的调节: 饱和度调节利用cvCvtColor( src_image, dst_image, CV_BGR2HSV )将RGB 颜色空间转换为HSV颜色空间,其中“H=Hue”表示色调,“S=Saturation”表示饱和度,“V=Value ”表示纯度;所以饱和度的调节只需要调节S的大小,H 和V的值不需要做任何的改变; (4)旋转的调节: 旋转是以某参考点为圆心,将图像的个点(x,y)围绕圆心转动一个逆时针角度θ,变为新的坐标(x1,y1),x1=rcos(α+θ),y1=rsin(α+θ),其中r是图像的极径,α是图像与水平的坐标的角度的大小; (5)缩放的调节: 首先得到源图像的宽度x和高度y,变换后新的图像的宽度和高度分别为x1和y1,x1=x*f,y1=y*f,其中f是缩放因子; 4.函数功能描述 (1)主函数main()用来设置滑动控制按钮,当鼠标拖动按钮可以得到相应的数据大小,实现手动控制的功能,当鼠标拖动对比度和亮度调节是,主函数调用

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

基于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的优势

毕业设计:基于OpenCV的人脸识别算法(终稿)-精品

安徽工业大工商学院 毕业学士论文 基于OpenCV的人脸识别算法 姓名:陈滔 申请学位级别:学士专业:测控技术与仪器 指导教师:方挺

摘要 人脸在社会交往中扮演着十分重要的角色,是人类在确定一个人身份时所采用的最普通的生物特征,研究人脸跟踪识别及其相关技术具有十分重要的理论价值和应用价值。彩色图像序列的人脸检测、跟踪与识别技术是随着计算机技术的高速发展和视频监控等应用的需要在近几年才逐渐成为一个研究热点。本文着重构建一套人脸跟踪识别系统,致力于精确实时地对彩色视频中的人脸图像检测跟踪,并可以将跟踪到的人脸图片传输到识别端进行身份识别。系统分为客户端和服务器两部分。针对传统Camshifl跟踪算法进行形态学处理、分配多个跟踪器等改进后的算法应用于客户端进行多人脸的跟踪。服务器端首先将人脸图像按其主要特征进行分块,再对分块图执行Eigenface算法实现人脸身份的识别。这套系统完成了对多人脸的跟踪效果,可广泛的应用于各种安防系统之中如:ATM机监控系统,门禁系统等。

Abstract Human face is 0111"primary focus of attention in social intercourse playingamajor rolei conveying dentity and emotion.Researchonthe face tracking,recognition technology has great theoreticaland practical value.This paper focusesOilbuildingasetofhumanface recognition and trackingsystem tocommitted toaccurate and real-timecolorvideoimages,andcalltransmit the tracked human face image to the recognition part to identify the person’S status.Thesystem is divided into client and server parts.Thetracking algorithm whichcarrieson morphology processing after traditional track algorithm Camshifl and assignments severaltrackingdevices is applied to the client for duplex facetracking.Theserver—side first divides the person face image into blocksaccording to its chief feature,then the blocksuses the Eigenfacealgorithm separately to realize the person’S status recognition.The system implementation for multiple face trackingcallbe widelyused among the various security systems,suchas:ATM machine monitoring system,accesscontrol system.Keywords:Face DetectionFace TrackingFace Recognition Eigenface Camshift

基于OpenCV的图像处理

科技信息 教学中不断探索的课题。 参考文献 [1]陈祝军.分析化学实验专业化初探[J ].安徽职业技术学院学报,2004,3(1):39-40. [2]李祥,黄宁选.无机与分析化学实验课改革探讨[J ].大学化学,2003,18(7):16-18. [3]黄斌.对工学结合人才培养模式若干问题的探究[J ].教育探索, 2008,(3):79-80. [4]沈萍.高职有机化学实验课程改革初探[J ].职业教育研究,2005,(10):143. [5]沈萍.高职有机化学实验课程改革初探[J ].职业教育研究,2005,(10):143. [6]李克安,赵风林.分析化学教学的探讨与实践[J ].大学化学,2003,28(1):26-28. (上接第218页) OpenCV 的全称是Open Source Computer Vision Library ,是一个跨平 台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发, 以BSD 许可证授权发行,可以在商业和研究领域中免费使用,并且源代码是公开的。OpenCV 由一系列C 函数和少量C++类构成,实现了图像处理和 计算机视觉方面的很多通用算法,可用于开发实时的图像处理、 计算机视觉以及模式识别程序,极大方便了图像和视频处理研究者进行二次开发。 1、OpenCV的历史与特点 OpenCV 主要创作人员是Intel 的Performance Library Team 和Intel 俄国的一些专家,OpenCV 的第一个测试版本于2000年的IEEE 机器视 觉和模式识别会议上公布, 2001年到2005年间又发布了5个测试版本。2006年,OpenCV1.0版本正式发布。2009年10月,OpenCV2.0版本发布,功能大幅度增强。 OpenCV 在计算机视觉领域得到广泛应用,与其突出的优点是密不可分的: ●跨平台,可移植性好,无论Windows 、Linux 还是M ac OS 都可以运行; ●支持大多数C /C++编译器,如:VC6.0、https://www.wendangku.net/doc/bc9784615.html,2008、https://www.wendangku.net/doc/bc9784615.html,2005及C++Builder 等,可以轻易在不同平台之间进行移植; ●对个人及商业开发免费,源代码公开;●提供方便灵活的用户接口,采用C 、C++编写,包括300多个C /C++函数,代码效率高;支持中、高层API ;可以使用外部库,也可以独立使用; ●具备强大的图像和矩阵运算能力,减少开发者的工作量,有效提高开发效率和程序运行的可靠性; ●针对Intel 的处理器进行了优化。2、OpenCV的结构和应用 OpenCV 的程序构成了一个完整的系统,并有着自己独特的数据结构。目前OpenCV 主要包含如下几个子库: ●CxCore :该库提供了所有OpenCV 运行时的一些最基本的数据结构,包括矩阵,数组的基本运算,包括出错处理的一些基本函数; ●Cv :图像处理和计算机视觉功能(图像处理、结构分析、运动分析、 物体跟踪、模式识别、摄像机定标);●机器学习:用于分类、回归和数据聚类的类和函数;●CvAux :包括一些三维跟踪、PCA 、HMM 等函数;●HighGUI :用于用户交互(GUI 、图像视频的输入输出)。OpenCV 主要面向图像和视频处理,其主要应用包括:二维和三维 特征提取工具包(2D and 3D feature toolkits)、自运动估计(Egomotion esti-mation )、人脸识别(Face Recognition)、手势识别(Gesture Recognition)、人机 交互(Human-Computer Interface)、 移动机器人(M obile robotics)、运动理解(Motion Understanding)、目标识别(Object Identification)、分割与识别(Seg mentation and Recognition)、 立体视觉(Stereopsis Stereo vision:depth percep-tion from 2cameras)、 运动估计结构(Structure from motion)、运动跟踪(Mo-tion Tracking)等。 另外,OpenCV 包含一些机器学习库,主要有Boosting 、决策树(De-cision Trees)、期望最大化算法(Expectation M aximization)、k-最近邻算法(k-nearest neighbor algorithm)、朴素贝叶斯分类器(Naive Bayes classifier)、 人工神经网络(Artificial neural networks)、随机森林(Random forest)、支持向量机(Support Vector Machine)。 3、利用OpenCV进行人脸检测下面就以人脸检测为例,介绍OpenCV 的应用。人脸检测属于人脸识别(Face Recognition)第一步,人脸大体可以分为以下几种方法:基于神经网络的检测,基于特征的检测,基于颜色的检测等。基于神经网络的检测,需要大量的真假人脸图像来训练神经网络;基于特征的方法是利 用人脸的一些特征,比如眼睛、 鼻子等来检测;基于颜色的方法是通过人脸的颜色如黄色、棕色来检测。 OpenCV 中已经提供了训练好的Haar 级联分类器,使得人脸检测可以很方便的实现。OpenCV 中的Haar 特征的级联表中包含的是boost 分类器。所谓Harr 级联分类器是指由若干个简单boost 分类器级联成的一个大的分类器,被检测的目标依次通过每一个分类器,可以通过所有分类器的即可判定为人脸区域。OpenCV 中的人脸检测主要分为四步,其具体过程如下所示: 利用Harr 级联分类器进行人脸检测的实验图片如下,结果证明利用OpenCV 的Harr 分类器实现人脸检测,速度快、效率高,虽然检测率 不能达到100%, 存在误判现象,但是效果已经很不错了。4、总结 除了OpenCV ,目前比较有代表性的计算机视觉库/软件还有Intel 公司的IPP ,微软公司的visDSK ,MathWorks 公司的Matlab 等。IPP 是Intel 的图像、信号处理的集成开发库,收费并且源代码不公开。Microsoft 公司的visDSK 图象处理库,免费,开源,与OpenCV 功能相似。Matlab 功 能丰富,算法实现方便简单,适合研究、 仿真和演示,但是在开发产品方面效率低,而且软件费用高。 相比之下,跨平台的OpenCV 图象处理库,免费,源代码公开,功能强大,有着突出的优点,使用人数众多,资源丰富,其必将会成为图像视频处理领域的强有力的工具。 参考文献[1]李振伟等.基于OpenCV 的运动目标跟踪及其实现[J ].科学计 算及信息处理, 2008年20期[2]陈健等.一种基于Haar 小波变换的彩色图像人脸检测方法[J ].微计算机信息,2005.1 基于OpenCV 的图像处理 南京信息职业技术学院 阴法明 [摘要]OpenCV 是Intel 公司推出的开源、免费的计算机视觉程序库,利用OpenCV 可以很方便地实现图像和视频处理。本文介绍 了OpenCV 的历史、 特点以及结构和应用,并以人脸检测为例介绍了OpenCV 在图像处理中的应用。[关键词]OpenCV 人脸检测计算机与网络 220——

基于OpenCV的图像轮廓提取方法的实现

基于OpenCV的图像轮廓提取的实现 【摘要】OpenCV是近几年来推出的一个开源的、免费的计算机视觉库.OpenCV的目标是构建一个简单易用的计算机视觉框架,利用它所包含的函数帮助开发人员方便快捷地实现图像处理和视频处理。而图像的轮廓是图像的一种基本特征,携带着一幅图像大部分的信息,经常被应用到较高层次的图像应用中。它在图像分离,图像识别和图像压缩等领域有很广泛的应用,也是图像处理的基础。本文首先阐述了OpenCV的特点和结构,然后采用一系列的可行性算法来获取图像特征参数并通过各种算子(Sobel算子,Laplace算子,Canny算子)对图像的灰度进行分析,调节,用实现对图像的边缘检测和轮廓提取。 【关键词】OpenCV 图像轮廓提取

The realization of the image contour extraction based on OpenCV 【Abstract】OpenCV is launched an open source in recent years.Free computer vision library. OpenCV's goal is to build a simple and easy to use computer vision framework, function to help developers use it contains quick and easy to realize image processing and video processing.And the outline of the image is a basic feature of image, carrying an image, most of the information is often applied to the higher level of the image application.It in image separation, image recognition and image compression, and other fields have a wide range of applications, is also the basis of image processing.At first, this paper expounds the characteristics and structure of OpenCV, then a series of the feasibility of the algorithm is used to obtain image feature parameters and through a variety of operator (Sobel operator, Laplace operator, Canny operator) analysis of image gray level, adjustment, use of image edge detection and contour extraction. 【Key words】OpenCV Image Contour extraction

相关文档
相关文档 最新文档