开源计算机视觉库OpenCV的应用

时间:2024-03-02 点赞:46023 浏览:89931 作者原创标记本站原创

本文是一篇计算机论文范文,关于计算机相关毕业论文开题报告,关于开源计算机视觉库OpenCV的应用相关在职毕业论文范文。适合计算机及嵌入式及操作系统方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

摘 要计算机视觉识别具有非常现实的重要意义,本文通过对开源视觉库的研究,将该算法移植到嵌入式系统中,实现识别器件的小型化,降低功耗,提高便携性.为此,制作了一套嵌入式视觉识别系统,在以ARM9系列处理器为核心处理器的控制板上采用linux内核的自主操作系统,配合CMOS摄像头特性进行了驱动程序的开发,实现了图像采集的准确高效,并对应用程序的运行进行了效率优化,使得系统速度和效率得到进一步提升.

关 键 词视觉识别;opencv;嵌入式系统;ARM;CMOS

中图分类号TP39文献标识码A文章编号1674-6708(2013)90-0224-02

1概述

计算机识别系统一直计算机电子类研究的热点,随着各项技术的进步,这一工作的实现越来越容易,利用一些成熟的识别函数,实现图像的精确识别是本文的主要工作,在设计和实现过程中制作了一种小型的低功耗嵌入式设备来实现这一功能.本文通过开发一个图像识别的嵌入式系统,开发CMOS摄像头的驱动程序,实现数据的高速采集,并利用ARM9处理作为处理器将采集的图像信息分析加工成与人眼识别效果相当的参数.

2系统设计与实现

2.1系统设计

本文应用的OpenCV全称是OpenSourceComputerVisionLibrary,是Intel公司支持的开源计算机视觉库.它使用类c语言和cplus语言实现的,程序模块化程度高,可以打包成函数或者函数库,对图像处理的函数接口都进行了简单通用的封装,能够实现基本的视觉识别并且算法通用.它的应用领域有人机互动、物体识别、图象分割、人脸识别、动作识别、运动跟踪、机器人视觉[1].

2.2硬件系统设计

计算机庞大的种类中,有一个系列被命名为“嵌入式”计算机,嵌入式与普通计算机最大的区别就是其专用性比较强,可以根据需求,自由的增减接口、设备等.通过对当前嵌入式系统“生态环境”的对比,技术应用比较广泛,而且在工业和消费电子产品中具有大量的开发团队和开源软件系统支持的是ARM系列嵌入式系统.目前ARM系统的主要芯片从ARM7到最新的CORTEXA9都有相当数量的产品,但从性价比和驱动数量来说,ARM9具有强大的优势,本系统就采用ARM9系列处理器中一款自带CMOS摄像头采集接口的芯片作为核心处理器.

在实际研发过程中,由于2.0双排插针在试验中不方便外界信号线和测试调试,通过进一步宽展其接口,我们设计与制作了一个接口扩展板.

2.3软件实现

软件部分采用linux2.6内核,精简化linux操作系统,通过对不需要的内部插件进行精简,整个操作系统,包括驱动程序在内不超过60M字节,而且运行速度可以保证,由于系统功能集中,文件系统和应用程序运行资源需求固定,所以能够长期稳定运行,功耗也比较低,具有小型化,便携性,低功耗的特点.为保证系统的稳定和速度,采用了嵌入式驱动模式,将CMOS接口的驱动程序和内核统一编译,体积更小,运行更稳定.

确定操作系统和平台之后,在应用程序开发过程中重点采用了opencv中一些库函数.OpenCV具有众多函数库,OpenCV拥有包括500多个C函数的跨平台的中、高层API.它不依赖于其它的外部库――尽管也可以使用某些外部库.


利用piggingny算法做边缘检测,其函数为:

voidcvpiggingny(constCvArr*catchimage,CvArr*edges,doublethreshold1,

doublethreshold2,intaperture_size等于3);

函数中catchimage为输入图像;edges为输出的边缘图像;threshold1为第一个阈值;threshold2为第二个阈值;aperture_size为Sobel算子内核大小.

函数cvpiggingny采用PIGGINGNY算法发现输入图像的边缘而且在输出图像中标识这些边缘.threshold1和threshold2分别为大阈值和小阈值,在图像边界确定过程中,边缘是否连接由最小的阈值来限定,而那些属于图像边界则由大的阈值来控制[2].

在进行边界确定和绘制之前,有些涉及二值化的问题,可以用不同的颜色转换方法实现,比如用色彩空间转换法.有一种转换方法用到了Bayer模式,这是一种广泛应用于CCD和CMOS摄像头图像数据处理的模式.它允许从一个单独平面中得到彩像,然后对初步处理的图像进行结构分析,利用二值化后对阈值的选择进行测试并进行形状的模糊识别.

得到训练成熟的分类器,就可以实际应用与图像识别.但输入图像识别区域必须与训练样本具有相同的尺寸才能保证识别效果.分类器的值可以有两个,一个为0,一个为1,0表示图片的数据特征经检测不符合现在分类器的目标,1就是符合的意思.如果图像采集的尺寸大小不同则可以分区域进行单独处理.大图片分多个区域,小图片则置于正中心用白色背景补充整副图像.为了提高适应性,可以设计类别分支模块有多个尺寸,根据目标物体大小进行自动选择,试验中发现类别分支模块被设计为可以进行尺寸调节的类型后效果非常好,这比只改变待检图像的尺寸更好[4].工作流程变成了多次扫描,第一次进行整体区域划分,接下来进行单个区域分析并分级,然后对不同数据集进行分析,效果自然是好了,但这样会增加识别时间[5].

在不同的分类器中,算法和实现过程都有区别,形成了各式各样特点的分类器.有的以检测目标区域的大小和探测物体的形状面积进行对比,只有当面积达到一定的数据量才能进行相应比例的检测.比如可以设定这个比例是1:3的关系.就是当检测目标的区域内有效的黑色边框包含的面积和检测数据采集区域的面积之比为1:3时,就属于该比例系数规定的检测算法,才可以用这一级别的分类器进行识别,这主要是为保证识别的准确性.3测试结果

3.1针对彩色笑脸的多脸谱识别

3.2真实头像识别

4结论

OpenCV包含的程序和函数非常多,汇集了全球精英的智慧和劳动成果,同时又是开源代码,可以让更优秀的人去更改和提高,如果能够很好的加以利用,可大大提高工作效率.有些识别程序甚至不需要添加外部支持也可以直接编译连接形成可执行应用程序.

对于这种开源系统的移植非常便捷,无论做专用的DSP还是嵌入式系统都有其开源的强大优势和通用的接口标准.而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API[6].OpenCV的程序开发中,对于自由使用也有一定的限制,但它只是限制性的表明你的应用也要开源,如果要进行相应的商业开发则需要进行版权说明,无论哪种情况都是免费的,不需要担心专利等问题.它为IntelIntegratedPerformancePrimitives(IPP)提供了透明接口.在某些嵌入式系统上运行时,系统不会提示你加载某些程序,而是会利用其透明接口自动实现.

本文中图像识别的复杂程度并不高,但是能够完整实现小型嵌入式系统的图像轮廓识别.对于目前无人驾驶汽车等领域有积极的应用价值.随着嵌入式系统的普及应用,通过对开源视觉库的进一步研究,将其移植到小型计算机系统中是可行的,为此本文首先确定硬件系统平台,在此基础上进行应用软件库的开发,使得运行精简指令集的嵌入式系统也能够具有与通用计算机一样的图像识别能力.

相关论文

基于OPENCV的计算机视觉技术

本文是一篇计算机论文范文,关于计算机在职研究生毕业论文,关于基于OPENCV的计算机视觉技术相关在职毕业论文范文。适合计算机及图像及计算机。

三维计算机视觉技术算法导

本文是一篇计算机论文范文,计算机类大学毕业论文,关于三维计算机视觉技术算法导相关开题报告范文。适合计算机及应用数学及计算机科学方面的。

大一计算机题库2023年

关于计算机及计算机网络及计算机文化基础方面的免费优秀学术论文范文,计算机类本科毕业论文字数,关于大一计算机题库2016年相关论文例文,。

计算机视觉在物流产业的应用

本文是一篇计算机论文范文,计算机有关毕业论文参考文献格式,关于计算机视觉在物流产业的应用相关函授毕业论文范文。适合计算机及信息技术及。

基于WEB的计算机题库管理系统

本文是一篇数据库论文范文,关于数据库毕业论文范文,关于基于WEB的计算机题库管理系统相关毕业论文格式范文。适合数据库及管理系统及在线考。

基于计算机视觉的机动车流量检测

该文是人工智能专业计算机论文范文,主要论述了计算机方面有关学年毕业论文,与基于计算机视觉的机动车流量检测相关论文范文检索,适合计算。

计算机视觉的视觉效果

本文是一篇计算机论文范文,计算机类硕士毕业论文,关于计算机视觉的视觉效果相关研究生毕业论文开题报告范文。适合计算机及计算机图形学及工。

计算机视觉技术的应用

本文是一篇计算机论文范文,关于计算机相关学士学位论文,关于计算机视觉技术的应用相关电大毕业论文范文。适合计算机及图书馆及电力系统自动。

计算机视觉教研与探究生指导

本文是一篇计算机论文范文,计算机方面有关在职研究生毕业论文,关于计算机视觉教研与探究生指导相关专科毕业论文范文。适合计算机及多媒体及。