前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机视觉识别技术范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
近年来,经济的发展和人们生活水平的提升也使得人们的出行更加便捷,越来越多的人都是自己驾车出行,这样导致公路上的交通流量不断增加,如何保障交通的顺畅性和安全性成为人们关注的重点问题。信息技术的发展推动了计算机视觉技术的出现,为交通安全性的提升提供了一定的保障。本文主要对计算机视觉技术进行分析,进一步探讨计算机视觉技术在智能交通系统中的应用。
【关键词】计算机 视觉技术 智能交通 系统 应用
智能交通系统简称ITS,这是一种新型的交通管理系统。该系统主要结合了信息化技术、计算机技术以及数据传输技术等多种技术,用来对整个交通运输体系进行管理,可以实现人、车、路的全面监控和管理。计算机视觉艺术作为智能交通系统中的一个重要环节,受到相关工作人员的高度重视。随着计算机视觉技术的发展,不仅为交通行业的发展提供了更多的便捷,同时还能够筛选道路交通的各种信息,进一步增强了智能交通系统的灵活性和准确性。
1 计算机视觉技术的概述
计算机视觉也被称为图像分析和图解理解,其包括的理论主要有摄影几何学、概率论、图像处理理论以及人工智能理论等部分。计算机视觉技术主要是用二维投影图像实现三维物体重构。这种技术的应用范围比较广泛,不仅应用于二维图像识别方面,同时还用于三维物体的识别和重建上面。通过计算机视觉技术能够获取专业化的三维信息,对三维信息的获取一般有两种方法,其中一种是直接获取法,还有一种是间接获取法。直接获取法主要是通过计算机视觉技术的效果来确定三维运动中产生的各种参数,这一过程对摄像机运动问题的关注程度较高;间接获取的方式就是将单幅图像和摄像机焦距相结合,来判断被测量位置视觉上的信息。计算机视觉技术的关键就是实现特别匹配,在特殊情况下可以利用不同的摄像C同时收集运动信息,从而提高相关控制的精确度。
2 计算机视觉技术在智能交通系统中的应用
计算机视觉技术在智能交通系统中的应用可以实现道路交通的监控,同时还能够实现自动收费、智能导航等功能,主要应用有以下几个方面的内容。
2.1 交通监控中对计算机视觉技术的应用
基于计算机视觉技术的交通监控系统主要分为三个步骤,首先是对车辆和行人进行跟踪和分割,其次是对车流量进行分析和计算,并且计算车辆的平均速度和道路上车辆的队列长度,最后根据道路的交通状况来规划形式线路,从而有效缓解道路交通拥堵的现状,方便人们减少出行时间。车辆和行人作为道路中运动的主要目标,在监控场合下,需要对运动时间进行有效分割,常用到的分割方式包括光流法和帧差法两种,其中前一种分割方式主要是依据图像中不同的运动用映射参数正确的表达,这样可以将具有同样映射参数的光流量进行分配,从而完成参数分割。计算机视觉在交通监控中的应用主要是对车辆速度、车辆数目、车辆分类进行检测。随着计算机通信技术的发展,计算机视觉技术也是日新月异,基于计算机视觉的交通监控系统具有较强的实时工作性,能够快速的适应高度公路以及城市道路交通的监控。
2.2 车辆导航中对计算机视觉技术的应用
实现车辆的智能导航是计算机视觉技术在智能交通中应用的典型案例。这种技术主要为驾驶人员提供道路信息和车辆运行状况两大信息。通过车辆智能导航系统的运行能够对道路两边的界限进行有效的识别,将车辆引向规定的行驶车道,在车辆行驶过程中,该系统能够自动检测车辆与前方其他车辆之间的距离,从而提醒驾驶人员保持车辆的安全距离,最终实现安全导航驾驶。通过该系统的摄像机运动能够识别其他车辆的行驶状况,并且通过计算检测点的方式计算车辆的模拟匹配点。车俩智能导航系统中就使用了计算机视觉技术,可以从中提取相关信息,计算车辆行驶的安全距离和速度。
2.3 计算机视觉技术用于车辆辅助驾驶
计算机视觉技术在车辆辅助驾驶中的应用主要是帮助驾驶人员对外界的变化做出反应。具体表现为车辆在市内行驶时,计算机视觉技术的应用能够识别周边道路的标记,并且对交通标志、其他车辆和行人进行识别,然后筛选相关信息进行计算,让驾驶人清楚外界的具体状况,从而避开其他的车辆和行人,能够从根本上减少交通事故的发生,增强车辆的安全运行。辅助驾驶的形式转变为人机交互的方式,一定程度上能够满足驾驶人员对信息的需求。
2.4 计算机视觉技术用于车辆智能收费
车辆收费是车辆在公共交通位置行驶中的一个关键环节。随着科学技术的发展,车辆收费系统逐渐向着计算机技术的应用方向发展,计算机视觉技术在各地区交通发展中的应用是现代化交通发展的一个重要突破口。很多地区的智能化收费都是通过识别车牌的方式来实现收费,我国在车牌识别这方面仅仅限制于单目车牌和双目车牌的识别,其中单目车牌识别的核心就是将车牌照位置作为核心部分,我国大部分地区都是将单目系统作为核心部分来使用。采用双目系统对车牌进行识别,也可以对车辆的型号进行识别,通过大量的实践发现,双目系统进行车牌识别的实用性较强。但是这种识别方式在实际应用过程中仍然存在着信息获取难度大、车牌照定位难度大等多种问题,尤其是车辆在高速路上行驶时,对于车牌信息的获取更为困难,因此,在这方面还需要加大研究和实践。
3 结束语
随着计算机视觉技术的智能化发展,其在智能交通系统中的应用能够解决多方面的问题。该技术的应用不仅能够实现车辆的实时监控,同时还能够实现车辆导航以及车辆收费,帮助驾驶人员识别车辆行驶中存在的障碍物,这样一来,可以增强车辆行驶的安全性,同时还能够提高我国道路交通系统的整体管理水平。但是该技术应用中也存在不足之处,未来发展中需要降低视觉系统的价格,减少系统的尺寸,从而增强系统对车辆信息的处理速度,最终实现对道路交通的全面监测。
参考文献
[1]王春波,张卫东,许晓鸣.计算机视觉技术在智能交通系统中的应用[J].测控技术,2000(05):22-24.
[2]郁梅,蒋刚毅,郁伯康.智能交通系统中的计算机视觉技术应用[J].计算机工程与应用,2001(10):101-103+121.
[3]顾晶. 基于计算机视觉的智能交通监控系统的研究[D].东南大学,2006.
[4]谢萍萍,黄传春.计算机视觉技术在智能交通系统中的应用[J].福建电脑,2008(10):77+133.
关键词:计算机;视觉技术;图书馆;应用探讨
引言
俗话说“书是人类进步的阶梯”,各大高校以及各大城市都建有图书馆,图书馆可以满足人们对各种知识的需求,因此对图书馆的管理工作也是十分重要。如今科技不断的发展,计算机视觉技术被运用到图书馆管理中。计算机视觉是用摄影机和电脑来代替人眼进行检测、监控、识别和测量等的机器视觉,它能够对收集来的图片和视频进行处理,然后获得相应的三维信息。计算机视觉是一门综合性的学科也是一个富有挑战性的领域,它已经被应用到各个领域中,它的重要性不言而喻。
一、计算机视觉技术的特点
(一)检测范围广泛
人眼的检测范围毕竟有限,有些细微的方面人眼是检测不到的,比如红外线、超声波等,但是计算机视觉技术却是可以检测到人眼所检测不到的范围。计算机视觉技术可以将红外线和超声波处理成图像呈现出来,它的检测范围十分广泛而且是不加选择的进行检测,可以说它的使用大大拓展了人眼的视野。
(二)检测安全可靠
我们都知道电子产品如果接触使用必然是会受到一定辐射的,但是计算机视觉与以往的检测机器不同,它是不需要与被测者进行接触的,观测者和被测者都是十分安全不会受到丝毫损伤的,而且它在使用的过程中并不会像人眼一样感到疲惫,它可以一直进行高效率的工作,因此对其检测结果也是十分的可靠的。
二、视觉技术在图书馆工作中的应用分析
(一)图书剔旧和修补
图书馆是人们知识的殿堂,是思想文化知识不断扩展的地方,因此图书馆的剔旧是一项十分重要的工作。图书馆的空间毕竟有限,一些相对陈旧而利用率较低的参考文献是需要不定期的进行筛选的,这些资料通常都是表面发黄、布满灰尘和封面破旧等,而图书馆的剔旧工作大多是由工作人员亲自到书库中进行挑选,这样不仅工作量大、耗时长还有可能会存在遗漏的现象,而且资料上的灰尘也会给工作人员的身体健康带来影响。
图书馆会收藏一些珍贵的古籍和字画,但是时间一长,受到温度、湿度等的影响会造成古籍和字画表面发黄、纸张变脆甚至会出现虫眼,这时候就需要对古籍字画进行修补工作。这项工作大多由工作人员亲力亲为,会给工作人员带来一定的健康影响,如果使用计算机视觉技术代替人们来进行工作,会大大减少工作人员的工作强度,同时也保证了工作效率。
(二)管理职工人员
图书馆中职工人员的正常有序的工作是保证图书馆正常运行的关键之处,在进行图书馆职工人员的管理上可以引用计算机视觉技术。以往的职工签到可能会出现代签现象,而计算机视觉技术可以采用图像视觉处理技术对职员进行磁卡、眼膜、人脸识别等进行签到,杜绝了以往签到工作所存在的弊端。同时,在图书馆工作处理中,计算机视觉技术也可以帮助职工人员处理一些难题,让图书馆工作能够有序高效的进行。
(三)监控检测系统
如今图书馆的书籍是完全向人们开放的,人们可以自由进行借阅,以往的人工检测会造成猜疑和尴尬,也会加大图书馆管理人员与读者之间的磨擦。计算机视觉技术的使用可以全自动化进行监控和检测,避免了以往人工监测所出现的问题。图书馆的书籍借阅管理工作异常重要,计算机视觉技术可以全程自动化进行高效工作,可以进行无人看管检测读者进出携带书籍文献和借阅空间的监控等,大大提高了工作效率,让图书馆的借阅工作顺利有序的进行。
三、视觉技术在图书馆工作中的应用问题的研究
(一)循序渐进的结合
计算机视觉作为一个新兴技术,虽然已经被运用到各个领域内,但是在引进入图书馆的管理中,如果想要快速的取代传统的管理模式,无论是工作人员还是工作理念都不可能及时接受这种改变的。新技术的融入必须要循序渐进,找到与传统的管理模式的结合点,然后进行慢慢磨合,达到与传统相结合的效果,这样人们才能够接受一种新技术的使用,不仅提高了工作效率减轻了工作人员的工作负担,也能够更好的发挥出计算机视觉技术的真正作用。
(二)提高专业人员的业务水平
新的技术需要新的业务水平来支持,如果没有相应的业务水平是没有办法发挥出新技术应有的作用。计算机视觉技术通过计算机成像系统来代替人类的视觉感官,能够自主适应环境、自主工作的能力。计算机视觉技术在不断的更新中,它的使用功能也是越来越多,操作方法越来越复杂,这时就需要图书馆的工作人员对计算机视觉技术有细的了解,能够熟练操作和运用计算机视觉技术。图书馆管理阶层应该组织工作人员进行培训工作,让他们接收新的知识掌握新的技术,不断的提高图书馆工作人员的业务水平,才能够保证图书馆工作高效进行。
(三)读者素质和应用手段的提高
现代化图书馆要想实现工作和服务的全面自动化,就需要有现代化技术的支持,计算机视觉技术的引用虽然是一个现代化技术的支持,但是如今仅停留在生物特征的识别领域。比如图书馆如今普遍有门禁系统,这也仅停留在计数功能和监控可冲消磁条的识别和认定上,如果有些读者素质不高故意去掉这些生物识别,图书馆的门禁系统就没有办法阻止这些读者的进入进出。因此,提高读者的素质和计算机视觉技术的应用手段,才能够保证计算机视觉技术在图书馆被广泛的进行使用。
结束语
关键词:计算机工程;视觉领域;深度学习技术
引言
计算机视觉简言之即是依靠电子设备成像来代替生物视觉系统,随后依靠提前写好的程序对获取的图像信息实施处理。该技术的短期应用目的在于完成相对简单的智能视觉工作,而深度学习技术在计算机视觉领域的应用,在很大程度上丰富了其功能,提高了识别效率,让其能够在更多行业发挥出自身价值。
1计算机视觉领域的深度学习技术
1.1图像分类中的深度学习技术
基于深度学习技术,卷积神经网络得到了进一步的发展,其应用范围也更为宽泛,例如说在图像分类中的运用。图像分析需要对图像实施扫描分析,随后对其具体类别予以划分,更加注重其整体语义。目前相对普遍进行图像分类的数据集为ImageNet,其中囊括了非常丰富的内容,存储了近1500万个图像的URL并将图像划分为数万余个类型。ImageNet每年组织开展的大规模视觉识别挑战赛(ILSVRC)中,图像分类算法与技术也不断创新,图像分类的准确性也持续提升。ImageNet数据集表现出规模大、类型多的突出特点,所以更加适用于迁移学习,即是把部分核心技术或结构拓展应用到各个领域,对于视觉领域的深度模型来说,能够把模型内的网络结构和参数直接共享到其他数据集,从而对数据实施微调。图像分类属于计算机视觉领域最为基础的环节,对于图像分类模型创建和数据分析处理经验也能够迁移应用到其他领域中。
1.2目标检测中的深度学习技术
目标检测相对于图像分类而言表现出更多的复杂性,主要任务是在囊括多种不同类型物体的图像内精确定位和识别某一物体,恰恰是出于这一目的,深度学习技术在目标检测中的应用更为复杂,要实现更加精准的效果也相对更难。近年来针对目标检测的算法日益更新,如优化后的R-CNN算法,是借助于卷积神经网络思想,对物体进行分类,提取物体特征。而SelectiveSearch算法的出现有了进一步的创新和突破,有效促进了检测准确性的提高,这也给通过卷积神经网络进行目标检测带来了更多可能性,随后的FastR-CNN算法极大地促进了目标检测效率的提升,该算法对提取候选区的问题予以优化,大大减少了候选区提取和目标检测过程的时间。目标检测网络以FastR-CNN算法作为支撑,于输出位置设置滑动窗同时和候选区域网络实施连接,目标检测的关键在于卷积神经网络,依靠它把各个点的特征进行提取,再借助回归算法获得对应范围出现目标的概率[1]。
1.3人脸识别中的深度学习技术
人脸识别主要是借助相应算法对人脸特征实施提取,因为其建立的人脸模型表现出一定的不稳定性,因此模型建立往往也表现出一定的难度,相对于建立刚体模型而言更为困难。人脸识别通常来说涉及人脸检测定位以及特征提取两个方面,人脸检测定位是基于背景图像中将人脸目标分割出来,实施归一化处理,而人脸特征提取算法不变。前者存在的技术难点是人脸目标具有多样性以及背景图像具有复杂性,所以对背景情境实施合理假设并予以简化是十分关键的。与此同时,高维空间人脸模型的建立较为复杂,精确度估算难度较大,人脸特征提取的技术难度是因为人脸属于弹性模型,其难度超过刚体模型。一般来说,较为常见对人脸特征实施提取与识别的方法有几何特征法、特征脸算法以及弹性模型法,CNN算法和过去的特征提取算法比起来表现出更高的稳定性和适用性,同时能够有效抵抗外部干扰,促进人脸识别技术的推广应用。
2应用实例
2.1安防领域的应用
深度学习技术在计算机视觉领域中的应用可以为安防行业提供更佳的解决方案,比如说人脸识别技术的应用,很多大型企业如Facebook、腾讯、阿里巴巴等都将非常关注和重视。作为深度学习技术在计算机视觉领域应用的重要内容,人脸识别在安检以及反恐等领域中也能够发挥出很好的效果。与此同时,对行人角度的REID技术实施研究,依托于深度学习强化目标检测,对目标特征实施提取和刻画,能够为异常行为监控和跟踪带来支持[2]。
2.2无人驾驶领域的应用
对于无人驾驶领域来说,选择激光或雷达这类传感器的成本更高,基于深度学习的计算机视觉技术也能够提供新的解决方案。依靠摄像机对视频画面进行采集,对获取到的图像实施分析,提供类似于前车碰撞预警等功能。在这一过程中,计算机视觉技术可以实现对目标的检测识别、对目标车辆的跟踪分析、对车道线是否偏离进行检测等。基于深度学习技术的检测识别表现出更加强大的优势,现阶段深度学习芯片日益增多,对于无人驾驶技术的发展也带来了更加有力的支持。
2.3智能家居领域的应用
过去的很多智能家居产品一般都是依靠智能手机蓝牙或者WiFi等途径来实现对家居产品的控制,这一方案即便能够做到家居智能化,但其水平依旧有待提高。基于深度学习技术,能够有效促进智能家居行业的更新发展,除开语言、语音识别之外,还能够利用计算机视觉技术实现人际交流与互动,比如说手势识别控制。2.4教育领域和图片搜索领域的应用基于深度学习的计算机视觉技术也能够在智慧教育中得以普及应用,如近年来很多新的拍照解题App,使用者只需要利用手机相机拍照上传即可获得相关题目的分析解答,促进学习者学习效率的提升。此时视觉技术包括了对文字的检测与识别,另外针对个人简历识别、文档识别等方面也能够进行拓展应用。同时计算机视觉技术还可以在图片搜索领域中得以应用,使用者通过拍摄上传相应的图片,即可从数据库中找出与原图相似的图片,深度学习属于一种非常高效的技术手段,能够提供更加快速高效的图像检测功能,结合图像搜索引擎,为用户带来更加便捷的服务[3-5]。
2.5医疗影像数据中的应用
医学影像直接关系到对患者疾病诊断的准确性,对于放射科的医务人员来说,依靠医学影像能够促进诊断效率的提升。现阶段国内外诸多医学专家队伍,在心血管、肿瘤、神经内科以及五官科等都建立了精准深度学习模型,极大地推动医疗水平的提升,为广大患者带来了更加便捷和高效的医疗服务。基于深度学习技术的计算机视觉在医疗影像数据中的应用主要集中在如下几个方面:(1)能够提供临床诊断辅助等医疗服务;(2)依靠数据分析技术,能够在很大程度上促进医疗机构经营管理水平的提升;(3)在医学影像中的应用,能够让医务工作者更加直观便捷地获取患者影像;(4)深度学习技术能够为医疗大数据的可视化带来便利;(5)在药企研发工作中的应用,可以处理好过去一直以来药物研发周期长和成本居高不下的问题;(6)在健康管理领域中的应用,借助于可穿戴设备来对个人健康数据实施监测,进而对疾病风险予以提前预测。
小时候,我们都有过这样的梦想:生活实景都变成游戏,随时随地看到的场景、人物、好看的好吃的好玩的都能动起来,穿越时空,虚拟和现实世界梦幻叠加。“衣+”将AR技术和人工智能技术深度结合,使用复杂的计算机视觉技术和深度学习算法,去理解场景,然后增强场景,帮你达成这个愿望。仿佛拥有一双慧眼+超强大脑,而且这只是“衣+”暂时制定的一个小目标而已。
AR技术是通过计算机系统提供的信息叠加用户对现实世界感知的技术,将虚拟的信息应用到真实世界,并将计算机生成的虚拟物体、场景或系统提示信息叠加到真实场景中,从而实现对现实的增强。更通俗一点的说法是,它是一种全新的人机交互技术,利用摄像头、传感器、实时计算和匹配技术,将真实的环境和虚拟的物体实时地叠加到同一个画面或空间。用户可以通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,还能突破空间、时间,以及其他客观限制,感受到在真实世界中无法亲身经历的体验。
“衣+”是世界领先的人工智能计算机视觉引擎,致力于让计算机看懂世界,属于人工智能中的感知和认知智能,在图像视频中对场景、通用物体、商品、人脸的检测、识别、理解、搜索及推荐均达到领先水平。陌上花自主研发的深层次多属性深度学习网络,是人工智能在云和端上计算的核心基础。在国际顶级计算机视觉竞赛ImageNet2015和ImageNet2016中,先后获得五项和三项世界第一。
“衣+”技术团队正在做这样一个尝试,利用AR技术结合人工智能大数据技术感知认知世界,并增强了交互方式,这将大大改变人们的生活,将深度学习的人工智能科技和AR技术相结合应用到视频、直播、时尚、购物、美食、出行、运动、旅行等生活体验的各个方面,提供全生活场景智能服务,打造前所未有的智能视觉体验。
增强现实技术,不仅展现了真实世界的信息,而且将虚拟的信息同时显示出来,两种信息相互补充、叠加。在视觉化的增强现实中,用户利用AR设备,把真实世界与电脑图形合成在一起。“衣+”AR技术结合人工智能,以计算机视觉技术为基础实现感知认知,能将人眼看到的所有信息,包括商品、物体、食物、服饰、汽车、建筑等,都精准匹配出同款及相关商品。它的展现方式更加生动、立体、多样化,能够带给用户高品质、高时效、一站式的服务体验。
“衣+”AR技术和人工智能的结合实现了对现实世界的感知和认知的能力,可以在图像视频中完成对场景、通用物体、商品、人脸的检测、识别、理解、搜索等。如今,每个月有上亿次的商品推荐通过“衣+”边看边买引擎来完成,帮助用户搜索、识别他们所看到的物品。目前“衣+”支持服饰、3C数码、商超、家居、日用品、交通工具等超过几百类商品的检测和识别。
通过对海量数据进行深度学习,“衣+”视觉引擎能够检测识别视频或图像中的商品,并通过分析商品特征,准确判断商品类目等商品信息。在餐饮方面,当用户用不同的手持终端对餐厅的食品进行拍摄后,餐厅的位置以及菜品的食材等将即刻呈现在手持终端上,使就餐体验的科技含量越来越高。
此外,“衣+”利用技术手段可以实现对视频和图像中的物体的位置、名称、运动轨迹、轮廓等属性的实时分析。目前已支持超过10000类常用物体、大于400类室内外场景的识别。
关键词:OpenCV;手势识别;模式识别;图像处理
中图分类号:TP368 文献标识码:B 文章编号:2095-1302(2015)06-00-03
0 引 言
随着科技的日益进步,传统的、基于键盘鼠标的人机交互方式略显单调。各国的研究者们探索着一个又一个新的人机交互方式,而在这些方式中,基于图像理解的方式已经取得了很大的进展。我们的生活离不开肢体动作,而图像方式是计算机能够理解人类动作最直接的方式。图像处理的研究内容非常广泛,配合统计、模式识别等学科知识的应用,我们已经能够识别并理解常用的人类肢体动作。
在肢体动作中,手势动作又是其中的重点。如今很多新的交互方式都建立在手势识别理解的基础上,例如:Microsoft的kinect系统,primesense的生物识别系统等。很多公司已经将其应用到了医疗、教育教学、失语者手势理解等领域。因此,研究手势识别理解将会是未来计算机领域的一大热点。
运动识别系统的进步伴随着数字图像处理领域的进步,各国学者相继开发出了大量优秀的计算机视觉和图像处理软件包。大多数软件包基于计算速度的考虑采用C/C++ 编写[1]。虽然这些软件包对计算机图像处理和计算机视觉的研究提供了很大地便利,但也存在着不足之处[2]:
(1)现行的多数图像处理平台没有提供高级数学函数;
(2)Matlab 的运行速度需要提高并且对宿主机器的配置要求较高;
(3)绝大多数图像处理库不支持嵌入式程序开发。
开源计算机视觉库OpenCV(Open Source Computer Vision Library)的出现极大地弥补了这些不足,给开发者提供了强大的综合开发平台。
1 OpenCV简介
OpenCV(Open Source Computer Vision Library)诞生于Intel 研究中心,是一个开放源代码的、高质量的计算机视觉库。它轻量且高效,采用C/C++ 语言编写,可以运行在Linux/Windows/Mac等操作系统上。OpenCV 还提供了Python、Ruby、Matlab及其他语言的接口[3]。OpenCV中包含了大量经典的计算机视觉处理函数,这些函数涵盖了机器视觉领域的大多数应用。OpenCV提供的视觉处理算法非常丰富,利用其开源特性,只要开发者处理得当,不需要添加新的外部支持也可以支持完整的编译链接生成执行程序。
OpenCV 现行版本为2.4.11.0,已放出了3.0.0的Beta版本。现行版本的OpenCV分为18个模块,其中常用的有8个模块:
(1)Core:定义基本的数据结构,包括矩阵和被其他模块使用的公共函数;
(2)Imgproc:包含线性和非线性图像过滤器、几何图形变化、色彩空间变化等功能;
(3)Video:包含运动分析、背景剪切和对象追踪等功能;
(4)Calib3d:包含多视角集合算法、3D重建等功能;
(5)Features2d:包含特征匹配等功能;
(6)Objdetect:包含预定义对象距离探测等功能;
(7)Highui:包含一个简单易用的高层级接口,用以抽象不同操作系统对视频提取和图像操作的功能;
(8)GPU:包含GPU加速相关的算法,这些算法可以被其他模块使用以加速程序的运转。
2 手势识别简介
根据计算机系统检测手势姿态的传感器的不同,我们可以将手势识别理解系统分为两类:一是利用数据手套获相关技术;二是利用计算机视觉捕获和处理图像流。利用数据手套捕获技术实现的手势识别系统使用不方便,用户需要学习的内容多且使用场景受到限制,而且成本较高[4]。而基于计算机视觉的手势识别系统则具有使用场景广阔、使用习惯符合人体本能、传感器成本低、普及率高等优势。
基于图像的手势识别系统一般可分为手势姿态图像采集、手势姿态图像分割、手势姿态特征提取及手势姿态识别四个步骤[5]。
在大量手势识别系统的实际开发过程中,都牵扯到使用肤色过滤系统来分割获取手势的binary图像。手势姿态的binary图像的获取关系到后期手势姿态理解的稳定性和准确性,但是人体的手部颜色受到个体差异、光源颜色以及光照角度的影响,其中任何一个因素变化都将造成阴影、遮蔽等不良影响[6]。手势识别的方法主要有4种,具体见表1。
表1 手势识别方法静态识别[7] 动态识别[8]
模板匹配法(TM) 动态时间规整法(DTW)
神经网络法(NN) 隐马尔可夫模型法(HMM)
本文首先使用YCrCb肤色分割算法在使用者在线模式下提取使用者手势姿态30组,利用30组手势姿态的均值测量出使用者手部的色彩平均值;然后提取环境光照的平均值、极大值和极小值,利用环境关照的取值和手部均值做运算,特定区域内找点最少的环境光照值和手部均值,最后利用这两个值进行手势姿态图像binary处理。将得到的binary图像进行特征化处理,得到手部特征点,通过对特征点的运算,得到最终的手势姿态理解。
3 手势姿态的binary处理
手势姿态的binary处理核心代码如下:
主函数:
frame = cvQueryFrame(capture);
//读取一帧图像
//cvShowImage( “Main_cam” , frame);
if( !frame ) break;
assert( 0 ==
binary_image_process( frame , mask , high_threshold1 , high_threshold2 , high_threshold3 , &is_get_binary )
);
cvShowImage( “Binary_cam” , mask );
//binary_image_process函数,使用环境光和肤色在线测量均值得到的三个阈值:threshold1,threshold2,threshold3,分别对应YCrCb颜色空间的Y,CR,CB通道:
IplImage* ycrcb = cvCreateImage( cvGetSize(frame) , 8 , 3 );
cvCvtColor( frame , ycrcb , CV_BGR2YCrCb );
for(int i=0 ; i < ycrcb->height ; i++ ) //二值化
{
uchar *row = (uchar *)(ycrcb->imageData) + i * ycrcb->widthStep;
for(int j=0 ; j < ycrcb->width ; j++ )
{
uchar *p = row + 3*j ;
//if( *(p+1) > threshold2 && *(p+2) < threshold3 )//||
if( *(p) < threshold1 )
{
binary_image->imageData[ i * (binary_image->widthStep) + j ] = 255; // 白色
}
else
{
binary_image->imageData[ i * (binary_image->widthStep) + j ] = 0; // 黑色
}
}
}
IplConvKernel *element = cvCreateStructuringElementEx( 4 , 4 , 0 , 0 , CV_SHAPE_RECT );//创建用于腐蚀的核函数
cvErode( binary_image , binary_image , element , 1); // Erotion
cvDilate( binary_image , binary_image , NULL , 1); // Dilation
cvReleaseStructuringElement( &element );
cvReleaseImage( &ycrcb );
经过提取的手势识别binary图形如图1(a)~(e)所示。
可见此方法提取的binary图像清晰准确,具有利用价值,可以为后期的特征提取与识别创造有利条件。
(a) (b)
(c) (d)
(e)
图1 手势识别binary图形
4 手势姿态特征的识别与理解
首先,我们通过对最小包络圆和手腕的计算得出手掌心的位置,然后利用每个点与相邻点做向量外积计算是否为手指尖点和手缝点,最后即可得出手势姿态的全部特征点。
//计算整个轮廓的中心点
for( int i=0 ; i < real_contours_number ; i++ ){
contour_rectangle = cvMinAreaRect2( sort_contours[i] , 0 );
arm_center[i].x = cvRound( contour_rectangle.center.x );
arm_center[i].y = cvRound( contour_rectangle.center.y );
cvCircle( frame , arm_center[i] , 10 , CV_RGB(255,255,255) , -1 , 8 , 0 );
}
//取得凸包,画出指缝
for( int i=0 ; i < real_contours_number ; i++ ){ get_convex_hull( i );
finger_tip( i );
hand( i );
cvClearSeq( hull ); //清空凸包序列
cvClearSeq( defect );
}
最终,得到的含有全部手势特征点的图像如图2(a) 、图2(b)所示。
(a) (b)
图2 含有全部手势特征点的图像
5 结 语
新版本的OpenCV计算机视觉库给我们提供了很强大的计算机视觉处理能力,利用其提供的高级别函数和矩阵运算能力,开发者们可以开发出大量基于图像的应用。利用OpenCV强大的可移植能力,开发者可以使用相应的移植工具将PC平台上的成果转化到移动端,这将会为开发者创造新的机会。
参考文献
[1]喻擎苍, 翁秀娟, 赵匀,等.交互式开放结构计算机视觉平台[J]. 计算机工程与应用,2006,42(23):78-81.
[2]秦小文, 温志芳, 乔维维. 基于OpenCV的图像处理[J]. 电子测试, 2011(7):39-41.
[3]于仕琪, 刘瑞祯. 学习OpenCV( 中文版)[M]. 北京:清华大学出版社,2009.
[4] LEE C, XU Y. Online interactive learning of gestures for human /robot interfaces [C] Proceedings of the 1996 IEEE International Conference on Robotics and Automation. Washington,DC: IEEE Computer Society Press,1996,4: 2982-2987.
[5]赵健, 张冬泉. 基于OpenCV的数字手势识别算法[J]. 计算机应用, 2013, 33(z2):193-196.
[6] SURAL S,QIAN G,PRAMANIK S.Segmentation and histogram generation using the HSV color space for image retrieval[C] of the 2002 International Conference on Image Processing.Piscataway: IEEE,2002: 589 - 592.