news 2026/5/5 8:34:26

阴阳师百鬼夜行AI自动化脚本:深度解析智能决策架构与算法优化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阴阳师百鬼夜行AI自动化脚本:深度解析智能决策架构与算法优化

阴阳师百鬼夜行AI自动化脚本:深度解析智能决策架构与算法优化

【免费下载链接】OnmyojiAutoScriptOnmyoji Auto Script | 阴阳师脚本项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

Onmyoji Auto Script的百鬼夜行自动化脚本通过先进的计算机视觉和强化学习算法,为阴阳师玩家提供了高效、智能的碎片收集解决方案。本文将深入探讨该脚本的技术架构、核心算法实现、性能优化策略以及二次开发指南,帮助中级开发者和技术爱好者全面理解这一自动化系统的实现原理。

技术架构深度解析:模块化设计与智能决策系统

阴阳师百鬼夜行自动化脚本采用分层架构设计,将复杂的自动化任务分解为独立的模块化组件。整个系统基于Python开发,利用现代软件工程的最佳实践,确保了代码的可维护性和扩展性。

核心模块架构

系统主要由四个核心模块组成:图像识别模块决策引擎模块控制执行模块状态管理模块。每个模块都承担特定的职责,通过清晰的接口进行通信。

图像识别模块位于tasks/Hyakkiyakou/slave/hya_slave.py中,负责实时捕获游戏屏幕并识别关键元素。该模块使用OpenCV进行图像处理,通过模板匹配技术检测豆子数量、BUFF状态和游戏界面元素:

# 豆子数量识别区域定义 HUNDRED0HUNDRED: list[int] = [117, 647, 18, 25] DECADE0HUNDRED: list[int] = [131, 647, 18, 25] UNIT0HUNDRED: list[int] = [146, 647, 18, 25] # BUFF状态检测区域 BUFF_ROI1: list[int] = [150, 1, 150, 50] BUFF_ROI2: list[int] = [320, 1, 140, 50] BUFF_ROI3: list[int] = [840, 1, 150, 50] BUFF_ROI4: list[int] = [1100, 1, 140, 50]

决策引擎模块是系统的智能核心,位于tasks/Hyakkiyakou/agent/agent.py。该模块实现了基于高斯热图的优先级计算算法,根据式神稀有度、位置信息和BUFF状态动态调整撒豆策略。

控制执行模块通过ADB或Windows消息系统与模拟器交互,实现精准的点击和滑动操作。系统支持多种控制方案,包括MINITOUCHWINDOW_MESSAGE,以适应不同的运行环境。

状态管理模块维护游戏状态的实时信息,包括豆子剩余数量、式神剩余数量、BUFF状态等,为决策引擎提供上下文信息。

图1:自动化脚本决策引擎界面,展示模块化架构和实时状态监控

算法原理与实现:高斯热图与强化学习决策

百鬼夜行自动化脚本的核心算法基于计算机视觉和概率模型,实现了智能化的撒豆决策。系统通过多层次的算法组合,确保在各种游戏场景下都能做出最优决策。

高斯热图算法

决策引擎的核心是高斯热图算法,该算法为屏幕上的每个式神计算一个"吸引力分数"。算法首先为每个检测到的式神生成一个高斯分布的热点,然后根据式神的稀有度、位置和移动速度进行加权:

def gamma(cls, tracks: list[tuple], weights: list[float], priorities: list[int] = []) -> np.ndarray: """ @param tracks: 检测到的式神跟踪数据 @param weights: [sp, ssr, sr, r, n, g] 权重列表 @param priorities: 优先式神ID列表 @return: 高斯热图矩阵 """ z = np.zeros((720, 1280), dtype=np.float32) for _id, _class, _conf, _cx, _cy, _w, _h, _v in tracks: weight = 1. mu = 0.8 + (_cx * 0.2) / 1280 match _class: case _ if CI.MIN_G <= _class <= CI.MAX_G: weight = weights[5] case _ if CI.MIN_N <= _class <= CI.MAX_N: weight = weights[4] case _ if _class != CI.R_008 and _class != CI.R_007 and (CI.MIN_R <= _class <= CI.MAX_R): weight = weights[3] # 排除童男童女 case _ if CI.MIN_SR <= _class <= CI.MAX_SR: weight = weights[2] case _ if CI.MIN_SSR <= _class <= CI.MAX_SSR: weight = weights[1] case _ if CI.MIN_SP <= _class <= CI.MAX_SP: weight = weights[0] case _: weight = 0. # 优先式神特殊处理 if _class in priorities: weight *= 3 # 生成高斯分布 patch = cls.GAUSSIAN * weight * mu z = cls.embed_patch_in_canvas(z, patch, (_cx, _cy)) return z

强化学习决策机制

系统采用基于规则的强化学习策略,根据游戏状态动态调整决策参数。在tasks/Hyakkiyakou/config.py中,用户可以配置不同稀有度式神的权重:

class HyakkiyakouConfig(ConfigBase): hya_sp: float = Field(default=1., description='SP式神权重') hya_ssr: float = Field(default=1., description='SSR式神权重') hya_sr: float = Field(default=0.7, description='SR式神权重') hya_r: float = Field(default=0.3, description='R式神权重') hya_n: float = Field(default=0.0, description='N卡权重') hya_g: float = Field(default=0.0, description='呱太权重')

决策引擎会根据这些权重计算每个式神的吸引力分数,然后选择分数最高的目标进行撒豆。系统还考虑了式神的移动速度,通过预测式神位置来提高命中率。

BUFF状态智能识别

系统能够识别四种关键BUFF状态:式神减速、砸豆加速、式神冰冻和概率UP。这些BUFF状态会显著影响决策逻辑:

class HyaBuff(int, Enum): BUFF_STATE0 = -1 # 无BUFF BUFF_STATE2 = 0 # 式神减速 BUFF_STATE3 = 1 # 砸豆加速 BUFF_STATE5 = 2 # 式神冰冻 BUFF_STATE6 = 3 # 概率UP BUFF_STATE7 = 4 # 好友UP

当检测到"概率UP"BUFF时,系统会提高对稀有式神的优先级;当检测到"式神冰冻"BUFF时,系统会调整撒豆策略,优先攻击被冰冻的式神。

图2:算法参数配置界面,支持动态调整识别阈值和决策权重

性能优化实战:从理论到实践的技术调优

在实际部署中,性能优化是确保自动化脚本稳定运行的关键。以下是一些经过验证的优化策略和技术实现。

图像识别性能优化

图像识别是系统中最耗资源的环节。通过以下优化措施,可以将识别延迟降低到300ms以内:

  1. 区域裁剪优化:只识别游戏有效区域,减少处理像素数量
  2. 多分辨率支持:根据设备性能动态调整识别分辨率
  3. 缓存机制:缓存已识别式神的特征,减少重复计算

tasks/Hyakkiyakou/config.py中,可以调整以下性能参数:

class HyakkiyakouModels(ConfigBase): # 置信度阈值 conf_threshold: float = Field(default=0.6, description='置信度阈值') # NMS阈值 iou_threshold: float = Field(default=0.7, description='NMS阈值') # 模型推理精度 model_precision: ModelPrecision = Field(default=ModelPrecision.FP32) # 推理引擎 inference_engine: InferenceEngine = Field(default=InferenceEngine.ONNXRUNTIME) class DebugConfig(ConfigBase): # 截屏间隔,单位ms hya_interval: float = Field(default=300, description='截屏间隔') # 显示跟踪结果 hya_show: bool = Field(default=False, description='显示跟踪结果')

内存管理优化

系统采用惰性加载和对象池技术来优化内存使用:

  1. 模型延迟加载:只在需要时加载AI模型
  2. 图像缓冲区复用:复用图像处理缓冲区,减少内存分配
  3. 垃圾回收优化:手动管理大对象生命周期

多线程与异步处理

为提高响应速度,系统采用多线程架构:

  • 主线程:负责UI更新和用户交互
  • 识别线程:独立进行图像识别处理
  • 控制线程:执行ADB命令和模拟器控制
  • 决策线程:运行高斯热图算法和决策逻辑

这种架构确保了即使在进行复杂的图像识别时,UI也能保持流畅响应。

扩展开发指南:自定义算法与功能增强

Onmyoji Auto Script的百鬼夜行模块设计为高度可扩展,开发者可以根据自己的需求定制算法和功能。

自定义撒豆策略

开发者可以通过继承Agent类并重写decision方法来实现自定义撒豆策略:

class CustomAgent(Agent): def decision(self, tracks, strategy, state, freeze=False) -> list: """自定义决策逻辑""" # 获取当前BUFF状态 buff_states = state[4:] if len(state) > 4 else [] has_prob_up = any(b == HyaBuff.BUFF_STATE6 for b in buff_states) # 自定义权重计算 if has_prob_up: # 概率UP时提高稀有式神权重 self.weights = [1.5, 1.5, 1.0, 0.5, 0.0, 0.0] else: # 正常权重 self.weights = [1.0, 1.0, 0.7, 0.3, 0.0, 0.0] # 调用父类方法 return super().decision(tracks, strategy, state, freeze)

新增式神识别支持

要添加对新式神的支持,需要更新oashya.labels模块中的类别索引。首先在CLASSINDEX中定义新的式神类别:

# 在labels.py中添加新的式神定义 MIN_NEW_SHIKIGAMI = 200 MAX_NEW_SHIKIGAMI = 210 NEW_SHIKIGAMI_1 = 200 NEW_SHIKIGAMI_2 = 201

然后更新训练数据集并重新训练YOLO模型,最后更新模型的标签文件。

集成外部AI模型

系统支持集成第三方AI模型进行图像识别。开发者可以通过实现自定义的Tracker类来集成新的识别算法:

class CustomTracker: def __init__(self, model_path, conf_threshold=0.6): self.model = load_model(model_path) self.conf_threshold = conf_threshold def detect(self, image): # 使用自定义模型进行检测 results = self.model.predict(image) return self._format_results(results) def _format_results(self, results): # 格式化检测结果 tracks = [] for result in results: if result.confidence > self.conf_threshold: tracks.append(( result.id, result.class_id, result.confidence, result.center_x, result.center_y, result.width, result.height, result.velocity )) return tracks

故障诊断与调试:系统化问题排查方法

在自动化脚本运行过程中,可能会遇到各种技术问题。以下是系统化的故障诊断方法。

常见问题排查流程

  1. ADB连接问题

    • 检查模拟器ADB调试是否开启
    • 验证ADB设备列表:adb devices
    • 重启ADB服务:adb kill-server && adb start-server
  2. 图像识别失败

    • 检查屏幕分辨率设置
    • 验证游戏界面是否正常显示
    • 调整conf_thresholdiou_threshold参数
  3. 撒豆不准确

    • 校准屏幕坐标映射
    • 调整式神移动速度预测参数
    • 检查BUFF状态识别准确性

调试工具使用

系统内置了丰富的调试工具,可以通过配置文件启用:

# 启用调试模式 debug_config: hya_show: true # 显示跟踪结果 hya_info: true # 输出详细调试信息 hya_save_result: true # 保存每一张票的结果 hya_interval: 500 # 增加截屏间隔以便观察

启用调试模式后,系统会生成详细的日志文件,记录每一步的操作和决策过程。这些日志对于分析问题原因非常有帮助。

性能监控

通过系统内置的性能监控功能,可以实时查看各个模块的资源使用情况:

  • CPU使用率:监控识别线程和控制线程的CPU占用
  • 内存使用:跟踪图像缓冲区和模型的内存占用
  • 响应延迟:测量从截图到执行操作的总延迟

图3:调试与监控界面,支持实时性能指标查看和参数调整

未来技术展望:AI自动化的发展方向

随着AI技术的不断发展,阴阳师百鬼夜行自动化脚本也在持续演进。以下是未来可能的技术发展方向。

深度学习模型优化

当前系统主要基于传统的计算机视觉技术,未来可以考虑集成更先进的深度学习模型:

  1. Transformer架构:使用Vision Transformer进行更准确的式神识别
  2. Few-shot学习:通过少量样本学习新式神的特征
  3. 在线学习:在运行过程中持续优化模型性能

强化学习决策优化

将当前的基于规则的决策系统升级为基于深度强化学习的智能决策:

  1. Q-Learning算法:学习在不同游戏状态下的最优撒豆策略
  2. 策略梯度方法:直接优化策略网络参数
  3. 多智能体系统:协同多个决策智能体提高整体效率

云边协同架构

构建云边协同的自动化系统架构:

  • 云端训练:在云端训练和优化AI模型
  • 边缘推理:在本地设备上进行实时推理
  • 配置同步:云端同步用户配置和优化参数

跨平台支持扩展

扩展系统支持更多的平台和设备:

  1. 移动端原生支持:开发Android和iOS原生应用
  2. 云游戏集成:支持云游戏平台的自动化
  3. 多语言支持:扩展对国际服版本的支持

进一步学习资源

要深入了解Onmyoji Auto Script的百鬼夜行自动化实现,可以参考以下资源:

  • 核心算法实现:tasks/Hyakkiyakou/agent/ - 决策引擎和智能算法
  • 配置文件示例:tasks/Hyakkiyakou/config.py - 完整配置参数说明
  • 设备控制接口:tasks/Hyakkiyakou/slave/ - 模拟器控制和状态管理
  • 测试用例:tasks/Hyakkiyakou/utils/ - 功能测试和性能评估

项目采用模块化设计,每个组件都有清晰的接口定义和详细的文档说明。开发者可以根据需要深入研究特定模块的实现细节,或基于现有架构进行功能扩展和优化。

通过本文的技术解析,相信您已经对阴阳师百鬼夜行自动化脚本的技术架构和实现原理有了深入理解。无论您是希望优化现有配置,还是进行二次开发,都可以基于这些技术知识构建更强大、更智能的自动化解决方案。

【免费下载链接】OnmyojiAutoScriptOnmyoji Auto Script | 阴阳师脚本项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 8:32:28

避坑指南:STM32F407+RT-Thread解码SD卡JPG图片到LCD,内存与性能优化实战

STM32F407RT-Thread实战&#xff1a;JPG解码性能优化与内存管理精要 在嵌入式图像处理领域&#xff0c;JPG解码一直是资源受限设备面临的典型挑战。当开发者尝试在STM32F407这类中等性能MCU上实现SD卡JPG图片解码并输出到LCD时&#xff0c;往往会遭遇解码速度慢、大图显示死机…

作者头像 李华
网站建设 2026/5/5 8:31:32

SliderEdit技术:精准控制图像编辑的新方法

1. 项目概述&#xff1a;当图像编辑遇上精准控制SliderEdit这项技术彻底改变了传统图像处理的工作流。过去我们要调整一张照片的某个属性&#xff08;比如让天空更蓝或者让人物笑容更明显&#xff09;&#xff0c;通常需要反复尝试不同的滤镜强度&#xff0c;或者手动绘制蒙版区…

作者头像 李华
网站建设 2026/5/5 8:31:31

Python 爬虫数据处理实战:地区 / 分类数据归一化与统一编码

前言 在 Python 爬虫工程化实践中,原始爬取数据普遍存在格式混乱、标准不统一、冗余异构等问题,其中地区数据与分类数据作为业务核心维度数据,其规范性直接决定后续数据分析、数据存储、业务应用的准确性与效率。地区数据常出现省份简称 / 全称混用、市级行政区别名差异、区…

作者头像 李华
网站建设 2026/5/5 8:30:27

智慧树课程自动化学习:如何用Python Playwright实现免干扰高效刷课

智慧树课程自动化学习&#xff1a;如何用Python Playwright实现免干扰高效刷课 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树平台重复繁琐的课程…

作者头像 李华
网站建设 2026/5/5 8:28:28

FPGA在DSP领域的优势与Xilinx开发套件实战

1. FPGA在DSP领域的独特优势解析作为一名长期从事数字信号处理系统开发的工程师&#xff0c;我见证了FPGA如何从单纯的逻辑器件演变为DSP领域的核心处理器件。FPGA&#xff08;现场可编程门阵列&#xff09;与传统DSP处理器最本质的区别在于其硬件可编程性和并行架构。想象一下…

作者头像 李华