1.1 硬件导论
多点触摸指的是允许计算机⽤户同时通过多个⼿指来控制图形应⽤的⼀种表达⽅式,⽽多点触摸设备是由可触摸⽰设备(例如:计算机显⽰器、桌⼦、墙壁)或者触摸板组成,通过软件识别同时发⽣触摸⾏为的点。这与市场上常见的触摸显⽰屏(例如:计算机触摸板、银⾏的ATM 柜员机)不同,市场上常见的触摸显⽰屏只能够识别单或者双点。
⾃然⽤户界⾯⼩组(NUI)和多点触摸硬件设计以及多点触摸⼿势设计,特别是在搭建⼀个真正的多点触摸硬件设备(例如:⽀持多于两个点的输⼊)上带来了关键性的变⾰。NUI Group 的⽬标在于提供⼀个开放式的平台,在这个平台上⼤家可以⾃由的交流多点触摸硬件和软件的知识,推动着整个多点触摸技术的快速发展。
作为硬件上的先锋,NUI Group 希望能够为在搭建低成本、⾼分辨率、开源式的多点触摸设备感兴趣的⼈提供⼀个多点触摸技术的信息资源中⼼。通过这个平台不断发展和壮⼤,多点触摸技术带来了许多惊⼈的开创,这不仅仅局限在多点触摸设备,还引发了更多相关的设备出现。到⽬前为⽌,已经有五项可以帮助爱好者搭建稳定的多点触摸平台的技术出现,它们分别是:由Jeff Han 教授开创的受抑全内反射多点触摸技术(FTIR);微软Surface 桌⼦的背⾯散射光多点触摸技术(Rear-DI);由Alex Popovich 提出的激光平⾯多点触摸技术(LLP); 由Nima Motamedi 提出发光⼆极管平⾯多点触摸技术(LED-LP);由Tim Roth 提出的散射光平⾯多点触摸技术(DSI)。
这五项技术主要是基于计算机视觉和光学为主的,除了这五项在NUI Group⾥占绝⼤多数之外还有⼀些其它的技术同样可以搭建多点触摸设备,它们包括声波器、电容、电阻、动作捕捉器、定位器、压⼒感应条等。通常情况下,这各种感应器结合起来,就可以搭建⼀个特别的多点触摸设备。在本章节中,我们将会和⼤家探索这些提及到的五项多点触摸技术。
1.2 基于光学的多点触摸技术导论
基于光学(例如:摄像头)的多点触摸技术搭建起来的设备体积⽐例相对要⼤,但它的可拓展性、低成本以及容易搭建是其受到欢迎的原因。受抑全内反射多点触摸技术(FTIR)、正⾯和背⾯散射光多点触摸技术(Front and Rear DI)、激光平⾯多点触摸技术(LLP)、发光⼆极管平⾯多点触摸技术(LED-LP)、散射光平⾯多点触摸技术(DSI),这些都是基于光学多点触摸技术的例⼦。
上述的每个基于光学的多点触摸技术都包含着光学感应器(通常为摄像头)、红外光源以及通过投影仪或者显⽰器为显⽰的屏幕,因为有这三个相同点,所以在系统的学习各项技术前,需要对这三部分有⼀定的认识和了解。
1.2.1红外光源
红外线(英⽂简称:IR)是光谱上的⼀部分,刚好越界于⼈类眼睛可以看到的可见光,其范围长于可见光但短于微波,“近红外”(英⽂简称:NIR)处于红外光谱上的最低处,⼀般被认可的波长为700nm(纳⽶)到1000nm 之间。⼤多数数码摄像头的传感器对红外很敏感,所以我们通常看到的摄像头都加装⼀块可以滤除红外线的镜⽚,以便于摄像头只捕捉可见光,但这于我们所需要的相反,因此我们需要将⼀块可以滤除其它波长光只接收相对应红外线波长光的镜⽚替换原先的就可以达到我们所需要的⽬的。
在多点触摸技术中,红外光源主要作⽤于区别触摸表⾯的可视界⾯和物体或者⼿指痕迹。鉴于很多系统都以投影仪或者显⽰器作为显⽰的设备,因此如何让摄像头仅读取物体或者⼿指反馈的信息点是我们需要关注的,正如上⾯所说的,通过改装摄像头然后仅让其读取我们在触摸表⾯上所需要反馈的信息点即可。
⼤大多数压克⼒⽣⼚商在⽣产压克⼒时已经加强了可以削弱900nm 以上的红外线能⼒,这样可以帮助在作为窗户使⽤时是减少太阳的加热。很多摄像头在这⽅⾯上也做了修正,减少对940nm 的敏感以及对减低太阳光的⼲扰。
红外发光⼆极管并不是我们真正需要的,但它的红外光是我们要的。在多数基于光学多点触摸技术中(特别是LED-LP 以及FTIR),红外发光⼆极管被运⽤的原因在于它们具有⾼效性地提供红外光源的优点。例如散射光多点触摸技术(DI)却不⼀定需要红外发光⼆极管,但这不排除具有红外发光⼆极管的红外光源组,⽽激光平⾯多点触摸技术(LLP)利⽤红外激光器作为红外光源。
通常情况下,发光⼆极管能够以“单红外发光⼆极管”或者“红外发光⼆极管带”购买:
单红外发光⼆极管:单红外发光⼆极管价格相对便宜⽽且可以很容易为利⽤FTIR、DSI 以及LED-LP 作为多点触摸技术的设备制作发光⼆极管框,⽽需要我们具备的知识是如何去焊接我们所需要的电路。⽬前最常⽤的型号是欧司朗的SFH 485P,如果你想利⽤LCD 作为显⽰屏的话,那么你则需要亮度更⼤的红外发光⼆极管。
红外发光⼆极管带:这是⽤柔性扁平电缆结合红外发光贴⽚结合起来的条带,⼗分便利,购买的时候已经是组装好的,只需要我们贴在压克⼒四边则可(公认质量最好的是美国的environmentallights.com 提供的红外发光⼆极管带)。
红外发射器:这是⽤于Rear DI 或者Front DI 装置中的,这种⽅式的装置⽐其它的都要简易,只需要我们通过红外发射器将箱⼦内部照亮则可,但需要我们注意的是如何消除因为红外发射器引起的区域过亮问题。
在购买红外发光⼆极管前,需要⼗分注意的是看清楚发光⼆极管的参数表,波长、⾓度、功率,这些都是整个技术的重点。
波长:780-940nm,红外发光⼆极管在这个范围内最容易被⼤多数摄像头读取。波长越低,敏感度就越⾼等同于更容易分析压感。
功率:最低为80mw。
适⽤在FTIR 的⾓度:⾓度低于正负48 度的不能够产⽣全内反射,⽽⾓度⾼于正负48 度的则会产⽣红外线溢出压克⼒。为了确保其范围,可以利⽤⾼于正负48 度的,但⾼于正负60 度则会造成浪费(60-48=+/-12 度),这样⼦就会溢出压克⼒了。
适⽤在DI 的⾓度:通常来讲⾓度越⼴越好,更⼴的⾓度产⽣的效果会更容易。
对于DI 装置⾥⾯,很多⼈会有遇到区域过亮的问题。为了解决这个问题,我们建议将发光器反转照射,避免对着显⽰区域,同时我们需要为摄像头加上过滤⽚,简易的软盘过滤⽚可以产⽣效果,但效果并不好,我们建议⽤专业的过滤镜⽚来解决问题。
1.2.2红外摄像头
简单的⽹络摄像头可以⽤于多点触摸设备上,但是我们需要对其进⾏改装。⼀般的⽹络摄像头或者摄像头将红外光过滤了,只让其读取可见光,所以我们需要做的是相反的⼯作,我们需要对其进⾏改装成只需要红外光可以被读取。通常情况下,我们只需要打开摄像头的盖⼦,然后将过滤红外光线的镜⼦去掉,换上可以过滤可见光的镜⽚即可,但有些可以很容易去除,⽽有些价格⽐较贵的摄像头会将这个具有过滤红外线功能的镜⼦整合在摄像头⾥⾯,我们⽆法去除。
不排除有些摄像头可以直接读取红外光线,但进⾏改装的摄像头运⽤起来的效果会更加好。
多点触摸设备的性能好坏取决于其运⽤的部件,因此你需要⼗分谨慎地去选择你所需要的部件。在购买摄像头之前,你需要明确的是⾃⼰的⽬的是什么?如果你仅需要搭建⼀个⼩的⽤来测试的多点触摸设备,那么⼀个简单的摄像头就⾜够了,但相反如果你需要搭建⼀个⽤来演⽰的多点触摸设备,你则需要考虑购买更好的摄像头了。
分辨率:摄像头的分辨率⼗分重要,分辨率越⾼的摄像头在读取物体或者⼿指的时候能够更加的清晰和容易,这对于需要做到⼗分精确的设备来说⼗分重要。对于⼀个⼩的多点触摸设备来说⼀个低分辨率的⽹络摄像头(320*240 像素)就可以胜任了,⽽⼤的设备则需要⼀个分辨率⾼的摄像头(640*480 像素)来达到其精确度。
帧率:帧率是指摄像头在⼀秒中内读取到的帧的数⽬,更多的快照意味着在定义的时间内我们具有更多的数据。为了让设备能够更好的读取我们移动产⽣信息点以及反应更加灵敏,我们⾄少需要30 帧数每秒(FPS)。更⾼的帧数可以提供更好的流畅度和更好的⽤户体验。
接⼝:通常情况下,我们可以通过两个类型的接⼝来将摄像头和电脑连接。根据项⽬的不同,可以选择常⽤的USB 接⼝或者专业的IEEE1394 接⼝(常说的“⽕⼝”)。IEEE1394 摄像头因为对读取信息的衰减少⽽能够更好地将信息传送给计算机处理,⼀个对信息衰减越少的摄像头能够给设备提供更好的效率。
镜头类型:⼤多数⽹络摄像头都具有阻挡红外线的绿镜⽚,也具有避免图形变形的。但对于我们的⽬标,我们需要捕捉以及利⽤红外线。很多⽹络摄像头可以很容易去除滤除红外的镜⽚,这个镜⽚被放置在镜⽚的后⾯,具有红⾊反光的特性。但当有些摄像头⽆法拆除红外滤镜的时候,就需要将整个镜头进⾏更换。⽹络摄像头⼀般都会⽤到M12 型号的底座,⼯业摄像头系列(IEEE1394)通常需要另外购买镜头,另外不同型号的摄像头,也有不同的底座,例如:M12、C或者CS。
要选择⼀个好的摄像头不是⼀件容易的事情,幸运的是很多摄像头⽣产商会提供⼀个在线的镜头计算⼯具,这个⼯具通过输⼊两个参数便能够帮我们测量出在镜头与物体以及显⽰区域的长度和宽度的焦点长度,但要注意的是要注意选择好相对的型号。⼀个焦点长度⽐较低的镜头往往会产⽣很多不好的效果(例如:图像变形),这样⼦会⼲扰我们定位信息点,使得⼯作难以进⾏。
摄像头传感器和红外线过滤镜:鉴于我们的多点触摸技术是基于红外线的,因此我们需要知道的是我们选择的摄像头是否具有读取红外线的功能。⼀般情况下,⽣产商都会提及所⽤的摄像头传感器类型,通过这个类型我们可以找到相对应的参数表,这个参数表会告诉我们这个摄像头传感器在不同波长光下的敏感度特性,例如:SONY ICX098BQ CCD 传感器的参数表(图1.2.2)。
图1.2.2 SONY ICX098BQ CCD 传感器
在我们利⽤摄像头作为我们的多点触摸设备部件前,仍需要为摄像头添加过滤⼲扰光的滤镜。尽管我们使⽤的是已经能够感应红外线的摄像头,但它仍然会对其它光敏感,为了解决这个问题,我们需要在镜头前添加⼀个裁剪的滤⽚(软盘、三⾊胶⽚)或者镜头滤镜。裁剪的滤⽚能够为我们消去⼀些可见光,但没有特定的范围,⽽镜头滤镜具有波长唯⼀性,具有只允许⼀个特定波长通过的特点。
推荐的摄像头
如果是购买USB ⼝的摄像头,我们建议您购买以下的⼀种:
PlayStation 3(PS3eye)摄像头,能够容易地除去红外镜⽚⽽且具有⽐较⾼的帧率(640*480 30 FPS)。
Philips SPC 900NC,不能够除去红外镜⽚,需要更换镜头但具有⽐较⾼帧率(640*480 30 FPS)。
如果是购买IEEE 1394(⽕⼝)的摄像头,我们建议您购买⼀下的⼀种:
Unibrain Fire-(i 640*480 30 FPS),⽤的传感器和 Philips SPC 900NC 的⼀样 。
Point Grey Firefly(640*480 60 FPS)。
IEEE 1394 摄像头相对于USB 摄像头具有以下的优点:
⾼帧率
⼤分辨率
图像压缩率低