CN112991282B - 一种基于机器人的键盘输入设备自动化测试方法 - Google Patents
一种基于机器人的键盘输入设备自动化测试方法 Download PDFInfo
- Publication number
- CN112991282B CN112991282B CN202110239442.1A CN202110239442A CN112991282B CN 112991282 B CN112991282 B CN 112991282B CN 202110239442 A CN202110239442 A CN 202110239442A CN 112991282 B CN112991282 B CN 112991282B
- Authority
- CN
- China
- Prior art keywords
- key
- keyboard
- image
- keys
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 44
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 230000016776 visual perception Effects 0.000 claims abstract description 5
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 25
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000000007 visual effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 4
- 238000012905 input function Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/02—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
- B25J9/023—Cartesian coordinate type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种基于机器人的键盘输入设备自动化测试方法,包括以下步骤:构建一套用于键盘输入测试的机器人装置,由三维运动机械臂、摄像头等几部分构成;依托机器人装置对键盘进行自动化测试,具体包括:首先通过视觉感知自动抽取键盘按键布局信息,构造已有键盘的模型;然后在键盘模型库中匹配模型,将模型中的键盘布局信息映射为当前现场键盘图像中的像素空间按键坐标信息;最后,结合键盘外形信息,将像素空间按键坐标转换为物理世界按键坐标,并通过机器人触发键盘动作,实现键盘输入自动测试。本发明基于物理机器人和视觉技术,实现了对键盘输入的非侵入式测试,可在无需向键盘所在系统植入额外软件的情况下工作,具有广泛的适用性。
Description
技术领域
本发明涉及一种键盘输入设备自动化测试方法,属于其它新型计算机外围设备与计算机软件技术领域。
背景技术
软件测试中,很多场景下需要对键盘进行重复点击等操作,对该键盘输入进行测试自动化,可以提高测试效率,节省时间和人力成本。
当前已经存在一些涉及键盘设备的测试自动化技术。一类方法基于系统调用,通过调用被测设备所在底层操作系统提供的API,完成键盘按键输入的自动给入。例如,Hu等人在Windows平台上实现按键输入功能,他们调用Windows系统提供的PostMessage接口实现按键按下和弹起两个功能。Gu等人在Android平台中通过adb shell input keyevent完成键盘按键输入功能。对于无法获取底层操作系统接口的被测平台中,该方法无法实施。另一类是通过硬件模拟的方法实现按键自动输入功能。例如Yung-Pin Cheng等提出使用ARMCortex-M4开发板来拦截/仿真键盘和鼠标事件。首先通过诸如VGA、USB、PS/2等电子信号的拦截,记录测试人员的测试动作并将其写入测试脚本,然后利用硬件仿真录制的电子信号,重现键盘行为。该方法需要将开发板与被测系统相连接,对于不对外暴露接口的被测设备,此方法无法实施。以上方法或者需要底层系统暴露API接口,或者需要被测设备暴露硬件信号接口,均不能用于系统封闭的被测目标。
发明内容
发明目的:针对计算机键盘设备的测试自动化问题,本发明提出一种基于机器人的键盘输入设备自动化测试方法,利用视觉识别键盘按键,并利用机器人实现按键点击。
技术方案:一种基于机器人的键盘输入设备自动化测试方法,包括以下步骤:
S1,构建一套用于键盘输入测试的机器人装置,包括:支撑架、摄像头、机械臂、上下点击器,摄像头固定于支撑架上,用于捕获待测键盘的图像;上下点击器安装在机械臂上,用于敲击键盘;
S2,依托机器人装置对键盘进行自动化测试,具体步骤包括:
(1)通过视觉感知与智能推测,自动抽取键盘按键布局信息,构造已有键盘的键盘模型库;
(2)利用摄像头获取待测键盘现场图像,基于现场图像和键盘模型库中键盘图像进行图像匹配,若匹配成功,将模型中的键盘布局信息映射为当前现场键盘图像的像素空间按键坐标信息,若匹配失败,对现场待测键盘重新进行键盘模型抽取;
(3)将键盘像素空间坐标转换为物理世界按键坐标,并通过机器人触发按键动作,实现键盘输入自动测试。
作为本发明的优选实施方式,所述步骤(1)包括:
(101)通过摄像头获取键盘图像,针对键盘图像构造初始键盘模型,一个键盘模型由键盘图像、键块划分以及按键坐标映射构成,表达为M=<Regions,Image,KeyMap>,其中Regions代表键块,指键盘上按键位置相邻且布局符合一定规律性特征的区域;KeyMap代表按键坐标映射,指键盘按键与键盘图像Image上像素坐标之间的一一对应关系;初始键盘模型包含给定的键块信息、键盘图像,KeyMap暂时待填充;
(102)对键盘图像进行灰度化和中值滤波处理,再应用轮廓检测算法在键盘图像中检测出若干轮廓;
(103)在检测出的轮廓中筛选出长宽比例大于指定阈值的轮廓,作为候选字母键或数字键轮廓,对筛选出的候选轮廓进行OCR文字识别,得到轮廓中的内容以及轮廓长、宽和左上角坐标信息,并以此计算像素空间中按键中心的坐标位置;
(104)对于文字不可识别的按键,由可识别按键与初始键盘模型中的键块信息,获取可识别按键在键块中的行、列索引,并计算相邻按键的行间距和/或列间距,基于可识别的按键坐标位置、按键在键块中的行列索引以及相邻按键行间距/列间距,推测不可识别按键在键盘图像中的像素坐标位置;
(105)根据直接识别的按键信息和推测所得的不可识别按键信息,对键盘模型进行填充,得到包括键盘中所有的按键像素坐标信息的完整键盘模型。
作为本发明的优选实施方式,所述步骤(2)包括:
(201)对现场键盘图像与模型库中图像进行特征点提取,并剔除两张图像的误匹配特征点;
(202)根据匹配成功特征点个数占图像总特征点个数的比值分别计算键盘图像匹配度和模型图像匹配度,若两个图像匹配度均大于预设阈值,则认为图像匹配成功;若匹配失败则将键盘图像与键盘模型库中其他图像再次进行匹配度计算;
(203)若匹配成功,基于现场键盘图像与模型键盘图像对应的特征点信息,推算键盘按键在现场图像与模型图像中像素空间坐标之间的转换关系,该转换关系用如下的公式表示:
其中[x y 1]表示按键在模型图像中像素空间坐标的齐次坐标形式,[x′ y′ 1]表示经过转换得到的按键在键盘现场图像中像素空间坐标的齐次坐标形式;将键盘现场图像与模型图像对应的特征点坐标分别代入上述转换关系,解方程得到转换矩阵H;
(204)循环遍历键盘模型中每个键块下的每个按键,将按键在模型中键盘图像上的像素空间坐标表达为齐次坐标形式,并与转换矩阵H相乘,得到该按键在键盘现场图像上的像素空间坐标。
作为本发明的优选实施方式,所述步骤(3)包括:
(301)在标定板中标注九个坐标点,控制机械臂使其点击标定板中给定点,记录被点击点在机械臂坐标系中的物理世界坐标和在键盘现场图像坐标系中的像素空间坐标;
(302)将获取的机械臂坐标与对应的像素坐标带入以下键盘现场图像坐标系到机械臂坐标系的坐标转换函数中:
其中[x y 1]表示按键在像素空间中的齐次坐标,[x″ y″ 1]表示该按键对应的机械臂坐标系齐次坐标;A表示两个坐标之间的转换矩阵,形式如下:
其中α表示机械臂坐标系与图像坐标系之间的旋转因子,k表示缩放因子,u0和v0表示平移向量;通过解方程得到坐标转换矩阵A;
(303)将键盘按键在键盘现场图像中的像素空间坐标[x y 1]乘以坐标转换矩阵A,得到按键在机械臂坐标系中的物理世界坐标。
作为本发明的优选实施方式,所述步骤(3)中通过机器人触发按键动作时对机器人点击深度进行控制,适应键盘按键平面倾斜的场景,所述点击深度的计算公式如下:
i表示当前需要点击的按键所在的行,depthi表示第i行的点击深度,top_depth表示按键所在键块最上排深度,bottom_depth表示按键所在键块最下排深度,Lines表示从按键所在键块最上排到键块最下排的总行数。
有益效果:
1、本发明提供一套机器人装置来对键盘设备进行非侵入式测试自动化,测试过程中无需获得被测系统访问权限,可在无需向键盘所在系统植入额外软件的情况下工作,具有广泛的适用性。
2、本发明通过基于文字的直接识别和基于推测的间接识别,视觉识别键盘按键,定位按键坐标,方法简洁便于实现,提高测试效率。
附图说明
图1是本发明的基于机器人装置对键盘设备进行非侵入式测试方法的流程图;
图2是机器人装置搭建以及键盘摆放示意图;
图3是键盘按键键块划分示意图;
图4是键盘轮廓检测示意图;
图5是键盘按键间隔推测流程图;
图6是键盘不同行索引1-1按键对应斜率示意图;
图7是键盘不同行索引0-1按键对应斜率示意图;
图8是键盘现场图像与模型键盘图像特征点匹配示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图1所示,本发明提出的基于机器人的计算机输入设备测试自动化方法,步骤如下:
步骤S1,构建一套用于键盘输入测试的机器人装置,由支撑架、摄像设备、机械臂和上下点击器组成。
在一个实施例中,机器人装置由摄像头、支撑架、机械臂和上下点击器构成。摄像头用来获取待测键盘现场图像。支撑架包括水平轴与垂直轴,在水平轴尾部使用固定夹板固定摄像头。水平轴和竖直轴可以调节摄像头沿水平和竖直方向移动,灵活控制摄像头拍摄角度,使摄像头能够获取整张待测键盘图像。支撑架放置于待测键盘左端,机械臂放置于待测键盘前部且靠近整张键盘的中间位置,保证机械臂可以点击到键盘中的大部分按键。具体摆放方式如图2所示。
在一个实施例中,机械臂设备采用五轴机械臂,使用步进电机对其进行驱动,支持在X,Y,Z三个坐标方向上移动,XY方向运动可以使得点击器移动到平面上机械臂范围内的任意位置,确保了机械臂移动点击时对键盘设备的无死角控制。Z轴控制点击深度,实现对同一键盘中不同深度的按键按下操作。使用上下点击器来完成键盘设备按键点击操作。机械臂头部Z轴一端安装有上下点击器,主要用于模拟人手对键盘设备的点击操作。上下点击器使用的是笔状型装置,笔状型装置可以选用普通铅笔、圆珠笔等多种型号,该设备满足了对精确的位置和灵敏的点击反馈的需求。机械设备和摄像设备均通过USB接口与工作计算机相连。
步骤S2,在工作计算机上实现依托机器人装置对键盘进行自动化测试,其具体步骤为:
2.a)通过视觉感知与智能推测,自动抽取键盘按键布局信息,构造已有键盘的模型;
2.b)获取待测键盘的现场图像,将其和键盘模型库中键盘图像进行匹配,若匹配成功,将模型中的键盘布局信息映射为当前现场键盘图像的像素空间按键坐标信息。若匹配失败,对现场待测键盘重新进行键盘模型抽取。
2.c)将键盘像素空间坐标转换为物理世界按键坐标,并通过机器人触发按键动作。触发按键动作时通过算法对机器人点击深度进行控制,适应键盘按键平面倾斜的场景。
在一个实施例中,基于Canny轮廓检测算法和OCR(Optical CharacterRecognition)文字识别算法对键盘图像进行处理,对处理后的图像经过按键推测算法实现按键定位,可以采用如下优选方案实现上述步骤2.a:
201、通过视觉感知,构造待测键盘初始模型,在初始模型中,给出键盘键块划分信息、按键坐标映射概念以及一些基于键盘的假设信息。在待测键盘中,将布局符合一定规律性特征的区域划分为一个键块。例如在图3中,Ri(i=1,2…5)表示该键盘划分出的每个键块,以R2为例,该键块中,大部分按键相邻按键间距相同,同行按键纵坐标相同,因此将它们放入同一键块中。按键坐标映射表示的是键盘按键中心与它在图像中的坐标位置形成的二维关系,令Images表示作为按键坐标映射基础的键盘图像,Keys表示键盘按键集合,Coordinates表示图像中的坐标点,则按键坐标映射KM为可表示为:
KeyMap::Images×Keys→Coordinates
::表示对KeyMap的解释,×表示将图像和图像的内部按键构成一个集合,→表示该符号左边和右边是一种映射关系。
一个键盘模型可用三元组M=<Regions,Image,KeyMap>表示,其中Regions是键块的集合,Image是用以描述目标键盘的键盘图像,KeyMap是当前图像上的键盘按键坐标映射。
202、对键盘图像进行预处理,图像预处理首先是对图像进行灰度化处理,减少图像处理数据量,然后通过中值滤波操作尽可能去除图像中的噪声,最后通过Canny边缘检测算法检测出图像中的轮廓,并通过闭操作将割裂的边缘连接起来,得到较为完整的轮廓图。设contour为检测到的一个轮廓,x、y、w、h分别对应轮廓外接矩形的起点横坐标x、纵坐标y、宽度w和高度h。键盘按键外接轮廓信息如下所示:
(x,y,w,h)=boundingReact(contour)
得到轮廓后,在检测出的轮廓中筛选出长宽比例大于指定阈值的轮廓,认为该类型轮廓对应字母、数字等按键。轮廓筛选过程可以设定一个阈值Threshold,若根据轮廓检测算法获得的长宽比值大于此阈值,则认为它不是合理的键盘按键外接矩形轮廓,将其去除。w表示轮廓检测后外接矩形的宽,h表示外接矩形的高,筛选公式如下:
将筛选后的轮廓写入轮廓数据集中,轮廓数据集用S表示,每个保留下的轮廓用C表示,则S可以表示为:
S={C1,C2,…,Cn}
将保留下的轮廓数据集中的轮廓进行OCR文字识别,得到轮廓中的内容以及轮廓长、宽和左上角坐标信息,并以此计算像素空间中按键中心的坐标位置。对于键盘中的按键,轮廓分为两种:一个是按键轮廓,一个是字母轮廓,在本发明中如果经过轮廓检测,检测到的是按键轮廓,则将其称为轮廓不紧贴字母所在区域(例如图4中的按键A);如果检测到的是字母轮廓,称为轮廓紧贴字母所在区域(例如图4中的按键W)。对于轮廓不紧贴字母所在区域的情况,将轮廓的中心点位置作为轮廓内按键(记为Key#)的像素坐标位置。设L(x,y)为Key#的像素坐标位置,contour_outx(Key#)和contour_outy(Key#)分别表示按键Key#轮廓的左上角横坐标和纵坐标,contour_outlength和contour_outheight分别表示按键Key#轮廓的长和宽。则Key#像素坐标的计算公式应该表示为:
若轮廓紧贴字母所在区域,表明只能检测出字母所在区域的轮廓,而不能检测到整个按键Key#的整体轮廓。对此情况,首先根据某个既可以检测出按键轮廓也可以检测字母所在区域轮廓的按键(例如图4中的按键W),设为Key1,将按键Key1轮廓左上角横纵坐标与字母所在区域左上角横纵坐标相减并取绝对值,得到按键轮廓左边框、上边框分别与字母所在区域左边框、上边框之间的距离,该组距离可以表达为:
其中按键Key1的字母所在区域左上角横坐标和纵坐标分别记为contour_inx(Key1)和contour_iny(Key1),按键轮廓左上角横坐标和纵坐标分别记为contour_outx(Key1)和contour_outy(Key1)。该距离可以作为键块中所有字母所在区域左边框、上边框与其对应的按键轮廓左边框、上边框之间的距离。将该距离与按键Key#的字母所在区域左上角横纵坐标相减,并取绝对值,可以得到按键Key#的轮廓左上角横坐标和纵坐标,其计算公式可以表示为:
contour_outx(Key#)=|distancein_out_x-contour_inx(Key#)|
contour_outy(Key#)=|distancein_out_y-contour_iny(Key#)|
contour_inx(Key#)、contour_iny(Key#)分别是按键Key#的字母所在区域左上角横坐标和纵坐标。最后该按键Key#轮廓矩形区域中心作为按键中心点坐标。按键中心视为可识别按键在键盘图像中的像素坐标位置。
203、对于不可识别的按键,采用下述一种按键坐标推测方法。按键坐标推测,分为相邻按键间距推测、同行按键推测与不同行按键推测。相邻按键间距推测的具体流程如图5所示,根据可识别按键在像素空间中的中心坐标位置,以及该按键在模型文件内部的键块分布,再根据两个可识别按键的纵坐标偏差量,判断两个按键是否位于同一行。找到同行按键之后,可以计算两个按键横坐标之间的距离,再根据模型文件中这两个按键索引之间的差距,可以通过这两个按键,大致推测相邻按键行间距。假设b1,b2是两个可识别按键,且它们位于同一键块的同一行。将按键b1的索引记作按键b2的索引记为/>对于b1的横坐标记作/>b2的横坐标记作/>通过这两个按键计算得到相邻按键行间距记为则其计算公式为:
本发明中计算相邻按键行间距的具体方法是将每一个键块中的任意两个同行按键进行相邻按键行间距计算,再取其平均值,作为整个键块的相邻按键行间距,将其记作distancekey_region_row,其中∑distance(i,j)表示对于某一键块中的任意同行的两个按键i和j,通过它们计算得到的相邻按键行间距,然后将任意两个按键计算得到的相邻按键行间距进行求和运算,最后,将求得的和与(i,j)对的个数Number(i,j)进行比值运算,得到按键所在键块的相邻按键行间距。该相邻按键行间距值同样可以作为键块的相邻按键列间距值。
distancekey_region_column=distancekey_region_row
204、通过可识别的按键坐标位置、按键在键块中的行列索引以及根据步骤203得到的键块相邻按键、列间距,可以推测不可识别按键在键盘图像中的像素坐标位置。如果可识别按键与待推测按键(不可识别按键)位于同一键块且位于同一行,将可识别按键坐标记为(x1,y1),待推测按键坐标记为(x2,y2),则(x2,y2)计算公式为:
如果需要推测的不可识别按键Key*与某可识别按键Key#位于同一键块中不同行。则先计算Key*与Key#之间的行间距G;然后根据用户给定同行索引按键斜率一致行的描述,例如在图6和图7中,[1-Q]构成的斜率与[A-Z]构成的斜率相同,[2-Q]构成的斜率与[S-Z]构成的斜率相同。找出行间距同样为G,每行有可识别按键,且同行索引按键之间的斜率与Key*、Key#所在行相同的两个按键行。例如,若两个可识别按键分别为Z(u1,v1),A(u2,v2),在图6中它们位于不同行,且它们的行索引值相同。将这两个按键的斜率记为slope,则它们的斜率计算公式为:
由图6和图7可知该斜率既可以作为Z-M行与A-L行索引值相同的按键之间的斜率,也可以作为1-0行与Q-P行索引值相同的按键之间的斜率,即它们为按键斜率一致行。若此时可识别字母为Z和A,我们的目标是通过Z键坐标推测H键坐标,首先根据模型文件,获得H键在Z-M行与其行索引值相同的按键,为N,然后计算出N的横坐标与纵坐标中心位置,将其记为(Nx,Ny)。将待推测的H字母坐标记为(Hx,Hy),则H与N的坐标应满足同样的函数关系,这个函数的表达式为:
Hy=slope*(Hx-Nx)+Ny
且N与H构成的斜率应和A与Z构成的斜率大致相同,因此函数中的slope为已知量,通过N的坐标(Nx,Ny),将其带入上述函数公式并根据N纵坐标与相邻按键列间距相减,可以获得H纵坐标Hy,将H纵坐标再带入上述函数公式,便可计算出H的横坐标Hx。
在一个实施例中,步骤2.b可采用如下优选实施方式:首先计算现场键盘图像与模型库中图像特征点,然后剔除两张图像的误匹配点,最后通过剩余的特征点,计算键盘现场图像坐标与模型图像坐标之间的坐标转换关系,根据此转换关系,完成键盘现场图像像素坐标与模型图像像素坐标之间的转换。具体步骤如下:
301、通过SIFT算法对两张图像进行特征点提取,采用随机一致性采样算法剔除两张图像的误匹配点,剔除误匹配特征点后,两张图像的特征点可以产生一种映射关系,该映射关系如图8所示。为键盘图像匹配设置图像匹配度用来判断两张图像是否匹配,匹配度的计算方法为键盘现场图像与模型图像中匹配成功特征点个数分别除以键盘现场图像总特征点个数与键盘模型图像总特征点个数。在进行图像匹配时,首先为匹配设定一个阈值,若图像匹配度大于该阈值,则认为图像匹配成功,两个图是同一张键盘,可进行按键坐标转换。若匹配度小于该阈值,则将该图像与键盘模型库中其他图像再次进行匹配度计算。若遍历完键盘模型库中所有图像后,匹配度仍小于设定阈值,则认为图像匹配失败,需要重新进行键盘建模。将匹配阈值记为Thresh,待测图像特征点个数记为Kp1,模型图像特征点个数记为Kp2,匹配成功特征点点个数记为good_match,匹配阈值记为Thresh,则匹配成功的情况下,表达式应为:
302、匹配成功的两张键盘,可以将其放入同一键盘库中,认为其为同一种类型的键盘。键盘匹配成功后,接下来对现场键盘图像与模型键盘图像进行基于矩阵的按键坐标转换。采用SIFT特征点匹配算法对两张图像进行匹配时,匹配成功的特征点像素坐标之间存在一种转换关系,该转换关系如下面的公式所示,[X Y 1]和[X' Y' 1]分别表示两张图像中对应的匹配特征点的像素坐标的齐次形式,矩阵h表示坐标之间的转换关系,通过4对匹配特征点,分别代入如下的方程,计算求解矩阵h,本发明中将此矩阵作为匹配成功的两张图像的像素坐标之间的转换关系,则有:
h11、h12等表示h矩阵中的元素,一共9个。
303、最后,循环遍历键盘模型中每个键块下的每个按键,将按键在模型中键盘图像上的像素空间坐标表达为齐次坐标形式,并与302中得到的转换矩阵h相乘,得到该按键在键盘现场图像上的像素空间坐标。
本发明支持机械臂坐标位置与图像坐标位置之间的转换,并通过命令驱动机器人,实现对待测键盘设备的点击。触发按键动作时可以对点击深度进行自适应调节,满足键盘倾斜的场景。在一个实施例中,步骤2.c的优选实施方式包括:
401、采用9点标定的方法完成机械臂坐标与图像坐标之间的转换。首先需将机器人、标定板与摄像头位置固定,保持三者的相对位置始终不变。然后在标定板上随机标注九个坐标点,九个点的位置应尽量呈均匀分布。
402、接下来可以将过程分为两方面齐头并进,一方面,驱动机械臂轮流点击标定板好的九个点,每点击一个点,记录点击当前点的机械臂坐标系中的坐标位置。另一方面,通过摄像头获取标定板图像,获得标定板图像后,在图像上标出标定板中九个点的像素坐标位置。最后,当机械臂坐标与对应的像素坐标都获取完成后,将其带入键盘现场图像坐标系到机械臂坐标系的坐标转换函数中。将现场图像坐标和机械臂坐标都用齐次坐标表示,分别记为A(x,y,1),B(x″,y″,1),则转换过程可以通过如下公式表示,其中(u0,v0)表示两坐标之间的平移向量,k表示缩放因子,α表示旋转角度。
403、对于不同键盘中的不同按键,它们的点击深度是不同的,因此需要为键盘中的每一个按键设置一个点击深度。在本发明中,当待测键盘整体呈现出一定的倾斜角度时,在机械臂进行点击之前,首先给定键块最上排区域深度,记为top_depth,然后给定键块最下排区域深度,记为bottom_depth,i表示当前需要点击的行,lines表示从键块最上排到键块最下排的总行数。lines可以从模型文件中获取。则对于每一行的点击深度,其计算公式应为:
综上所示,本发明通过两部分,即测试机器人装置的构建、键盘非侵入式测试自动化软件方法,将实际中由手动操作计算机键盘转为通过机器人自动实现对计算机键盘设备的测试。通过图像处理技术、机器人驱动技术等保证了本发明的测试方法在不同被测设备上能够取得较好的效果。
通过实验来验证上述方法的性能,在实验过程中,共对3种颜色、6种不同品牌的键盘尝试键盘输入测试自动化操作,并将通过机械臂点击按键实际输入的字符串与期望输入的按键进行字符串进行准确度对比。经过实际检验,在百度文库中随机抽取的5篇英文文献中的2000个字符上进行点击,通过机械臂点击方式输入的字符串与期望输入的按键字符串进行匹配时达到了90%左右的准确度,表明本发明所提出的技术可在非侵入方式下满足键盘设备的大部分测试需要。以上实验结果表明,本发明满足用户对于键盘设备在日常测试中的一般操作需要,具有良好的使用效果。
本发明的实施例系统地考虑了机器人测试环境搭建、键盘按键识别、机器人驱动等一系列问题,构建了完整可用的机器人化键盘输入给入方案,根据本方法只需要利用摄像头拍摄待测键盘设备,无需调用待测设备底层操作系统接口,也无需与待测设备进行连接,具有存粹的非侵入性,可普遍适用于基于各类不同底层操作系统的被测设备。
Claims (8)
1.一种基于机器人的键盘输入设备自动化测试方法,其特征在于,包括以下步骤:
S1,构建一套用于键盘输入测试的机器人装置,包括:支撑架、摄像头、机械臂、上下点击器,摄像头固定于支撑架上,用于捕获待测键盘的图像;上下点击器安装在机械臂上,用于敲击键盘;
S2,依托机器人装置对键盘进行自动化测试,具体步骤包括:
(1)通过视觉感知与智能推测,自动抽取键盘按键布局信息,构造已有键盘的键盘模型库,包括:
(101)通过摄像头获取键盘图像,针对键盘图像构造初始键盘模型,一个键盘模型由键盘图像、键块划分以及按键坐标映射构成,表达为M=<Regions,Image,KeyMap>,其中Regions代表键块,指键盘上按键位置相邻且布局符合一定规律性特征的区域;KeyMap代表按键坐标映射,指键盘按键与键盘图像Image上像素坐标之间的一一对应关系;初始键盘模型包含给定的键块信息、键盘图像,KeyMap暂时待填充;
(102)对键盘图像进行灰度化和中值滤波处理,再应用轮廓检测算法在键盘图像中检测出若干轮廓;
(103)在检测出的轮廓中筛选出长宽比例大于指定阈值的轮廓,作为候选字母键或数字键轮廓,对筛选出的候选轮廓进行OCR文字识别,得到轮廓中的内容以及轮廓长、宽和左上角坐标信息,并以此计算像素空间中按键中心的坐标位置;
(104)对于文字不可识别的按键,由可识别按键与初始键盘模型中的键块信息,获取可识别按键在键块中的行、列索引,并计算相邻按键的行间距和/或列间距,基于可识别的按键坐标位置、按键在键块中的行列索引以及相邻按键行间距/列间距,推测不可识别按键在键盘图像中的像素坐标位置;
(105)根据直接识别的按键信息和推测所得的不可识别按键信息,对键盘模型进行填充,得到包括键盘中所有的按键像素坐标信息的完整键盘模型;
(2)利用摄像头获取待测键盘现场图像,基于现场图像和键盘模型库中键盘图像进行图像匹配,若匹配成功,将模型中的键盘布局信息映射为当前现场键盘图像的像素空间按键坐标信息,若匹配失败,对现场待测键盘重新进行键盘模型抽取;
(3)将键盘像素空间坐标转换为物理世界按键坐标,并通过机器人触发按键动作,实现键盘输入自动测试。
2.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤S1中,支撑架放置于待测键盘左端,支撑架包括水平轴与垂直轴,在水平轴尾部固定摄像头,水平轴和竖直轴能够调节摄像头沿水平和竖直方向移动,控制摄像头拍摄角度,使摄像头能够获取整张待测键盘图像;机械臂放置于待测键盘前部且靠近整张键盘的中间位置,保证机械臂能够点击到键盘中的按键,机械臂末端安装上下点击器用于敲击键盘。
3.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤(101)中按键坐标映射表示为:
KeyMap::Images×Keys→Coordinater
其中Images表示作为按键坐标映射基础的键盘图像,Keys表示键盘按键集合,Coordinates表示图像中的坐标点。
4.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤(103)包括:
(a)记contour为检测到的一个轮廓,x、y、w、h分别对应轮廓外接矩形的起点横坐标、纵坐标、宽度和高度,Threshold为指定的阈值,按下式筛选轮廓:
将满足上式的轮廓剔除,每个保留下的轮廓用写入轮廓数据集中;
(b)记轮廓内按键为Key#,若轮廓不紧贴字母所在区域,将轮廓矩形区域的中心点作为按键Key#的中心点,设L(x,y)为Key#的像素坐标位置,contour_outx(Key#)和contour_outy(Key#)分别表示按键Key#轮廓的左上角横坐标和纵坐标,contour_outlength和contour_outheight分别表示按键Key#轮廓的长和宽,则Key#像素坐标的计算公式为:
(c)若轮廓紧贴字母所在区域,首先根据某个既能检测出按键轮廓也能检测字母所在区域轮廓的按键,设为Key1,将按键Key1轮廓左上角横纵坐标与字母所在区域左上角横纵坐标相减并取绝对值,得到按键轮廓左边框、上边框分别与字母所在区域左边框、上边框之间的距离,该组距离表达为:
其中按键Key1的字母所在区域左上角横坐标和纵坐标分别记为contour_inx(Key1)和contour_iny(Key1),按键轮廓左上角横坐标和纵坐标分别记为contour_outx(Key1)和contour_outy(Key1);
再将该组距离与按键Key#的字母所在区域左上角横纵坐标相减,并取绝对值,得到按键Key#的轮廓左上角横坐标和纵坐标,其计算公式表示为:
contour_outx(Key#)=|distancein_out_×-contour_inx(Key#)|
contour_outy(Key#)=|distancein_out_y-contour_iny(key#)|
contour_inx(Key#)、contour_iny(Key#)分别是按键Key#的字母所在区域左上角横坐标和纵坐标,最后将按键Key#轮廓矩形区域中心作为按键中心点坐标。
5.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤(104)包括:
(d)根据多个可识别按键在键盘图像中的像素纵坐标偏差量判断它们是否位于同行,若位于同行,将同行的两个可识别按键横坐标相减的绝对值除以它们之间行索引之差的绝对值,作为从这两个按键推测得到的键盘键块相邻按键行间距;将任意两个可识别按键都做如上操作,得到一组相邻按键行间距值,取其平均,作为该键块的相邻按键行间距值;该相邻按键行间距值同样作为键块的相邻按键列间距值;
(e)若需要推测的不可识别按键Key*与某可识别按键Key#位于同一键块中的同一行,则先从键盘模型获得Key*与Key#之间的行索引值差距,乘相邻按键间距得到两个按键之间的像素间距,再加上可识别按键Key#的像素横坐标,得到不可识别按键Key*的横坐标位置,Key*的纵坐标位置与Key#纵坐标位置相同,表示如下:
x2=x1+key_distance*(index2-index1)
y2=y1
(x1,y1)为Key#的像素空间坐标,(x2,y2)为待推测按键Key*的像素空间坐标,key_distance表示按键所在键块的相邻按键行间距,index1和index2分别表示Key#和Key*的行索引值;
(f)若需要推测的不可识别按键Key*与某可识别按键Key#位于同一键块中的不同行,则先计算Key*和Key#之间的行间距G;根据用户对同行索引按键斜率一致的行的描述,找出行间距同样为G,每行有可识别按键,且同行索引按键之间的斜率与Key*、Key#所在行相同的两个按键行,设为L1和L2;根据L1和L2中相同行索引值的可识别按键的像素坐标,计算跨行按键坐标之间的斜率slope,设L1和L2中两个相同行索引值可识别按键的像素坐标分别为(u1,v1),(u2,v2),则:
然后,找出Key#所在的按键行中与Key*相同行索引的按键,设为M,通过步骤(e)的方法推测出M的按键坐标,记为(x3,y3),则待推测按键Key*的坐标(x,y)与M的坐标满足以下函数关系:
y=slope*(x-x3)+y3
接下来,通过可识别按键Key#的纵坐标加上Key*所在行与Key#所在行的列索引差距乘相邻按键列间距,得到按键Key*的纵坐标,将Key*的纵坐标带入前述y函数,得到Key*的横坐标,完成对不可识别按键Key*的像素坐标位置推测。
6.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤(2)包括:
(201)对现场键盘图像与模型库中图像进行特征点提取,并剔除两张图像的误匹配特征点;
(202)根据匹配成功特征点个数占图像总特征点个数的比值分别计算键盘图像匹配度和模型图像匹配度,若两个图像匹配度均大于预设阈值,则认为图像匹配成功;若匹配失败则将键盘图像与键盘模型库中其他图像再次进行匹配度计算;
(203)若匹配成功,基于现场键盘图像与模型键盘图像对应的特征点信息,推算键盘按键在现场图像与模型图像中像素空间坐标之间的转换关系,该转换关系用如下的公式表示:
其中[x y 1]表示按键在模型图像中像素空间坐标的齐次坐标形式,[x′ y′ 1]表示经过转换得到的按键在键盘现场图像中像素空间坐标的齐次坐标形式;将键盘现场图像与模型图像对应的特征点坐标分别代入上述转换关系,解方程得到转换矩阵H;
(204)循环遍历键盘模型中每个键块下的每个按键,将按键在模型中键盘图像上的像素空间坐标表达为齐次坐标形式,并与转换矩阵H相乘,得到该按键在键盘现场图像上的像素空间坐标。
7.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤(3)包括:
(301)在标定板中标注九个坐标点,控制机械臂使其点击标定板中给定点,记录被点击点在机械臂坐标系中的物理世界坐标和在键盘现场图像坐标系中的像素空间坐标;
(302)将获取的机械臂坐标与对应的像素坐标带入以下键盘现场图像坐标系到机械臂坐标系的坐标转换函数中:
其中[x y 1]表示按键在像素空间中的齐次坐标,[x″ y″ 1]表示该按键对应的机械臂坐标系齐次坐标;A表示两个坐标之间的转换矩阵,形式如下:
其中α表示机械臂坐标系与图像坐标系之间的旋转因子,k表示缩放因子,u0和v0表示平移向量;通过解方程得到坐标转换矩阵A;
(303)将键盘按键在键盘现场图像中的像素空间坐标[xy1]乘以坐标转换矩阵A,得到按键在机械臂坐标系中的物理世界坐标。
8.根据权利要求1所述的基于机器人的键盘输入设备自动化测试方法,其特征在于,所述步骤(3)中通过机器人触发按键动作时对机器人点击深度进行控制,适应键盘按键平面倾斜的场景,所述点击深度的计算公式如下:
i表示当前需要点击的按键所在的行,depthi表示第i行的点击深度,top_depth表示按键所在键块最上排深度,bottom_depth表示按键所在键块最下排深度,Lines表示从按键所在键块最上排到键块最下排的总行数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110239442.1A CN112991282B (zh) | 2021-03-04 | 2021-03-04 | 一种基于机器人的键盘输入设备自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110239442.1A CN112991282B (zh) | 2021-03-04 | 2021-03-04 | 一种基于机器人的键盘输入设备自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112991282A CN112991282A (zh) | 2021-06-18 |
CN112991282B true CN112991282B (zh) | 2024-04-02 |
Family
ID=76352678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110239442.1A Active CN112991282B (zh) | 2021-03-04 | 2021-03-04 | 一种基于机器人的键盘输入设备自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112991282B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114536404A (zh) * | 2022-03-01 | 2022-05-27 | 乐聚(深圳)机器人技术有限公司 | 基于机器人的测试方法、设备及存储介质 |
CN114972825B (zh) * | 2022-07-19 | 2022-12-13 | 天津七一二移动通信有限公司 | 一种mmi按键图标矩阵自动检测的实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657642A (zh) * | 2017-08-28 | 2018-02-02 | 哈尔滨拓博科技有限公司 | 一种利用外部摄像头进行投影键盘的自动化标定方法 |
CN107766182A (zh) * | 2016-08-18 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 输入法键盘的按键定位、操控、测试方法及装置 |
-
2021
- 2021-03-04 CN CN202110239442.1A patent/CN112991282B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766182A (zh) * | 2016-08-18 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 输入法键盘的按键定位、操控、测试方法及装置 |
CN107657642A (zh) * | 2017-08-28 | 2018-02-02 | 哈尔滨拓博科技有限公司 | 一种利用外部摄像头进行投影键盘的自动化标定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112991282A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112991282B (zh) | 一种基于机器人的键盘输入设备自动化测试方法 | |
CN111797753A (zh) | 图像驱动模型的训练、图像生成方法、装置、设备及介质 | |
CN110246127A (zh) | 基于深度相机的工件识别与定位方法和系统、分拣系统 | |
CN1664755A (zh) | 一种视频识别输入系统 | |
CN110490153B (zh) | 一种基于三维动态特征的离线笔迹个体识别系统及方法 | |
Morris et al. | Facial feature tracking for cursor control | |
CN113220114A (zh) | 一种融合人脸识别的可嵌入非接触式电梯按键交互方法 | |
CN113160392A (zh) | 基于深度神经网络的光学建筑目标三维重建方法 | |
CN110619630B (zh) | 一种基于机器人的移动设备可视化测试系统及测试方法 | |
CN110990238A (zh) | 基于视频拍摄的非侵入式可视化测试脚本自动录制方法 | |
CN108255298B (zh) | 一种投影交互系统中的红外手势识别方法及设备 | |
JP6694638B2 (ja) | プログラム、情報記憶媒体及び認識装置 | |
CN104732570B (zh) | 一种图像生成方法及装置 | |
CN112199015A (zh) | 智能交互一体机及其书写方法、装置 | |
CN110414393A (zh) | 一种基于深度学习的自然交互方法及终端 | |
CN110766001A (zh) | 基于cnn和rnn的银行卡卡号定位与端到端识别方法 | |
CN107497117B (zh) | 翻转棋棋盘图像处理方法、系统及人机对弈系统 | |
CN113807191A (zh) | 一种非侵入式可视化测试脚本自动录制方法 | |
CN113470073A (zh) | 一种基于深度学习的动物中心追踪方法 | |
CN110737364A (zh) | 一种安卓系统下触摸书写加速的控制方法 | |
CN112102502A (zh) | 用于飞机驾驶舱功能试验的增强现实辅助方法 | |
CN111476090A (zh) | 水印识别方法和装置 | |
US11869145B2 (en) | Input device model projecting method, apparatus and system | |
Ullmann | Video-rate digital image analysis equipment | |
Wang et al. | Virtual piano system based on monocular camera |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |