基于视觉的手势识别在工业控制中的应用

描述

嵌入式视觉,基于计算机的视觉系统的演变和推断,处理和解释静态和视频图像的意义,有望成为下一个重大技术成功案例。例如,考虑现在常见于蜂窝电话,平板电脑,膝上型计算机和专用计算机显示器中的图像传感器和处理器。最初用于视频会议和摄影,现在它们被用于其他应用,例如增强现实。

同样,考虑消费者监控系统的迅速普及,由于摄像机及其子系统的稳步改进,以及日益用户友好的相关监控软件和服务的推动。 此外,最近购买汽车的人已经知道,图像传感器在车辆周围的许多地方越来越多地被发现,用于停车辅助,后视安全,即将发生的碰撞警报,车道偏离警告和其他功能。

前面提到的系统中使用的功能强大且经济高效的图像传感器,处理器,存储设备,I/O收发器和其他IC同样适用于包含视觉的工业自动化应用的开发人员。基于手势的人机界面在许多方面都是理想的,因此在这种环境中越来越普遍。首先,它们很直观;为什么单击鼠标或按钮,甚至在触摸屏上滑动手指以翻页或在菜单页面中移动,而只需将手扫过空中?

手势基于用户界面的UI还省去了经常妨碍基于触摸的界面的环境限制;水和其他液体,非导电手套,污垢和细菌等。然而,第一代运动实施,如任天堂® Wii™游戏机系统所使用的具有其自身的局限性。实施该方案需要一个容易丢失,易损坏的手持式控制器。此外,控制器和系统之间的接口(通常通过蓝牙®,ZigBee ®或其他一些RF无线技术实现)(如触摸屏界面)易受功能影响由于环境EMI导致的性能下降。

相反,请考虑采用图像传感器的设计。基于视觉的手势界面使用人体作为控制器而不是专用的额外硬件,解释手,手臂和其他身体动作。它们具有相对的EMI免疫力;所有您需要确保的是足够的操作员到设备的距离以及足够的环境照明。除了基于手势的控制,并且与前面提到的计算机和手机一样,您可以使用面部识别技术不仅“解锁”系统以响应有效操作员的面貌,还可以自定义配置系统例如,在任何特定操作员的情况下,登录到特定的用户帐户。  他们还可以提供比粗粒度加速度计或陀螺仪更广泛的用户控制选项套件基于动作界面。

Kinect案例研究

如果您的系统采用双图像传感器(即立体声或3-D)排列,您可用的手势范围会变得更加丰富,不仅包括水平和垂直运动但也有深度辨别力。立体声传感器设置还使面部识别软件能够更准确地辨别现实生活中的人与人的照片。 Microsoft®采用了一种不同的方法,称为结构光,用Xbox ® 360的Kinect外设来识别深度(参见图1)。

图1:微软用于Xbox 360游戏机的Kinect外设,已知的嵌入式视觉成功案例(a),结合了单色和拜耳图案的全彩色图像传感器,以及用于结构光深度识别的红外发射器(b)。 iFixit的进一步剖析揭示了其他组件细节(c)。 (分别由微软和iFixit提供)。

Kinect是最着名的嵌入式视觉示例之一,自2011年11月初开始在市场上销售的前60天销售800万台。它目前还不是一种工业自动化设备,至少是正式的,尽管黑客的努力已经显着扩大了其在游戏机起源之外的实用性。微软计划今年推出适用于Windows®7操作系统的官方SDK,以及PC优化的产品变体。无论如何,微软的设计权衡和决策都具有指导意义其他人开发基于视觉的用户界面硬件和软件。

Chipworks公司和iFixit在产品推出后不久进行的Kinect拆解显示,单色和全彩色图像传感器均来自Aptina。它们相对通用的VGA分辨率CMOS特性意味着Omnivision等备用电源也是可行的。微软在Kinect设计中包含了一个红外发射器,以便提供一个已知的 - 照明模式光源,由于其工作频率,肉眼也是不可见的。然而,这一设计决定阻碍了Kinect在阳光和其他富含红外线的环境中的使用。

单色图像传感器与红外发射器和PrimeSense源处理SoC协同工作,输出QVGA分辨率,通过USB 2.0接口将11位深度图像映射到Xbox 360,白色像素表示附近的对象,颜色渐变延伸到蓝色像素(远)对象(参见图2)。 Kinect还提供来自拜耳滤镜图案彩色图像传感器的24位插值彩色VGA分辨率图像,例如,用于捕获每个游戏玩家的面部图像并随后识别特定用户。最后,Kinect采用了四元素阵列麦克风配置,可用于精确定位三维空间中特定参与者的声音,同时滤除环境噪声和其他游戏玩家的声音。

处理器

图2:PrimeSense开发的视觉SoC(a)均驱动发射器用红外线(b)“绘制”Kinect前面的区域并处理Kinect VGA分辨率单色图像传感器的输出,创建从近(白)到远(蓝)距离的物体的每帧深度图图像(c) )。 (由PrimeSense提供)。

更简单的实现有时可以满足

一些分析公司已经独立估计Kinect的材料成本仅为50美元以上,而且该设备也相当大(11“x 3”x 3“)和重量(~4 lbs)。请记住这个特殊的外围设备不仅可以识别用户的手势,还可以成功解决全身运动捕捉和面部识别任务,包括识别用户的微笑,皱眉,眉毛和其他面部元素的运动,并在屏幕上的用户头像。 它也适用于各种操作环境,从而解释了红外发射器(和相关的散热风扇),以及单元定向加速度计,电机和三档组件。

Kinect需要最大限度地减少其消耗的USB 2.0系统总线带宽,为其他控制台外围设备(如网络适配器和HD DVD驱动器外围设备)保留足够的备用带宽。另一方面,它能够h arness既有自己的处理资源(前面提到过的PrimeSense IC,还有Marvell开发的和基于ARM®的SoC)和USB2系留游戏机系统组合的三核六线程3.2 GHz PowerPC™CPU和500 MHz GPU。然而,Kinect的光学子系统和红外传输方案相结合,将其保证的近距离可用范围限制在6英尺(多玩家情况下为8英尺);结合处理限制,这些因素使得支持Kinect的游戏能够同时识别出几个玩家。

在开发自己的基于嵌入式视觉的基础上,记住微软团队的这些权衡取舍设计。例如,如果不需要语音识别,您可以省去麦克风阵列,或者如果不太稳健的源位置和噪声抑制方案足够,则可以将其简化为单麦克风或双麦克风设置。您可能需要手势配置才能准确响应距离图像传感器不到6英尺的用户。另一方面,您可以在所有可能的使用情况下保证足够的环境照明,以排除对辅助红外线或其他照明的要求。

准确的深度识别,适用于复杂的手部运动和物体尺寸,有时需要双图像传感器设置,但您可能已经计划使用这样的配置来实现3-D视频会议或摄影功能。另一方面,如果基于手势的界面相当简单,您可能可以使用单图像传感器设置。单传感器配置也足够(如Kinect所示)用于基于结构光照的深度识别,以及飞行时深度分辨方法。

CPU和软件

如果与早期的Kinect案例研究相比,您的基于视觉的界面复杂性降低了,那么实现各种算法所需的处理资源量也将减少。可以使用各种处理候选项,您可以单独使用或组合使用,例如使用CPU-plus-GPU配对。 它们包括:

< li>来自AMD和英特尔公司等公司的CPU

来自Analog Devices和Texas Instruments等供应商的DSP

来自Xilinx的FPGA或其他可编程逻辑供应商

GPU来自AMD和NVIDIA等公司

来自CogniVue和Maxim等公司的视觉定制IC

来自CEVA等供应商的视觉优化处理器内核

来自飞思卡尔的SoC半导体和之前提及的几家半导体公司以及其他公司

手势识别是一种足够专业化和要求苛刻的功能,您可以选择从公司获得基础算法和/或中间件代码的许可其核心重点是为各种处理平台开发和实施手势技术。在研究阶段,您可能会发现手势识别对不同的人意味着不同的东西。例如,中间件开发商Omek Interactive将其工作重点放在利用3D图像传感器阵列的实现上,而其他公司只专注于识别基于手的手势,而忽略了更广泛的身体运动。<另一方面,如果您决定开发自己的手势界面代码,最常用的API和参考算法本质上是开源的,具体来说:

用于GPGPU的OpenCL™(图形处理单元上的通用计算)大规模可并行化代码段的加速

OpenMP ®(多处理)和Grand Central Dispatch,后者最初由Apple ®开发,用于在CPU核心之间以及CPU和GPU之间划分代码

OpenCV(计算机视觉)代码库最初由Intel ®开发,现在由Willow Garage维护

OpenNI(自然交互),一个orga PrimeSense作为关键创始人,提供一套API和支持自然语音和语音命令识别,手势和身体运动跟踪的框架

更专有的替代API大自然来自众多供应商。可以从General Instruments和MathWorks等供应商处获得更高级别的框架和软件开发工具集。如果您有兴趣通过图像增强技术进一步提高手势算法的有效性,请联系Apical Limited等公司。

嵌入式视觉联盟

本文中提及的许多公司(以及许多其他公司)都是嵌入式视觉联盟的成员,该联盟于2011年5月底公开发布。嵌入式视觉技术有可能实现广泛的电子产品比以前更智能,更敏感,因此它们对用户更有价值。它可以使电子设备公司既可以创建有价值的新产品,也可以为现有产品添加有用的功能。此外,它还可以为硬件,软件和半导体制造商提供重要的新市场。嵌入式视觉联盟是一个统一的全球技术开发商和提供商组织,正在帮助以丰富,快速和高效的方式将这种潜力转化为现实。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分