CN113807191B - 一种非侵入式可视化测试脚本自动录制方法 - Google Patents
一种非侵入式可视化测试脚本自动录制方法 Download PDFInfo
- Publication number
- CN113807191B CN113807191B CN202110966825.9A CN202110966825A CN113807191B CN 113807191 B CN113807191 B CN 113807191B CN 202110966825 A CN202110966825 A CN 202110966825A CN 113807191 B CN113807191 B CN 113807191B
- Authority
- CN
- China
- Prior art keywords
- screen
- finger
- image
- area
- frame
- 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 50
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013515 script Methods 0.000 title claims abstract description 47
- 230000000007 visual effect Effects 0.000 title claims abstract description 23
- 230000009471 action Effects 0.000 claims abstract description 7
- 238000001514 detection method Methods 0.000 claims description 34
- 230000009466 transformation Effects 0.000 claims description 27
- 241000350481 Pterogyne nitens Species 0.000 claims description 18
- 210000001145 finger joint Anatomy 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000001914 filtration Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 101100388201 Pseudomonas fluorescens biotype C dsbE gene Proteins 0.000 claims description 8
- 238000013519 translation Methods 0.000 claims description 6
- 238000003708 edge detection Methods 0.000 claims description 5
- 101100317108 Dictyostelium discoideum tipC gene Proteins 0.000 claims description 3
- 210000001015 abdomen Anatomy 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 230000037311 normal skin Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000005057 finger movement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- 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
- 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/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- 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/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- 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/30196—Human being; Person
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Evolutionary Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种非侵入式可视化测试脚本自动录制方法。首先,按规定操作方式执行并使用深度相机拍摄一次测试流程;其次,从视频中提取每一帧中指尖坐标,判断手指是否接触待测设备屏幕并推测触控点;然后,从视频帧中提取每次操作前的屏幕区域并矫正为矩形,从矫正后的屏幕区域按触控点获取被操作目标控件的图像;最后,基于控件图像和识别出的动作类型生成可视化测试脚本。本发明无需连接目标设备并在其上安装软件,能够实现非侵入式的测试脚本生成,可适用于复杂环境下封闭、非标准和高安全性要求的系统。
Description
技术领域
本发明属于计算机软件开发领域,特别涉及了一种非侵入式可视化测试脚本自动录制方法。
背景技术
在互联网迅速发展的今天,各式各样的触屏设备越来越广泛地走进人们的生活中,随之而来的是大量触屏设备上的应用程序。为了保证软件的质量和可靠性,软件测试是软件工程中至关重要的一环。而对于应用软件的测试,测试人员可以通过编写测试脚本对应用程序进行测试。以往的测试脚本往往是纯文本脚本,包含被测应用的各种信息如应用名称、在设备中的位置等,而为了提高测试脚本的可读性,让测试人员对测试内容一目了然,可视化测试脚本应运而生。可视化脚本即使用可以一目了然的图像代替传统脚本中使用文字、数字、代码等形式标识的坐标位置、文本信息等来确定被测试的目标控件,生成测试脚本时只需获取被操作的控件图像和操作的动作类型即可,无需知晓纯文本测试脚本中一些复杂的信息。
目前已有一些可以构造可视化测试脚本的方法,如Sikuli、AirTest等。以Sikuli为例,用户将操作的目标控件截图,并结合简洁的脚本语言手工编写测试脚本。AirTest对Sikuli进行了改进,通过连接目标设备,获取操作系统提供的屏幕截图和用户操作信息,自动得到目标控件的图标。Sikuli和AirTest均为侵入式方法。RoScript采用非侵入式技术录制测试脚本,它针对屏幕能够水平放置在桌面上的设备,通过普通二维视觉分析的方式获取动作类型、触控点坐标等信息以构造可视化测试脚本。
上述现有可视化测试脚本构造方法存在的主要问题有两点:一是使用了侵入式的录制方法,即设备必须与PC相连并进行数据交换;二是现有的非侵入式的可视化测试方法只适用于屏幕能平放在桌面上的设备。以上两点大大限制了录制工具可以适用的设备类型的范围和录制环境。尽管目前人们已经在Andriod、iOS等平台开发了许多侵入式脚本录制工具,但能够适用于三维空间下其他类型移动设备、以非侵入方式实现的脚本录制工具,目前却几乎不存在。因此提出一种针对于三维空间下通用终端,如笔记本电脑、ATM机、工业显控仪表等都适用的非侵入式测试脚本自动录制方法显得十分必要。
发明内容
为了解决上述背景技术提到的技术问题,本发明提出了一种非侵入式可视化测试脚本自动录制方法。
为了实现上述技术目的,本发明的技术方案为:
一种非侵入式可视化测试脚本自动录制方法,包括以下步骤:
(1)按照规定的操作要求执行并使用深度相机拍摄一次测试过程;
(2)对步骤(1)中深度相机拍摄的视频文件的每一帧RGB图像进行分析,通过基于深度神经网络的手部关键点检测,获取手部关键点,并根据检测结果中对手部各关键点的标注获取食指指尖在RGB图像中的二维坐标,对检测后的帧进行过滤,去除手部关键点检测有误的帧;
(3)对于保留的帧图像的每一帧中的食指尖的二维坐标,使用深度相机计算其对应的深度信息,获取指尖点在深度相机坐标系中的三维空间坐标,对指尖到屏幕法向量方向的距离、屏幕的响应情况以及手指尖在屏幕法向量方向移动的速度进行综合评估以判断手指是否接触屏幕;
(4)判断手指接触屏幕后,根据食指指尖的三维空间坐标、食指在三维空间中的方向以及指尖与指腹、指尖相邻指关节的相对位置关系推测出实际触控点;
(5)对每一次测试操作前的RGB帧图像,根据步骤(4)推测出的实际触控点,在屏幕区域中使用目标检测方法获取被触控的控件图像并将其提取出来;
(6)基于识别出的动作类型和控件图标,根据预定语法生成可视化测试脚本。
进一步地,在步骤(1)中,拍摄时将待测触屏设备平稳放置在桌面,使设备屏幕与桌面夹角在90°到135°之间;将深度相机面向待测触屏设备屏幕摆放,深度相机镜头拍摄方向与桌面平行,确保拍摄范围覆盖待测触屏设备屏幕区域;操作时手指从视频画面底部移入,以伸出的与屏幕平面大致平行的食指点击屏幕完成触屏操作,其它手指保持蜷曲;每次操作结束后将手部按移入时的反方向全部移出视频画面。
进一步地,在步骤(2)中,对于深度相机拍摄的每一RGB帧frame,根据手部关键点检测获得的食指指尖FtipA在以图像左上角为原点的RGB图像坐标系中的二维坐标(xa,ya)、与指尖FtipA相邻的指关节FtipB的二维坐标(xb,yb)以及任一其它手指指关节FtipC的坐标(xc,yc),对该帧进行过滤:
(a)使用基于颜色空间的方法判断frame中手指所在位置的颜色值是否在正常皮肤颜色范围内,若不在,则说明手指没有出现在图像中,手部关键点检测将图像中其他物体识别为手指,检测有误,过滤掉frame;
(b)如果ya>yb或ya>yc,说明在此帧图像中,食指的指尖在其他手部关键点下方,由于测试操作时食指从视频画面下方移入并且其他手指蜷曲,这种情况违反手指形态自然规律,因此过滤掉frame;
(c)计算在RGB图像中(xa,ya)与(xc,yc)的二维距离l1,和(xa,ya)与(xb,yb)的二维距离l2,若l1<l2,说明检测到的食指指尖点与其他手指关节距离过近,不符合步骤(1)中规定的食指伸出、其他手指蜷曲的操作方式,因此过滤掉frame。
进一步地,在步骤(3)中,判断手指是否接触屏幕的方法如下:
(301)取步骤(1)中所拍摄视频的第一帧RGB图像并进行预处理,对预处理后的图像使用Canny边缘检测算法检测出图片中的轮廓;对轮廓进行闭运算使其连通,再对每一个轮廓区域,通过其包含的像素点数量计算其面积;对所有轮廓按面积大小进行排序,取面积最大的轮廓为屏幕区域轮廓contour;对屏幕区域轮廓contour,使用多边形逼近算法,每次选取轮廓中某两点连接一条直线,将这两点之间的点中偏离直线距离超过阈值的点舍弃,最终连接未被舍弃的点将轮廓中对应屏幕平面四条边的轮廓拟合为直线,将拟合的直线组成四边形作为RGB图像中的屏幕区域;取拟合的四条直线的四个交点为屏幕区域的顶点,获取其在RGB图像坐标系中的二维坐标p1、p2、p3、p4,使用深度相机获取四个顶点在深度相机坐标系中的三维空间坐标p1′、p2′、p3′、p4′,取其中三个顶点的三维坐标计算出屏幕平面的三维空间方程Escreen;
(302)对于经步骤(2)过滤后的每一帧RGB图像中的指尖坐标,使用深度相机获取其在深度相机坐标系中对应的三维空间中的坐标为P;结合步骤(301)中的方程Escreen,计算指尖到屏幕平面法向量方向的距离α;若α小于对应的设定值,则表明手指有较大可能接触屏幕,将此特征的特征值记为k0=α;
(303)对RGB图像中操作前以及操作后的屏幕区域,使用基于颜色空间的皮肤检测方法识别手部区域;使用图像的减运算去掉屏幕区域中的手部区域;对操作前、后去掉手部区域的重叠部分计算相似度τ,若τ小于对应的设定值,则说明操作前后屏幕区域对应的像素点颜色特征发生明显变化,屏幕发生了响应,手指有较大可能接触屏幕,将此特征的特征值记为k1=τ;
(304)设所拍摄视频的帧率为fps,相邻两帧中指尖的深度分别为d1和d2,则相邻两帧之间的时间间隔为计算出每两帧之间手指在屏幕法向量方向移动的速度为根据v辅助判断手指是否接触屏幕,若v小于对应的设定值,则说明手指在三维空间中处于触控到屏幕后的阻止状态,有较大可能与屏幕接触,将此特征的特征值记为k2=v;
(305)结合特征值k0、k1、k2,使用机器学习方法对手指是否接触屏幕进行分类判别。
进一步地,在步骤(4)中,推测实际触控点的方法如下:
(401)在深度相机坐标系中,使用深度相机获取食指指尖点、与指尖相邻的指关节点的三维空间坐标FtipA(x1,y1,z1)、FtipB(x2,y2,z2),并据此计算出手指的方向向量以及手指方向与屏幕平面的夹角θ,根据屏幕平面方程和FtipA(x1,y1,z1)计算出食指指尖点在屏幕平面上的投影点C(x3,y3,z3);
(402)令食指指尖点到实际触控点之间在手指方向上的距离为给定常量d,根据手指方向/>和常量d求得触控中心点D(x4,y4,z4),计算食指指尖点到投影点C的平移矩阵TT,根据T1计算出食指指尖点、与指尖相邻的指关节点平移后的坐标FtipA′和FtipB′,再结合屏幕平面方程和夹角θ计算出触控中心点旋转到屏幕平面的旋转矩阵T2,使用三维空间中齐次坐标变换表示实际触控点Ptouch(x5,y5,z5),则有[x5,y5,z5,1]=[x4,y4,z4,1]·T1·T2。
进一步地,在步骤(5)中,获取被触控的控件图像的方法如下:
(501)选取步骤(2)中首次检测到手指的帧的前一帧RGB图像frame0,获取屏幕区域的四个顶点在深度相机RGB图像坐标系中的二维像素坐标p1、p2、p3、p4,令屏幕区域正视图为矩形,其四个顶点在屏幕区域正视图图像坐标系中的二维像素坐标分别为(0,0)、(W,0)、(W,H)、(0,H),W、H为帧图像的宽度和高度,使用这8个点解出从屏幕区域在深度相机RGB图像坐标系到屏幕区域正视图坐标系的透视变换矩阵M,再通过M将屏幕区域在深度相机中的RGB图像变换为屏幕区域正视图图像Image;
(502)使用步骤(4)推测出实际的触控点Ptouch(x5,y5,z5),使用深度相机内置变换获取其在RGB图像坐标系中的二维坐标(x6,y6),并基于透视变换矩阵M解出它在透视变换后的屏幕区域正视图图像坐标系中的二维像素坐标(xres,yres);
(503)使用屏幕区域顶点在深度相机坐标系中的三维空间坐标计算待测触屏设备在物理世界中的长度,结合屏幕区域正视图图像Image的长度计算Image中一个像素对应于物理世界中的距离,对坐标(xres,yres)使用目标检测算法,对透视变换后屏幕区域正视图图像进行目标检测,对检测到的目标进行分析,若坐标(xres,yres)处于某检测到的目标区域中,则依据像素距离与物理世界距离的关系,计算目标区域的像素长度对应物理世界的长度h,若h处于待测触屏设备上常见控件图标在物理世界中的长度范围r,则判断检测到的目标有较大可能是控件图标,截取此目标区域对应的图像作为控件图像。
若对透视变换后屏幕区域正视图图像的目标检测失败,则使用轮廓检测方法继续对屏幕区域正视图图像中(xres,yres)周围一定范围内的像素区域的图像进行边缘检测,对每一个检测出的轮廓计算其面积,选择面积最大的轮廓,判断(xres,yres)是否处于当前轮廓区域内,若处于则根据此轮廓的顶点坐标和面积构成其在正视图图像中的矩形,截取该矩形对应的图像作为控件图像。
采用上述技术方案带来的有益效果:
1、本发明面向三维空间,相对于二维平面下的脚本录制方法,克服了立体环境下设备屏幕不能平放时脚本录制受限的局限,适用于范围更广的被测设备如飞机仪表盘、可触控的笔记本电脑、ATM机等,为不能移动和屏幕不能平放的立体环境设备上脚本录制提供了有效解决方案,能够提高此类设备上的测试自动化程度,提升测试效率;
2、本发明属于非侵入式,相对于侵入式的脚本生产工具,无需安装任何软件、进行有线、无线连接,只需要使用深度摄像头便可完成可视化脚本生成,对于复杂被测设备而言,具有简单易用的特点。
附图说明
图1是本发明的方法流程图;
图2是本发明方法的实施模型图;
图3是实施例中过滤手指关键点检测错误帧的示意图;
图4是实施例中获取屏幕区域的示意图;
图5是实施例中屏幕在空间中的位置示意图;
图6是实施例中获取判断手指是否接触屏幕的特征示意图;
图7是实施例中特征值随帧变化示意图;
图8是实施例中推测实际触控点的示意图;
图9是实施例中提取屏幕区域的示意图;
图10是实施例中获得的目标控件的过程示意图;
图11是实施例中生成的测试脚本示意图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明设计了一种三维空间下基于视频拍摄的非侵入式可视化测试脚本自动录制方法,基本思想为:通过深度摄像头拍摄手动测试的视频,再利用脚本生产程序生产测试脚本,如图1所示,具体步骤如下:
步骤1:按照规定的操作要求执行并使用深度相机拍摄一次测试流程。具体操作要求如图2所示:拍摄时将待测触屏设备平稳放置在桌面,使设备屏幕与所放置的桌面夹角在90°到135°之间;将深度相机面向待测设备屏幕摆放,使深度相机距离待测设备45cm左右,深度相机镜头拍摄方向与桌面平行,确保拍摄范围覆盖被测设备屏幕区域;操作时手指从视频画面底部移入,以伸出的与屏幕平面大致平行的食指点击屏幕完成触屏操作,其它手指保持蜷曲;每次操作结束后将手部按移入时的反方向全部移出视频画面。
步骤2:对步骤(1)中深度相机拍摄的视频文件的每一帧RGB图像进行分析,使用基于深度神经网络的手部关键点检测,获取手部关键点,并根据检测结果中对手指各关键点的标注获取食指指尖在普通RGB图像中的二维坐标(x,y):
A={(x,y)|0≤x≤W,0≤y≤H}
其中W、H为帧图像的宽度和高度。对检测后的帧进行过滤,去除手部关键点检测有误的帧,将此过程定义为无效检测过滤。
步骤3:对保留的帧图像的每一帧中的食指尖的二维坐标(x,y),使用深度相机计算其对应的深度信息,获取指尖点在深度相机坐标系中的三维空间坐标(x,y,z),对指尖到屏幕法向量方向的距离、屏幕的响应情况以及手指尖在屏幕法向量方向移动的速度进行综合评估以判断手指是否接触屏幕。
步骤4:判断接触后,根据食指指尖的三维空间坐标、食指在三维空间中的方向和指尖与指腹、指尖相邻指关节的相对位置关系推测出真实触控点。
步骤5:对每一次测试操作前的RGB帧图像,根据步骤4推测出的触控点在屏幕区域中使用目标检测算法获取被触控的控件图像并将其提取出来。
步骤6:基于识别出的动作类型和控件图标,根据预定语法生成可视化测试脚本。
手指检测过滤
在本实施例中,可以采用如下优选方案实现上述步骤2中过滤无效帧:
对步骤2中深度相机拍摄的每一普通RGB帧frame,依据其中手部关键点检测获得的食指指尖FtipA在以图像左上角为原点的RGB图像坐标系中的二维坐标(xa,ya)、与指尖FtipA相邻的指关节FtipB的二维坐标(xb,yb)以及任一其它手指指关节FtipC的坐标(xc,yc)∈{(xc1,yc1),(xc2,yc2),…,(xcn,ycn)},对该帧进行过滤:
(a)使用基于颜色空间的方法判断frame中手指所在位置的颜色值是否在常见皮肤颜色范围内,若不在,则说明手指没有出现在图像中,手指关键点检测将图像中其他物体识别为手指,检测有误,过滤掉frame,在图3的(a)中,由于手部未出现在图像画面中但检测到手部关键点6、8号点等,将此帧过滤;
(b)如果ya>yb或ya>yc,说明在此帧图像中,食指的指尖在其他手部关键点下方,由于测试操作时食指从视频画面下方移入并且其他手指蜷曲,这种情况违反手指形态自然规律,过滤frame,在图3的(b)中,由于检测出的食指指尖点8号点的纵坐标小于其他几个手指关键点如5、6、7号点的纵坐标,将此帧过滤;
(c)计算在普通RGB图像中(xa,ya)与(xc,yc)的二维距离l1,和(xa,ya)与(xb,yb)的二维距离l2,若l1<l2,说明检测到的食指指尖点与其他手指关节距离过近,不符合步骤1中规定的食指伸出,其他手指蜷曲的操作方式,过滤frame,在图3的(c)中,由于检测出的食指指尖点8号点与7号点间的距离大于8号点与3号点之间的距离,将此帧过滤;
图3的(d)中,检测出的指尖不满足上述规则,因而保留。
手指接触屏幕判定
在本实施例中,可以采用如下优选方案实现上述步骤3中判断手指是否接触到屏幕:
(301)如图4所示:取步骤1中所拍摄视频的第一帧RGB图像,其进行预处理,对预处理后的图像使用Canny边缘检测算法检测出图片中的轮廓;对轮廓进行闭运算使其连通,而后对每一个轮廓区域,通过其包含的像素点数量计算其面积;对所有轮廓按面积大小进行排序,取面积最大的轮廓为屏幕区域轮廓contour;对屏幕区域轮廓contour,使用多边形逼近算法,每次选取轮廓中某两点连接一条直线,将这两点之间的点中偏离直线较远的点舍弃,最终连接未被舍弃的点将轮廓中对应屏幕平面四条边的轮廓拟合为直线,将拟合的直线组成四边形作为RGB图像中的屏幕区域;具体效果如图4所示。取拟合的四条直线的四个交点为屏幕区域的顶点,获取其在RGB图像坐标系中的二维坐标p1、p2、p3、p4,使用深度摄像头分别获取四个顶点的深度信息得到四个顶点的三维空间坐标p1′、p2′、p3′、p4′,取三个顶点的三维坐标计算出屏幕平面的三维空间方程:
Escreen:Ax+By+Cz+D=0
屏幕平面在深度相机坐标系中位置如图5所示。
(302)所述的录制方法步骤2过滤后每一帧RGB图像中的RGB图像坐标系中的指尖坐标,使用深度相机获取其在深度相机坐标系中对应的三维空间中的坐标为P;结合步骤(301)中的屏幕平面方程Escreen,计算指尖到屏幕平面法向量方向的距离α;一般若α小于一定规模,则表明手指有较大可能接触屏幕,将此特征的特征值记为k0=α;图6中的(a)说明了在此案例中获取距离α的方式。
(303)对RGB图像中操作前以及操作后的屏幕区域,使用基于颜色空间的皮肤检测方法识别手部区域;使用图像的减运算去掉屏幕区域中的手部区域,在图6的(c)中,去掉手部的遮挡区域为深色区域,对相邻两帧RGB图像除去遮挡区域后计算相似度τ,如果τ比较小,则说明操作前后屏幕区域对应的像素点颜色等特征发生明显变化,屏幕发生了响应,手指有较大可能接触屏幕,将此特征的特征值记为k1=τ;
(304)结合步骤(301)中每一帧RGB图像中指尖处的深度值计算手指在深度方向的移动速度v:记所拍摄视频的帧率为fps,相邻两帧中指尖的深度分别为d1和d2,则相邻两帧之间的时间间隔为计算出每两帧之间手指在深度方向移动的速度为根据v辅助判断手指是否接触屏幕,若v比较小,则说明手指在三维空间中可能处于触控到屏幕后的阻止状态,有较大可能与屏幕接触,将此特征的特征值记为k2=v;图6的(b)说明了在此案例中计算速度v时手指在深度方向移动的距离。
(305)如图7所示,分别为特征值k0、k1、k2随帧数的变化情况,结合特征值k0、k1、k2,使用机器学习(如支持向量机SVM)方法对手指是否接触屏幕进行分类判别。
推测实际触控点
在本实施例中,可以采用如下优选方案实现上述步骤4中计算真实触控点的具体方法如下:
(401)如图8所示,在深度相机坐标系中,记X、Y、Z分别为水平方向、竖直方向、深度方向,使用深度相机获取在步骤2中获得的指尖点和与指尖相邻的指关节点的三维空间坐标分别为FtipA(x1,y1,z1)、FtipB(x2,y2,z2)。使用指尖点FtipA和与指尖相邻的指关节点FtipB的三维空间坐标计算出手指的方向向量 根据屏幕平面方程和指尖点的三维空间坐标计算出指尖点FtipA在屏幕平面上的投影点C(x3,y3,z3)、手指与屏幕平面的夹角θ。
(402)令手指上指尖点到实际触控点之间在手指方向上的距离为给定常量d,根据手指方向/>和常量d求得触控中心点(手指上到指尖点距离为d处的点)D(x4,y4,z4)。在说明书附图6(a)中,实际触控点Ptouch是由触控中心点D首先经过平移变换(变换矩阵为T1)平移到点D′,再经过一次旋转变换(变换矩阵为T2)将点D′旋转至屏幕平面上获得,则推测实际触控点Ptouch(x5,y5,z5)的过程可以使用三维空间中齐次坐标变换表示为:Ptouch=D·T1·T2。在上述变换过程中,使用步骤(401)获得的指尖点FtipA以及指尖在屏幕平面的投影点C可计算将D向屏幕法向量方向平移至D′的平移矩阵T1;计算指关节点FtipB在屏幕平面上的投影点FtipB′,则平移变换后与手指方向向量共线的向量/>和与投影点C到实际触控点Ptouch方向向量共线的向量/>的向量积即为将D′旋转至屏幕平面的旋转轴,再结合手指与屏幕方向的夹角(即旋转角)θ可计算获得将D′旋转至屏幕平面的旋转矩阵T2。
获取控件图标
在本实施例中,可以采用如下优选方案实现上述步骤5中获取被触控控件图标的具体方法如下:
(501)作用在图像上的透视变换的本质是将图像投影到一个新的视平面,可由齐次坐标上通用变换过程表示:
(u,v)为原始图像的像素坐标,为变换之后的图像像素坐标。
选取步骤2中首次检测到手指的帧的前一帧(手部没有遮挡屏幕)RGB图像frame0,获取步骤(301)中获得的屏幕区域的四个顶点在深度相机RGB图像坐标系中的二维像素坐标p1、p2、p3、p4,令屏幕区域正视图为矩形,其四个顶点在屏幕区域正视图图像坐标系中的二维像素坐标分别为(0,0)、(W,0)、(W,H)、(0,H),使用上述8个点,依据齐次变换的特性解出从屏幕区域在深度相机RGB图像坐标系到屏幕区域正视图坐标系(变换过程如图9所示)的透视变换矩阵为M,再通过M将屏幕区域在深度相机中的RGB图像变换为屏幕区域正视图的图像Image。
(502)使用步骤4推测出的三维空间中的触控点Ptouch(x5,y5,z5),使用深度相机获取其在RGB图像坐标系中的二维坐标(x6,y6),并基于步骤(501)获得的透视变换矩阵M解出它在透视变换后的屏幕区域正视图图像Image中的二维像素坐标(xres,yres);
(503)使用步骤(301)获得的屏幕区域顶点在深度相机坐标系中的三维空间坐标计算待测设备在物理世界中的长度W1,结合步骤(501)中获得的屏幕区域正视图图像Image的长度,计算Image中一个像素对应于物理世界中的距离x,对步骤(502)计算出的变换后的触控坐标(xies,yres),使用YOLO等目标检测算法对透视变换后屏幕区域正视图的图像进行目标检测,图10中的(a)展示了本案例中检测效果。
对检测到的目标进行分析,若触控点坐标(xres,yres)处于某检测到的目标区域中,则依据上述像素距离与物理世界距离的关系,计算目标区域的像素长度对应物理世界的长度h,若h处于被测设备上常见控件图标在物理世界中的长度范围r(如10mm-20mm),则依据触控点处于目标区域内、目标区域在物理世界中的长度h处于常见控件图标在物理世界中的长度范围r内等条件可判断检测到的目标有较大可能是控件图标,在本案例中点击的控件为“设置”,点击坐标落在控件“设置”周围的目标区域内,且目标区域尺寸也符合上述要求,则截取此目标区域对应的图像作为控件图像。
若对正视图图像的YOLO目标检测失败(即没有检测到目标),则使用步骤(301)中的方法继续对屏幕区域正视图图像中(xres,yres)周围一定范围内(如上述常见控件图标在物理世界中的长度范围r的二倍在正视图图像中对应的像素范围)的像素区域的图像进行轮廓检测,具体效果如图10的(b)所示;对每一个检测出的轮廓计算其面积,选择面积最大的轮廓,判断(xres,yres)是否处于当前轮廓区域内,在此案例中点击坐标落在图10的(b)所检测出的轮廓区域中,则根据此轮廓的顶点坐标和面积构成其在正视图图像中的矩形,截取该矩形对应的图像作为控件图像。在此案例中,获取的控件图像如图10的(c)所示。若(xres,yres)不处于面积最大的轮廓区域内,则对每一个检测到的轮廓计算(xres,yres)到此轮廓中心的像素距离l,取l最小时对应的轮廓c,此时轮廓由于最靠近触控点因此有较大可能为目标控件,获取此轮廓对应的图像为目标控件。
该实施例生成的可视化测试脚本如图11所示。
本发明中所涉及到的触屏设备可以是平板电脑、ATM机、飞机仪表盘等各种三维空间下的触屏式设备。
在使用此发明方法进行的实验中,共对3种不同设备上的18种不同应用设计了108个不同的测试脚本,如系统设置、微信、计算器等,涉及到社交、系统应用、娱乐等多个应用领域。经过实际检验,90%的测试过程都能按预设要求完成脚本录制,表明本发明所提出的方法可在非侵入方式下满足三维空间中触屏设备上的大部分动作的测试脚本录制需要,具有良好的使用效果。
实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (5)
1.一种非侵入式可视化测试脚本自动录制方法,其特征在于,包括以下步骤:
(1)按照规定的操作要求执行并使用深度相机拍摄一次测试过程;
(2)对步骤(1)中深度相机拍摄的视频文件的每一帧RGB图像进行分析,通过基于深度神经网络的手部关键点检测,获取手部关键点,并根据检测结果中对手部各关键点的标注获取食指指尖在RGB图像中的二维坐标,对检测后的帧进行过滤,去除手部关键点检测有误的帧;
(3)对于保留的帧图像的每一帧中的食指尖的二维坐标,使用深度相机计算其对应的深度信息,获取指尖点在深度相机坐标系中的三维空间坐标,对指尖到屏幕法向量方向的距离、屏幕的响应情况以及手指尖在屏幕法向量方向移动的速度进行综合评估以判断手指是否接触屏幕;
(4)判断手指接触屏幕后,根据食指指尖的三维空间坐标、食指在三维空间中的方向以及指尖与指腹、指尖相邻指关节的相对位置关系推测出实际触控点;
(5)对每一次测试操作前的RGB帧图像,根据步骤(4)推测出的实际触控点,在屏幕区域中使用目标检测方法获取被触控的控件图像并将其提取出来;
(6)基于识别出的动作类型和控件图标,根据预定语法生成可视化测试脚本;
对于深度相机拍摄的每一RGB帧frame,根据手部关键点检测获得的食指指尖FtipA在以图像左上角为原点的RGB图像坐标系中的二维坐标(xa,ya)、与指尖EtipA相邻的指关节FtipB的二维坐标(xb,yb)以及任一其它手指指关节FtipC的坐标(xc,yc),对该帧进行过滤:
(a)使用基于颜色空间的方法判断frame中手指所在位置的颜色值是否在正常皮肤颜色范围内,若不在,则说明手指没有出现在图像中,手部关键点检测将图像中其他物体识别为手指,检测有误,过滤掉frame;
(b)如果ya>yb或ya>yc,说明在此帧图像中,食指的指尖在其他手部关键点下方,由于测试操作时食指从视频画面下方移入并且其他手指蜷曲,这种情况违反手指形态自然规律,因此过滤掉frame;
(c)计算在RGB图像中(xa,ya)与(xc,yc)的二维距离l1,和(xa,ya)与(xb,yb)的二维距离l2,若l1<l2,说明检测到的食指指尖点与其他手指关节距离过近,不符合步骤(1)中规定的食指伸出、其他手指蜷曲的操作方式,因此过滤掉frame。
2.根据权利要求1所述非侵入式可视化测试脚本自动录制方法,其特征在于,在步骤(1)中,拍摄时将待测触屏设备平稳放置在桌面,使设备屏幕与桌面夹角在90°到135°之间;将深度相机面向待测触屏设备屏幕摆放,深度相机镜头拍摄方向与桌面平行,确保拍摄范围覆盖待测触屏设备屏幕区域;操作时手指从视频画面底部移入,以伸出的与屏幕平面大致平行的食指点击屏幕完成触屏操作,其它手指保持蜷曲;每次操作结束后将手部按移入时的反方向全部移出视频画面。
3.根据权利要求1所述非侵入式可视化测试脚本自动录制方法,其特征在于,在步骤(3)中,判断手指是否接触屏幕的方法如下:
(301)取步骤(1)中所拍摄视频的第一帧RGB图像并进行预处理,对预处理后的图像使用Canny边缘检测算法检测出图片中的轮廓;对轮廓进行闭运算使其连通,再对每一个轮廓区域,通过其包含的像素点数量计算其面积;对所有轮廓按面积大小进行排序,取面积最大的轮廓为屏幕区域轮廓contour;对屏幕区域轮廓contour,使用多边形逼近算法,每次选取轮廓中某两点连接一条直线,将这两点之间的点中偏离直线距离超过阈值的点舍弃,最终连接未被舍弃的点将轮廓中对应屏幕平面四条边的轮廓拟合为直线,将拟合的直线组成四边形作为RGB图像中的屏幕区域;取拟合的四条直线的四个交点为屏幕区域的顶点,获取其在RGB图像坐标系中的二维坐标p1、p2、p3、p4,使用深度相机获取四个顶点在深度相机坐标系中的三维空间坐标p1'、p2'、p3'、p4',取其中三个顶点的三维坐标计算出屏幕平面的三维空间方程Escreen;
(302)对于经步骤(2)过滤后的每一帧RGB图像中的指尖坐标,使用深度相机获取其在深度相机坐标系中对应的三维空间中的坐标为P;结合步骤(301)中的方程Escreen,计算指尖到屏幕平面法向量方向的距离α;若α小于对应的设定值,将此特征的特征值记为k0=α;
(303)对RGB图像中操作前以及操作后的屏幕区域,使用基于颜色空间的皮肤检测方法识别手部区域;使用图像的减运算去掉屏幕区域中的手部区域;对操作前、后去掉手部区域的重叠部分计算相似度τ,若τ小于对应的设定值,则说明操作前后屏幕区域对应的像素点颜色特征发生明显变化,屏幕发生了响应,将此特征的特征值记为k1=τ;
(304)设所拍摄视频的帧率为fps,相邻两帧中指尖的深度分别为d1和d2,则相邻两帧之间的时间间隔为计算出每两帧之间手指在屏幕法向量方向移动的速度为根据v辅助判断手指是否接触屏幕,若v小于对应的设定值,则说明手指在三维空间中处于触控到屏幕后的阻止状态,将此特征的特征值记为k2=v;
(305)结合特征值k0、k1、k2,使用机器学习方法对手指是否接触屏幕进行分类判别。
4.根据权利要求2所述非侵入式可视化测试脚本自动录制方法,其特征在于,在步骤(4)中,推测实际触控点的方法如下:
(401)在深度相机坐标系中,使用深度相机获取食指指尖点、与指尖相邻的指关节点的三维空间坐标FtipA(x1,y1,z1)、FtipB(x2,y2,z2),并据此计算出手指的方向向量以及手指方向与屏幕平面的夹角θ,根据屏幕平面方程和FtipA(x1,y1,z1)计算出食指指尖点在屏幕平面上的投影点C(x3,y3,z3);
(402)令食指指尖点到实际触控点之间在手指方向上的距离为给定常量d,根据手指方向/>和常量d求得触控中心点D(x4,y4,z4),计算食指指尖点到投影点C的平移矩阵T1,根据T1计算出食指指尖点、与指尖相邻的指关节点平移后的坐标FtipA'和FtipB',再结合屏幕平面方程和夹角θ计算出触控中心点旋转到屏幕平面的旋转矩阵T2,使用三维空间中齐次坐标变换表示实际触控点Ptouch(x5,y5,z5),则有[x5,y5,z5,1]=[x4,y4,z4,1]·T1·T2。
5.根据权利要求2所述非侵入式可视化测试脚本自动录制方法,其特征在于,在步骤(5)中,获取被触控的控件图像的方法如下:
(501)选取步骤(2)中首次检测到手指的帧的前一帧RGB图像frame0,获取屏幕区域的四个顶点在深度相机RGB图像坐标系中的二维像素坐标p1、p2、p3、p4,令屏幕区域正视图为矩形,其四个顶点在屏幕区域正视图图像坐标系中的二维像素坐标分别为(0,0)、(W,0)、(W,H)、(0,H),W、H为帧图像的宽度和高度,使用这8个点解出从屏幕区域在深度相机RGB图像坐标系到屏幕区域正视图坐标系的透视变换矩阵M,再通过M将屏幕区域在深度相机中的RGB图像变换为屏幕区域正视图图像Image;
(502)使用步骤(4)推测出实际的触控点Ptouch(x5,y5,z5),使用深度相机内置变换获取其在RGB图像坐标系中的二维坐标(x6,y6),并基于透视变换矩阵M解出它在透视变换后的屏幕区域正视图图像坐标系中的二维像素坐标(xres,yres);
(503)使用屏幕区域顶点在深度相机坐标系中的三维空间坐标计算待测触屏设备在物理世界中的长度,结合屏幕区域正视图图像Image的长度计算Image中一个像素对应于物理世界中的距离,对坐标(xres,yres)使用目标检测算法,对透视变换后屏幕区域正视图图像进行目标检测,对检测到的目标进行分析,若坐标(xres,yres)处于某检测到的目标区域中,则依据像素距离与物理世界距离的关系,计算目标区域的像素长度对应物理世界的长度h,若h处于待测触屏设备上常见控件图标在物理世界中的长度范围r,则判断检测到的目标有较大可能是控件图标,截取此目标区域对应的图像作为控件图像;
若对透视变换后屏幕区域正视图图像的目标检测失败,则使用轮廓检测方法继续对屏幕区域正视图图像中(xres,yres)周围一定范围内的像素区域的图像进行边缘检测,对每一个检测出的轮廓计算其面积,选择面积最大的轮廓,判断(xres,yres)是否处于当前轮廓区域内,若处于则根据此轮廓的顶点坐标和面积构成其在正视图图像中的矩形,截取该矩形对应的图像作为控件图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110966825.9A CN113807191B (zh) | 2021-08-23 | 2021-08-23 | 一种非侵入式可视化测试脚本自动录制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110966825.9A CN113807191B (zh) | 2021-08-23 | 2021-08-23 | 一种非侵入式可视化测试脚本自动录制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113807191A CN113807191A (zh) | 2021-12-17 |
CN113807191B true CN113807191B (zh) | 2024-06-14 |
Family
ID=78893851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110966825.9A Active CN113807191B (zh) | 2021-08-23 | 2021-08-23 | 一种非侵入式可视化测试脚本自动录制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113807191B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115048309B (zh) * | 2022-06-27 | 2023-03-07 | 广州掌动智能科技有限公司 | 无侵入app软件性能测试方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990238A (zh) * | 2019-11-13 | 2020-04-10 | 南京航空航天大学 | 基于视频拍摄的非侵入式可视化测试脚本自动录制方法 |
CN112363629A (zh) * | 2020-12-03 | 2021-02-12 | 深圳技术大学 | 一种新的非接触式人机交互方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465894B1 (ko) * | 2013-09-13 | 2014-11-26 | 성균관대학교산학협력단 | 손가락에 부착한 마커를 이용하여 제어 명령을 생성하는 이동 단말 및 손가락에 부착한 마커를 이용하여 단말에서 제어 명령을 생성하는 방법 |
-
2021
- 2021-08-23 CN CN202110966825.9A patent/CN113807191B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990238A (zh) * | 2019-11-13 | 2020-04-10 | 南京航空航天大学 | 基于视频拍摄的非侵入式可视化测试脚本自动录制方法 |
CN112363629A (zh) * | 2020-12-03 | 2021-02-12 | 深圳技术大学 | 一种新的非接触式人机交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113807191A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhou et al. | A novel finger and hand pose estimation technique for real-time hand gesture recognition | |
CN110032992B (zh) | 一种基于姿态的考试作弊检测方法 | |
JP6079832B2 (ja) | ヒューマンコンピュータインタラクションシステム、手と手指示点位置決め方法、及び手指のジェスチャ決定方法 | |
US10360731B2 (en) | Method and device for implementing virtual fitting | |
Nai et al. | Fast hand posture classification using depth features extracted from random line segments | |
CN102096471B (zh) | 一种基于机器视觉的人机交互方法 | |
CN105741290B (zh) | 一种基于增强现实技术的印制电路板信息指示方法及装置 | |
CN104423569A (zh) | 指向位置侦测装置、方法及计算机可读取纪录媒体 | |
JP2014143548A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
TW201322058A (zh) | 手勢辨識系統及方法 | |
CN112657176A (zh) | 一种结合人像行为信息的双目投影人机交互方法 | |
CN113807191B (zh) | 一种非侵入式可视化测试脚本自动录制方法 | |
CN113504063B (zh) | 一种基于多轴机械臂的立体空间触屏设备可视化测试方法 | |
CN114332927A (zh) | 课堂举手行为检测方法、系统、计算机设备和存储介质 | |
CN113989831A (zh) | 近视防控方法、装置、终端设备及存储介质 | |
US20160342831A1 (en) | Apparatus and method for neck and shoulder landmark detection | |
Hartanto et al. | Real time hand gesture movements tracking and recognizing system | |
CN107209862B (zh) | 识别装置和信息存储介质 | |
Roy et al. | Real time hand gesture based user friendly human computer interaction system | |
Sonoda et al. | A letter input system based on handwriting gestures | |
Ukita et al. | Wearable virtual tablet: fingertip drawing on a portable plane-object using an active-infrared camera | |
US20220050528A1 (en) | Electronic device for simulating a mouse | |
Cao et al. | Gaze tracking on any surface with your phone | |
CN115019396A (zh) | 一种学习状态监测方法、装置、设备及介质 | |
Barhate et al. | A Survey of fingertip character identification in open-air using Image Processing and HCI |
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 |