sem
sem 用于分析 Android 截图并提取界面上的语义元素(按钮、文本、列表等),常用于 UI 自动化测试或可视化验证。
https://github.com/CNSeniorious000/sem
流程是通过 ADB 获取截图,交给多模态解析器(例如 OmniParser)和 LLM 做初步标注,然后对若干来源的标注做 IoU 融合,输出统一的结构化结果。
工程亮点
融合逻辑会优先保留高置信度的标注并合并重叠框,同时把重复的 LLM 调用做缓存,既能节约成本也能提高稳定性。
相关:
- OmniParser:多模态解析工具,专注文档/图片结构化。
- ml-ferret:用于 UI grounding 的模型思路参考。
把视觉解析和 LLM 结合起来,是提升 UI 测试效率的一条可行路径。
深入洞见¶
这个项目融合 ADB UI 层次、OmniParser 边界框和 LLM 标注,通过 IoU 阈值合并,提高 UI 元素召回率。缓存 LLM 提示以节约成本,评估多个模型的性能。
参考源码:fusion.py(IoU 合并逻辑) · eval/annotate.py(LLM 评估)