Airtest图像识别新算法mstpl深度解析与使用攻略

作者:狼烟四起2024.08.29 16:06浏览量:2

简介:本文介绍了Airtest 1.2.0版本中新增的图像识别算法mstpl,详细解析其特有参数scale_step和scale_max,并通过实例展示如何调整这些参数以提高图像识别准确率,为自动化测试提供实用指南。

Airtest图像识别新算法mstpl深度解析与使用攻略

引言

在自动化测试领域,图像识别是一项关键功能,它使得测试脚本能够识别屏幕上的图像元素,进而执行相应的操作。Airtest作为一款强大的自动化测试工具,其图像识别能力尤为重要。在Airtest 1.2.0版本中,新增了mstpl图像识别算法,该算法在一定程度上提高了图像识别的正确率和效率。本文将详细介绍mstpl算法及其特有的参数调整方法,帮助用户更好地利用这一功能。

mstpl算法简介

mstpl是Airtest 1.2.0版本中新增的图像识别算法,它基于模板匹配技术,通过比较待识别图像与模板图像之间的相似度来实现图像识别。mstpl算法在匹配过程中采用了更加精细的搜索策略和动态调整机制,从而提高了图像识别的准确性和效率。

特有参数解析

mstpl算法包含两个特有的参数:scale_stepscale_max,这两个参数对于调节图像识别的精细度和范围具有重要作用。

scale_step

  • 作用:控制搜索比例步长,代表匹配时搜索的精细程度。
  • 默认值:0.01
  • 取值范围:[0.001, 0.1]
  • 推荐值:0.02, 0.005, 0.001
  • 调整建议:通常不需要调整,但在跨分辨率匹配或匹配较小截图时,可以尝试减小scale_step以提高识别率。但请注意,减小scale_step会大幅增加匹配时间。

scale_max

  • 作用:调节匹配的最大范围,即图像在匹配前被缩放到的最大尺寸。
  • 默认值:800
  • 取值范围:[700, 2000]
  • 推荐值:740, 800, 1000
  • 调整建议:理论上scale_max越小,匹配速度越快,但可能无法匹配到较小的UI元素。在遇到截图非常小匹配不到的情况时,可以尝试调大scale_max

参数调整实例

假设我们在进行图像识别时,遇到了识别率不高的问题,可以通过调整scale_stepscale_max参数来尝试解决。

示例1:调整scale_step

  • 原始设置scale_step=0.01
  • 问题:无法识别到目标图像
  • 调整:将scale_step调整为0.005
  • 结果:成功识别到目标图像

示例2:调整scale_max

  • 原始设置scale_max=1000
  • 问题:截图非常小,无法匹配到目标图像
  • 调整:将scale_max调整为1100
  • 结果:成功识别到目标图像

参数修改方法

1. 通过图像编辑器修改

在AirtestIDE中,双击图片打开图像编辑器,在右侧的参数表格中修改scale_stepscale_max的值,然后点击OK按钮保存。

2. 直接在脚本里修改

在Airtest的脚本编辑窗中,切换到代码模式,直接在图像脚本里添加或修改scale_stepscale_max的值。例如:

  1. from airtest.core.api import *
  2. touch(Template("search.png", scale_max=1100, scale_step=0.005))

实际应用建议

  • 根据实际需求调整参数:不要盲目调整scale_stepscale_max的值,应根据实际的测试场景和目标图像的特点进行调整。
  • 结合其他算法使用:Airtest支持多种图像识别算法,如tpl、sift等。可以根据需要调整算法的使用顺序或指定仅使用某一算法。
  • 定期更新Airtest版本:Airtest团队不断优化和更新算法,建议定期更新到最新版本