网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
下图是Airtest图像识别生成的日志信息,通过日志信息可以看到在图片识别过程中,会用到下面三种匹配算法。
从上图可以看出,Airtest尝试使用了TemplateMatching、SIFTMatching、BRISKMatching这几个算法去匹配,还能查看到匹配的结果。
介绍
在Airtest框架中有多种不同的图像识别算法,包括模板匹配和特征点匹配,示例中的TemplateMatching 属于模板匹配算法,SIFTMatching、BRISKMatching属于特征点匹配方法。模板匹配算法依赖于特征向量来进行图像匹配,而特征点匹配算法则是依赖于图像的特征点。
模板匹配
不能跨不同的分辨率识别,就是说换一台不同的分辨率设备就可能会导致识别失败
特征点匹配
支持跨分辨率识别
阈值和可信度
当我们编写好截图脚本,并且程序在运行的时候,是如何利用这些图像识别算法来判断是否有执行结果的?
就不得不提阈值和可信度了,当程序在执行图像识别过程中,会返回一个匹配结果,也就是可信度,顾名思义就是图像的相似度大小,这个取值范围是[0,1]。而阈值是每个图像脚本中都会有的属性,用于判定图像是否识别成功的依据,在不手动更改的前提下,默认值为0.7,取值范围也是[0,1]。
当图像识别算法执行完后,就会计算出来一个可信度。当可信度 > 阈值的时候,程序判定是找到了最好的匹配结果。就会停止继续匹配。而当可信度 < 阈值,就会认为还没找到最好的匹配结果,会继续其他算法进行匹配,当不同识别算法都不符合要求,则程序返回TargetNotFoundError识别失败的错误信息。
1.可信度 > 阈值,识别成功
2.可信度 < 阈值,识别失败,没有找到图像
总结
当我们了解Airtest识别图像的原理之后,会更加有助于我们在实际场景中使用图像识别算法,以及当图像识别成功率不高的情况,如何通过比较适合的方式来优化我们的脚本,确保图像识别脚本的稳定性和健壮性,是值得我们去思考的。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**