欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 毕业论文 > 计算机毕业论文

初试利用Opencv完成视频识别_匹配

时间:2011-06-24  作者:秩名

论文导读::视频识别、模糊处理技术。轮廓匹配。初试利用Opencv完成视频识别。
论文关键词:Opencv,视频识别,匹配
 

视频识别、模糊处理技术,是近年来比较活跃的研究领域。由于计算机硬件技术的深远发展,使得高性能处理器、大容量存储硬盘和高清晰度摄像机越来越普及。但是,以此相适应的视频处理软件却相对处于滞后状态。不难想象,视频识别领域取得的进展,将给我们的信息处理行业带来巨大的影响。很多领域都可以应用这项技术,包括智能交通、数字监控,甚至是导弹的末端制导。

什么是OpenCV

OpenCV是一个计算机图像、视频处理的算法库。它既可以运行在Windows中,也可以运行在Unix系统中,这给嵌入式系统的开发与应用提供了方便。OpenCV是一个开源软件,没有商业、科研应用的限制。曾经有人问我匹配,你简单地说一下,OpenCV到底能做啥?我只能说:“它其实什么也做不了”。OpenCV是一个算法的集合,包含了很多最近比较常见的图像、视频算法,比如开运算闭运算、取轮廓的“Canny算子”、高斯模糊等等。大部分的视频算法都有其适用范围,有其局限性,单一的算法通常无法取得很好的效果。从某种意义上来说,OpenCV更象一本论文集,这些论文是以代码形式表现的。

当我们开始搞视频处理系统时,通常没有必要从零开始。我们总不好意思从RGB到HSV的转换开始写起吧?那样过于费时费力。我们自己写的模块经常会碰到效率的问题,需要花很多时间来优化。有些算法本身也很繁琐,比如Mpeg和H.264的编解码器。这时我们就可以利用OpenCV的库函数,从而节省爱好者大量时间。

OpenCV诞生于Intel研究中心。在那里,Intel开发团队实现了最初的编码。一般认为,这些库函数是高起点的,它的效能得到过测试。关于OpenCV更多的介绍,请参照OpenCV的网站。

尝试Canny算子

大部分参考文章介绍图像识别,总是先从图像分割开始。一提到图像分割,就会说起边缘提取。顺着这个思路,我利用OpenCV做了一些测试论文参考文献格式。我用数字摄像机拍摄了一些公路的视频。

图1

图1是摄像机实际拍摄的一个街景(为便于讨论进行了缩小)。迎面驶来的面包车由于速度比较快,产生了一些模糊;人行道上还慢速行使两辆出租车。OpenCV介绍了几种提取边界的方法,包括Sobel算子、Scharr滤波器、拉普拉斯变换和Canny算子。就以Canny算子为例,我们发现,只需要区区几行程序匹配,就可以获得Canny算子的轮廓效果。

1.利用函数cvLoadImage打开指定的图像文件。

2.利用cvCvtColor将也颜色空间从 RGB转换到HSV。再利用cvSplit函数提取V分量。Canny算子要求源图像为单通道图像。一般认为,亮度分量可以最好地体现轮廓信息。

3.调用函数cvCanny实现Canny算子,在这里,取上下阈值为150和100。

结果如下图所示。

图2

我们发现,面包车和小汽车的轮廓得到了很好的提取。树后的出租车信息丢失殆尽。噪声信息,比如树木、公路标线都表现出来。实践表明:Canny算子是一个高效的算法,可以实现大分辨率下视频同步分析。

调整Canny算子的两个阈值,我们可以调整结轮廓的“精细程度”。为了显露出树后面的出租车,我曾经把轮廓调整得非常精细。但是我发现,我完全陷入轮廓线的汪洋大海中。无数轮廓好像油画的裂纹一样,非常密集,任何后续操作都无从谈起了……即使如图2所示的轮廓,我们也很难提取出机动车的外延。更何况两辆机动车互相有重叠的情况呢?风中摇曳的树木是轮廓提取的难题,他们产生了无数轮廓线。这些轮廓线可以“包含”任何形体,人脸、机动车、道路、房子,任何你想要的轮廓都可以在树的轮廓线中“想象”出来。

轮廓匹配

OpenCV提供了一个完整的、与实际应用相关的例子——识别人的脸部区域。这个看似简单的需求,对于计算机系统而言,其实并不容易!这是一个三维的世界。摄像机见到的东西是三维世界的二维投影。这个投影过程中就失去了很多信息。

但是,一个3岁小孩可以一眼认出他的妈妈。难道计算机还不如3岁小孩吗?从已知的视频识别系统来说,差不多是这样……小孩有妈妈的记忆,或者说他有先验知识,这些先验知识是他识别出妈妈的重要依据。当孩子妈妈抬头和低头的时候,她的面部像素剧烈改变。孩子已经记住了妈妈抬头和低头的特征匹配,还有妈妈测过脸时的特征,背过身去的特征,站着坐着的特征。孩子通过观察妈妈的影像,就可以匹配出母亲的特征。这是一个影像+先验知识的综合过程。所以孩子通常可以在任意角度任意距离识别出妈妈。

我测试了一种完全人工干预的学习方式,来模拟完成一个识别机动车的过程。

一个简单的机动车模型

机动车是什么样子?恐怕也不是那么容易说清楚的,不同的机动车彼此差异很大,同一辆机动车不同的观察角度差异也很大。在本例中,机动车就是这个样子:

我们把这个小图标似的机动车模型尽一步简化,令车身部分为“1”,车窗部分为2,其他无关的部分为“0”,就得到了下面的二维数组。

unsigned char pattern[] =

{

0, 1, 1, 1, 1, 1, 1, 1,1, 1, 0, 0, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 0, 0, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 0, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 0, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 2, 0, 0, 0, 0,

0, 1, 1, 1, 1, 1, 1, 2,2, 2, 2, 2, 2, 0, 0, 0,

0, 1, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 0, 0, 0,

0, 1, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 0, 0,

0, 1, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 0, 0,

0, 1, 1, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 0, 0,

0, 1, 1, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 0, 0,

0, 1, 1, 2, 2, 2, 2, 2,2, 2, 2, 2, 1, 1, 1, 0,

0, 0, 1, 2, 2, 2, 2, 2,2, 1, 1, 1, 1, 1, 1, 0,

0, 0, 1, 2, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 0, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 0, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 0, 0, 1, 1, 1,1, 1, 0, 0, 0, 1, 1, 0,

0, 0, 0, 0, 0, 0, 1, 1,1, 1, 0, 0, 0, 1, 1, 0

};

这个二维数组,其实就是用1和2画出一个小汽车。

模型匹配

图像识别基本上是一门统计科学,那种绝对的“是”和绝对的“不是”,是不存在的。所谓识别,是将三维世界的二维投影,匹配我们的先验知识,这是不能做到100%准确的。因此,计算的是概率分布是目前比较活跃的方法。给定一个桢视频图像以后,我们把这个模型放置于图片的某个位置(x, y),那么我们就可以计算出该位置像素与模型的匹配程度。然后我们换一个位置,继续计算该位置的匹配程度。这样,我们就可以得到了一个模型匹配的概率分布f(x, y)。那些f(x, y)的尖锐峰值点匹配,就是我们要找的机动车了。

如何描述图像中某个位置和我们的机动车模板匹配程度呢?我们结合机动车的物理特性运用了下面几个指标。

1.颜色一致性

机动车的车身总是刷一种颜色的漆,也有几种颜色组合的,单是一般不会太多。如果把车身部分(也就是模型部分“1”表示的区域)做一个直方图,应该存在一两个尖锐的峰值,越尖锐越好。在这里,我们取HSV的色度和饱和度分量来表示颜色论文参考文献格式。需要注意的是:颜色一致性好的地方未见得就是机动车,比如绿树,马路,颜色一致性都非常好。

2.车窗亮度

车窗部分是吸收光线的,因此车窗亮度分量(V)较低。但是如果发现区域“2”的亮度大于等于“1”区域的亮度,那无疑不是机动车。需要注意的是:在整幅图像场景中,亮度最低的往往不是车窗,而是较大物体的阴影。

3.边界

一个完整的机动车图像,边缘部分的一定是微分极值。比如,用Laplace算子计算得出的峰值。逐一计算整个机动车模型边界的Laplace值,可以得到一个边界特性的统计指标。

综合上述3个指标,我们就得到了某点的匹配评价。是否还有其他更具实际意义的指标我们忽略掉了呢?这是一个值得我们测试的题目。小孩学习识别世界的过程,大概也是不断完善自己的评判指标的过程吧!

图4图5图6

图4是一副交通监控的图像。图5是经过模型匹配得到的机动车概率分布,比较黑的地方表示概率小,比较亮的地方表示概率大。显然,我们找到了一个符合很好的位置。图6就是把计算结果标注在原图上。

总结

模型匹配是一个高效率的算法。毕竟这里面没有用到比较费时的操作,比如卷积或者迭代,因此本例的效能基本上达到了实时。另外匹配,我们考虑的因素都是有实际物理意义的,这比单纯地寻找某些线条看起来更贴近现实。本例完全利用统计的方式,抗干扰性很强,比如树木、行人以及轻度遮挡都不能干扰最终结果。

本例的局限性是显而易见的。在计算过程中,我们强烈依赖了这个模型。在实际情况下,机动车的种类、大小远近以及透视角度,都将严重影响他们的外形轮廓。我们怎么能用这么一个简单的轮廓来表示机动车呢?比它大一点小一点胖一点瘦一点就不是机动车了吗?显然不是。这个模型“核”的构建本身,就是一个复杂的过程,一般不能依靠一次扫描可以完成。对于遮挡情况下,还需要对核进行追踪。

结束

OpenCV给我们提供了一个参考工具,让我们方便、快捷地尝试各种计算;从而解放爱好者的时间,让他们把时间和精力放在新算法的探索上。探寻视频识别的本源,是一个充满挑战也是充满惊喜的领域,激起广大爱好者的兴趣。让我们试着站在巨人的肩膀上,展望美好未来!


参考文献
《视频处理软件》高等教育出版社会存在王巍主编
《LearningOpenCV》 东南大学出版社Gary Bradski & Adrian Kaebler
《OpenCV教程》 北京航空航天大学出版社 刘瑞祯、于仕琪
《C++Primer中文版》 人民邮电出版社 Stanley B. Lippman Barbara
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:C语言中的函数与指针_毕业论文ppt
下一篇论文:利用VB实现动态时钟的算法分析_函数
毕业论文分类
行政管理毕业论文 工商管理毕业论文
护理毕业论文 会计毕业论文
会计专业毕业论文 英语专业毕业论文
大学毕业论文 硕士毕业论文
计算机毕业论文 市场营销毕业论文
物流管理毕业论文 法学毕业论文
相关计算机毕业论文
最新计算机毕业论文
读者推荐的计算机毕业论文