技术解读-多点触摸

作者:创始人 日期:2020-06-18 人气:7864

        顾名思意,多点触摸(MultiTouch)技术指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术。与多点触摸技术相对应的当然就是单点触摸,单点触摸设备已经有很多的年头了,小尺寸的有触摸式手机,大尺寸最常见的就是银行里的ATM机和排队查询机。多点触摸设备是由可触摸设备(例如:计算机显示器、桌子、墙壁)或者触摸板组成,通过软件识别同时发触摸行为的点。这与市场上常见的触摸显示屏(例如:计算机触摸板、银行的ATM柜员机)不同,市场上常见的触摸显示屏只能够识别单或双点。

      多点触摸技术带来了许多惊⼈的开创,这不仅仅局限在多点触摸设备,还引发了更多相关的设备出现。到目前为止,已经有五项可以帮助爱好者搭建稳定的多点触摸平台的技术出现,它们分别是:由Jeff Han 教授开创的受抑全内反射多点触摸技术(FTIR);微软Surface采用的背面散射光多点触摸技术(Rear-DI);由Alex Popovich 提出的激光平面多点触摸技术(LLP); 由Nima Motamedi 提出发光二极管平面多点触摸技术(LED-LP);由Tim Roth 提出的散射光平面多点触摸技术(DSI)。这五项技术主要基于光学原理和计算机视觉识别,除了这五种主流技术之外,,还有一些其它的技术同样可以搭建多点触摸设备,包括声波器、电容、电阻、动作捕 捉器、定位器、压力感应条等。通常情况下,这各种感应器结合起来,就可以搭建一个特别的多点触摸设备。在这里,我们将和大家探索这五种多点触摸技术。

  基于光学的多点触摸技术

  基于光学原理(如摄像头)的多点触摸技术搭建的设备体积相对较大,但它的可拓展性较强、成本较低以及容易搭建。受抑全内反射多点触摸技术(FTIR),正 面和背面散射光多点触摸技术(Front and Rear DI),激光平面多点触摸技术(LLP),发光二极管平面多点触摸技术(LED-LP),散射光平面多点触摸技术(DSI),这些都是基于光学原理多点触 摸技术。

  每个基于光学原理的多点触摸技术都包含光学感应器(通常为摄像头或摄像机)、红外光源以及通过投影仪或者显示面板显示的屏幕。因为有这三个相通点,所以在系统探讨各项技术前,需要对这三点有个清晰认识和了解。受抑全内反射多点触摸技术

  JeffHan教授(Han2005)。Han教授的⽅法是源⾃⼀个光学的基本现象,叫全内反射(⼜称全反射),它讲述的是在⼊射⾓⽐特许的⾓(Getty,KellerandSkove1989,p.799)⼤的情况下,光线经过两个不同折射

受抑全内反射多点触摸技术原理图

率的介质,这个特许的⾓(称为临界⾓)基于物质的折射率⽽得到的,可以通过Shell法则以数学⽅式计算出来。当上述情况发⽣时,在物质上就不会产⽣折射,⽽是所有的光线会反射在内部。Han教授通过这个原理把红外线反射在⼀块遵守全内反射规则的压克⼒内部,当⽤户在压克⼒表⾯触摸时,光线就会被⽤户的接触部位反/折射(通过⽪肤),在触摸的地⽅就会将原本反射在内部的红外线折射回我们在压克⼒板⾯架设的红外摄像头(图1),通过对应的软件就可以侦测到我们相对应的信息点。这个原理在我们制作多点触摸显⽰设备的时候⾮常的有⽤,当光线的反射被我们破坏在对应的区域,然后折射出来时,架设在下⾯的红外摄像头便能够清晰地读取到相对的信息点。

散射光照明多点触摸技术 

背面散射光照明多点触摸技术原理图

散射光照明多点触摸技术会有两种表达形式:正⾯散射光照明多点触摸技术和背⾯散射光照明多点触摸技术(如图2)。两种表达形式都基于同⼀个原理——画⾯与触摸在屏幕上⾯的⼿指形成对⽐。

激光平面多点触摸技术

  红外激光头发射出来的红外⾯铺满整个屏幕,这个激光红外⾯的厚度⼤概在1mm左右,当⼿指触摸屏幕的时候,⼿指的尖部会作为⼀个红外点显⽰出来。利⽤激光平⾯多点触摸技术来实现多点触摸装置是种简易以及价格便宜的⽅法,多数的装置需要

激光平面多点触摸技术原理图两到四个激光头,从屏幕的四个⾓落照射在平⾯上。激光光线的亮度取决于激光的功率(mw、w),功率越⼤亮度就越⾼。

散射光平面照明多点触摸技术

  散射光平⾯照明多点触摸技术是利⽤⼀种特殊的压克⼒来使红外线照亮整个屏幕的。可以参照FTIR装置的步骤(不需要⽤到兼容层),把普通的压克⼒转成特殊压克⼒(如图3),这种压克⼒运⽤了许许多多的导光粒⼦作为主材料,就像在压克⼒⾥⾯装满了许许多多的镜⼦⼀样,当光照射进⼊内部的时候,就会被发

散射光平面照射多点触摸技术原理图

射从⽽照明整个屏幕,市场上称这种压克⼒为导光板。这种效果有点类似散射光照明多点触摸技术(DI),不同的是没有特别明亮的区域以及它的设置和FTIR相同。

发光二极管平面多点触摸技术

  红外发光⼆极管放置在触摸屏幕的四周,让光线更好地分布在表⾯上。这和激光平⾯多点触摸技术类似,⼆极管平⾯多点触摸技术同样在触摸屏幕上创造了⼀个红外线平⾯,光线会使放在屏幕上⽅的物体发亮⽽不是触摸,然后通过软件(Touchlib、CommunityCoreVision)调节滤镜来设置仅当物体被提起或者接近屏幕的时候被照亮。但这个对于刚开始

发光二极管平面多点触摸原理图

⽤⼆极管平⾯多点触摸技术来做设备的爱好者来说会是⼀个挑战,需要有更多的耐性去调节。装置中建议利⽤⼀块挡⽚(例如图4所⽰)放置在⼆极管的上⽅,这可以让更多的光在平⾯上。

  多点触摸输⼊编程和其他任何形式的编程⼀样,不过在多点触摸编程⾥,有⼀套⾃⼰的某些协议,⽅法和标准。通过NUIGroup与其他组织和社团的⼯作,多点触摸编程已经有了针对多种编程语⾔的开发框架,这些语⾔包括ActionScript3,Python,C,C++,C#以及Java。多点触摸编程分为两步:⾸先,从摄像头或者其他输⼊设备读取和转化输⼊的触点信息,传递这些原始的触点信息通过之前制定的协议组合成⼿势,然后⾼级编程语⾔就可以使⽤⼿势来让⼀个应⽤程序配合。TUIO(Tangible User Interface Protocol,可触摸的⽤户界⾯协议)已经成为追踪触点信息的⾏业标准协议。

触点追踪

  对象追踪⼀直是计算机视觉基础研究领域的⼀个⽅⾯。它的⼯作是跟踪包括能够准确的反复识别包含特定对象的⼀系列视频帧(估算)。⼀般来说,这是⼀个⾮常困难的问题,因为⾸先要在所有的帧中发现对象(⽽且往往是在杂乱,封闭,或者是不断变换的照明条件下),以及让数据能够和帧之间以某种⽅式联系起来以便识别我们所需要的对象。现在很多的问题已经被解决,在追踪这个问题上最普遍的模式就是“⽣成模式”(GenerativeModel),这是⼀些诸如Kalman粒⼦过滤器等流⾏解决⽅案的基础。

  在⼤多数的系统中,⼀个完善的背景相减算法需要对每帧进⾏预处理,这确保静态或者背景图像能够被忽略掉。对于⼀些光照不稳定的视频流,像“⾼斯混合模型”(Gaussian Mixture Model)这样的⾃适应模型已经能够⽐较智能的识别出不均匀的动态背景。把背景过滤掉之后,剩下就是我们需要的前景对象了。我们往往确定这些对象的质⼼,⽽且这些点会被⼀帧⼀帧被追踪。追踪算法会根据这些萃取的质⼼估算在下⼀帧触点的位置。

手势识别

  未来的⼈机交互将是⾃然⽤户界⾯(Natural User Interface),当然这个界⾯还很模糊。随着便宜⼜可靠

手势

的多点触摸硬件的不断发展,我们相信,在不久的未来,多点触摸设备不仅仅是在实验室⾥了,⽽是遍布在学习室,绘图室甚⾄是厨房⾥,⽆限可能。

  从⼴义上说,“⼿势的概念涵盖很⼴泛,只要是为了让交流的⽬的更明确,更引⼊瞩⽬⽽采⽤的⼀切⾝体动作,都可以称作⼿势。”通过⼿势交流是⼈类发展历程中最古⽼的形式,当然,这超出了我们的讨论范围。这样⼀个基于⼿势的界⾯是社会化,任务协作,以及艺术性触摸的最佳候选⽅案。这个界⾯是符合⾃然规律的、更直观的⽤户界⾯。然⽽,现在多点触摸硬件上所使⽤的⼿势是很少的,仍然存在很⼤的发展空间,当然也少不了继续探寻⼀些⼿

手势2

势的可应⽤性。多点触摸界⾯需要⼀个全新的⽅案,⽽不是⽤GUI或者WIMP的⽅法来实现它。⼿势的类型决定了不管是多触摸⽤户还是单触摸多⽤户都能进⾏互动。我们将讨论需要的新⼿势,发展⼿势识别模块和⽀持框架能够充分利⽤多点触摸设备的潜⼒,⽀持可定制开发和易于使⽤的复杂的多点触摸应⽤。

Python

  Python是⼀种可⽤于多种类型软件开发的动态⾯向对象编程语⾔,它提供了强⼤的与其它语⾔和⼯具相互协作⽀持,拥有⼴泛的标准库,⽽且你可以在⼏天之内上⼿。很多Python程序员都反映使⽤Python获得了更⾼的⽣产⼒,更强壮的代码以及更易维护的特性。

ActionScript3&Flash

  在2007年,Adobe收购了Macromedia,新版Flash推出,命名为AdobeFlashCS3。Adobe对ActionScript版本进⾏了全⾯的修订和增改,推出ActionScript3.0。到现在,Flash已经是⽹页设计师最强⼤的⼯具之⼀,然⽽,Flash已经不仅仅局限于⽹络。由于名为AdobeFlex和AdobeAIR的新的编程平台的出现,开发者可以⽤ActionScript3.0去开发跨平台(Cross-Platform)的桌⾯应⽤程序。现在,Flash可以来创作多点触摸应⽤,通过计算机视觉技术和多点触摸感测程序,⽐如Touchlib,CCV和reacTIVision的协助。

NET/C#

  .NET也为编程界⾯(API)提供了新功能和开发⼯具。这些⾰新使得程序设计员可以同时进⾏Windows应⽤软件和⽹络应⽤软件以及元件和服务(webservice)的开发。.NET提供了⼀个新的反射性的且⾯向对象程序设计编程界⾯。.NET设计得⾜够通⽤化从⽽使许多不同⾼级语⾔都得以被汇集。

  从可触摸的点数上来分,有两点触摸(比较适合一个用户,现在市场上也把两点触摸归到多点触摸的行列)、真多点触摸(适合于多个用户)。

  从设备尺寸上来分,有小尺寸的个人多点触摸设备,也有大尺寸的适合多人的多点触摸设备。通常以20英寸作为个人设备和多人设备的分界点,显然太小的设备多人用起来也不方便。

  按照冯·诺依曼的计算机构成原理,一台计算机应由运算器、存储器、控制器、输入-输出设备组成。传统计算机的输入设备是键盘和鼠标,输出设备是显示器,而多点触摸计算机与传统计算机不同之处就在于它的输入与输出全都集中到了显示器上,你在显示器上输入指令,同时计算机就将结果反应在显示器上。 在现有技术下,多点触摸技术所使用的显示设备主要有液晶显示器、背投显示器等。诸如全息显示器之类的设备还停留在科幻电影和科学家的实验室里。

  很多人以为多点触摸仅限于放大缩小功能。其实,放大缩小只是多点触摸的实际应用样例之一。有了多点触摸技术,怎么应用就可以通过无限想象来无限扩展。程序员可以把多点触摸应用到很多方面,从一定程度上改变或者创新出更多的操作方式来。典型的应用是,在硬玻璃上弹琴成为现实。如果把你的手机屏幕变成琴键,那么哄哄小女孩还是很有趣的。另一个典型的例子是苹果手机上的PS模拟器,通过多点触摸技术,实现了同时进行方向键和其他按钮的组合输入。

    

你觉得这篇文章怎么样?

00