许 静
(呼伦贝尔学院 音乐与舞蹈学院,内蒙古 呼伦贝尔 021008)
数字信息技术在上个世纪末期飞速成长,获得了非常大的进步和发展[1]。计算机技术的蓬勃发展,使得社会生活的许多领域发生了翻天覆地的变化。基于人机交互的前沿科技获得了广泛关注,许多研究者又将“计算机视觉”当做人机交互的突破点来开展研究,为实现计算机自动化、智能化而努力着。随着计算机技术的发展,基于人的立体视觉技术在生活中的应用也取得了质的飞跃,这也给现实生活增添了许多的乐趣和无限可能。
人类对于音乐的追求是相通的,从远古时代简单的敲击产生音乐,到新时代各种乐器层出不穷,音乐起到了非常重要的纽带作用。钢琴作为乐器中的“乐器之王”,从一诞生就受到人们的喜爱,然而由于其高昂的价格以及复杂的结构,一直未能在平常百姓家庭得到推广。
然而,随之高新技术的蓬勃发展,基于双目立体视觉的虚拟钢琴获得了研发,取得了非常大的进展,国际上一些科技发达的国家在本世纪初便开始进行了研发,这项技术在国内同样得到传播和不断研发推进。通过双眼立体视觉从而将虚拟钢琴引入千家万户,一方面是对计算机视觉技术的推进,另外一方面也极大的促进了计算机技术和钢琴的融合发展。本文对计算机双目立体视觉技术和虚拟钢琴进行了系统研究,包括计算机双目立体视觉技术和虚拟钢琴的研究现状,同时基于立体视觉技术设计了简单的虚拟钢琴,以期将双目立体视觉在虚拟钢琴中得到应用,并提供一定的理论参考。
眼睛是心灵的窗户,作为非常重要的感觉器官,人们通过眼睛获得外部信息是一种非常有效的方法[2]。人眼需要通过视网膜接受外界的光而形成图像,然后将形成的图像传到视觉中枢,形成一种印象,再传到大脑,形成感知。从计算机诞生以来,如何将计算机与人体器官进行紧密结合成为了许多研究者的研究方向和研究重点。“机器视觉”是研发者最为关注的一个领域。
将机器变成类似人类拥有相关视觉一直是研究者追求的目标,并且最终完成机器二维图像与三维场景的转换。
计算机视觉从20世纪60年代由美国MIT的Robert教授首先提出[3]。从这之后,经过Huffinan、Clows、Waltz等人的不断研究,计算机视觉技术日趋发展成熟。尤其是MIT的Marr教授在本世纪初创立了视觉理论体系,这有力的推动了计算机视觉技术的发展。
双眼立体视觉是计算机视觉技术中很关键的一项技术,双目立体视觉(Binocular Stereo Vision)是一种重要的机器视觉形式,双眼立体视觉技术是利用视差原理同时利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。双目立体视觉的实现过程一共分为六个主要部分:图像采集、摄像机标定、特征提取、立体匹配、深度计算以及内插重建[4],时差求取是双目立体视觉技术的核心。双目立体视觉具有操作简单可靠、可操作性强等优点而被人们广泛的接受和应用[5]。虽然双目立体视觉还需要进一步的完善,但是在航天科工、建筑、测量检测方面发挥着非同一般的作用。
探索音乐的本质,是人们一直在追求的音乐方面的高尚追求,素质音乐也是素质教育中的重要的一个方面,音乐不仅是声音的艺术也是情感和时间的艺术[6]。
钢琴作为一种非常古典的键盘乐器,被认为称为“乐器之王”。一架钢琴包含88个黑白琴键,钢琴声音是通过琴键牵引琴箱里面的小木槌,然后小木槌通过和钢丝弦接触震动产生声音。随着人们对于音乐的不断追求,钢琴成为了一种非常受欢迎的乐器。但是因为钢琴的高昂价格和巨大体积,严重影响钢琴的推广。在对钢琴如此急迫的市场需求下,虚拟钢琴应运而生。
从20世纪90年代,通信技术伴随着计算机技术的日新月异发展,基于传统人机交互技术研制的产品在实际生活中受到很大的局限,因此虚拟现实技术[7]开创了一个人机交互的新时代。基于虚拟键盘从最初的直接佩戴到逐渐的非直接接触是技术上的一个飞跃,目前虚拟键盘主要是通过单摄像头和基于双目识别类进行图像跟踪。
通过单目进行键盘的虚拟化是通过红外光源来检测手指的状态,以进行目标按键的判断。该种方法所形成的虚拟键盘具有操作简单、结构单一、准确率低等特点。例如,当光源较为强烈时,手指形成透亮光斑,这样便不能准确的判断目标物的位置。而且在使用虚拟键盘的时候会给人们的身体造成一定的伤害。相反的,基于双目视觉技术的虚拟键盘,客服上上述缺点,并且可以快速的定位目标位置,从而快速而准确的进行目标识别。同时利用双眼立体视觉技术受外部环境的影响很小,具有明显的优势。
如前文所述,双目立体视觉技术是由MIT的Roberts教授在20世纪中叶首次提出,他将简单的多面体从数字图像中精确的提取出来,完成了图像二维化和场景三维化的过渡。随着关于该技术的研究不断深入发展,双目立体视觉由简单特征向复杂几何要素转变。20世纪70年代末期,双目立体视觉进入了发展的快车道,Marr首次将该技术与神经生理学等学科结合起来,这使得双目立体视觉技术更加广泛的被关注和被接受。
欧美日本等发达国家对该邻域的研究较早,成果也比较丰富。计算机视觉逐渐趋向于实际应用方向。立体视觉技术向着“人工智能”方向发展和努力。双目立体视觉技术发展的目标有以下2个:(1)着力创建具备强大功能的双目视觉体系。(2)实现基于双目立体视觉的计算模型。
在基于计算机视觉技术的研究中,双目立体视觉技术期望通过利用摄像头来模仿人类的眼睛,然后利用摄像头采集得到的二维图像对物体的三维形状进行重建,从而精确的定位物体的位置,最终确定其作为计算机重构物体的目标[8]。现实生活中有许多这样的例子,比如 3D 电影,3D电影利用双目立体视觉原理,通过2个摄像机的不同角度拍摄,获得成片,当电影放映时,屏幕上的图像由2个摄像机投放,利用偏振光原理,使得人类的双眼观察到不同角度的景象,形成一种具有三维感觉和图像的影像。
Du[9]等人利用三维光学测距技术设计了一套虚拟键盘。这套设备由2个摄像头、1部PC机及1套投影仪组成,摄像头主要是为了测距而设置的。该系统通过USB2.0接口连接到摄像头和PC机,利用自主研发的三维测距算法,将手敲键盘这一过程进行了虚拟化。由于作者采集的图像分辨率较低,图像较模糊,因此该系统存在较大的误差。经过一系列的优化处理,如算法的改进,作者通过将多层次特征匹配引入人手识别的过程中,达到了非常好的改善效果。但是该方法依旧存在效率低和成本高等问题亟需解决。
Malik等研发出了一套视觉触摸板[10],该系统设计相对简单,创新之处在于该系统含有2个摄像头,这2个摄像头是建立三维视觉模型的基础,可以对手势进行准确的定位和跟踪。
该系统的活动区域由四个顶点包围,这四个顶点与计算机的点一一对应。利用该系统进行的动作只能是一些相对简单的动作,诸如点击、指压等动作。利用该系统对手势动作识别依旧存在跟踪识别误差大、识别效果差等缺点。
Hernanto[11]等摒弃了传统的摄像头,通过采用网络摄像头来实现虚拟键盘的按键功能。在颜色模块,作者转化思路,将YCC颜色模式引入系统,并将颜色模块进行分割处理。系统中摄像头位置不同,一个摄像头位置较低,主要是为了记录试验者的击键动作,而另外一个网络摄像头位置较高,主要是为了记录指尖坐标的键盘区域,最后通过两个摄像头综合记录的结果来确定目标按键。但是利用这种方法依旧存在着噪声干扰等问题,另外,键盘按键时反应较滞后,需要进一步进行改善。
(1)局部立体匹配算法
局部立体匹配算法是一种利用将局部细节进行优化的视差值估计方法,这种算法通过选择邻域中的最佳像素为依据。和全局匹配算法相同的地方在于局部立体匹配同样是基于能量最小化来对视差进行评估。局部匹配算法由于局部细节的掌握因而计算所得的视察估计也具有局部性等特点。
平方差和SSD (Sum of Squared differences),绝对差和 SAD (Sum of Absolute Differences),归一化互相关 NCC (Normalized Cross Correlation)均属于局部立体匹配算法[12];而比较新型的局部立体算法有自适应窗口算法(Adaptive Window)和自适应权重算法 (Adaptive Weight)[13]。
(2)全局立体匹配算法
相对应的,全局立体匹配算法通过对全局的进行优化理论方法估计视差。全局立体匹配算法具有计算结果准确等优点,但是也存在计算复杂等缺点。在一些较为复杂场景中,利用全局立体算法获得的结果匹配性不高。
目前主要的全局立体匹配算法有图割GC (graph cuts)算法和置信传播BP(beliefpropagation)算法。
本工作采用以下的设计流程,系统框架见图1。整个虚拟钢琴系统分为6部分:分别是离线获取琴键位置、图像分割、指尖检测、计算指尖深度、求取目标琴键、实现钢琴功能。
图1 系统框架图
基于双目立体视觉技术设计虚拟钢琴所需硬件包括:一台PC机、两个规格型号完全一样的CMOS摄像头以及自制的纸质钢琴键盘。首先两个规格型号相同的CMOS摄像头按照适当的距离平行放置,然后将纸版钢琴键盘放在贴在位于摄像头垂直下方的一块薄板上,通过 USB2.0 数据线将两个摄像头与PC机进行连接,从而在计算机上读出钢琴键盘图像。特别注意的是两个参数一致的摄像头都是正常拍摄纸质钢琴同时确保琴键上的基点纵向一致。
相对于两个参数一致的摄像头,纸版键盘位置是固定不变的,因此摄像头获取琴键的二维图像不发生改变。为了更加准确的定位琴键的位置,本文通过离线模式进行琴键的位置确定,并制定模型,然后将这个模型进行保存,以备使用。
为了在设计中减少计算量同时提高计算的准确性,本文将键盘中的白键设定为封闭的图像,这是黑键成为了相对参考物,通过白健与黑键的位置来间接的对其定位。图2为钢琴键盘示意图。
图2 钢琴键盘示意图
我们首先将拍摄到的图像进行预处理,图3为图像预处理流程图,所拍摄图像通过灰度化处理、高斯滤波降噪、Canny边缘检测、膨胀处理最终获得拍摄图像的边缘图像。具体操作过程在这里不再一一赘述。
基于上述图像预处理后,我们通过利用OpenCV 进行键盘的轮廓确定,通过左下顶点和其对角顶点确定了黑键的位置。然后将钢琴键盘整体图像的边缘进行定位,确定了白键的轮廓区域。基于上述操作和计算法则,我们精确的获得了钢琴键盘以及各琴键的位置区域。最后将这些区域进行存储。
在本文中,图像分割是为了将人手像素从图像中独立出来。这就需要进行肤色检测。由于肤色检测容易受到光照的影响,所以在不同光照条件下,肤色检测的准确性受到干扰。
我们通过利用椭圆模型肤色检测算法来进行图像分割,以获得人手前景图。利用YCbCr 颜色模式构造新的颜色空间。由于椭圆肤色模型具有分离性好、稳定性高等优点,因此本工作引入椭圆肤色模型进行肤色检测和模型确定。
基于上述原理,本文使用C+OpenCV进行肤色计算,所用分算法为椭圆肤色模型检测算法,实现了人手从图像中的独立。具体算法流程如图4所示。
图4 算法流程图
基于上述算法而得到手指的前景图,下一步就是精确定位指尖的位置,这样才可以快速的计算出指尖的三维深度,进而判断手指的状态。本工作应用K曲率算法和K向量算法结合的算法进行指尖检测,所用算法如图5所示。
图5 指尖算法流程图
虚拟琴键识别需要进行以下三个步骤:
第一,通过两个参数完全相同的摄像头拍摄获得图像,根据上述介绍的离线模式确定出键盘的位置。
第二,基于该系统的硬件结构,判断手指是否按在了纸质钢琴上。通过式1计算出指尖深度L,通过指尖深度来准确判断手指的位置。
(1)
若通过上述计算结果并非理想状态,可以进行适当调整。
第3,准确判定手指和琴键的匹配。通过第二步判断结果可以确定手指在琴键上,本文通过Open CV中的函数来确定手指和白黑琴键的对应匹配关系。
综上所述,我们将琴键识别流程图示于图6。
图6 琴键识别流程图
本文对双目立体视觉以及虚拟键盘进行了总结,同时给出了双目立体视觉技术在虚拟钢琴中的应用现状,最后基于双目立体视觉技术设计了一套简易的虚拟钢琴系统。