APP下载

基于机器视觉的人机交互系统的设计

2019-09-10齐丽丽

科学导报·科学工程与电力 2019年29期
关键词:人机交互机器视觉图像处理

齐丽丽

【摘  要】当前形势下,我国经济快速发展,科学技术不断进步。随着人工智能和虚拟现实技术的不断发展,人机交互系统已经成为当前的研究热点.目前,人机交互系统主要采取了行为识别(手势交互)、三维交互、语音交互、触觉交互和多通道交互等技术.作为行为识别技术中的一个重要研究分支,机器视觉方法实时性、鲁棒性较强,具有易于实现、交互性较好等优点.可以协助移动机器人完成目标跟踪、自主导航和避障.本文也将利用机器人视觉技术,对人体图像、姿势动作进行识别和处理,以期实际应用于特种机器人、服务机器人及智能家居等领域.

【关键词】机器视觉;人机交互;Kinect;图像处理

引言

机器视觉和机器人技术已被广泛应用于工业生产中,在许多应用中也会将两种技术结合起来使用,但目前生产中的此类应用一般只适用于一个固定的工序,比如利用機器视觉判断出外观瑕疵的产品,再用机器人将故障品挑出。这类应用中往往要求被检测产品处于相对固定的位置,机器人才能精确地取放。也就是说,传统技术只实现了部分的感知和活动功能,但缺乏大脑,这就制约了机器人技术的应用场景。本文研究一种利用动态机器视觉实现完整感知,实时掌握环境中的对象状态,借助人工智能技术接收感知信息并提出对策策略,给机器人的行动提供指导,以此提升人机交互的智能化水平,使得机器人更加接近人。

1整体设计

首先,在上位机层面,通过Kinect感应器,实时捕捉深度图像和RGB图像.然后,利用OpenNI和NITE技术框架,编写人体姿态识别处理程序(手势和人体骨骼),将用户的手部或者肢体动作在空间中的坐标位移进行分类处理.最后,将对应的操控指令通过串口驱动程序发送至单片机执行,从而实现对人体动作的识别.

2深度图像和RGB图像获取

深度图像的获取是由红外线发射器和CMOS红外摄像机共同完成的,只要Kinect感应器接收到了光编码的红外图案,其内置的PrimeSense的PS1080芯片就会把这个图案与存储在芯片内存中的参考图像相比较,经过系统校准后,就转换成了一个VGA尺寸的场景深度图像,用户通过OpenNI的API即可访问这个图像.RGB图像的获取则相对简单,通过Kinect自带的标准RGB摄像机及其数据镜像功能,即可访问RGB图像.

3人工智能模块

人工智能是当前炙手可热的研究课题,当前人工智能技术的快速发展不仅得益于硬件处理速度的快速提高,也受益于业内企业、个人共享了大量研究成果,使得人工智能技术不仅不再遥不可及,甚至可以在较低的成本内实现。延续上一节的围棋案例,要实现人机对弈,需要开发机器人的大脑,也就是基于人工智能的围棋AI。在海量的开源代码中,我们找到GitHub用户BrianLee(brilee)发布了一个开源围棋算法引擎,逻辑控制并不复杂,分为三层神经网络。第一层是策略网络(policynetwork),用于预测对手的落子,准确率较高但会耗费较多系统资源,策略网络输出可能落子概率分布列表。第二个神经网络也是一个策略网络,用于判断不同落子产生的局面的优劣评估,这一层网络速度较快,但预测准确率不高。还有一个神经网络是一个价值网络(valuenetwork),用于远期胜负预测。最后,根据第二个神经网络和第三个神经网络的量化评估值进行加权计算,然后取得一个最优结果。要运行人工智能应用,需要搭建一个运行人工智能的硬件平台。由于CPU是为常规计算设计,而GPU的并行特性使其具备更强的浮点运算能力。对于基于多层的神经网络算法的深度学习技术,每层神经网络包含权重和偏置的矩阵,这就要求系统平台能提供较大带宽的内存来访问神经网络,以进行海量的浮点运算。

4机器人模块

4.1机器人选用

在选择机器人前,需要考虑以下几个因素:第一,选用何种控制模式,是点位控制还是连续轨迹控制;第二,使用何种驱动方式,是液压、气压还是电气驱动;第三,需要多少负重;第四,是选用市面上的通用机器人还是定制专用机器人。以围棋对弈为例,显然我们需要点位控制模式,考虑机器视觉摄像头、吸盘等附属装置大约需要5kg负重,为了快速构建原型,我们可以选择一款电控的通用机械臂式机器人,来确保其运动范围足以覆盖整个围棋棋盘。

4.2机器人怎样与主机通信

机器人与主机间通信可以通过RS232串口、以太网等和各种工业控制总线。以常用的RS232串口通信为例,串口通信按位发送和接收数据,并需要设置波特率、数据位、停止位和奇偶校验等参数。在机器人端和主机端必须设置这些参数相匹配。程序示例1是一个基于ABB机器人平台的通信程序,这样的一个小程序就能够实现主机和ABB机器人的通信,当然,还需要主机端编写的通信工具才能正常使用。这里需要在主机端定义通信的协议。例如,我们的协议为X00Y00Z00I00,其中X代表主机AI计算完成后得到的列,Y代表主机AI计算完成后得到的行,而Z和I代表运动次数。这样机器人就可以按照AI的指令,在制定位置放下棋子或取出棋子。

5手势识别和人体骨骼识别

5.1手势识别

以用手势控制小车运动为例.用户向Kinect感应器挥手,开启识别功能:手势向左、右滑动,分别控制小车左、右转弯;上下滑动,分别控制小车前进、后退;用手势画出一个圆形,小车刹停.主要的程序流程是:(1)启用Kinect对象的深度图、手势和手部函数,用挥手手势命令Kinect开始手部跟踪;(2)设定NITE的手点控制器和圆形探测器,跟随用户手部动作,实时更新手部向量(Processing向量PVector),并在屏幕上通过坐标映射绘制手部跟踪点;(3)为了检测左右、上下挥手和画圆的动作,还要添加监听器,并且编写NITE回调函数.函数通过计算手部位置向量的数据变化来识别动作,如,本文采用的方法为监测手部位置向量的x方向位置变动,超过设定的阈值(50mm),则认为向左(右)挥手的动作发生;(4)通过串口驱动程序,向单片机发送指令,执行相应动作.

5.2人体骨骼识别

Kinect感应器能够识别追踪20个主要的人体骨骼点,利用各关节点的三维坐标数据可以计算得出关节转角,实现对人体姿态的识别.进一步的,将人体姿态映射为机械臂的执行动作,就能实现机械臂模仿人体动作的控制方式.以人体右肩关节作为控制关节为例,主要的程序流程是:(1)启用Kinect对象的深度图和人体关节,注册发现新用户、丢失用户、姿势侦测等相关回调函数.当监测到设定的触发姿态后使用NITE进行骨骼校准;(2)开始跟踪人体骨骼,实时获取各个关节的向量,并存储各个关节的最新位置;(3)以右肩部位置为中点,从远端到近端方向,分别提取右肘部、右肩部、左肩部的向量(PVector对象),通过反正切函数计算三点连线所形成的角度,得到右肩关节的转动角度,然后输出相应的控制值.

结语

人机交互,具有易于实现、交互性较好等优点,可以广泛应用于服务机器人、智能家居、机器人教学、工业控制、体感游戏设计等领域.同时,该系统在消除扰动和深度图像中的空洞及噪声点等方面还存在空白,在空间人体姿态识别、点云分析、3D扫描打印等方面还有待深入开发,这将是下一步的努力方向.

参考文献:

[1]刘杰,黄进,田丰,等.连续交互空间下的混合手势交互模型[J].软件学报,2017,28(8):2080-2095.

[2]刘动,李一鸣,王培亮.浅谈工业机器人的发展与应用[J].卷宗,2016,6(3):741.

[3]路璐,田丰,戴国忠,等.融合触、听、视觉的多通道认知和交互模型[J].计算机辅助设计与图形学学报,2014,26.

(作者单位:国家知识产权局专利局专利审查协作湖北中心)

猜你喜欢

人机交互机器视觉图像处理
机器学习在图像处理中的应用
模糊图像处理,刑事侦查利器
图像处理技术的实战应用
某型柴油机虚拟维修系统研究
大场景三维激光扫描仪在研究生实践教学培养中的应用
人机交互课程创新实验
基于机器视觉的工件锯片缺陷检测系统设计
人形交互式服务机器人研究现状及发展趋势
基于机器视觉技术的动态“白带”常规检测系统的开发
机器视觉技术在烟支钢印检测中的应用