• Airtest的图像识别新算法“mstpl”的使用攻略


    前言

    在Airtest1.2.0版本,我们新增了1个图像识别的算法:mstpl。该算法在一定程度上可以提高我们图像识别的正确率。

    另外,mstpl算法还有俩个特有的参数,分别是 scale_stepscale_max 。那么今天我们就来聊一聊这俩个参数是如何调节的。

    1. 如何调节 scale_step

    scale_step 用于控制搜索比例步长,它代表匹配时搜索的精细程度。进行图像匹配时,会在原始截图的一定缩放范围内以截图最长边 * scale_step 的步长进行搜索。默认值0.01,取值范围 [0.001, 0.1],推荐值 0.02, 0.005, 0.001。

    通常该值不需要调整,当出现跨分辨率匹配(特别是匹配较小截图)无法匹配到时可以尝试减小它。不过减小它会大幅增加匹配时间。

    举个例子,我们在进行如下所示的图像识别时:

    会发现当 scale_step=0.01 时是识别不到的:

    而当 scale_step=0.005 的时候,又可以识别成功:

    2. 如何调节 scale_max

    scale_max 用于调节匹配的最大范围,默认值800, 取值范围 [700 , 2000],推荐值 740, 800, 1000。

    考虑到匹配性能mstpl在开始匹配之前会将截屏大小限制一个最大值,比如,截屏为(699, 1964) ,scale_max=1000 ,那么在匹配前截屏会被 resize 为(356,1000)。

    理论上 scale_max 越小速度越快,但也会有匹配不到较小的UI风险。不过由于提前退出机制,scale_max 较大时匹配较小的UI也可能出现更快的情况。

    使用中,如果遇到截图非常小匹配不到,可以尝试调大 scale_max

    举个例子,我们在进行如下所示的图像识别时:

    会发现当 scale_max=1000 时是识别不到的:

    而当 scale_max=1100 的时候,又可以识别成功:

    3. 在哪里修改这俩个参数的值

    1)通过图像编辑器修改

    我们可以在IDE中双击该图片打开图像编辑器,在右侧的参数表格中,修改 scale_stepscale_max 的值,修改完毕之后别忘记点击右下角的OK按钮来保存修改:

    2)直接在脚本里修改

    我们也可以在IDE的脚本编辑窗里,右键单击空白处,选择 图片/代码模式切换 ,切换到代码模式后,在图像脚本里面添加/修改 scale_stepscale_max 的值:

    touch(Template(r"tpl1631007320263.png", scale_max=1100, scale_step=0.005))
    
    3)修改Airtest使用的图像识别算法

    有时候,我们想根据自己项目的需求来修改Airtest使用的图像识别算法,比如调整Airtest图像识别算法的使用顺序,或者指定仅使用其中某一个算法:

    from airtest.core.settings import Settings as ST
    
    # 调整Airtest图像识别算法的使用顺序
    ST.CVSTRATEGY = ["mstpl","tpl", "sift","brisk"]
    
    # 指定仅使用mstpl算法
    ST.CVSTRATEGY = ["mstpl"]
    

    小结

    那么今天关于新算法 “mstpl” 的介绍就到这里啦,如果同学们对新算法还有其他疑问,或者对Airtest的图像识别算法有什么意见,欢迎反馈到我们的 issue-helper 网址上。


    Airtest官网https://airtest.netease.com/
    Airtest教程官网https://airtest.doc.io.netease.com/
    搭建企业私有云服务https://airlab.163.com/b2b

    官方答疑 Q 群:654700783

    呀,这么认真都看到这里啦,帮忙点个推荐支持一下呗,灰常感谢~

  • 相关阅读:
    Google Protocol Buffer 的使用和原理(转)
    在python开发工具PyCharm中搭建QtPy环境(详细)
    Docker容器的操作
    Docker镜像操作
    最新版本Docker的安装和使用
    linux CentOS如何安装KVM
    在Linux CentOS下如何安装tar.gz和RPM软件包
    Linux忘记root密码后如何在grub界面中以单用户模式进入系统并重置密码的方法
    Django中的Project和App的区别
    Python处理PDF和Word文档常用的方法(二)
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/15242620.html
Copyright © 2020-2023  润新知