人机语音交互系统

2024-10-08

人机语音交互系统(精选7篇)

人机语音交互系统 篇1

0 引言

近些年来人机交互系统层出不穷, 但大多数人机交互系统采用鼠标、键盘方式, 而采用语音处理技术克服了人机交互必须直接接触的局限, 应用在人机之间具有障碍的场合具有重大的现实意义。语音处理技术是一门新兴的技术, 它不仅包括语音的录制和播放, 还涉及语音的压缩编码和解码、语音的识别等各种处理技术。传统实现语音控制的途径有2种:一种是单片机扩展设计, 另一种是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法, 即使勉强实现也要加很多的外围器件。专门的语音处理芯片功能比较单一且价格较高, 除语音之外的其它功能几乎无法实现。本文采用独具语音特色的SPCE061A单片机设计了一种基于语音处理技术的人机交互系统, 该系统外围电路少, 成本低, 语音识别正确率较高。

1 系统结构

基于语音处理技术的人机交互系统结构如图1所示。

系统中央处理器选用凌阳公司生产的SPCE061A单片机, 它采用μ′nSPTM (Micro-controller and Signal Processor) 核心处理器, 具有较高的处理速度, 能够完成16位算术逻辑运算、16×16位硬件乘法运算和DSP内积滤波运算, 能够快速处理复杂的数字信号[1,2];集成了8路10位精度ADC, 其中1路为音频转换通道, 能够轻松地将语音信号采集到芯片内部, 并且内置自动增益环节 (AGC) , 随时跟踪、监视前置放大器输出的音频信号电平, 以便使采集的音频信号保持在最佳电平, 又可使谐波减至最小, 从而保证对语音信号的较好控制。

系统的工作过程主要包括语音采集和语音识别2个部分, 其原理分别如图2、图3所示。

2 系统硬件设计

2.1 音频输入电路

由于SPCE061A集成了音频输入专用ADC以及AGC放大电路, 因此, 其外部电路比较简单, 如图4所示。其中VMIC用于提供传声器的电源, VSS为系统的模拟地, VCM为参考电压, MICP脚和MICN脚分别为传声器X1的正、负极的输入引脚。当对着传声器讲话时, MICP脚和MICN脚将随着传声器输入的声音产生变化的波形, 并在SPCE061A的2个端口处形成2路反相波形, 送到SPCE061A内部的运算放大器进行音频放大, 经过放大的音频信号通过ADC转化为数字量, 保存到相应的寄存器中[3,4], 然后对数字音频信号进行压缩、识别、播放等处理。

2.2 音频输出电路

SPCE061A内置2路10位的DAC, 只需外接功放电路即可实现语音播放功能, 如图5所示。其中VDDH为参考电压, VSS为系统模拟地。音频信号由SPCE061A的DAC引脚输出送入到音频输出电路的DAC端, 通过音量电位器R9的调节端输入到集成音频功率放大器SPY0030, 经音频放大后, 音频信号从SPY0030输出端外接扬声器播放声音。SPY0030是凌阳公司生产的一款音频放大芯片, 工作范围为2.4~6 V, 最大输出功率可达700 mW。

3 系统软件设计

基于语音控制的人机交互系统主要包括语音播放和语音识别功能。语音播放功能采用凌阳语音播放算法SACM_480实现, 通过调用Sacmv26e.lib语音播放库中的函数实现语音信号的模数转换、压缩编码、解码、填充队列、数模转化等功能。语音识别分为语音训练和语音识别2个过程, 通过调用bsrv222SDL.lib语音识别库中的函数实现特征模型导入和导出等。

3.1 软件总体设计

系统软件的总体设计流程如图6所示。语音命令的特征模型保存在SPCE061A的内部RAM中。由于SPCE061A的存储资源有限, 系统所需RAM空间可能被旧的特征模型数据占满, 新的特征模型则无法保存到RAM中, 所以首先利用BSR_DeleteSDGroup (0) 函数将RAM空间中所有的特征模型删除, 释放出所需空间。然后检测训练标志位BS_Flag, 当BS_Flag=0xFFFF时, 表明系统未经训练, 需要调用BSR_Train (int CommandID, int TraindMode) 训练函数来完成语音模型的建立, 其中CommandID为命令序号, 范围为0x100~0x104, 并且对于每组训练语句都是唯一的;TraindMode为训练次数, 为1表示使用者训练1次, 为2表示训练者训练2次, 为了增强可靠性, 最好训练2次, 否则识别的命令就会倾向于噪音。BS_Flag为其它值表明系统已经训练, 即可装载语音模型, 进入识别状态,

3.2 语音播放程序设计

系统实现人机交互的条件之一就是语音播放。系统在训练和识别过程以及控制执行对象过程中要播放提示信息, 使操作者更好地与系统交互。实现语音播放首先要制定语音播放资源, 可以采用Windows操作系统自带的录音机录制语音.wav文件资源, 将.wav文件的属性设置成“PCM/8 kHz/16位/单声道/15 KB/s”格式, 否则SPCE061A无法播放语音资源。由于SPCE061A内部存储资源有限, 所以还要将.wav文件通过凌阳压缩工具Compress Tool将其压缩成.48k文件。最后将.48k文件添加到所建工程的资源列表中。

语音播放程序流程如图7所示。通过SACM_A480_Initial (int Init_index) 函数选定播放模式, Init_index=0表示手动方式, Init_index=1表示自动方式, 这里选择自动方式。然后调用SACM_A480_Play (int Speech_Index, int Channel, int Ramp_Set) 函数设定语音资源序号、声道、音量是否可以调节等, Speech_Index的值按照.48k文件在资源列表中的位置N设定, 即Speech_Index=N-1;选择DAC1和DAC2双通道播放, 设定Channel=3;允许音量增减, 设定Ramp_Set=3;通过函数SACM_S480_Status (void) 的返回值是否为1判断语音是否播放完毕, 如果没有播放完毕则调用语音播放系统服务函数SACM_S480_ServiceLoop (void) 将语音资源送入解码队列、解压缩后送入播放队列等待中断播放, 如果播放完毕则调用SACM_S480_Stop (void) 函数停止语音播放[5]。语音播放中断必须放在TMA_FIQ中断源上且通过调用函数F_FIQ_Service_SACM_S480执行。

3.3 语音识别程序设计

系统实现人机交互的条件之二就是语音识别, 即系统能够识别人的口令并按照口令执行动作。SPCE061A配有专用的麦克接口用于语音训练和语音识别, 16位的定时/计数器用于语音信号的控制采样, 内置的硬件乘法器和内积运算保证了识别算法的运行。

训练模式启动后, 系统播放语音提示, 提示用户语音训练已启动, 接下来用户可按照系统提示依次对各条命令进行训练。在训练过程中, 如训练成功则由语音提示进行下一条命令进行训练, 若失败, 也会提示用户继续训练该条命令, 全部命令成功训练完毕后系统将准备进行语音识别。当向控制器发出语音命令时, 声波通过麦克接口输入, 将相应的信号传递到SPCE061A, 经编解码电路和数字信号处理后, 通过相关程序与预先植入的语音库中的命令进行比较识别, 根据识别的结果进行判断, 转换为能被系统识别的信号, 从而对被监控系统进行控制[6,7]。

(1) 语音训练

语音训练程序流程如图8所示。语音训练通过调用函数int BSR_Train来完成, 训练采用2次训练获取结果的方式, 训练成功返回0, 没有声音返回-1, 训练需要再说一遍返回-2, 训练环境太吵返回-3, 数据库满返回-4, 2次训练的命令不同返回-5。系统首先会提示“第一条命令”, 这时训练者可以告诉系统第一条命令, 然后系统会提示“请再说一遍”, 这时重说一次命令。如果2次的声音音色和响度基本相同, 系统就能够成功地建立语音模型, 此时第一条口令训练成功;如果没能成功建立模型, 则提示“声音不同”。另外若训练口令时周围环境太吵, 系统提示“环境太吵”;若训练口令声音太小, 则提示“没有声音”。口令训练结束后, 系统提示“准备就绪”。

(2) 语音识别

语音识别程序流程如图9所示。通过调用void BSR_InitRecognizer (int AudioSource) 函数完成初始化, 其中AudioSource为0表示MIC语音输入, 为1表示LINE_IN模拟电压输入。当主程序调用该函数时, 语音识别器便打开8 kHz采样频率的FIQ_TMA中断, 并将采样得到的语音数据填入语音识别数据队列中。函数int BSR_GetResult () 完成语音识别处理, 当无命令识别出来时, 函数返回0;识别器未初始化或识别未激活时返回-1;识别不合格时返回-2;识别成功时返回命令的序号ID, 根据ID号执行对应的动作。

4 测试与结论

测试方法:系统分10次测试, 每次测试5种口令识别, 每次测试正确识别口令的数据如表1所示。

从表1可看出, 系统的口令识别正确率在90%以上。由于语音信号具有不确定性, 因此, 语音识别过程中会出现一定的误差和不确定性。经分析得出以下结论:

(1) 系统口令识别的正确率与训练环境紧密相关, 在训练过程中应尽量保持周围环境安静, 否则可能导致识别正确率下降;

(2) 系统口令识别的正确率与人和麦克的距离有关, 在条件允许下的情况下应尽量保证人与麦克的距离最小;

(3) 使用8 kHz的采样频率即可获得比较好的效果, 且占用存储空间适中, 因此, 语音播放速率要与语音采样速率相同, 即8 kHz, 这样才能保证系统正常播放语音。

另外在系统调试过程中发现, 当程序首次编译时, 会提示“The external symbol ‘T_SACM_A2000_SpeechTable’has not a public definition”信息, 解决方法就是在工程中打开Resource.asm文件, 在文件结尾处加入语音资源索引表。如果编译出现“cannot locate DATA section automatically”信息, 表明被播放的语音资源较多, 需要扩展存储器。

5 结语

本文介绍的基于语音处理技术的人机交互系统利用声音实现了人机交互功能, 克服了鼠标、键盘受地域限制的缺点。如果采用无线麦克, 则使用更加简便。该系统成本低, 外围电路少, 易操作, 语音识别率较高, 实际应用前景广阔。

参考文献

[1]罗亚非.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社, 2006.

[2]杨帅, 薛岚, 史宜巧, 等.基于音频信息采集的LonWorks节点的研究[J].计算机技术与发展, 2009 (8) :205-207.

[3]汪敏.凌阳16位单片机实验与实践[M].北京:北京航空航天大学出版社, 2007.

[4]杨帅, 薛岚, 高安邦, 等.基于SPCE061A的智能小车机器人的设计[J].机械制造与自动化, 2009, 38 (6) :161-163.

[5]李小白.凌阳16位单片机C语言开发[M].北京:北京航空航天大学出版社, 2006.

[6]杨帅, 薛岚, 高安邦, 等.基于SPCE061A智能小车机器人语音辨识系统的设计[J].山西电子技术, 2009 (4) :5-6, 19.

[7]杨帅, 薛岚, 高安邦, 等.基于SPCE061A智能小车机器人语音播放系统的研究[J].装备制造技术, 2009 (7) :38-39.

人机语音交互系统 篇2

人机语音交互技术其定义总结如下, 机器识别并分析提取语音信号语义特征信息, 与标准信息库中语义特征相对比, 输出相应文字或转化成我们想要的输出结果。其交互的对象包括人与人之间 (语音远距离通信) 、机器和人、机器和机器之间, 该项技术让不同交互对象可以自由的进行高效信息传递。其需完成身份认证、语义理解、语音应答、语音压缩编码。

现有比较成熟的技术有A S U、A S R系统。其结构包括预处理模块、特征提取模块、训练语音模型、模式匹配、识别测试模式, 通过训练产生的词汇表进行识别判别, 进行句法分析完成语义分析。语音的预处理主要包括:噪声消除noise detection、端点检测endpoint detection、加强high frequency enhancement.

人机语音交互技术是一门综合技术, 是我们信号处理的分支研究方向, 其涉及的领域广泛, 包括生理学、心理学、语言学、计算机科学以及人的体态语言 (人在沟通交流时其表情、手势、形体动作是有其含义包含其中的) 。

各国在人机交换技术方面均投入了大量研究, 1982年日本提出了智能计算机系统, 目标90年代完善人机交换技术, 我国1986年提出863高科技计划, 目标实现自动语音翻译系统, 1997年Microsoft提出语音人机交换计划, 经过多年的研究, 确实攻克很多技术难题, 取得了多项技术成果, 但是仍有大量问题存在。

人机交互技术的现状、困难及其发展趋势:虽然经过数十年的发展人机交换技术有了重大的突破性发展但是仍然有许多亟待解决的技术难题: (1) 人类语音信号极其复杂多变, 虽然经过大量积累研究现阶段我们并未完全掌握和分离提取各类特征。 (2) 人机交换技术其适应性较差, 受各种因素干扰。其具体应用对特定环境依赖性强, 训练和识别的环境差异将会大大影响其结果的准确性。在特定的训练环境训练的系统不能灵活应用于其他场景。语义分析时不同说话人的变化也会造成识别系统的正确率下降。 (3) 受噪声音响大, 人类在沟通交谈时下意识自动排除环境因素的诸多干扰, 但是机器的噪声排除能力很差。高噪声环境时系统稳定性准确性下降。 (4) 语音建模并不完善, 其涉及到多领域包括心理学、生理学、语言学等等。 (5) 其应用并未真正市场化、商品化, 很多研究经验只停留于实验阶段, 没有成熟丰富的商品应用经验, 其稳定性、准确性、安全性有待提高。

人机交互技术的应用及最新进展:随着人机交互技术的应用, 电脑将变成一为亲密的伴侣, 你只要对着麦克风自如的和它说几句话, 即可轻松的实现那些隐藏在Windows层层菜单后面的功能。如今语音输入已经取代传统的键盘和鼠标成为我们与机器交流的又一方式。现有的智能计算机带有的语音识别系统对于语音识别的平均最高识别率达到90%, 经过“训练”, 已经具备简单的“自主学习”能力, 这将明显极大降低电脑应用的障碍, 例如许多残障人士、年纪较大的长者, 可以摒弃传统的操作, 不再依赖传统输入设备鼠标和键盘, 是我们的操作更加灵活、简单、人性化, 语音识别技术使得计算机能够向人一样听懂自然的语音指令, 因此, 将语音识别、语言理解与大量的数据库检索和查询技术相结合, 就能够实现更轻松的信息查询方式。

TTS语音合成系统现在已经比较成熟, 他可以准确无误的把文字合成人的自然语音, 当前存在的问题是虽然准确程度得到了保证, 但是合成的声音并不自然, 缺乏正确自然的情绪变化快慢节奏的调节。因此, 如果想真正走向商业化投入市场, 上有许多不足之处。

在许多技术、经济发达国家, 人机交互的智能产品已经投市场和众多服务领域。很多设备已经包含了语音识别拨号功能、语音记事本功能。可以完成语音识别与语音合成, 为我们生活提供了极大便利。

摘要:随着人机语音交互技术的发展, 会有更多的服务、设备等与此项技术相结合, 我们将不必再按键, 不必使用传统鼠标和键盘, 人机语音交互技术成为一项重要研究课题。

关键词:人机语音交换技术,ASR,信号处理

参考文献

[1]朱民雄, 闻新, 黄健群, 等.计算机语音技术[M].北京:北京航空航天大学出版社, 2002.

[2]肖春秀.人机交互技术研究[D].湖南大学, 2004.

[3]刘晓华.机交互技术及应用技术[D].吉林大学大学, 2009.

[4]张敏贵.机交互技术及语音特征提取技术研究[D].西北大学, 2004.

[5]山士官.语音识别技术及应用技术[D].东北大学, 2011.

[6]何好义.计算机语音识别技术及其应用[J].大众科技, 2005 (6) .

[7]柳春.语音识别技术研究进展[J].甘肃科技, 2008 (9) .

人机交互地图系统的设计与实现 篇3

关键词:手势识别,手势跟踪,轨迹判定,地图控制,OpenCV

计算机技术水平发展的过程, 也是一个探讨如何更好地与计算机沟通的过程。如果技术构建的生活领先人们目前的生活太多, 就需要设计足够好的用户体验来驱动人们向新技术转变, 这也是人机交互发展的意义所在。更加随意和自然的人机交互方式一直是用户体验研究的主要方向。本文所设计的单摄像头下的单手手势识别地图控制系统, 从肤色检测入手, 并且选择了Camshift算法对人手进行定位跟踪, 选择HSV颜色空间进行自然背景下的肤色提取, 整个系统基于Open CV开发, 包括图像编辑、窗口操作、手势跟踪判定以及图像处理控制等各个模块都采用了Open CV的功能函数, 使用简单, 操作便捷, 具有一定的研究价值和市场前景。

一系统需求分析

本文系统以实现主要的人机交互地图功能为主, 所以一些可供扩展开发的功能没有列入主要的系统需求之内。基于这一前提, 系统需求包括:

显示视频, 在视频中跟踪显示肤色区域;

载入地图图片, 并可以无需更改代码, 更换地图图片;

识别手势指令, 并且根据指令控制图片移动;

在各个程序进程上, 留有扩展开发入口。

根据系统需求, 按照人机交互的顺序, 结合Open CV函数的特点, 设计出系统框架如图1。

二Open CV简介

Open CV的全称是Open Source Computer Vision Library, 开源计算机视觉库。Open CV于1999年由Intel建立, 现在由Willow Garage提供支持。Open CV是一个基于BSD许可证授权 (开源) 发行的跨平台计算机视觉库, 可以运行在Linux、Windows和Mac OS操作系统上。

Open CV量级轻而效率高, 由一系列C函数和少量C++类构成, 同时提供了Python, Ruby, MATLAB等语言的接口, 实现了图像处理和计算机视觉方面的很多通用算法。加上其开源的特性, 处理得当, 不需要添加新的外部支持也可以完整地编译链接生成执行程序, 其代码经过适当改写可以正常地运行在DSP系统和单片机系统中。

Open CV大量应用于人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪以及机器人开发等各个领域, 应用非常广泛。通过优化的C代码的编写对其执行速度带来了可观的提升, 并且可以通过购买Intel的IPP高性能多媒体函数库 (Integrated Performance Primitives) 得到更快的处理速度。

三手势识别

手势的表达能力介乎语言与表情、身体姿态之间, 但是在环境的适应性、交互的便捷性方面有突出优势, 所以成为人们研究下一代交互方式的首选媒介。但是手势的复杂性也非常突出, 这一面说明手势识别的难度很大, 另一面说明手势交互能够带来的信息量很大。

本文研究的手势识别是对手势做静态化的大致定位, 对具体细节可以不精确计算, 得到连续稳定变化的目标区域, 具体表现在获得目标区域的稳定性质点 (比如重心) , 在视频流的每一帧连续变化中, 稳定性质点不会发生跳变。本文对手势识别提出的流程方案是:前景提取、肤色提取、手部提取、手势跟踪。

1. 前景提取

在连续变化的视频帧中, 除人体的操作变化之外, 实际上背景通常是静态不变的, 所以将前景提取放在手势识别的第一步进行, 目的在于排除静态背景的干扰。前景提取中的“前景”指在连续图像中变化的图像部分, 前景提取是一个从所有图像数据里面提取动态数据的过程。经过前景提取得出的动态区域, 然后针对动态区域做进一步的肤色识别等流程, 这一步骤提高了识别系统整体的效率。

视频捕捉的视频流之中, 如果假定背景保持不变。通过分析其中移动的前景图像建立模型, 将背景模型和当前帧进行比对可以检测出前景物体, 通过调用Open CV中的absdiff函数即可计算得到。但是对于大多数情况来说, 获取背景图片都不容易。

具体的实现过程主要分为两部分:一部分是调用absdiff函数找出当前图片和背景图片的区别, 使用了threshold函数除去前景。如果当前图片像素与背景图片像素变化超过一定阈值就认定其为前景像素;另一部分工作是更新背景图片, 调用函数Accumulateweighted, 根据权重参数可以调整背景更新的速度, 将当前图片更新到背景中, 将得到的前景提取结果作为mask, 在更新背景图片时避免了前景的干扰。Open CV封装了Background Subtractor MOG类, 为我们做好了相关工作。

此法可以得到的结果是二值化的结果。所以需要采用迭代的过程, 将得出的二值化结果的区域坐标输出, 反馈到肤色提取模块, 再在动态提取后的区域中做分析检测。

2. 皮肤检测

皮肤检测的任务是在视频流中找到皮肤区域, 并且把检测出的目标区域标定。皮肤检测通常作为从视频中提取人体部位过程的预处理步骤。

因为皮肤的特征具有差异性, 根据人们不同的种族、健康或者年龄等不同因素, 都会产生差异, 所以皮肤检测可以是两个维度的工作, 既可以基于肤色检测也可以基于皮肤肌理检测。两种检测方法的原理不同, 目前主要的研究都集中在肤色检测这一方面。因为皮肤的肌理相对肤色来说, 更加细微, 所以检测的难度以及对环境的敏感度都比肤色要高。本文也基于肤色检测进行。

由于皮肤在视频流中的颜色取决于摄像头拍摄时的光照条件, 包括光照的角度以及光照的强度。本文具体讨论在光照不变或者皮肤颜色对光照变化不敏感的条件下进行的情况。

皮肤检测包括如下步骤:颜色空间转换、设定皮肤边界、标定皮肤区域。

颜色空间的值与很多变量有关, 对光照条件等主要的干扰因素的敏感程度不同, 且与肉眼所见颜色并未必有明显的线性关系。因此, 作为皮肤检测的重要环节, 选择颜色空间对皮肤检测模块的性能有很大影响。

因为本系统需要直接定制肤色边界, 所以采用了感性颜色空间中的HSV空间, 包括三个部分:色相 (H) , 饱和度 (S) 以及亮度 (L、V) 。他们从RGB空间非线性转换而来。优势在于允许用户直观制定色调、饱和度的肤色边界。通过设定HSV值, 可以直接看到系统检测的效果, 并可根据效果及时调整。HSV值设定以后的, 满足HSV设定边界的像素点被标记成为皮肤区域。

人体的皮肤是由红色的血液或者褐色以及黄色的黑色素组合而成的, 所以皮肤的颜色是在一个有限的皮肤范围之内。因此, 皮肤检测在将图像转换到颜色空间后, 可以确定一个肤色边界来划定肤色区域。肤色边界是指在颜色空间中, 根据颜色的各个值设定区分条件, 满足条件像素点才能被标定为皮肤像素。

对图片的操作本质上针对一个矩阵进行操作, 每个矩阵上的点具有位置和颜色值。针对图片数据矩阵上所有的点做一个遍历检测, 对每个点按照肤色边界条件作对比检测, 然后把满足边界条件的点保持原有数据, 不满足条件的点设为白色。针对点的对比检测完成之后, 对图像做形态学处理, 将大块的颜色区域划为连续的区域。同时将满足条件的区域中的一些不满足条件的区域标识出来。这样整个皮肤检测流程就完成了。

3. 手部提取

输入手部提取模块的图像, 已经经过前景提取和皮肤检测, 意味着理想情况下, 摄像头采集到的静态元素已经排除, 运动着的目标非皮肤区域也已排除。但是用户被摄像头采集到皮肤区域, 不止是包括手势部位, 也包括了脸和手臂。

脸部和手臂虽然互相干扰, 但是脸部包含了眼睛、鼻子和嘴唇等非肤色区域, 所以在连续的区域之间会有一些小的非肤色区间。可以基于区域的连续性来将脸部排除。

手掌和手臂都是连续的肤色区域, 需要进一步确定手掌的位置。首先取得两个最大的手指指尖坐标, 然后根据两个坐标之间的差值, 确定一个起点, 再根据设定的手掌比例算出手掌的横向面积, 满足横向长度的范围之内, 就属于手掌区域, 剩余的就是手臂区域。

该方法受到摄像头面对手势的方向以及距离的影响。极端情况下, 当整个手臂被判定为手掌时, 整个手势的跟踪轨迹也会有一个稳定的输出值, 但是因为面积变大, 以及遮挡面积等各种影响都变大, 所以输出值相对真实值会变得缓慢。

4. 实现方案

本系统主要负责手势识别以及跟踪的函数:

该函数的主要作用是, 输入视频帧转换成的图像, 识别并输出肤色区域中心坐标。这一模块的主要任务有:将肤色区域跟踪框显示到视频中, 方便及时查看识别跟踪效果, 以修正肤色阈值;输出肤色区域中心坐标数据到轨迹判定模块。

实现的过程如下:

将图像转换到HSV空间, 设定皮肤过滤阈值成对应的HSV值条件, 然后通过设定的HSV值对图像进行检测;

通过Cam Shift算法跟踪肤色区域, 并且将跟踪框显示到视频流图像中, 输出显示;

将肤色区域的跟踪数据存入track_box变量地址中, 以供系统下一进程调用。

四手势跟踪与判定

手势跟踪通过不同帧之间稳定性质点的变化来推断整个运动的轨迹。所以, 手势跟踪和手势运动的速度、对象是否被遮挡等都有关系。

目标从进入摄像头采集范围开始, 移动过程的每帧之间需要一定的时间, 所以相邻视频帧之间必然有一定的相关性, 基于这种相邻帧之间的相关性可以对肤色检测的对象进行跟踪, 持续输出目标坐标以完成手势识别系统的任务。对人机交互地图系统的手势识别模块来说, 手势跟踪的目的是持续输出坐标, 并且设置跟踪框, 此外, 还可以反馈信息给手部提取模块以减少计算量。

目前, 对目标跟踪算法展开很多研究, 这些算法各有优缺点。在不同的系统里, 根据需求的不同, 选择对应的目标跟踪算法, 对整个系统的性能以及识别率都至关重要。本文的手势识别是基于肤色的, 所以选择使用Cam Shift算法。

1. Cam Shift跟踪算法

Cam Shift的一大特点就是其搜索窗口在初始化之后会在每一次搜索完毕之后自适应调整其大小, 使得跟踪窗口能适应目标大小的变化。Camshift是基于肤色的, 由于基于肤色识别的算法对光照比较敏感, 所以需要选择对光照亮度变化不太敏感的颜色空间如HSV, YCg Cr等。在HSV空间中, 只需要计算H通道的颜色直方图;在YCg Cr空间里, 需要计算Cg Cr通道的颜色直方图, 为了减少计算, 选择前者。以下是Camshift跟踪的基本步骤;

第一步, 初始化搜索窗口, 将RGB颜色空间转换为HSV颜色空间。根据用户手动选择的搜索窗口, 获取待跟踪目标的颜色直方图;

第二步, 根据获得的颜色直方图将原始图像映射为对应颜色的概率分布图像;

第三步, 计算当前搜索窗口内概率分布图像的重心, 把搜索窗口的中心移到计算得到的重心处, 更新搜索窗口的中心及大小, 返回第二步, 重复操作直至窗口的中心不再发生变化或与重心的距离在预定阈值之内。

因为Camshift跟踪需要用户手动设置, 并不能实现自动跟踪。但是可以对步骤一进行以下流程优化, 以实现Cam Shift跟踪的自动化。

加载待跟踪目标的颜色图像, 计算待跟踪目标的颜色直方图;

设置搜索窗口为整个视频窗口或略小于整个视频窗口。

Camshift跟踪会根据目标的尺度更新窗口大小, 所以最初的最大化设置会在搜索开始后立即变成适应目标的窗口大小。在本系统中, Cam Shift持续将搜索窗口的中心坐标输出, 即可完成从手势图像到具体目标坐标的转化。

2. 手势轨迹判定

手势跟踪持续输出了手势的位置坐标, 由此, 我们需要设计一个轨迹判定算法来从轨迹之中识别出手势传达的指令。

本文采用一种基于坐标系加判定圆的交互判定方式:构建一个以视频采集中心为原点的坐标系, 再以原点为圆心, R为半径构成一个判定圆。这种轨迹判定方式可以满足平移和缩放两种操作的判定需求。

(1) 平移判定

当轨迹落在判定圆之内时, 系统即处于触发状态, 当手势坐标离开判定圆, 系统立刻脱离触发状态, 同时记录这一时刻点的坐标, 将其与触发点的坐标相对比, 则可得出一个由坐标差形成的向量, 反映了这一手势的方向以及移动量。

这样得出平移向量可以包含各个方向, 如果基于该向量再加上一些判定算法, 则可以得出一些仅包含几个方向 (比如上下左右) 的平移值。

(2) 缩放判定

因为缩放操作比移动操作的频次要低, 所以缩放操作可以比移动操作稍微复杂。

本文的缩放操作定义为:在坐标系中对整段输入轨迹做匹配处理, 当一段坐标轨迹连续顺时针或者逆时针经过了四个坐标象限的时候, 根据顺时针或者逆时针判定为放大或者缩小。至于缩放的倍数, 需要事先确定。

这样做的好处是:当用户知道触发圆的存在时, 会有目的地发出指令手势。同时在无指令意向时, 会注意避开触发圆。通过调节触发圆半径R的大小, 对触发敏感地区进行设置, 使得系统可以灵活适应不同场景, 降低用户误操作的概率。此外, 通过采用相对坐标的差值, 保留了手势的方向, 使得图像具有多维的方向感。

3. 实现方案

手势判定模块的任务是:当用户做出符合规则的手势时, 模块从前流程模块中实时获得肤色区域坐标, 经过判定, 输出对应的指令。因为仅需实现图片移动, 所以本模块的实现函数为:

void Judge (float x, float y, int&dx, int&dy) ;

调用跟踪模块的track_box变量的中心x、y坐标, 经过算法判定以后输出移动的坐标。如果实时输入的坐标没有满足坐标条件, 则输出dx、dy均为零。

实现过程为:

对dx、dy变量清零。因为x、y变量为偏移量, 如果之后的流程中输入的坐标不满足判定条件, 则输出为0的偏移量, 不发生影响;

对输入的坐标x、y做偏移处理, 因为视频采集的区域中心坐标并非是 (0, 0) , 所以需要针对圆心做调整。采集区域的坐标值形成以采集区域中心为圆心的坐标系;

判定触发状态:如果系统已触发, 当前坐标在触发圆内, 则把状态设置为已触发, 保存坐标值;如果系统已触发, 当前坐标不在触发圆内, 则用目前的坐标值减去触发状态保存的坐标值, 设置 (dx, dy) 输出。

五地图交互

人机交互地图系统的难度以及核心模块集中在手势识别方面, 但是用户在使用时真正看见的是地图交互模块。虽然地图的载体是图片, 但是操作地图和操作图片有一定区别。放大缩小所操作的地图, 不简单是一张图片, 而是切换了不同精细度的数张图片。地图模块的几个功能是:管理地图图像数据源、获取手势指令、对数据进行相应操作。

1. 地图数据管理

常用的地图显示方式的最佳实现方案为联网时自动更新数据以及离线时使用可用的离线数据。数据源采用图片作为主要的呈现载体, 系统直接根据需求把对应的地图图片显示出来。

地图数据管理的关键是, 用户不用直接修改代码, 可以通过文件夹操作等方式增加地图数据, 可以在程序中输入数据检索文件夹中的图片, 当用户需要使用当前地图时, 只要把图片放入文件夹即可。

2. 地图操作

当选定地图之后, 地图的操作主要是移动和缩放。至于多维信息的查询, 需要结合地图匹配的数据库和相应信息交互的功能方能实现。仅仅针对地图本身而言, 并不需要如此多的功能设置。我们具体研究地图的移动和缩放功能。

针对地图的缩放功能, 有些地图本身的信息非常密集, 所以需要做到对地图本身的缩放处理。而另外一些地图, 实际上并非“看不清”, 而是给出一些宏观图像, 放大功能则是针对其中一个密集区域调用相应的详细地图图片。

针对地图的移动功能, 如果本地数据源是静态图片, 那么移动是有边界的。同时, 移动的尺寸也非常重要, 针对显示框的不同形状, 要给地图移动设定一定颗粒度的移动距离。如果颗粒度太大, 用户在需要同时看移动后地点和移动前地点之间的路线时容易操作过度;如果颗粒度太小, 用户则需要连续操作, 这样既浪费用户精力, 又可能造成误差。

无论是移动还是缩放, 在边界问题上, 都需要给用户反馈, 以提醒用户是否可以操作, 是否需要更新数据源。对于特定硬件而言, 图像显示的窗口大小要作对应的设置以满足最佳的查看体验。

(1) 图像的平移

图像的平移是将图像中所有的点都按照指定的平移量水平、垂直移动。设 (x0, y0) 为原图像上的一点, 图像水平平移量为tx, 垂直平移量为ty, 则平移后点 (x0, y0) 坐标将变为 (x1, y1) 。

显然 (x0, y0) 和 (x1, y1) 的关系如下:

用矩阵表示如下:

对该矩阵求逆, 可以得到逆变换:

平移后图像上的每一点都可以在原图像中找到对应的点。例如, 对于新图中的 (0, 0) 像素, 代入上面的方程组, 可以求出对应原图中的像素 (-tx, -ty) 。如果tx或ty大于0, 则 (-tx, -ty) 不在原图中。对于不在原图中的点, 可以直接将它的像素值统一设置为0或255 (对于灰度图就是黑色或白色) 。

(2) 图像的缩放

图像移动变换是1:1的变换, 而图像的缩放操作会改变图像的大小, 产生的图像中的像素可能在原图中找不到相应的像素点, 这样就必须进行近似处理。本文的方法是直接赋值为和它最相近的像素值。

假设图像x轴方向缩放比率为fx, y轴方向缩放比率为fy, 那么原图中点 (x0, y0) 对应与新图中的点 (x1, y1) 的转换矩阵为:

其逆运算如下:

例如, 当fx=fy=0.5时, 图像被缩放到一半大小, 此时缩小后图像中的 (0, 0) 像素对应于原图中的 (0, 0) 像素; (0, 1) 像素对应于原图中的 (0, 2) 像素; (1, 0) 像素对应于原图中的 (2, 0) 像素, 以此类推。在原图基础上, 每行隔一个像素取一点, 每隔一行进行操作。其实是将原图每行中的像素重复取值一遍, 然后每行重复一次。

3. 实现方案

地图交互系统分为几个模块设计, 分别为:载入模块、移动模块和显示模块。

(1) 载入模块

地图载入模块需要让系统具备动态的图片接受能力。允许用户直接修改地图存放文件夹中的图片, 只要满足命名规则, 不需要修改代码可以直接更改操作的地图。本文设定在E盘map文件夹下, 存放需要显示的图片, 命名为map.jpg即可。基于Open CV的cv Load Image函数, 使得系统支持大多数图片格式, 不仅限于jpg格式。

实现函数为:

Ipl Image*map=cv Load Image ("E://map/map.jpg") ;

(2) 移动模块

地图移动模块需要实现地图的上下左右移动, 能够调用判定模块输出的图片, 移动坐标对应移动图片。当图片移动超出尺寸时, 显示黑色背景。

实现函数为:

Ipl Image*dst=Move (Ipl Image*map, int dy, int dx) ;

移动模块的流程是:

判断 (dx, dy) 是否为零, 如果为零则跳过移动执行, 直接进入下一循环, 节省计算量:

按照dx、dy值移动图片, 并且返回移动处理后的图片。以供显示模块显示。

(3) 显示模块

地图显示模块需要在屏幕中心显示一个固定尺寸、固定位置的窗口。在窗口中显示各种移动操作后的地图图片。因为基于Open CV的cv Named Window以及cv Show Image函数有较大局限, 创建的窗口只能和图片一样大小或者固定大小, 无法全屏显示部分图片:当窗口尺寸大于图片时, 图片从左上角开始显示, 未铺满的地方为黑色;当窗口尺寸小于图片时, 图片按照窗口的比例默认显示。这不能满足我们既要能够查看图片中的一部分, 同时保持窗口大小不变的需求。

为了满足函数调用条件又满足系统需求, 采取了一下办法:

图像显示确认首先采取固定窗口位置以及固定窗口大小的处理方式;

采用类似图像移动函数的方式对图像进行处理:针对要显示的目标以及显示框架, 制定一个框架空图像, 其尺寸大小和需显示的图像一致, 但内容为空;

按照要显示目标的区域, 把地图图片目标区域的数据复制到frame图片中。然后返回frame, 就完成了部分显示图片的任务。

实现函数为:

dst=Fill (dst) , cv Show Image ("Map", dst)

因为复制目标图片值需要大量的计算, 所以将填充函数和显示函数分离, 按需调用, 可以有效提高系统性能。

六实验结果

整个人机交互地图系统的程序设计循环流程为:

先将摄像头视频流中的帧转换为图片导入;

调用识别跟踪函数, 实时获取采集图片中肤色区域的坐标数据;

显示视频数据;

调用判定函数, 从坐标数据中判定对应的手势指令;

如果发出指令 (移动坐标不为零) , 则移动地图;

显示地图。

代码如下:

编程实现后, 用单手操作, 进行不同方向移动地图的效果如下。

1. 向左移动图片

手坐标在触发圆内, 系统触发, 见图6 (左上) ;

手坐标在触发圆左侧 (图片中右侧) , 触发移动图6 (右上) ;

图片处于原位, 见图6 (左下) ;

图片左移, 显示更多地图右侧区域, 见图6 (左下) 。

2. 向右移动图片

手坐标在触发圆内, 系统触发, 见图7 (左上) ;

手坐标在触发圆右侧 (图片中左侧) , 触发移动图7 (右上) ;

图片处于原位, 见图7 (左下) ;

图片右移, 显示更多地图左侧区域, 见图7 (左下) 。

3. 向上移动图片

手坐标在触发圆内, 系统触发, 见图8 (左上) ;

手坐标在触发圆上方, 触发移动图8 (右上) ;

图片处于原位, 见图8 (左下) ;

图片上移, 显示更多地图下方区域, 见图8 (左下) 。

4. 向下移动图片

手坐标在触发圆内, 系统触发, 见图9 (左上) ;

手坐标在触发圆下方, 触发移动图9 (右上) ;

图片处于原位, 见图9 (左下) ;

图片下移, 显示更多地图上方区域, 见图9 (左下) 。

七小结与展望

本文从系统需求入手, 设计实现了一个基于手势识别技术的人机交互地图系统。并针对系统的各个功能模块, 从理论角度进行分析和思考, 在传统算法的基础上, 设计出肤色识别系统、符合手势交互规则的轨迹判定算法以及基于判决圆的交互判定方法, 使得系统能够分析用户的真实命令意图, 降低用户无意识手势造成的错误判定, 减少误操作。在手势判定之后, 针对输出的指令, 设计适用于地图操作的控制系统, 最后利用Open CV编程实现。

本文的研究虽然取得预期的效果, 但功能还不完善, 可以进一步研究开发:

加入前景提取模块。这是排除静态背景影响的基础, 目前的系统没有此模块, 较容易受到背景颜色的干扰。前景提取模块以输出前景区域为主, 并加入形态学处理, 通过计算, 使得整个前景提取的结果是有原始图像数据的前景区域图像;

汽车多媒体系统人机交互接口设计 篇4

汽车信息娱乐系统属于汽车多种舒适功能中的一种, 当今汽车上的导航、音响等均属于信息娱乐之列。随着驾乘人员对汽车舒适性和安全性要求的提高, 传统的车载网络技术已经无法完全胜任, 由此MOST网络技术被提出。相对于MOST网络技术在国外的高档轿车上的实际应用, 我国汽车工业起步较晚, MOST网络技术相对滞后, 虽然目前市场上也未有基于MOST网络技术的人机交互接口产品得到应用和推广, 但是在国产汽车领域运用这一新兴技术将是必然趋势。Raspberry Pi (树莓派) 是目前市场上炙手可热的卡片式电脑, 除了具有信用卡大小的体型优势之外, 更具有价格低廉、可以实现裸机开发等特点, 可以作为减少车载编程硬件成本和便利的一种全新尝试。

2 人机交互系统

人机交互系统是一门研究人与计算机间交互关系的科学, 系统包括了各种计算机的系统和和软件, 用户需要通过使用人机交互系统界面与系统进行交互, 从而完成命令和操作。

3 MOST

MOST是面向媒体的系统传输的总称, 是一个面向功能的简单网络系统。以功能块为核心, 通过应用层协议实现功能块间的通信, 能传输数据流、报数据和控制信息。MOST网络采用光纤/电气闭环方式进行网络同步, 能提供高速带宽, 满足大量数据间共享和传输的同时还能确保接受端正确检测到数据。

4 嵌入式Linux

嵌入式Linux是一个适用于多种CPU和硬件的跨平台系统, 被广泛应用于航空航天、消费性电子产品领域, 是目前运用于嵌入式系统开发的主要平台, 也是一个可以保证实现更多树莓派功能的官方推荐平台。

5 Raspberry Pi

树莓派是简称RPi, 是专为学生计算机编程教育而设计的一款仅有信用卡大小的微型电脑。既可以看做是一个单片机开发板, 也可以直接看做一台电脑, 主板上包括了处理器、SD卡插槽、USB接口、以太网接口、HDMI接口、状态指示灯、模拟音频输出、复合视频输出和电源接口, 可以实现图像处理、裸机开发、音频视频播放等功能。

6 Python

Python是一中面向对象的解释性的计算机程序设计语言, 具有语法清晰简洁的特点, 其中包含了丰富多样且功能强大的类库, 可以通过其快速生成程序远行之后再对需要的部分用其他汇编语言重写, 是目前树莓派上支持的主要语言。

7 多媒体娱乐系统网络环路设计

设计主要包括显示单元、开发单元和MOST单元, 并通过串口将它们连接起来。其中LCD显示选用目前市面上常用且符合车载使用情况的4.3寸显示器;开发板选用Min6410开发板和树莓派分别进行开发, MOST控制单元则包括主控制器部分和从节点部分, 提供多媒体传输。

7.1 MOST环路单元

MOST环路连接多种多媒体设备, 提供视频和音频数据的传输, 定义信息娱乐系统高层抽象层的接口和功能。设计中将MOST通过串口与开发板板相连接作为主控单元, 其余部分作为从节点。

7.2 其他硬件部分

设计使用汽车专用的AB类音频功率放大器实现对功放功能。

8 环境搭建

环境搭建是嵌入式系统开发中程序顺利的开发运行的基础。本设计的环境搭建包括Fedora9和GCC的安装配置。其中Fedora9为Mini6410的开发环境, GCC是Linux中用来编译高级编程语言的工具。搭建步骤如图1。

9 设计总结

设计旨在开发一个汽车之上基于MOST多媒体娱乐系统的人机交互接口, 主要从汽车中目前的主要多媒体模块着手, 实现了CD控制、下载控制、DSP数字信号处理等功能。除了在传统ARM板上的编程开发, 还尝试了在当下新推出的树莓派上进行GPIO的安装从而完成嵌入式开发。随着汽车电子技术和计算机产业的发展, 计算机技术与汽车电子必将走上相辅相成的道路, 尽管Raspberry Pi已经具有了绝大多数开发板甚至电脑的功能, 但由于其运用于教育范畴的初衷, 存在接口功率不足的问题, 如何实现其功能的进一步完善, 将其替代传统的开发板, 抑或将程序都集成在ARM板或者树莓派上从而节约设计成本, 将是一个非常值得探索的问题。

参考文献

[1]Prof.Dr.Ing.Andreas Grzemba.MOST:from MOST25 to MOST150, ELECTRONICS LIBRARY Sprife.

[2]MOST Cooperation.MOST_Book_2[M].MOST Cooperation, 2011.

[3]Getting Started with Raspberry Pi.Matt Richardson, Shawn Wallace.

[4]QT4图形设计与嵌入式开发[M].人民邮电出版社, 2009.

智能配电监控系统的人机交互设计 篇5

本系统设计按键时遇到以下情况:(1)产品外设较多,单片机I/O口比较少,设计时需要考虑节省I/O口。(2)现场情况所限,键盘与主机板要有一段距离。(3)键盘需要15个按键,同时扩展一个复位按键,共16个按键。根据以上的情况采用A/D键盘最为合适。

考虑到系统显示既要求有图显示又有字符显示功能,因此采用单片机控制LCD,使LCD的画图、字符显示等功能最大程度地利用。

本系统设计的效果如图1所示。

2 系统结构和原理

人机交互系统负责数据显示及输入,通过RS485接口与主控模块进行信息交换,通过工业液晶显示主控模块传送的电量参数信息,并通过键盘输入设定系统工作模式、参数门限、通信协议。校正模拟量通道的各项电参数以及用图形直观表示一次图及电压参数的工作状态,并在出现过流过压等告警信息时发出报警声。系统能够在有限成本的条件下很好地完成此多项功能。

显示系统由硬件和软件两部分构成,如图2和图3所示[1]。

硬件部分以STC 12C 5A 60S2单片机为核心,晶振和复位电路作为系统工作的必要设备,从3×5矩阵键盘接收输入命令,同时通过RS485与主控模块进行实时通讯其中键盘通过单片机的功能直接采集电压判断来实现[2]。

软件部分可分为底层驱动程序和上层控制两部分。底层驱动包括设置系统时钟和系统模式,配置I/O口、初始化串口打开ADC转换功能,初始化LCD控制器、中断控制器等。上层控制程序不断查询是否有按键按下。若有按键按下,则执行相应的任务,LCD显示相应的内容;同时如果需要,通过RS485向主控模块发出控制或请求数据等信息。

3 系统硬件电路设计

3.1 键盘电路

人机交互系统中输入控制命令,设置数值,查询电参数、历史数据、告警信息等都肯定要使用键盘。系统中设计采用的是3×5的键盘,外加一个复位按键组合成4×4格式安装,其中除了0~9这10个数字外,还有确定键“Enter”、菜单键“Menu”、上键“Up”、下键“Down”、“静音”键及复位键。在端口KEY0、KEY1、KEY2输出线上接上拉电阻,使端口能准确的置高、置低。上拉电阻的另一端则连接在一起接5V电源。电路图如图4所示。

图为3×5键盘设计电路,KEY0、KEY1、KEY2连接至单片机具有A/D功能的I/O口,此时就可以通过A/D扫描读取,可以根据A/D值判断有无按键按下或是那个按键按下。根据上图电阻值可以算出:无按键按下,A/D值为5V;SW1按下,通过计算知A/D值为VCC×R1/(R1+R20)=0.16V;SW4按下,A/D值为VCC×R1/(R1+R20+R24)=0.733V;同理,SW7=1.559V;SW10=2.287V;S5=2.875V;根据A/D采集值比较最接近哪个键值的范围则就是该按键

使用此方法需注意按键选用接触性较好的按键。按键差的使用时间一长,容易产生接触电阻,按键多容易误检测。

3.2 LCD显示电路

系统采用北京青云公司生产的LCD 3202401液晶控制器,LCD 3202401使用功能强大的RA 8835作为控制器。此LCD有4位显示数据线,且传输数据迅速;具有强大的作图功能;支持文本显示、图形显示以及图形和文本混合显示具备简捷的接口和功能齐全的控制指令集。单片机与LCD的接口电路如图5所示[3]。

图中LCD与单片机管脚连接处加1kΨ的限流电阻,可以有效防止单片机管脚电流过大造成LCD液晶屏损坏。由于单片机的频率为22MHz,所以传输时肉眼看不到数据是一位一位传输的,从人类视觉的角度上看,就仿佛是全部字符或图片同时显示一样。

4 软件设计

本设计中,主菜单和子菜单多达30多项,且要实时同步显示,从而增大了应用层设计的难度。因此程序采用模块化结构,主要包括主菜单页面切换模块、按键扫描模块、选项管理控制模块和数据输入模块[4,5]。

4.1 主菜单页面切换模块

为按用户要求切换操作界面,定义了一个page index映像寄存器,其值在1~P之间变化,P为操作界面的个数。本系统中P的值为9。主菜单界面,如图6所示。

如果page index=1,则LCD显示器上显示第1页面;一次图页面如图7所示。为最大限度地使用系统的Flash,其中的线条及方框均直接使用其绘图功能实现。

如果page index=2,则LCD显示器上显示第2页面。用户可按数字键控制page index的值选择对应页面,实现人机交互。电参数页面如图8所示。

4.2 按键扫描模块

对15个操作按键进行扫描,将结果保存在key映像寄存器中。该寄存器有个状态标志位keyState,如果其值为True,则意味着对应的按键按下;反之,则松开,程序运行时将按键读取后清除标志位。如图9为键盘模块程序流程图。

4.3 选项管理控制模块

若当前的操作界面属于“选项界面”,由于设置的参数较多,将选项页面分为几个页面设置,按下“Up”和“Down”键或直接按数字键,可选择对应的页面。如图10为选项管理控制模块流程图。

为了便于分析,以设置页面为例来说明。设置页面共分为5页来设置,包括系统参数设置页面、门限参数设置页面、Modbus设置页面、以太网设置页面及CAN设置页面,当从主菜单选择设置进入设置页面后,可按数字键或上下键选择页面。比如按2键进入设置页面中的门限设置,如图11所示。

此时按回车可对数值进入输入设置,图中的2/5为当前的页面提示为第页为总页数

4.4 数据输入模块

若当前的操作页面属于“置数界面”,使用数字键输入满足用户要求的任何数值,例如图11中的门限设置中的数值输入。数据输入模块的程序流程图如图12所示。

利用上述模块,只需少量的程序代码就可以灵活地实现选项、修改数据及切换操作界面等功能。

5 结束语

本设计采用C语言编程,所选单片机为STC12C5A 60S2,尽管其程序存储器只有60kB,但却实现了30多页操作界面的显示和切换,以及数据设定和查询等人机交互功能同时还实现了监控控制和通信功能

摘要:以宏晶公司STC12C5A60S2单片机处理器作为控制器,以矩阵键盘作为输入设备,以RS485通信接口芯片作为数据更新方式,用北京青云公司生产的LCD3202401作为显示输出设备,研究设计了相应的硬件电路与显示驱动程序,在此基础上完成了人机交互系统的设计。充分利用成本低、资源少的单片机系统实现完善的人机交互功能。

关键词:人机交互,LCD,单片机

参考文献

[1]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1998.

[2]张友德.单片机微型原理、应用与实验[M].4版.上海:复旦大学出版社,2003.

[3]文浩.单片机系统液晶菜单设计[J].工业控制计算机,2007,20(4):75-77.

[4]孙俊喜.LCD驱动电路、驱动程序设计及典型应用[M].北京:人民邮电出版社,2009.

人机语音交互系统 篇6

关键词:以人为中心,复杂产品系统,电梯,设计

0 引言

在复杂产品系统的开发流程中, 各种利益相关者的需求都应被充分考虑。特别是对于存在密切人机交互的系统, 人应该处于系统设计的核心位置, 以保证系统可以满足各种使用情况下的需求。在设计界, 以人为中心的设计已经成为主流的观点, 以至于设计人员经常不加思考地采用。本文基于以人为中心的设计 (human-centered design, HCD) 进行扩展, 引入行为图、基于情景的设计 (scenariobased design, SBD) 准则, 提出一种适合复杂产品系统的设计流程。

HCD是指在设计产品或系统时, 将客户置于设计与开发过程的中心[1]。HCD在产品开发过程中发挥重要指导作用。在激烈的市场竞争中, 产品成功由客户是否满意决定, 而客户满意由客户需求的满足来实现。HCD方法使产品设计与客户需求匹配[2], 通过这种匹配提高产品质量、客户满意度与产品成功率。然而, 设计与需求的匹配是困难的、不准确的[3]。客户通过使用非技术语言来描述他们的需求。HCD方法需要将技术设计与非技术语言匹配, 这种匹配准确度通常比较低。因此, 大部份产品并没有与客户需求相匹配。

HCD的缺陷在于, HCD以已经作好技术准备为前提, 一旦明确客户需求, 可以迅速地完成产品设计并推出市场。另外, 以人为中心还缺乏明确的实现途径。Don Norman在ACM通信杂志“交互设计”专栏中写道:“这个世界上的大多数东西都是在没有得益于以人为中心的设计方法的情况下被设计出来的, 不过这些东西仍然工作得很好。...最基本的原因就是, 在它们被设计时, 这些物品所被用来从事的活动是经过深入理解的, 这就是以行为为中心的设计”。人的行为才应该是设计的焦点。

HCD已经纳入到ISO标准中。ISO 13407明确定义了HCD的4种主要活动[4]:理解并定义使用情景, 定义客户及组织的需求, 制订设计方案, 并依据需求对设计进行评估。

资料来源:根据文献[4]整理.

本文的主要目标是设计一种新型的电梯产品, 以支持老人、病人的特殊需求, 满足老龄化社会的需要, 而相关的支撑技术并未完全具备。

基于以人为中心的启发, 具有特殊需要的人群, 包括制造商、老人、病人, 以及他们的护士等各种人群及其行为过程, 被纳入到电梯系统开发的每一步骤中:从电梯系统开发的最早的概念阶段, 进行用户的行为分析, 直至电梯系统设计的最终评价。

以行为为中心以及SBD是本文依据的另一方法准则。在人机交互领域中, 场景已经被作为一种多个系统开发阶段使用的工具, 它能帮助所有的利益相关者贡献自己的系统分析、设计与评价意见。

设计师通常使用情景来组织、论证和交流思想。情景作为语言的辅助, 描述人的行为, 使客户可以融入到设计流程中, 并帮助他们确定需求。通过描述多种情景下的各种行为过程, 可展现出序列性的需求。在整个设计循环中, 描述行为的工具可首先用于描述产品当前使用的目标与需求, 然后通过迭代的设计与评估过程转换、提炼设计目标与需求。多情景下的行为描述有助于检验、仿真分析、展示各种可能的设计方案结果。

1 设计流程的思考

通常, 客户需求空间向产品设计空间转换的过程会导致信息的丢失。一些产品开发的机制, 例如质量功能展开 (QFD) 关注产品的性能、可靠性、寿命等因素在后续开发过程中的贯彻, 但与情感有关的因素由于较难获取与描述, 因而在质量功能展开过程中易于被忽略、丢失[5]。

关于开发流程, 学术界及管理实践逐渐形成了如下四种观点[6]:门径管理;管道管理;功能-作用原理-结构的映射过程;风险管理系统。

管道管理模型[7]为最主流的观点, 它将产品开发流程定义为:产品规划-概念开发-系统级设计-详细设计-测试纠正及生产起步。这一流程类似一条不断缩窄的管道, 在这一喇叭形态的“管道”中, 流动着的新产品可选方案及对应的开发项目数量越来越少, 而新产品方案的信息却越来越丰富、具体。

然而这一流程模型对人机交互的需求缺乏足够的考虑与重视。为此, 文献[8]提出, 具有复杂人机交互的系统的研发流程应具有如下步骤:焦点开发-创建当前系统应用的工作流-问题定义及确定设计目标-创建未来系统应用的工作流-创建功能概要-创建物理概要-将物理概要分解至可管理的模块。通过对当前系统应用工作流的分析, 存在的问题得到全面的展示;通过对未来系统应用工作流的规划, 引导思维边界的突破及全新观念的产生。

基于以上研究可以设想, 构建一种图形化的、易于理解的多层次行为视图, 使非专家的普遍客户也能参与到设计中来, 也使设计工程师能更好地理解电梯行业、护理行业等多个不同领域的背景与技术, 以更有效地利用所有利益相关者在设计过程中达成的共识。俗话说:一图胜千言, 在开发复杂产品系统时特别如此。下文以电梯为例说明。 (图2)

2 电梯实例

随着老龄化社会的临近, 越来越多地需要在公共设施设计中考虑老年人、病人的需要, 电梯作为一种垂直升降的公共交通设施, 需要重视这一趋势。

为此, 首先在设计其轿厢内部装潢时, 应考虑到人的情感因素, 尽量使电梯给人一种舒适温馨的感受, 多使用温暖色调, 避免冰冷暗淡的色调;其次, 需要考虑病人以及各种医疗设备, 例如病床、吊瓶架、氧气瓶等抢救设备所需要的大尺寸空间, 以及杀菌化学制剂的使用;最后, 适当考虑防撞缓冲的需求, 减轻相撞时的冲击保护病床上的病人。

目前, 还没有一种电梯能满足这一需要:不只需要考虑正常人的使用, 还要考虑承载病人, 运送病床及医疗设备, 同时需要考虑这些特殊情况发生的偶然性, 考虑电梯的可制造性、可装配性, 以尽可能降低产品成本与能量消耗, 并具有较高水平的人机交互界面与可操作性。

2.1 步骤1:产品规划

产品规划环节由开发团队执行, 其目的是制定产品开发任务书。团队包括如下成员:工业设计师1人, 电梯设计工程师5人, 制造工程师1人, 医护人员1人, 医学专业人员1人, 电梯维护人员1人。经过市场的细分与分析、技术发展趋势分析、企业战略分析三者的匹配, 最后经过头脑风暴会议来完成产品规划。

产品开发任务书的研究对象是:明确设计的焦点;定义新产品的概念;确认目标客户;确认安全有效使用电梯的障碍;搜集对产品设计特征的意见。

通过产品规划, 认为新型电梯的焦点是感性设计、人机交互, 在有限的空间内需要容纳担架、轮椅及病人, 减少碰撞振动与不适, 并进行安全高效的电梯控制操作, 同时又要满足节能环保的要求。

在开发过程的早期阶段确定产品的焦点是一项困难的工作。通过这一阶段, 潜在的设计意图逐渐变得清晰。

2.2 步骤2:客户需求获取

2.2.1 理解当前使用情景

通过归纳客户操作电梯的行为习惯和固有特性, 创建当前系统的行为图, 形成获取多层次客户需求的框架, 这是多层次信息视图的重要组成部份。步骤如下:

首先, 以来自医院的医护人员, 以及家有老人病人的普遍电梯客户共50人, 为访谈对象, 基于步骤1确定的产品设计焦点与概念, 进行面对面的半结构化的访谈 (interview) 。该步骤主要用于明确如下问题:需要用担架、轮椅搬运病人时电梯的操作过程;在这过程中所遇到哪些问题, 以及这些问题的条件、过程与后果;对于电梯设施有何感性需求;任何影响在执行医护任务时安全高效使用电梯的因素。

对系统实际操作环境及客户的全面且精确的洞察, 对于系统的设计以及客户需求的满足至关重要。为了确认当前实践的问题, 设计者应首先将总结所获得的设计信息转换为行为图, 以描述当前系统的作用。仅作为示意, 如图2所示, 该行为图显示了电梯从制造装配、运输、安装维护到客户使用的全生命周期的行为, 以图形化的直观方式使得全面的客户需求, 且不易遗漏。图中, 方向线的粗细表示该方向所指的行为的频率, 线越粗表示该行为越常见;箭头的方向表示行为的串行关系。

2.2.2 确认存在问题及设计目标

2.2.2. 1 访谈与数据收集

基于当前使用行为图指出的每一使用模式, 围绕如下问题进行访谈并收集数据:

(1) 客户在与电梯交互过程中遇到的问题, 以及这些问题如何随着客户属性的变化而变化;

(2) 这些问题发生的频率, 以及对不同客户产生的后果;

(3) 新型电梯应如何克服这些问题;

(4) 安全高效使用电梯的障碍;

(5) 新型电梯对病人、普通用户、电梯安装维护人员、医疗机构、医护人员等各种客户有何益处;

(6) 新型电梯的设计偏好。

2.2.2. 2 数据组织与分析

在上述步骤系统性地收集资料的基础上, 基于质性分析的方法, 寻找反映客户需求本质的核心概念, 然后通过这些概念之间的联系建构完整的需求模型。访谈调研数据转换为如下三个类别:需求;障碍;设计, 简洁地展示数据分析结果, 如表1所示。

对原始资料进行进一步的定性分析以后, 明确存在的问题及设计目标:

(1) 电梯生产与运输。

电梯包装箱在很长一段时间不能引起厂商及设计人员的重视, 只是简单给以部件包裹, 这才很大程度上违背了人性化的设计原则。电梯包装箱存在如下问题:裸包装部件遇潮湿后易生锈, 不便于运输;纸箱包装, 易损坏, 不便运输, 零散易丢件。应考虑新型的包装箱, 以达到方便搬运、整齐美观的目的。

(2) 电梯操纵显示器。

电梯操纵显示器在感性需求上尤为重要。乘客首先接触的是电梯的外部操纵显示器, 进入轿厢后同样需要操控电梯内部的操纵显示器, 进行楼层选择。色彩搭配以及按钮布局排布是其感性设计的关键。当人在受到色彩的刺激后, 会产生心理暗示, 色彩搭配必须尊重这种因果关系。

(3) 电梯的空间。

常用的电梯长度从1.3米到1.6米不等, 而一部急救担架的长度超过1.8米。狭小的电梯放不下担架。由于患者不能颠簸晃动, 医护人员 (或家属) 常常只能将担架半竖着放进电梯, 让患者斜躺在担架上, 容易使病情加重。《住宅设计规范》 (GB50096-1999) 规定:“十二层及以上的高层住宅, 每栋楼不能少于两台电梯, 其中一台电梯应该能容纳担架。”然而, 开发商从成本的角度考虑, 在不少的电梯上没有执行这一规定。

(4) 不适合行动不便人员使用。

目前电梯按钮主要采用亮光来显示楼层, 并不适合于盲人使用。盲人进入电梯时, 不便于方便的找到希望到达的楼层, 所以对于盲人来说, 单独乘坐电梯很不方便。

扶手在安装时往往有螺钉突出, 行动不便人员往往难以避开, 并且不美观。

电梯震动或坠落时, 电梯无适当的支撑物, 震动或坠落会造成伤害, 对行动不便人员的伤害特别大。

(5) 电梯环境。

传统的通风装置是电力驱动的风扇, 购置成本与使用成本较高。

2.2.3 设计未来的使用情景

在这一步骤中, 将当前的使用情景转换为未来的使用情景, 如图3所示。在未来的使用情景中, 当前问题被消除, 产品愿景得以实现。未来的使用情景是一种对人机交互过程的高度概括, 有助于设计团队及设计参与者理解电梯使用的环境, 显示关键的设计问题。

在未来的使用情景中, 不需扩大轿厢的整体尺寸而低成本地实现大尺寸的空间, 保证担架可以进入并平放;行动不便的人可以舒适地保持平衡;视觉不良的人可以方便地进行目的地楼层设置, 并可修正错误的设置;等等。生产安装情景分析在此省略。

2.3 步骤3:系统级设计

2.3.1 功能分析

功能分析的结果展示系统功能的实现目标。对于复杂产品系统, 将功能分析为多项子功能十分必要, 它可以阐明问题, 使设计师可以聚焦到最关键、最有可能实现创新的子功能上。

在检修运行、 (自动) 开门、 (自动) 关门、自动返回基站、满载直驶、司机操作、独立运行、通风等基本功能, 使用温和的工业设计风格, 并增加如下功能:远程监控;PDA在线交互;可变的空间尺寸;碰撞缓冲与支撑;盲文及声控;错误修正。需要在成本得到控制的情况下, 在传统的电梯上增加以上功能。

具体的功能描述在此不表, 它应提供详细的使用背景信息, 以及明确的、定量的功能目标。例如, 可变的空间尺寸的需求项中指出:扩大后的空间尺寸应能容纳1.8米长的担架。

通过达到以上产品功能, 电梯将能更高效迅速地安装维护, 更安全、舒适地使用, 减少碰撞、震动、压力与不适。这时, 开发团队坚信, 这一电梯的市场需求是广阔的、迫切的。

在以上需求实现之前, 研发团队认识到, 以上功能最困难的部份是可变的空间尺寸、碰撞缓冲与支撑、盲文及声控等需求。

2.3.2 制定系统解决方案

在这一步骤中, 依据“功能—作用原理 (效应) ———物理结构”的映射过程, 将产品的功能要求转化为解决方案。解决方案是具体物理结构设计的要点, 它指出每一主要功能实现的关键点, 以及主要部件的空间及结构上的关系。

解决方案应遵守功能及技术需求的约束, 并基于最终用户的需求进行评估, 选择最佳的解决方案。

在设计过程中, 知识会不断进化, 因此系统结构的部件也随之进化。解决方案可用于修正未来的使用情景, 使设计意图进一步明确。

以几个主要的子功能为例, 说明其解决方案:

(1) 根据发明问题解决理论 (TRIZ) , 使用“基于条件的分离”这一分离原理, 以及“动态化”这一发明原理, 实现动态的轿厢深度。解决方案为:轿厢下后壁可以向背离轿厢门的方向打开、折叠, 充分利用井道空间, 在需要运输担架时, 通过折叠, 动态产生额外的空间, 提高了担架出入时的安全性, 并增加载重的均匀性。其平时可充当普通载客电梯, 具备普通电梯轿厢的宽度与深度;在特殊情况下, 延展电梯轿厢的深度, 满足普通人平躺在担架上的长度要求, 充当救援用的担架电梯。因此, 这一功能可增大深度却不增加土建面积, 达到节省成本与能量消耗的目的。

(2) 碰撞缓冲与支撑功能的解决方案为:扶手连杆上套有端座外套, 将扶手端座表面覆盖, 遮盖螺钉, 防止行动不灵活的人在轿厢内转身时划伤, 同时保持轿厢内美观。轿厢顶部安装有吊环, 在震动特别是坠落时, 抓住吊环可显著减少伤害。

(3) 盲文及声控功能的解决方案为:按键的按压位置处设有凸起的盲人数字, 按键连接有发声话筒, 开关、发声话筒均与用于楼层登记的电路连接。

(4) 通风的解决方案为:通过轿厢上的风滞压力产生电梯轿厢中的竖直的气流, 实现免电力的通风。风扇仅在需要时打开, 减少了电力消耗与使用成本。

电梯作为一种成熟产品, 目前已经存在海量专利。以上的构思可能与已有专利冲突, 需要进行查询分析, 避开已有的相似专利, 同时基于专利挖掘, 进行技术成熟度分析。对关于轿厢的专利进行分析发现:在轿厢深度调整、碰撞缓冲、盲文及声控、通风等方面的技术都仍处于成长期, 值得加大投入进行研发。

2.3.3 系统级的参数分配至模块

通过以上步骤, 从轿厢空间调整装置、碰撞缓冲与支撑装置、盲文及声控装置、通风等方面实现了电梯系统人性化创新及改良设计。

在上述步骤中, 系统作为一个集成的解决方案进行思考。在模块化的设计方案中, 需将设计需要分配至模块, 是最终实现产品功能需要的必然的步骤。然而, 将技术参数分配至模块具有很高的复杂性, 它需要依据两个准则:一是保证系统的技术参数与模块的技术参数的一致性, 也就是说, 实现模块的技术参数后, 能保证系统的技术参数得到保证;二是各个模块的实现难度保持相近, 不能让某些模块很难实现, 否则会使成本不必要地上升。系统的模块化的好处是:使得最终客户可以按其需求定制产品。

通过对电梯的模块化划分, 使得功能与模块近似地具有一对一的关系。在这一设计方案中, 如下5个模块被定义:厢体、导轨、驱动、无线通讯、轿厢空间尺寸调整、碰撞缓冲与支撑、控制与显示、通风与照明。其设计方案如图4所示。

2.4 步骤4与5:详细设计与测试纠正

方案的产生与方案评估密不可分。在跨功能的研发团队组建开始, 各个团队人员以及参与设计的多种角色, 都从一开始就贡献其知识经验, 以验证提出来的各种新构想, 使得最终的解决方案更具市场可行性与可用性。在开发的后期阶段, 解决方案逐渐具体与可视化, 设备供应商开始参与设计, 以确认方案的技术可行性。由于方案表达为易于理解的形式, 包括三维虚拟人体的应用情景展示, 团队可以在早期的设计阶段, 向商业合作伙伴证明新型电梯的高附加值。

经过可用性评估, 最终的设计方案得到了较高的评价。

3 结论

本研究基于以人为中心设计的理念, 提出了一种适用于复杂产品系统设计的、以人为中心的设计流程, 并进行电梯系统的创新优化与改良设计, 解决了电梯系统中几个非人性化设计缺陷, 规划、定义了电梯的主要模块, 并进行了三维虚拟人体的分析, 提出一种具有良好人机操作界面的绿色电梯系统。经评估认为, 这一新型电梯具有较广阔的市场需求。本文提出通过行为图的引入, 扩展了以人为中心设计的观点, 有助于将各种利益相关者的需求融合到一个框架内, 并清晰展现。

本研究所提出的方法适用于电梯之外其它类型的、存在复杂人机交互的复杂产品系统的设计。

参考文献

[1]Hans-Jo¨rg Bullinger, Wilhelm Bauer, Gu¨nter Wenzel.Towards user centred design (UCD) in architecture based on immersive virtual environments[J].Computers in Industry 61 (2010) 372-379.

[2]Li Lin, Ming-Qing Yang, Jing Li.A systematic approach for deducing multi-dimensional modeling features design rules based on user-oriented experiments[J].International Journal of Industrial Ergonomics, 42 (2012) 347-358.

[3]Xue-Zheng Chu, Liang Gao, Hao-Bo Qiu.An expert system using rough sets theory and self-organizing maps to design space exploration of complex products[J].Expert Systems with Applications.37 (2010) 7364-7372.

[4]ISO/IEC 13407, 1999 (E) .Human-centred design processes for interactive systems.

[5]赖朝安, 朱文文.水暖卫浴产品风格优化的感性工学方法[J].工业工程与管理, 2012, 17 (6) :122-127.

[6]赖朝安著.新产品开发[M].北京:清华大学出版社, 2014, 2.

[7][美]Karl T.Ulrich, Steven D.Eppinger.product design and development (英文影印版, 第3版) [M].北京:高等教育出版社, 2004.

人机语音交互系统 篇7

1 虚拟选型系统框架

内饰虚拟选型系统包括两大模块, 接口模块和虚拟选型仿真模块。其中接口模块连接了选型管理系统和虚拟选型仿真模块, 通过接收选型管理系统中的数据, 来实时生成选型指定的飞机布局、结构以及各种默认选型特征。虚拟选型仿真模块包括:数模制作, 飞机布局场景及场景中人机交互动作, 飞机内饰场景及内饰场景中人机交互动作, 对虚拟仿真中的选型结果进行保存, 虚拟漫游。

达索公司的Virtools软件可以快速开发此类虚拟仿真系统, 已经在很多领域有了成功的应用和开发, 本系统采用VirtoolsDEV4.0平台, 将系统分为应用层和数据层。应用层包括文件类操作:1) 读取文件:系统以选型数据文件为输入, 选型数据文件以xml格式进行存储。2) 写入文件:对于用户操作后, 需要保留的选型数据, 系统将以xml格式进行保存到用户指定文件路径下。应用层最核心的是仿真环境, 包括多视角 (顶视角、侧视角、正视角) 的漫游与内饰部件的交互操作。系统的数据交换完全基于XML来进行, 包括两个部分:1) 选型配置信息, 包括选型数据、布局数据, 选型的特征数据等;2) 模型数据, 包括内饰三维模型数据, 存储在Virtools的nmo格式中, 该数据文件是以一张复杂的树形结构来进行存储, 外部的模型、数据、纹理和映射表通过xml文件的模型数据来实现交互。如图2所示:

2 基于Virtools的人机交互设计

本系统的交互设计主要包含三部分:布局选型、内饰选型以及灯光、环境、座椅调整角度等互动。各功能是通过交互脚本的设计和VirtoolsDev中各BB模块的组合而实现的。

2.1 摄影机操作

通过键盘按指定的键来控制摄影机前、后、左、右的移动, 通过鼠标移动来控制摄影机的视角, 使窗口呈现第一人称视角的漫游效果, 可以建立如图3的脚本来实现。

2.2 菜单与按钮

创建一个2dframe, 在场景选择, 右键菜单, 选择创建script, 如图添加pushbuttonbb, 左端输入口分别为on, off, disabel。右端输出口分别为, 鼠标按下触发, 鼠标抬起触发, 按钮激活触发, 鼠标进入按钮刹那触发, 鼠标离开按钮刹那触发, 鼠标在按钮内触发。

2.3 模型材质与选型动作

Virtools包含了超过20多个行为模组 (Building Blocks, 简称BB) , 用户可以根据对象的动作, 进行复杂的动作仿真。虚拟选型内饰仿真, 包括选择材质和对象的动作, 其中对象动作利用Virtools自带的BB即可完成。

内饰的材质需要实时添加, 可以利用Virtools的中心构件—行为引擎 (CK2) 执行行为处理, 具体步骤参考文献, 实现方法如下:

3 系统原型

本系统在Virtools4.0平台上创建并发布, 如图所示。用户可以通过人机交互的方式选择内饰部件。

4 结论

利用三维虚拟现实技术以及人机交互技术, 针对国产飞机进行内饰三维布局、内饰选型仿真可以有效解决国内航空主制造商的产品推介、提高客户交互设计等问题。本文提出了一种面向人机交互的三维飞机内饰虚拟选型系统, 基于Virtools软件从设计系统中导入三维模型, 重构具有材质和光照渲染的逼真三维飞机内饰内饰场景, 实现了所见即所得的选型, 最后给出了系统原型。

参考文献

[1]康译友, 张永策, 方丽, 马薇, 刘志广.基于Virtools的三维交互虚拟精馏实验室的构建.计算机工程与设计, 2011.

[2]毕荣蓉, 陈德焜, 严佳伟.基于Virtools的制造车间仿真系统的开发.网络新媒体技术, 2012.

[3]蔡武, 陈果, 朱志敏, 梁宇云, 王静涛.基于3D Max和Virtools的矿井虚拟仿真系统设计.煤炭工程, 2011.

[4]苏光, 马吉胜, 吴松.基于Virtools的视点控制功能设计与应用.军械工程学院火炮工程系.微计算机应用, 2011.

上一篇:工业废水的化学分析法下一篇:效益导向