BetterGI深度解析:基于计算机视觉的原神自动化系统架构设计与实现

张开发
2026/4/16 8:20:37 15 分钟阅读

分享文章

BetterGI深度解析:基于计算机视觉的原神自动化系统架构设计与实现
BetterGI深度解析基于计算机视觉的原神自动化系统架构设计与实现【免费下载链接】better-genshin-impactBetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - UI Automation Testing Tools For Genshin Impact项目地址: https://gitcode.com/gh_mirrors/be/better-genshin-impactBetterGIBetter Genshin Impact是一个基于计算机视觉技术的开源自动化系统专为《原神》游戏设计实现了小地图识别与坐标转换、路径规划与障碍物避让、元素采集与角色切换自动化以及传送点识别与快速传送等核心功能。该系统通过精密算法将像素坐标转换为游戏世界坐标实现厘米级导航精度支持多种地图类型和复杂地形环境下的自动采集、资源收集和耕作等高级功能为技术开发者和进阶玩家提供了强大的自动化解决方案。技术概览与架构设计BetterGI采用模块化架构设计将复杂的自动化任务分解为多个独立的子系统每个子系统专注于特定的功能领域。系统核心基于.NET平台开发利用WPF框架构建用户界面采用MVVM模式实现数据绑定和业务逻辑分离。核心架构层次系统架构分为四个主要层次图像识别层、任务调度层、行为执行层和用户界面层。图像识别层负责实时分析游戏画面提取关键信息任务调度层管理自动化任务的执行流程行为执行层模拟用户输入操作用户界面层提供直观的配置和监控界面。// 系统核心架构示例 public class TaskTriggerDispatcher { private readonly ListITaskTrigger _triggers new(); private readonly GameCaptureFactory _captureFactory; private readonly ILoggerTaskTriggerDispatcher _logger; // 任务调度器核心逻辑 public async Task StartAsync(CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { using var capture _captureFactory.Create(); var image capture.Capture(); foreach (var trigger in _triggers) { if (trigger.IsEnabled) { await trigger.OnCapture(image); } } await Task.Delay(_config.TriggerInterval, cancellationToken); } } }多引擎识别系统BetterGI支持多种计算机视觉引擎包括PaddleOCR、YOLO模型和OpenCV特征匹配形成多层次的识别体系识别引擎应用场景精度性能特点PaddleOCR文字识别、界面元素95%支持多语言准确率高YOLO V8物体检测、角色识别90%实时检测速度快OpenCV特征匹配地图定位、图标识别98%稳定性好抗干扰强配置管理系统系统采用统一的配置管理机制通过AllConfig类集中管理所有设置public partial class AllConfig : ObservableObject { [ObservableProperty] private string _captureMode CaptureModes.BitBlt.ToString(); [ObservableProperty] private int _triggerInterval 50; public MaskWindowConfig MaskWindowConfig { get; set; } new(); public CommonConfig CommonConfig { get; set; } new(); public HotKeyConfig HotKeyConfig { get; set; } new(); // ... 更多配置项 }核心算法实现原理小地图识别与坐标转换算法BetterGI的地图导航系统依赖于精确的小地图识别和坐标转换算法。系统通过计算机视觉技术实时分析游戏画面中的小地图信息将像素坐标转换为游戏世界坐标从而实现精准的导航和路径规划。特征提取与匹配算法系统采用多级特征匹配策略结合SIFT、ORB和深度学习模型public Point2f GetMiniMapPosition(Mat miniMapMat) { // 使用多尺度特征检测 using var detector SIFT.Create(); var keyPoints detector.Detect(miniMapMat); // 与预定义模板进行特征匹配 var matches FeatureMatcher.Match(keyPoints, _templateKeyPoints); // 计算仿射变换矩阵 var homography ComputeHomography(matches); // 应用坐标转换 return TransformPosition(homography, _templatePlayerPosition); }坐标转换数学模型BetterGI建立了完整的坐标转换体系实现了从屏幕像素坐标到游戏世界坐标的双向转换。该系统基于仿射变换和透视变换原理构建了精确的数学转换模型public Point2f ConvertImageCoordinatesToGenshinMapCoordinates(Point2f imagePoint) { var mapConfig GetMapConfiguration(_mapType); // 相对坐标计算 float relativeX (imagePoint.X - mapConfig.CenterX) * mapConfig.ScaleFactor; float relativeY (mapConfig.CenterY - imagePoint.Y) * mapConfig.ScaleFactor; // 应用偏移量 return new Point2f( relativeX mapConfig.OffsetX, relativeY mapConfig.OffsetY ); }路径规划与障碍物避让策略BetterGI采用基于航点的路径规划系统将复杂的导航任务分解为一系列有序的路径点Waypoint每个路径点包含精确的坐标信息、移动模式和动作指令。智能避障算法系统通过实时状态监测和图像识别技术构建了完整的障碍物检测体系public class PathExecutor { private const int RetryTimes 2; private int _inTrap 0; public async Task Pathing(PathingTask task) { foreach (var waypoints in waypointsList) { for (var i 0; i RetryTimes; i) { try { await ResolveAnomalies(); foreach (var waypoint in waypoints) { await HandleTeleportWaypoint(waypoint); await BeforeMoveToTarget(waypoint); await MoveTo(waypoint); await MoveCloseTo(waypoint); await AfterMoveToTarget(waypoint); } } catch (RetryException retryException) { StartSkipOtherOperations(); Logger.LogWarning(retryException.Message); } } } } }多模式脱困策略对于完全卡死的情况系统采用三级脱困策略脱困级别触发条件执行动作适用场景轻微避障进入攀爬状态后退角度调整小型障碍物中度脱困5秒无进展随机方向移动复杂地形重度脱困25秒超时大范围移动完全卡死元素采集与角色切换自动化BetterGI的元素采集与角色切换自动化系统基于处理器设计模式通过ElementalCollectHandler类处理不同元素的采集任务。角色识别与切换机制系统通过YOLO分类器识别当前队伍中的角色实现智能角色切换public bool TrySwitch(int tryTimes 4, bool needLog true) { for (var i 0; i tryTimes; i) { var region CaptureToRectArea(); // 检查是否已经是出战状态 var notActiveCount CombatScenes.GetAvatars() .Count(avatar !avatar.IsActive(region)); if (IsActive(region) notActiveCount CombatScenes.ExpectedTeamAvatarNum - 1) { return true; } // 发送切换指令 Simulation.SendInput.SimulateAction(GIActions.Drop); switch (Index) { case 1: Simulation.SendInput.SimulateAction(GIActions.SwitchMember1); break; case 2: Simulation.SendInput.SimulateAction(GIActions.SwitchMember2); break; case 3: Simulation.SendInput.SimulateAction(GIActions.SwitchMember3); break; } } return false; }元素类型支持矩阵系统支持七种元素类型的采集每种元素都有对应的角色配置策略元素类型中文名称支持角色数量采集方式Hydro水元素10个角色普通攻击/元素战技Electro雷元素8个角色普通攻击/元素战技Anemo风元素11个角色普通攻击/元素战技Pyro火元素12个角色普通攻击/元素战技Cryo冰元素配置中支持普通攻击/元素战技Dendro草元素配置中支持普通攻击/元素战技Geo岩元素配置中支持普通攻击/元素战技性能优化与扩展机制多级缓存与异步处理BetterGI实现了高效的多级缓存机制显著提升了系统性能public class Navigation { private static bool _isWarmUp false; private static readonly NavigationInstance _instance new(); public static void WarmUp(string mapMatchMethod) { if (!_isWarmUp) { MapManager.GetMap(MapTypes.Teyvat, mapMatchMethod).WarmUp(); } _isWarmUp true; Reset(); } public static Point2f GetPosition(ImageRegion imageRegion, string mapName, string mapMatchMethod) { return _instance.GetPosition(imageRegion, mapName, mapMatchMethod); } }插件化架构设计系统采用插件化设计支持功能模块的动态加载和卸载public class GameTaskManager { private readonly Dictionarystring, ITaskTrigger _triggers new(); public void AddTrigger(ITaskTrigger trigger) { _triggers[trigger.Name] trigger; trigger.Initialize(); } public void RemoveTrigger(string name) { if (_triggers.TryGetValue(name, out var trigger)) { trigger.Dispose(); _triggers.Remove(name); } } }错误恢复与容错机制系统实现了完善的错误恢复机制确保在异常情况下能够自动恢复public class NewRetry { public static async TaskT DoT(FuncTaskT action, TimeSpan retryInterval, int maxAttemptCount) { var exceptions new ListException(); for (int attempt 1; attempt maxAttemptCount; attempt) { try { return await action(); } catch (RetryException ex) { exceptions.Add(ex); if (attempt maxAttemptCount) { await Task.Delay(retryInterval); } } } throw new AggregateException(所有重试尝试均失败, exceptions); } }实际应用场景与案例自动采集系统BetterGI的自动采集系统支持多种资源类型的自动采集包括矿物、植物、食材等。系统通过图像识别技术检测资源点并自动规划最优采集路径public class ElementalCollectHandler : IActionHandler { private readonly ElementalType _elementalType; public async Task RunAsync(CancellationToken ct, WaypointForTrack? waypoint, object? config) { var avatars CombatScenes.GetAvatars(); var elementalAvatar avatars.FirstOrDefault(a a.ElementalType _elementalType); if (elementalAvatar ! null) { await elementalAvatar.TrySwitch(); await elementalAvatar.UseSkill(); await Task.Delay(1000, ct); } } }自动钓鱼系统基于深度学习的自动钓鱼系统采用RodNet神经网络模型实现精准的钓鱼时机判断public class RodNet : ModuleTensor, Tensor, Tensor, Tensor, Tensor { const double alpha 1734.34 / 2.5; // 神经网络参数 static readonly double[] dz {1.0307939, 1.5887239, 1.4377865, 0.8548809, 1.8640924, -0.1687729, 1.8621461, 0.7167622, 1.7071064, 1.8727832, 0.5531539}; public Tensor Forward(Tensor fishRect, Tensor rodRect, Tensor fishLabel, Tensor rodLabel) { // 使用牛顿-拉夫森迭代法求解钓鱼数学模型 var result ComputeFishingAction(fishRect, rodRect, fishLabel, rodLabel); return result; } }自动战斗系统战斗系统支持多种战斗策略配置可根据不同敌人类型自动切换角色和技能public class CombatScriptBag { private readonly ListCombatScript _scripts new(); public CombatScript FindBestMatch(Liststring avatarNames) { var bestMatch _scripts .Select(script new { Script script, MatchCount script.AvatarNames.Intersect(avatarNames).Count() }) .OrderByDescending(x x.MatchCount) .FirstOrDefault(); return bestMatch?.Script ?? _scripts.First(); } }未来规划与社区贡献技术路线图深度学习模型优化计划集成更先进的YOLOv9和Transformer模型提升识别精度多语言支持扩展增加对更多游戏语言的支持包括日语、韩语等云服务集成开发云端配置同步和远程控制功能跨平台支持探索Linux和macOS平台的兼容性方案社区贡献指南BetterGI采用开放的开源模式欢迎开发者参与贡献代码贡献遵循项目编码规范提交清晰的PR文档完善帮助完善技术文档和使用指南问题反馈在GitHub Issues中报告bug和功能建议测试验证参与新功能的测试和验证工作性能基准测试系统经过严格测试在不同硬件配置下的性能表现硬件配置识别精度响应时间内存占用i5-8300H GTX 105095%100ms200-300MBi7-10700K RTX 306098%50ms300-400MBRyzen 5 5600X RTX 406099%30ms250-350MB部署与集成指导环境要求.NET 6.0运行时Windows 10/11操作系统依赖安装通过NuGet包管理器安装所有依赖项配置调整根据游戏分辨率和硬件性能调整识别参数性能调优参考项目文档中的性能优化指南BetterGI通过精密的计算机视觉算法和智能的自动化策略为《原神》玩家提供了强大的辅助工具。系统的模块化设计和可扩展架构为未来的功能扩展奠定了坚实基础同时也为游戏自动化领域的技术研究提供了有价值的参考案例。【免费下载链接】better-genshin-impactBetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - UI Automation Testing Tools For Genshin Impact项目地址: https://gitcode.com/gh_mirrors/be/better-genshin-impact创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章