BetterGI技术架构解析:计算机视觉驱动的原神自动化测试框架设计
2026/8/3 3:55:05 网站建设 项目流程

BetterGI技术架构解析:计算机视觉驱动的原神自动化测试框架设计

【免费下载链接】better-genshin-impact📦BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - UI Automation Testing Tools For Genshin Impact项目地址: https://gitcode.com/gh_mirrors/be/better-genshin-impact

BetterGI(Better Genshin Impact)是一个基于计算机视觉和自动化测试技术的开源项目,专为《原神》游戏设计的智能自动化解决方案。该项目采用模块化架构设计,通过视觉识别、任务调度和输入模拟三大核心技术,实现了20多项游戏功能的自动化执行,为技术爱好者和中级开发者提供了深入理解游戏自动化测试框架的绝佳案例。

核心架构设计原理

视觉识别引擎的底层实现机制

BetterGI的核心技术在于其计算机视觉识别系统,该系统采用分层设计架构,通过多级识别策略确保游戏界面元素的精准定位。在Core/Recognition/RecognitionObject.cs中定义的识别对象模型支持模板匹配、颜色匹配和OCR文字识别三种主要识别方式。

模板匹配系统基于OpenCV的TemplateMatchModes算法实现,支持多种匹配模式(CCoeffNormed、CCorrNormed等),并提供了掩码匹配功能。通过UseMask属性和MaskColor配置,系统能够过滤特定颜色区域,提高识别精度。颜色匹配系统则采用HSV色彩空间转换技术,通过ColorConversionCode配置支持RGB、HSV等多种色彩模型。

// 识别对象的核心数据结构 public class RecognitionObject { public RecognitionTypes RecognitionType { get; set; } public Rect RegionOfInterest { get; set; } public Mat? TemplateImageMat { get; set; } public double Threshold { get; set; } = 0.8; public bool Use3Channels { get; set; } = false; public TemplateMatchModes TemplateMatchMode { get; set; } = TemplateMatchModes.CCoeffNormed; }

任务调度系统的模块化设计

项目采用基于状态机的任务调度架构,每个自动化任务都实现了ISoloTask接口,确保任务间的独立性和可组合性。在GameTask/目录下,每个功能模块都有独立的配置和执行逻辑,形成了清晰的职责分离。

任务参数系统通过BaseTaskParam<T>泛型基类实现类型安全的参数传递,每个任务都有对应的参数类,如AutoFightParamAutoFishingTaskParam等。这种设计使得任务配置可以通过JSON序列化持久化存储,便于用户自定义和扩展。

任务确认界面的视觉识别模板

输入模拟与事件监控机制

输入系统采用双重监控架构,通过DirectInputMonitorRawInputMonitor两种方式捕获用户输入事件,确保在不干扰正常游戏操作的前提下实现精准的模拟输入。MouseKeyMonitor类负责鼠标键盘事件的监听和转发,支持相对坐标和绝对坐标的转换。

Core/Monitor/目录下,监控系统实现了观察者模式,当检测到特定游戏状态时,自动触发相应的自动化任务。这种事件驱动的架构减少了轮询开销,提高了系统响应速度。

关键技术实现细节

图像处理优化策略

为了提高识别性能,BetterGI采用了多种图像处理优化技术。在Core/Recognition/OpenCv/OpenCvCommonHelper.cs中,实现了灰度图颜色统计、通道分离和并行处理等优化算法。系统支持二值化预处理,通过UseBinaryMatchBinaryThreshold参数调整,适应不同光照条件下的识别需求。

// 图像处理优化示例 public static int CountGrayMatColor(Mat mat, byte color) { Debug.Assert(mat.Depth() == MatType.CV_8U); return SplitChannal(mat, m => CountGrayMatColorC1(m, color)).Sum(); }

分辨率自适应机制

考虑到不同用户的显示设置差异,系统实现了分辨率自适应识别机制。RecognitionObject类中的ReferenceImageSizeReferenceBoundingBox属性允许识别模板在不同分辨率下自动缩放。通过RegionOfInterest配置,系统能够在指定区域内进行识别,减少不必要的图像处理开销。

多线程任务执行模型

任务执行采用异步并发模型,TaskRunner类负责管理任务队列和线程调度。每个独立任务都在单独的线程中执行,通过CancellationToken支持任务中断和超时控制。这种设计确保了长时间运行的自动化任务不会阻塞用户界面响应。

性能优化与扩展性设计

内存管理策略

系统采用对象池和资源复用机制管理图像资源。Mat对象在使用后及时释放,避免内存泄漏。TemplateImageMatTemplateImageGreyMat的懒加载策略减少了不必要的图像预处理开销。

配置系统的可扩展性

配置管理系统采用观察者模式实现动态更新。AllConfig.cs中的配置类使用ObservableObject基类,当配置项发生变化时自动通知相关组件。这种设计支持热重载配置,用户无需重启应用即可应用新的设置。

插件化架构支持

通过ISoloTask接口和ITaskTrigger接口,系统支持第三方插件的无缝集成。开发者可以按照标准接口实现自定义任务和触发器,通过配置文件注册到系统中。Script/目录下的JavaScript脚本引擎进一步扩展了系统的可编程性。

技术挑战与解决方案

跨分辨率兼容性挑战

游戏界面在不同分辨率下的元素位置和尺寸差异是主要技术挑战。BetterGI通过相对坐标系统和模板缩放算法解决这一问题。识别模板存储为高分辨率基准图像,在实际识别时根据当前游戏窗口尺寸进行动态缩放。

动态界面元素识别

游戏中的动态UI元素(如战斗特效、对话框动画)增加了识别难度。系统采用多帧验证和时间序列分析技术,结合SearchOptions中的AnchorModeExpandSize参数,提高动态元素的识别稳定性。

性能与准确性的平衡

在实时性要求高的场景(如自动战斗),系统需要在识别精度和处理速度之间取得平衡。通过Threshold参数调整匹配阈值,结合GPU加速的图像处理,实现了毫秒级的识别响应。

二次开发指南

自定义任务开发流程

  1. 实现ISoloTask接口:在GameTask/目录下创建新任务类,继承ISoloTask接口
  2. 定义任务参数:创建对应的参数类继承BaseTaskParam<T>
  3. 配置识别模板:在Assets/目录下添加识别用的图像模板
  4. 注册任务触发器:实现ITaskTrigger接口或使用现有触发器

识别模板制作规范

识别模板应遵循以下规范:

  • 使用PNG格式保存,保持透明背景
  • 模板尺寸与实际游戏元素保持1:1比例
  • 对于动态元素,提供多角度或多状态的模板
  • RecognitionObjectJsonConfig中配置模板的识别参数

性能调优建议

针对不同使用场景,我们建议以下优化配置:

  • 高精度模式:设置Threshold=0.9Use3Channels=true
  • 高性能模式:设置Threshold=0.7,使用灰度模板匹配
  • 平衡模式:设置Threshold=0.8,启用二值化预处理

贡献者入门指南

代码架构理解

项目采用清晰的层次结构:

  • Core/:核心识别和监控功能
  • GameTask/:具体自动化任务实现
  • Service/:后台服务和API接口
  • View/:用户界面组件
  • ViewModel/:数据绑定和业务逻辑

开发环境配置

  1. 克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/be/better-genshin-impact
  1. 安装依赖:
  • .NET 8 SDK
  • OpenCV 4.8.0+
  • Visual Studio 2022或Rider
  1. 配置开发环境:
  • Core/Config/目录下创建本地配置文件
  • 设置游戏路径和识别参数
  • 运行测试用例验证功能完整性

测试与验证流程

项目包含完整的单元测试框架,在Test/目录下。开发新功能时应:

  1. 编写单元测试验证核心算法
  2. 创建集成测试验证任务流程
  3. 进行性能基准测试确保优化效果
  4. 在不同分辨率下进行兼容性测试

技术选型分析

计算机视觉库选择

BetterGI选择OpenCV作为核心图像处理库,主要基于以下考虑:

  • 成熟稳定:OpenCV拥有20多年的发展历史,算法经过充分验证
  • 跨平台支持:支持Windows、Linux、macOS等多个平台
  • 性能优化:底层使用C++实现,提供C#绑定接口
  • 算法丰富:包含模板匹配、特征检测、机器学习等多种算法

自动化框架设计

系统采用事件驱动架构而非轮询机制,主要优势包括:

  • 资源效率:减少CPU占用,只在需要时触发识别
  • 响应速度:实时响应游戏状态变化
  • 可扩展性:易于添加新的触发条件和任务类型

配置管理系统

基于JSON的配置系统提供了良好的可读性和可维护性。通过System.Text.Json序列化库,实现了类型安全的配置管理,支持配置验证和默认值回退机制。

未来技术发展方向

深度学习集成

计划集成ONNX运行时,支持基于深度学习的图像识别模型。这将提高复杂场景下的识别准确率,特别是在光照变化和视角变换较大的情况下。

云端配置同步

开发云端配置管理系统,支持用户配置的备份、同步和分享。通过版本控制机制,确保配置的兼容性和可追溯性。

性能监控与分析

集成性能监控系统,实时收集识别准确率、任务执行时间等指标。通过数据分析优化算法参数,实现自适应性能调优。

BetterGI的技术架构展示了如何将计算机视觉、自动化测试和游戏交互技术有机结合,为游戏自动化领域提供了可复用的技术方案。其模块化设计、可扩展架构和性能优化策略,为开发者理解和构建类似系统提供了宝贵参考。

【免费下载链接】better-genshin-impact📦BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - UI Automation Testing Tools For Genshin Impact项目地址: https://gitcode.com/gh_mirrors/be/better-genshin-impact

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询