1.Airtest自动化测试——Airtest进阶和像识别算法(下)
Airtest自动化测试——Airtest进阶和像识别算法(下)
Airtest图像识别算法深入解析
2.1 Airtest图像识别算法的算法算法实现原理
以"touch"操作为例,分析其日志信息,源码Airtest尝试使用SURFMatching、算法算法TemplateMatching和BRISKMatching算法进行图像识别。源码识别结果中,算法算法'confidence':0.表示算法的源码情侣攒钱源码可信度。若该值超过预设阈值(默认0.7),算法算法则认为识别成功;反之,源码则认为失败。算法算法
默认设置的源码算法为CVSTRATEGY = ["surf", "tpl", "brisk"],Airtest按此顺序执行算法,算法算法直到找到符合阈值的源码识别结果或超时。
2.2 Airtest图像识别算法分类
Airtest支持opencv3中的算法算法8种图像识别算法。
这8种算法分为两类:
1. 模板匹配(TemplateMatching)
2. 基于特征点的源码图像识别
2.2.1 模板匹配(TemplateMatching)
模板匹配是一种基本的模式识别方法,通过查找与给定子图像匹配的算法算法小块区域来识别对象。其局限性在于仅支持平行移动,对旋转、大小变化不敏感。
2.2.2 基于特征点的惊喜盒子源码下载图像识别
SIFT、SURF、BRISK、ORB、AKAZE和BRIEF等算法属于此类。以下以SIFT为例,具体说明如下:
2.2.2.1 SIFT
SIFT算法具有尺度不变性,能够有效表达目标特征信息。其优点包括:
1) 具有旋转、尺度、王者之光源码平移、视角及亮度不变性,有利于特征信息的有效表达。
2) 参数调整鲁棒性好,可根据场景需求调整特征点数量,便于特征分析。
测试代码以lena.png为示例。
2.2.2.2 SURF
SURF算法简化了SIFT中的高斯二阶微分模板,使得卷积平滑操作转换为加减运算,东郊到家前端源码提高了鲁棒性和降低时间复杂度。最终生成的特征向量维度为维。
测试代码以lena.png为示例。
2.2.2.3 BRISK
BRISK算法基于二进制、鲁棒、不变、可缩放和关键点(Binary Robust Invariant Scalable Keypoints),提供高效的特征检测和描述。
测试代码以lena.png为示例。火箭指标源码公式
2.2.2.4 KAZE
KAZE算法基于非线性插值,适用于图像处理,因为图像通常非连续。与SIFT/SURF相比,KAZE更稳定,采用非线性尺度空间构造关键点。
测试代码以lena.png为示例。
2.2.2.5 AKAZE
AKAZE算法提供更快的速度,是较新的算法,仅在较新版本的opencv中可用。
测试代码以lena.png为示例。
2.2.2.6 ORB
ORB算法结合了FAST角点检测与描述技术,提供尺度和旋转不变性,且对噪声和透视仿射具有不变性。适用于实时应用。
测试代码以lena.png为示例。
2.2.2.7 BRIEF
BRIEF算法提供高效的特征描述,对大范围平面旋转具有较好的识别率。
测试代码以lena.png为示例。
2.3 自定义默认识别算法
通过修改ST.CVSTRATEGY = ["tpl", "sift","brisk"],可以调整默认的图像识别算法。
2.4 图像识别算法总结
性能解析包括单张、多张和内存、CPU使用情况,内存最大:kaze > sift > akaze > surf > brief > brisk > orb;CPU最大:kaze > surf > akaze > brisk > sift > brief > orb;识别效果:sift > surf > kaze > akaze > brisk > brief > orb。
总结:
1. 当分辨率不变时,模板匹配算法速度更快,优先考虑。
2. 分辨率变化时,推荐使用特征点匹配,提高跨平台适应性。
3. SIFT和SURF提供较高的准确率,结果稳定;SIFT稍优于SURF。
4. ORB速度快,但稳定性较差;AKAZE也容易出现问题。
5. 其他算法速度差异不大。
汇智妹,软件工程师,关注公众号汇智动力学院获取IT技术干货和行业动态,欢迎有意转行IT的小伙伴关注,了解就业数据和成功案例。