2024年1月14日发(作者:)

第31卷第1期2018年2月PHYSICALEXPERIMENTOFCOLLEGE大学物理实验Vol.31No.1Feb.2018文章编号:1007 ̄2934(2018)01 ̄0114 ̄05基于计算机视觉的激光虚拟键盘的研制陈文娟ꎬ刘树钰ꎬ陈梦雯ꎬ侯 鹏(中国石油大学(华东)ꎬ山东青岛 266580)摘要:针对传统机械式键盘存在体积大、携带不便等问题ꎬ设计了一套基于计算机视觉的激光虚拟键盘系统ꎮ在充分利用电脑软件图像处理功能的基础上ꎬ系统利用三角测距原理和按键的映射原理识别手触按键坐标信息并建立其与电脑实际按键坐标信息的对应关系ꎬ从而控制电脑做出准确指令ꎮ相比其他设备ꎬ该系统的设计成本低ꎬ按键准确度高ꎬ方便演示和使用ꎮ关键词:计算机视觉ꎻ三角测距ꎻ图像处理文献标志码:ADOI:10.14139/j.cnki.cn22 ̄1228.2018.01.028中图分类号:TN247  随着计算机技术的快速发展和移动设备的普及ꎬ人机交互技术也变得越来越多样化[1ꎬ2]ꎮ键盘作为输入设备ꎬ一直以来发挥着不可替代的作用[3]ꎮ然而ꎬ传统的机械式键盘体积大、不方便携带ꎬ质量重、不轻便灵活ꎬ越来越不能满足用户的舒适需求ꎮ因此ꎬ设计研制一款体积小、质量轻ꎬ便于携带ꎬ使用方便灵活的虚拟键盘系统十分有必要ꎮ为此ꎬ本文进行了设计制作虚拟键盘的相关研究ꎮ相比市场上已有的虚拟键盘系统[4 ̄7]ꎬ本文制作完成的虚拟键盘系统的最大优势是设计成本低、制作简单、使用方便ꎮ在已有电脑等设备的基础上ꎬ充分利用电脑软件的图像处理功能ꎬ仅需加入激光器和摄像头等成本极低的硬件装置ꎬ配置简单的驱动电路ꎬ安装完成并调试即可使用ꎮ虚拟键盘经测试ꎬ使用效果良好ꎮ所示:图1 三角测距几何示意图图1中ꎬA为点状激光器ꎬB为物体ꎬO为摄像头的光心ꎬAO线段表示固定摄像头和激光器的平面ꎬ摄像头成像平面与该固定平面平行ꎬ而激光器发出的射线与该平面的夹角用β表示[8 ̄10]ꎮs为激光器中心与摄像头中心点的距离ꎬq为物体到摄像头光心平面的垂直距离ꎬd为物体到激光器的直线距离ꎬ即为所求的值ꎬf为摄像头光心到像平面的距离ꎬ即摄像头的焦距ꎮ根据上图所示的几何关系可知ΔCDO∽ΔAOBꎬ则根据相似三角形对应边成比例可知:CDAO=FOEB即:(1)1 系统的工作原理系统工作的主要原理为三角测距原理和按键的映射原理ꎮ利用三角测距原理ꎬ得到手触桌面虚拟键盘的按键的坐标信息ꎻ利用按键的映射原理ꎬ建立虚拟键盘信息与电脑操作系统内部实际键盘信息的对应关系ꎬ从而通知电脑的操作系统准确地触发对应的键值ꎮ1.1 三角测距原理一般的点状激光器的三角测距原理图如图1收稿日期:2017 ̄07 ̄20基金项目:中国石油大学(华东)重点教改项目(SY ̄B201614)ꎻ中国石油大学(华东)大学生创新创业训练项目(201710425093)

基于计算机视觉的激光虚拟键盘的研制115xs=fq(2)在图形系统中ꎬ所有UI元素具有他们相对于屏幕的坐标值ꎮ鼠标点击时ꎬGUI系统通过判断当前鼠标指针位置是否落入了某一个按钮或者选择框的坐标范围内从而做出相应命令ꎬ满足用户需求ꎮ与GUI系统判断原理类似ꎬ为了实现利用虚拟键盘触发电脑做出相应的按键命令ꎬ首先需要将以激光发射点为原点的指尖坐标映射到以键盘图案左上角为原点的坐标信息ꎬ然后进行桌面虚式中x表示被测物体被激光器的激光照射后ꎬ反射的激光点在摄像头感光元件(如CMOS)上所成的像点到一侧边缘的距离ꎮ该距离可以通过在摄像头画面中查找并计算激光点中心位置的像素坐标来求得直距离q:[8 ̄10]根据式(2)得到物体与摄像头光心平面的垂ꎮq=xsf(3)则在ΔAEB中ꎬ利用正弦关系物体到激光器的直线距离d为:d=sinqβ=fsinxsβ(4)在虚拟键盘系统中ꎬ采用的激光器为线性激光器ꎬ产生的是二维面激光ꎬ该激光平面与桌面平行且紧贴桌面ꎮ同样地ꎬ利用三角关系可以得到手指按键相对于激光发射点的坐标信息P(xꎬy)ꎮ原理图如图2所示ꎮ图2 虚拟键盘的三角测距原理图1.2 按键的映射原理按键的映射原理与图形用户界面(GUI)系统进行用户界面(UI)元素碰撞判断的原理类似ꎬ如图3所示ꎮ图3 GUI系统进行UI元素碰撞判断拟键盘的按键信息与电脑系统预存的实际按键信息的比对判断ꎮ映射原理图如图4所示ꎮ图4 虚拟键盘的按键坐标映射原理图图中ꎬP(xꎬy)为以激光发射点为原点的指尖坐标ꎬP′(x′ꎬy′)为以键盘图案左上角为原点的坐标ꎮ用Key[n]表示电脑预存的键盘中各个按键的坐标信息库ꎬ则上述原理过程可用数学关系式表达为:P′(x′ꎬy′)=fprojectionKey[n]=f(P(xꎬy))))(5)mapping(P′(x′ꎬy′(6)2 系统的组成2.1 系统整体框架系统的整体主要由摄像头、投射键盘画面的激光器以及线性激光器组成ꎮ虚拟键盘工作时ꎬ摄像头用来实施采集键盘区域的图像ꎬ并传入电脑进行预处理ꎬ进而进行包括指尖特征点提取、激光测距计算、按键映射判断等一系列过程ꎮ投射键盘画面的激光器用来投射在桌面上产生虚拟键盘画面ꎬ以供用户观看及方便进行按键操作ꎮ线性激光器则用来产生紧贴平面的平面激光ꎬ此时ꎬ若手指接近桌面会阻挡激光通路ꎬ产生反射且反射光点被摄像头捕捉到ꎮ

116基于计算机视觉的激光虚拟键盘的研制系统的工作流程图如图5所示ꎮ广角镜头进行扭曲校正[12]ꎬ即实现摄像头的标定过程ꎮ相比OpenCV已有的函数工具ꎬ该校正方法得到的结果更好ꎮ(2)指尖图像滤波处理在提取指尖特征点之前ꎬ观察摄像头直接采集的指尖图像ꎬ发现:受激光反射光的影响ꎬ每个指尖外围都有反射光干扰模糊区以及相邻指尖间有模糊重叠区ꎮ因此ꎬ需要对指尖图像做滤波处理ꎬ去除图像中的噪点ꎬ使反射干扰区的边缘平滑连贯以及消除重叠ꎮ在OpenCV的imgproc图像图5 系统工作流程图2.2 (1)硬件选型摄像头采用型号为九鼎摄像头JD ̄20161高清免驱的广角镜头ꎬ镜头视角为150°ꎬ该摄像头模组采用LINUXUSB责采集桌面指尖图像/接口安卓ꎬ4.0即插即用以上系统等多种系统ꎬ可支持XP/WIN7/WIN8/ꎬ并将其上传到电脑上以便ꎮ主要负对指尖信息进行采集处理(2)ꎮ用于投射激光键盘画面的激光器没有特殊要投射键盘画面的激光器求ꎬ在本系统中采用的是供电3.6~4.2V(可加电阻适当调节)ꎬ电流小于120mA的发射器ꎮ主要用来在桌面上产生虚拟的键盘画面(3)ꎮnmꎬ产生激光平面工作功率为本系统采用的线性激光器为发射波长线性激光器790ꎮ50安装使用时mW的线性激光器ꎬ应该使其尽可能地ꎮ主要用来贴近桌面ꎬ则产生的激光平面尽可能贴近桌面ꎬ方便近似认为坐标P(xꎬy)是位于桌面上的ꎬ减小误差ꎮ2.3 软件设计系统涉及的关键技术———图像处理全部由电脑完成ꎮ在软件框架已经搭建完成的基础上ꎬ充分利用Intel推出的基于BSD开源许可证的跨平台计算机视觉库OpenCV实现系统软件的图像处理功能[1ꎬ11]正ꎬ指尖图像滤波处理ꎮ图像处理主要包括镜头的扭曲校ꎬ指尖特征点信息提取ꎬ手指坐标的计算比对等(1)本系统利用镜头的扭曲校正ꎮMATLAB的Calibration工具箱对处理模块中ꎬ利用GaussianBlur函数、threshold函数、dilate函数、erode函数以及morphologyEx函数等实现对图像的滤波处理(3)系统利用特征点的提取ꎮOpenCV的cvFindContours函数对滤波处理后的指尖图像提取特征点坐标信息ꎮ为了保证精确度ꎬ采用以指尖光斑亮度而不是光斑面积的提取标准ꎬ对每个指尖中心提取信息得到相对于图像的位置坐标(4)ꎮ根据三角测距原理手指坐标的计算比对ꎬ计算得到手指相对于激光发射点的坐标P(xꎬy)ꎬ进而经过坐标系变换和按键的判断比对确定键值ꎮ3 系统测试根据以上的设计研究ꎬ制作的虚拟键盘实物图如图6所示ꎮ依据此装置ꎬ对系统的工作效果和工作性能进行了测试ꎮ图6 激光虚拟键盘系统实物装置图3.1 (1)系统工作效果测试为了测试虚拟键盘的实用性键盘点击输入测试ꎬ对该键盘的实

基于计算机视觉的激光虚拟键盘的研制117际使用效果进行了多次的使用测试ꎬ测试结果如图7所示:图8 系统多点触摸板工作图图7 系统键盘模式工作图观察图8发现ꎬ系统可以通过检测手指对桌面的“压力”控制电脑绘制出粗细不同的线条ꎬ即实现多点触摸板功能ꎬ使用正常ꎬ效果良好ꎮ3.2 系统工作性能测试(1)单个按键准确度观察图7发现ꎬ虚拟键盘识别精确ꎬ完全可以代替传统键盘正常使用ꎬ使用效果良好ꎮ(2)多点触摸板应用测试本系统在完成按键虚拟输入的功能基础上ꎬ还增添了多点触摸板的应用功能ꎬ其测试结果如图8所示:为了更详细地描述所制作的虚拟键盘的实用性、准确性ꎬ对每个按键进行了触发测试ꎬ得到了具体的测试结果如下:表1 单个按键的准确度测试表数字键准确度字母键准确度字母键准确度功能键准确度符号键准确度A98%N98%ESC97% ̄__97%=+98%1!98%B98%O98%2@98%C97%P97%CAP98%`~98%3#97%D98%Q98%TAB98%、|96%[{97%4¥98%E98%R98%F96%S96%SHIFT96%]}98%5%98%G97%T97%6^96%H98%U98%CTRL97%:ꎻ97%7&97%I97%V97%ALT98%/?98%ꎬ<96%J98%W98%8∗98%K97%X99%Back97%.>97%9(97%L96%Y97%DEL98%.‘’95%0)98%M98%Z98%  (2)组合按键准确度个或者三个按键实现电脑某些特殊命令的功能准确性ꎮ在单个按键测试的基础上ꎬ考虑到实际应用过程ꎬ还测试了组合按键的准确性ꎬ即同时按下两表2 组合按键的准确度测试表SHIFT+数字键准确度SHIFT+符号键准确度CTRL+字母键准确度准确度三组合键1!2@3#4¥5%6^7&8∗9(0)98%97%96%A ̄__98%98%=+97%98%`~、|98%96%97%C97%[{98%98%98%V]}96%97%:ꎻ97%98%97%X/?98%96%ꎬ<97%97%98%S.>98%95%.‘’CTRL+SHIFT+TAB97%CTRL+SHIFT+ESC98%CTRL+ALT+DEL97%  根据表1和表2的测试数据ꎬ虚拟键盘系统的准确度高ꎬ完全可以满足正常使用ꎮ

118基于计算机视觉的激光虚拟键盘的研制[5] 卢亮.基于嵌入式STM32的半虚拟键盘[D].华南理工大学ꎬ2014.[6] 李振伟.基于图像处理的半虚拟键盘的研究[D].华南理工大学ꎬ2013.[7] 杨骋.一种基于单摄像头的虚拟键盘[J].信息技术ꎬ[8] 陈士凯著.自制低成本3D激光扫描测距仪(3D激光雷达)ꎬ第一部分.http://www.csksoft.net/blog/post/lowcost_3d_laser_ranger_1.htmlꎬ2011 ̄11 ̄23.2012(10):66 ̄67.4 总 结结合计算机视觉和图像处理技术设计制作的激光虚拟键盘系统可以实现基本的键盘输入功能ꎬ在此基础上ꎬ还可实现多点触摸板功能ꎮ经测试ꎬ无论单个按键还是组合键ꎬ准确度高ꎬ可以实现正常使用和演示功能ꎮ系统的制作成本低ꎬ具有创新性ꎬ适合大范围的应用和推广ꎮ参考文献:[1] 李鹏翔.基于机器视觉的嵌入式虚拟键盘研究[D].[2] 王芳.基于微型投影及视觉感知的虚拟键盘技术研[3] 蔡睿妍.激光虚拟键盘的设计与实现[J].激光与红[4] 王久鹏ꎬ漆晶ꎬ王小平.激光投影虚拟键盘的研究与设计[J].电视技术ꎬ2016(4):32 ̄37.外ꎬ2012(8):875 ̄878.究[D].杭州电子科技大学ꎬ2015.华南理工大学ꎬ2016.[9] 陈玉秀ꎬ邹彤ꎬ郭唐永.基于三角法的绝对重力仪落体姿态测量系统的设计[J].大地测量与地球动力学ꎬ2013(2):65 ̄67.[10]冯翠芝.基于线激光三角法的目标深度探测[D].中国海洋大学ꎬ2012.[11]BradskiGꎬKaehlerA.学习OpenCV[M].于仕琪ꎬ刘瑞祯译.北京:清华大学出版社ꎬ2009(10):128 ̄129.[12]瞿端阳ꎬ王维新ꎬ马本学ꎬ等.基于MATLAB的棉株(1):15 ̄18.识别系统摄像头标定研究[J].新疆农机化ꎬ2013DevelopmentofLaserVirtualKeyboardBasedonComputerVisionCHENWen ̄juanꎬLIUShu ̄yuꎬCHENMeng ̄wenꎬHOUPeng(ChinaUniversityofPetroleumꎬShandongQingdao266580)Abstract:Inviewoftraditionalmechanicalkeyboardsarebigꎬandinconvenientforcarryingꎬalaservirtualkeyboardsystembasedoncomputervisionisdesigned.Basedonmakingfulluseoftheimageprocessingfunc ̄tionofcomputersoftwareꎬthesystemidentifiesthecoordinateinformationoftouched ̄virtualkeysandestabli ̄andthemappingofkeysꎬsoastocontrolthecomputertomakeaccurateinstruction.Comparedwithotherde ̄anduse.Keywords:computervisionꎻtriangulationꎻimageprocessingshesthecorrespondingrelationbetweenthemandtruekeysofthecomputerbytheprinciplesoftriangulationvicesꎬthecostofthissystemislowandtheaccuracyoftouch ̄keysarehighꎬwhichitiseasytodemonstrate