Deprecated: implode(): Passing glue string after array is deprecated. Swap the parameters in /www/zhan/2uyx.com/wp-content/themes/7151/inc/functions/seo.php on line 59
打字测试软件|搜狗高级测试经理诸葛东明谈基于AI图像识别的输入法性能测试实践_2u手游网
最新最全手机游戏下载!
首页 游戏资讯 游戏攻略 打字测试软件|搜狗高级测试经理诸葛东明谈基于AI图像识别的输入法性能测试实践

打字测试软件|搜狗高级测试经理诸葛东明谈基于AI图像识别的输入法性能测试实践

时间: 来源:网络 编辑:2u手游网小编 浏览:112

诸葛东明:

大家下午好,很荣幸在这里与大家分享。今天分享的主题主要是基于AI图像识别的输入法性能测试实践。希望分享后能给大家带来一些好处。

在分享之前,我先简单介绍一下自己。我叫诸葛东明。我是搜狗的。我主要负责搜狗输入法和搜狗浏览器。这次分享我想达到的目的,一是把这个过程中遇到的问题和解决办法分享给大家,二是吸引别人。人工智能方面的经验。

我这次分享的内容主要分为三个部分。第一部分是介绍搜狗输入法性能测试的背景,让大家了解性能测试的难点。第二部分是性能测试实践过程,分为四个阶段,从早期的人工测试阶段到后期以AI图像识别为主。重点在第四部分。最后说说我在这个实践过程中的经验和收获。

在介绍之前,先简单说一下我们性能测试的背景。事实上,一个输入法有很多内容需要测试。比如我们需要测试内存使用情况,看打字和手写的内存使用情况是否泄露,有多少内存。然后我们还将测试功耗。看看是不是很耗电;并且还要做稳定性测试,比如长时间打字看是否崩溃。在所有的性能测试中,有一个非常重要的指标叫做按键响应时间,即用户在输入法中按下键盘到右侧显示候选的时间间隔,因为这是最常见的场景。

那么,我们之前是如何测试这个测试的呢?早期我们用钩子的方法去钩子系统的底层文字绘制功能。这种方法已经测试了很长时间,没有任何问题。然而,突然有一天,我们合作的厂家给我们反馈,说你的输入法测试结果与报告不一致,而且你的输入法按键速度实际上不如竞品。暂停。我只是想知道对方的实际测试方法。原来他们用的是高速摄像头,现在每个人手机上都有。 , 手动查看按键和候选词出现之间的帧数和时间。后来,我们真的验证了它真的很慢,而且我们确实不如我们的对手。后来我们很快解决了这个问题,现在输入法也没有问题了。但是这件事促使我们思考这件事,关键响应时间,以及我们如何测试它。

之前的方法是通过Hook函数获取的,但并不代表用户的实际感受。经过大量研究,我们接受了朋友业务的测试方法,因为它代表的是用户肉眼观察到的结果,是用户直接观察到的。体验感觉。同时我们也尝试了业内的测试工具,比如腾讯的工具,不是很敏感,不能反映问题。另外,我们使用了一些业内的自动化测试工具,但结果并不能满足测试需求。为什么?因为输入过程在慢动作中还是一个很长的过程,通常在十毫秒到几十毫秒,现有的工具无法满足这样的测试要求打字测试软件,所以我们一直在思考如何解决这个问题。 ,一直没有找到好办法。但是我们仍然要测试这个项目。为了满足项目的测试需求,我们大概是这样一个流程:

在性能测试的时间过程中,我们经历了四个阶段。

刚才已经简单介绍过了。我先讲第一阶段。我不怕每个人的笑话。我们最早的测试如图所示。我们使用镜子作为辅助,然后拍摄手动测试过程的照片。记录按下屏幕的瞬间,同时在后台显示,手动查找开始和结束时间并执行几帧得到这些时间。这是一件非常麻烦的事情。无论部署环境如何,还是手动计算帧数都是耗时耗力的。同时本次测试需要横向对比,搜狗与其他输入法对比,搜狗与历史版本对比,工作量非常大。

终于有一天,同学们受不了了,于是我们想到了第二阶段。我们在这个过程中做了一些改进,首先是用工具替换镜子。按下屏幕的瞬间,手机屏幕上会显示一个色块。当手指按下时,色块变为红色,当手指抬起时,色块恢复为绿色。第二种方法是自动计算帧数。开始和结束时刻是手动标记的,程序会自动计算多少帧需要多长时间。但是这个过程还是很不方便的,因为在一个有大量图片的长视频中,寻找起点和终点仍然需要手动完成,而在数千张图片中寻找起点和终点是很多工作。

后来,我们考虑使用图像识别。为什么要在这里写初级?这是一种非常简单的像素识别方法。我们做视频,通过区域识别找到色块,也找到候选区域,看像素和颜色有没有变化。但是,这种方法仍然存在一定的缺陷。当光线或拍摄角度不同时,识别准确率不高,所以后来我们的测试方法又回到了手动测试方法。

之后,这个过程通过人工测试持续了几个月。随着后来AI逐渐兴起,我们也在思考这个过程测试是否可以通过AI来解决。我们想象这是准备一些关键图片,然后对其进行分类,通过机器学习的方法训练我们的识别模型,并将我们测试的视频交给识别模型进行识别,而不是手动做事。那么这件事情的进展还是可以的,我现在给大家展示一下我们做了什么。因为AI是后台进程,为了在演示过程中给大家一个直观的感受,我们在识别进程和前台程序之间做了一些配合。它可以记录每个关键点并在右侧键入其框架。数字。左边是我们拍的高速摄像机,右边会识别关键节点,然后在右边记录数字。这是自动的。我们也开始使用这种方法,但是中间还是遇到了很多困难。我今天主要想给大家介绍的是过程中遇到的三个印象最深刻的问题及其解决方法。

探索过程中遇到的主要问题,第一个就是训练数据的问题。第二个是模型选择的问题,我会一一介绍。

首先,我们当时做的时候,希望AI能像人一样识别测试过程中的每一个状态,所以我们是这样做的:准备一万多张图片,按输入方法 按下按钮做一些分类,然后对图片做一些预处理进行标准化等二值化处理,然后取出图片80%的数据训练神经网络,再做识别验证,即可以达到我们认可的认可。使用准确率,如果不是,找到相应的问题,然后进行数据收集或参数调整和优化。经过一定的迭代,收集到15000多张图片,准确率达到85%。然后就是图右边的部分,取要测试的视频,通过区域识别确定起始位置,然后用训练好的模型找到候选词显示时间的结束位置,然后得到间隔时间。在基本测试类型下,可以使用这种方法。

不过,我们也通过这个过程发现了一些问题。左侧的训练数据准备成本非常高。也许你可以在一个小时内手动测试它,但如果你使用几个小时的训练数据,这一次有问题吗?确实是有时间的陈本这样的问题。

后来,我们团队想了想这个问题,提出了一些解决方案,什么样的解决方案。我们对识别过程做了一个分析,发现输入法不同于传统行业识别狗和猫,因为输入法输入过程比较稳定,变化不大,一般是识别的问题光线和拍摄角度,所以我们可以自动拉伸,自动改变角度,自动添加一些噪点,然后根据提供的图片样本扩展这些数据。使用这种方法,我们仍然需要准备 2000 多张图像,但只需要提供几个样本。以前需要准备一种类型的图片1000张,现在只需要准备10张图片,可以通过自动化脚本自动扩充到1000张图片。

解决了训练数据的问题之后,还有模型识别的问题。比如我们前期按2看候选词出现了什么,到此结束,但是后期,当我们的测试需求发生变化时,测试场景需要输入我们输入的字符串“women”,并在每次按下一个键时进行测试。 ,它的候选词是按时间间隔显示的,所以原来的模型不适用,我们需要收集更多的图片重新训练,这是第一个问题。

然后是第二个问题,更致命的问题,因为随着状态数量的增加,这个模型的识别准确率下降,甚至之前识别的那些,后面也识别不出来。那时候对我们来说还是很吃力的,甚至质疑用AI的方法行不行。

其实,生活就是这样。当你遇到一些问题时,当你遇到更困难的问题时,你会质疑之前的决定或完全否定之前的决定。但是当你解决问题时,它实际上并没有什么感觉。幸运的是,我们的团队最终解决了这个问题。

我们是如何解决的?我们再分析一下,在图像识别的过程中,我们要求机器帮我们做什么?过去,希望是让机器知道它被识别了什么,但现在我们改变了思维方式,当变化发生时让机器识别,一是让机器了解它是什么,一是让机器明白什么是变化。后者实际上更笼统。例如,以下四张图片为例。这是输入过程中几个节点的截图。 1和2之间发生变化,2和3也发生变化,3和4一样。通过组员的搜索信息,终于找到了这个模型,就是判断两张图片是否属于同一类型.

选择这个型号后问题解决了吗?其实我们的问题并没有解决,因为中间又遇到了一个新问题。有什么问题?我们发现,这款机型在拍摄视频的过程中,在高速视频下,手机从上到下有一条刷新线打字测试软件,现在人眼是看不到的,但是慢动作可以看到那么刷新线对于输入法候选词的变化会比较大,会干扰我们的识别模型。

后来我们的同学想知道我们是否可以改变方法。我们采用的方法首先使用了之前的 CNN 模型。通过多层卷积识别出图的整体轮廓后,我们用模型看有没有变化。使用该方法后,最终达到目前的效果,识别准确率现在可以达到95%。同时,培训成本是可控的。我们随机收集了输入法的50个输入状态,每个状态选择了十张图片,然后用之前的自动扩展脚本将其扩展为每个状态一千张图片,一共5千张图片,然后去训练形成我们的识别模型。这个模型训练好之后,当你输入的字符串在每个版本中都不一样的时候,不需要重新训练模型,所以这个方法的效果还是很好的。

阿宽软件系列之打字测试软件_打字测试软件_网络版打字测试软件

最后,这里有一些见解和前景。通过我们这次的实践,我想有四个经验。首先,如果以后有用户直观的性能测试,可以使用这种方法。二是对于重复性高的评价工作,可以考虑这种方法。三是提前分析可以避免很多弯路,这对于AI的模型分析非常重要;四是以解决实际问题为出发点,不能为了迎合AI而做AI。

最后,它是关于人工智能的未来。事实上,今天很多老师也分享了人工智能的未来。我们的梦想是希望无论以后的应用是什么,我们只需要做一些用户操作,记录下它的动作学习,然后交给测试平台自动识别每一次状态变化,得到时间间隔的变化。二是兼容性的测试探索,希望AI可以帮助我们在兼容性识别上做更多的事情。今天就分享这么多,谢谢。

问:老师您好,是这样的。你刚才讲的测试过程是用人工识别的。你后面提到的AI模型现在离我们很远。从实际测试的角度来看,你刚才提到的视频是用颜色代表一个时间到下一个时间来显示的。是自己研发的过程,还是有开源软件?

诸葛东明:你的问题是,在测试过程中还有一种拍摄视频的方法。您想知道我们的色块压制工具是否是在此过程中自己制作的。我告诉你这是我们自己做的,用于测试。

问题:比如识别的准确率是多少?

诸葛东明:如果用AI做的话,准确率还是在95%以上,一般普通输入都能识别。

问题:如果不是人工智能,是否处于中期阶段?

诸葛东明:第三阶段,最后被我们测试的学生已经放弃了。

问题:拒绝的原因是准确率不是特别合适,还是什么?

诸葛东明:首先,它的准确性不高。下午12点拍的视频能识别,晚上6点拍的视频就认不出来了。 A同学拍摄的视频可以识别,B同学拍摄的视频不识别;不同手机拍出来的视频也不一样,所以被我们丢弃了。

问题:我想问一下,你不是只是用了神经网络模型吗?请问您如何判断模型,哪个更适合您正在测试的图像识别,您如何判断这个模型是最好的模型?太好了,从数据源到训练,能不能告诉我整个过程,如何判断是最好的?

诸葛东明:大体的流程是,我们对每个状态进行分类,然后放到训练模型中去学习,我们80%用来训练,20%用来测试训练后能不能识别,大概就是这个过程。

问题:因为你知道你说的一切,所以我想问的是,例如,如果你判断一个模型,判断准确率什么的,你的百分比是多少?

诸葛东明:下来再说吧。

问:请问,你刚才说色块的变化是开始时间和结束时间。

诸葛东明:一个是开始,一个是结束,用色块作为开始。

问题:当您点击时,您使用脚本来点击。从脚本发出指令到色块变色,需要多长时间?

诸葛东明:我们大概在16.6毫秒之内。

问题:我们从点击到更改有30秒,这会影响测试结果吗?

诸葛东明:对于不同的输入法,系统其实是一样的,有延迟,我们想看的比较是相对的。此外,我们希望将来可以使用机械臂和传感器进行此类测试。

问题:你用脚本控制机械臂点击它,发出指令后点击它,知道那个时候也有时间。

诸葛东明:需要不断优化。

问题:谢谢。

本文来自:2018中国首届云测试峰会,主办单位:云测试

云测试,让应用更有价值:

猜你喜欢