Page 84 - 《软件学报》2025年第12期
P. 84

虞圣呈 等: 基于大模型语义匹配的跨平台移动应用测试脚本录制回放                                                5465


                 用. 在回放阶段, 系统读取录制的脚本, 逐步在回放设备上重现操作. 若图像匹配和文本匹配均成功, 则执行对应操
                 作; 否则, 系统调用大语言模型语义匹配模块, 通过解析当前页面和录制信息, 生成操作建议并处理不一致的问题.
                  4.2   图像匹配
                    在回放阶段, 首先进行图像匹配. 本方法所使用的图像匹配算法主要由模板匹配、SIFT                          匹配和图标类型匹配
                 这  3  种算法组成. 模板匹配算法通过直接对比录制和回放页面的模板图像来进行匹配, 可以快速匹配相同或相似
                 的图像区域; 随后, 使用     SIFT  算法对这些区域进行详细特征匹配, 以应对分辨率和光照变化等复杂情况; 最后, 对
                 于那些无法通过前两种算法匹配的图标, 系统使用图标类型匹配算法进行分类匹配, 以确保在                              GUI 设计不同的情
                 况下仍能正确识别相同功能的控件.
                    通过这种多层次的图像匹配策略, 系统能够在不同平台和复杂条件下实现高精度的控件匹配, 确保跨平台测
                 试脚本的准确回放.
                  4.2.1    模板匹配
                    模板匹配是一种在计算机视觉中常用的图像处理技术, 用于在大图像中找到与模板图像最相似的部分. 模板
                 匹配的基本原理是通过滑动窗口在大图像中搜索与模板图像相似的区域, 并计算相似度. 在跨平台测试脚本录制
                 回放过程中, 录制设备与回放设备常常是不同的操作系统, 这导致图像分辨率存在差异成为了一种普遍现象. 因
                 此, 本方法仅将模板匹配算法作为辅助工具.
                  4.2.2    SIFT  匹配
                    SIFT  算法是一种广泛应用于计算机视觉领域的特征检测和描述方法, 它能够在不同尺度、旋转角度、光照
                 和亮度条件下表现出较高的鲁棒性. 因此, SIFT            算法在本方法的应用场景中能够有效地完成匹配任务. SIFT 算法
                 的基本流程如下.
                    (1) 检测尺度空间极值
                    为了找到图像中的潜在特征点, 以便后续的特征点检测和描述, 该算法通过构建高斯金字塔并计算高斯差分
                 图像  (DoG) 来识别图像中可能的关键点位置.

                         L(x,y,σ) = G(x,y,σ)∗ I(x,y),D(x,y,σ) = [G( x,y,kσ)−G(x,y,σ)]∗ I(x,y) = L(x,y,kσ)− L(x,y,σ),
                 其中, (x, y) 代表图像像素的位置,     σ 是尺度参数, k 是尺度空间中相邻层的尺度比. L           是模糊图像, G    是高斯核函数,
                 I 是输入图像, D  是高斯差分图, *表示卷积操作.
                    接下来通过在      DoG  图像中寻找极值点, 确定关键点位置. 这一步确保在不同尺度上检测到稳定的特征点, 以
                 增强算法的尺度不变性. 对每一个像素, 与其相邻的               26  个像素进行比较    (当前尺度空间的上下两层的          3  × 3  邻域以
                 及当前层的    3  × 3  邻域). 找到比邻域所有像素值都大或都小的点, 这些点即为潜在的关键点.
                    (2) 关键点的精确定位
                    为了提高关键点的稳定性, 利用           DoG  函数的局部极值来粗略定位关键点后, 还需要通过拟合                 DoG  函数的局
                 部极值来精确定位关键点的位置. 具体来说, 利用              Taylor 展开式对  DoG  函数进行拟合, 求解极值点的精确位置, 最
                 后进行子像素插值以获得关键点的精确位置. DoG               函数在尺度空间的       Taylor 展开式为:

                                                              2
                                                    ∂D T  1   ∂ D
                                                                             T
                                           D(X) = D+   X + X T   X,  X = (x,y,σ) ,
                                                    ∂X    2   ∂X  2
                 其中, X  是关键点的位置偏移量.
                    (3) 关键点主方向分配
                    算法在关键点周围的局部区域内计算梯度方向直方图, 选取主方向作为关键点的主要方向, 使得关键点具有
                 旋转不变性, 增强算法的鲁棒性.

                                                √
                                                                   2
                                                                                       2
                                 梯度幅值 : m(x,y) =  (L( x+1,y)− L(x−1,y)) +(L( x,y+1)− L(x,y−1)) ,

                                                             ⌈               ⌉
                                                             L(x,y+1)− L(x,y−1)
                                          梯度方向 : θ(x,y) = tan −1              ,
                                                             L(x+1,y)− L(x−1,y)
   79   80   81   82   83   84   85   86   87   88   89