辉鸭蛋
f80939dad4
去除所有 Cv2.ImRead ,解决中文路径问题
2026-02-20 22:28:45 +08:00
Takaranoao
e9d11f7267
文本识别的模糊匹配功能 ( #2799 )
...
* chore: add AGENTS.md to .gitignore
* feat(config): 新增 AllowDuplicateChar OCR配置项
* refactor(ocr): Rec 暴露protected成员、提取RunInference、支持AllowDuplicateChar
* feat(ocr): 打通 AllowDuplicateChar 参数链 PaddleOcrService → Rec
* feat(ocr): OcrUtils 新增 CreateLabelDict/CreateWeights 工具方法
* feat(helpers): 新增 LruCache 缓存工具类
* feat(ocr): 新增 RecMatch DP模糊匹配识别器
* test(helpers): 新增 LruCache 单元测试
* test(ocr): 新增 RecMatch.GetTarget / CreateLabelDict 单元测试
* fix(ocr): 修复 RecMatch 中权重矩阵乘法的使用方式
* refactor(ocr): 合并 RecMatch 到 Rec,提取可测试静态方法,补充单元测试
将 RecMatch 子类合并到 Rec 中,消除继承关系和重复的批处理逻辑(提取 RunBatch<T>)。
将 GetTarget 核心逻辑和 GetMaxScoreDP 提取为 OcrUtils 静态方法以便独立测试。
重命名测试文件并新增 16 个单元测试覆盖 MapStringToLabelIndices、GetMaxScoreDP、CreateWeights。
* feat(ocr): 将 Rec.RunMatch 暴露给 JS 引擎和内部 C# 代码
新增 IOcrMatchService 接口,提供基于 DP 模糊匹配的 OcrMatch/OcrMatchDirect 方法,
返回 0~1 置信度分数。PaddleOcrService 实现该接口,OcrFactory.PaddleMatch 保证
非 null 返回(引擎不支持时自动回退到普通 OCR + 编辑距离字符串比较)。
BvPage 新增 OcrMatch/WaitForOcrMatch 供 JS 脚本使用,阈值可通过配置调整。
* feat(ui): 为 OCR 配置添加允许重复字符和模糊匹配阈值的设置项
在通用设置页 OCR 配置区域新增两个控件:
- 允许连续重复字符(AllowDuplicateChar)开关
- OCR模糊匹配阈值(OcrMatchDefaultThreshold)输入框
* fix: 修复 PR #2799 代码审查中发现的多项问题
- 修复 Rec.cs 空文本时 score/sb.Length 除零产生 NaN
- 修复 BvPage.cs rect==default 时同一对象被双重 Dispose
- 移除 Rec.cs Finalizer 避免 GC 线程加锁死锁
- 移除 CacheHelper WeakKey 无效功能,简化为直接 Dictionary 查找
- 添加 weights 数组长度与模型输出维度校验
- 修复 CreateLabelDict 空格标签索引冲突
- 修复 GetMaxScoreDP availableCount=0 除零
- 修复 OcrMatchFallbackService Contains 大小写敏感
- 修复 BvPage.cs DefaultRetryInterval=0 除零
- 添加 OcrMatchDefaultThreshold [0,1] 范围约束
- 提取 PaddleOcrService BGRA→BGR 转换辅助方法
- 使用 Interlocked.CompareExchange 修复 OcrFactory Fallback 线程安全
- 增大 LruCacheTests BuilderTest TTL 裕量避免 CI 不稳定
- 更新 .gitignore 注释
* fix: 修复 OcrMatch 归一化分母导致多区域匹配分数过低的 bug,改进 UI
- 修复 GetMaxScoreFlat 中 availableCount 使用非空图像数作为分母,
导致多文字区域场景下匹配分数被过度稀释的问题,改为使用 target.Length
- AllowDuplicateChar 设置项添加"需重新加载OCR引擎"的提示
- OCR模糊匹配阈值控件从 TextBox 改为 Slider + 数值显示
- 移除 Det 类中有问题的 finalizer(含锁的析构函数可能导致死锁)
- 补充多区域场景的单元测试
* feat(ocr): 添加队伍切换时使用OcrMatch模糊匹配的选项和相关配置
* fix(ui): 更新匹配成功阈值默认值为 0.8
* fix(ocr): 修复队伍切换逻辑中的空值处理和优化代码结构
* refactor: 简化 LruCache,移除弱引用支持和 Builder 模式
- 移除有 TOCTOU bug 的 WeakReference 支持(且无实际使用方)
- CacheItem 类改为 ValueTuple 减少堆分配
- 无过期时不再赋值 DateTime.MaxValue,过期检查短路跳过
- 移除仅剩两参数的 LruCacheBuilder,直接使用构造函数
* fix(ocr): 修复 CreateWeights 中空格字符权重写入错误索引的 bug
复用 CreateLabelDict 构建索引映射,确保空格映射到 labels.Count+1,
与 CreateLabelDict 保持一致。添加对应测试用例。
* fix(ocr): 修复 GCHandle.Alloc 失败时 finally 中 Free 掩盖原始异常的问题
* fix(ocr): 添加队伍选择按钮存在性检查,避免 PartySetupFailedException
* fix(ocr): 调整 OcrMatchDefaultThreshold 的 TickFrequency 为 0.01
* fix(ocr): 修复区域裁剪逻辑,确保裁剪尺寸不为负值
* fix(ocr): 优化字符置信度提取逻辑,直接按目标字符索引查找置信度
* fix(ocr): 修正变量命名以保持一致性,调整方法名大小写
* fix(ocr): 修改 CreateWeights 方法以使用标签字典和标签计数,优化权重创建逻辑
* fix(ocr): 更新 OCR 置信度阈值设置,确保阈值范围为 0.01 到 0.99,并优化相关逻辑
2026-02-20 15:08:46 +08:00
Takaranoao
20fe152630
尝试修复一些ROI越界 ( #2808 )
...
* fix: 修复多处 OpenCV ROI 越界导致的断言失败
在低分辨率(如 1280x720)下,多处 Rect 坐标计算未做边界保护,
直接传入 SubMat / new Mat(mat, rect) 时触发 OpenCV ROI 断言崩溃。
修复位置:
- Behaviours.cs: fishBoxRect 计算结果钳位到图像边界,修复钓鱼任务越界
- GridScreen.cs: PostProcess 中幻影格子(插值生成)越界时直接丢弃
- ImageRegion.cs: DeriveCrop 两个重载统一加入坐标钳位与有效性校验
- GetGridIconsTask.cs: CropResizeArtifactSetFilterGridIcon X/Y 坐标加非负保护
- GeniusInvokationControl.cs: 角色区域扩展和 HP 区域 Y 偏移各加边界保护
* chore: 为 AutoFishingTask 鱼饵图标裁剪补充说明注释
* refactor: 提取 Rect 钳位逻辑为共享扩展方法 ClampTo
将 6 处重复的 ROI 钳位代码统一为 CommonExtension.ClampTo 扩展方法,
采用交集语义(坐标钳位时宽高同步缩减,不会扩大矩形)。
删除 AutoLeyLineOutcropTask 中的私有 ClampRect 方法。
2026-02-20 15:08:19 +08:00
Ayu0K
a24dd1c778
fix: 修复 RunMulti 中 Mat 所有权语义不明确导致的潜在 Dispose 问题 ( #2730 )
2026-02-05 01:37:18 +08:00
辉鸭蛋
62481baba9
地图遮罩功能(把米游社大地图搬到原神内) ( #2655 )
2026-01-26 02:58:23 +08:00
辉鸭蛋
d282abfd49
恢复自定义的文字区域提取
2025-12-07 10:59:29 +08:00
辉鸭蛋
9eac844757
优化OCR模型的CPU占用和执行速度
2025-12-07 02:11:04 +08:00
辉鸭蛋
b9707c43af
非4个角色情况下,ImageDifferenceDetector.FindMostDifferentImage 抛出错误的问题
2025-11-25 22:19:48 +08:00
DarkFlameMaster
51116d16d0
优化 可提交物品的识别方法 ( #2477 )
2025-11-18 10:22:16 +08:00
辉鸭蛋
71eb73c449
优化角色识别方式
2025-11-14 03:03:10 +08:00
辉鸭蛋
a10cdc32d0
新的角色编号框识别方式 & 出战角色识别 ( #2309 )
2025-10-10 02:49:18 +08:00
FishmanTheMurloc
808dbec396
暴露ocr的版本信息供调用者检查,增加一个检查此项的单测 ( #2259 )
2025-09-24 13:39:38 +08:00
辉鸭蛋
21ce9912e4
新增V4Auto的Ocr类型,使用最优模型识别,单测 PaddleOcrService_VariousLangWords_ShouldEqualOrMatch 已通过
2025-08-27 01:13:19 +08:00
辉鸭蛋
2c0d9983f5
修复自动幽境危战后无法正常分解圣遗物的问题
2025-08-12 01:23:52 +08:00
Takaranoao
c45448d521
fix: CUDA目录嗅探默认关闭&尝试修复在奇奇怪怪权限的环境下嗅探CUDA目录导致异常的问题。 ( #1994 )
2025-08-04 02:01:03 +08:00
Takaranoao
1497727cb4
feat: add OpenVINO cache support and configuration options ( #1992 )
2025-08-03 13:07:29 +08:00
Takaranoao
a868fd46be
openvino 支持 ( #1987 )
2025-08-03 01:11:48 +08:00
辉鸭蛋
5d0cfb7819
修复大地图匹配不正常的问题
2025-08-02 18:59:22 +08:00
Takaranoao
6d9da4d15b
feat: PaddleOcrV5 ( #1966 )
2025-08-02 14:51:07 +08:00
辉鸭蛋
0cec1aecfa
自动使用兑换码 ( #1895 )
2025-07-20 20:24:00 +08:00
辉鸭蛋
e3906cb19c
调整命名空间
2025-07-18 23:31:46 +08:00
Juemin Lin
0a5c8c169a
修复迷烟主成员非飞行状态下四叶印识别失败的Bug。模板匹配的置信度修改为数组。 ( #1854 )
2025-07-09 23:21:36 +08:00
kaedelcb
98c8e6bb72
NewRtry支持OCR/自动秘境优化进入适配限时双倍 ( #1841 )
...
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com >
2025-07-09 00:10:52 +08:00
辉鸭蛋
738e9bf5a4
fix: disable parallel processing in tensor selection for improved stability
2025-07-02 20:47:47 +08:00
Takaranoao
d2b389f0b1
修正OCR參數 ( #1814 )
2025-07-02 11:38:45 +08:00
Juemin Lin
2b9a4f111a
视角识别算法优化,启用新的视角识别,分层地图小修改,启用模板匹配分层地图 ( #1787 )
...
* 小地图预处理和视角识别算法优化
* 模板匹配的相关类,包括快速带遮罩的SqDiff模板匹配,模板匹配归一化类,简易亚像素模板匹配实现,小地图匹配相关配置,和小地图匹配上下文。
* 实现小地图的分层地图模板匹配,修改 SceneBaseMap 的 GetMiniMapPosition 为 virtual 以便继承覆盖。
* 优化视角识别算法, 消除图标对视角识别影响, 修正上次提交里HImg的范围错误(BGR2HLS_FULL模式下H的范围在0~255), 启用新的视角识别算法。
* 模板匹配分层地图小修改
* 启用模板匹配的分层地图
2025-07-01 01:50:27 +08:00
kaedelcb
3cf6543eee
模版匹配添加颜色遮罩 ( #1804 )
2025-07-01 01:49:58 +08:00
辉鸭蛋
90fdfcaa09
优化文字识别功能,使用新的文字区域检测方式减少CPU消耗
2025-06-27 20:23:11 +08:00
Juemin Lin
4b5f229006
分层地图的模板匹配坐标识别以及相机视角识别优化和小地图预处理 ( #1730 )
...
* 小地图预处理和视角识别算法优化
* 模板匹配的相关类,包括快速带遮罩的SqDiff模板匹配,模板匹配归一化类,简易亚像素模板匹配实现,小地图匹配相关配置,和小地图匹配上下文。
* 实现小地图的分层地图模板匹配,修改 SceneBaseMap 的 GetMiniMapPosition 为 virtual 以便继承覆盖。
2025-06-24 10:39:16 +08:00
辉鸭蛋
8799f34ce8
修复 Yap 无法正常使用的问题 #1459
2025-06-22 02:31:37 +08:00
FishmanTheMurloc
0c02808626
使用TorchSharp重写RodNet,以利后续优化 ( #1613 )
...
* 使用TorchSharp重写RodNet,以利后续优化
* 增加一个外部torch加载配置来代替直接的依赖,如配置不生效则使用原先手搓的算法
* BgiOnnxFactory取消单例,改为在App服务类中注册为单例,由此修复了一堆单元测试
* BgiOnnxFactory中几个静态方法改为成员方法以和App解耦;因不再有多个mat源供消耗,FishBite中文字块算法不再改动传入的mat,使得后续串联的算法不受其影响
* 将BehavioursTests中临时的配置读取方式改为读取主项目编译环境中的json文件;新建单元测试的README
* 将RodNet算法更新到 010006a44c 的版本;RodNet中关于torch库推理和直接数学计算的校验移至单元测试
* 更新RodNet算法至最新:add5672731
* 注释调试用的代码
2025-06-01 15:16:54 +08:00
Takaranoao
abd823c4b5
一堆ocr的bug修复 ( #1575 )
...
* NormalizeToTensorDnn 优化,可能会有精度损失
* 修复 OCR 强制使用CPU时还会使用GPU缓存模型的问题
* Refactor OCR engine namespaces and improve resource management in Det class
* ocr预热图换成彩色多行文本,热的更彻底。
* BgiYoloPredictor 的 析构函数
* 修复TensorRT下使用CPU OCR的情况下TensorRT缓存被错误命中的问题
* 重构OCR初始化,避免cultureInfoName改变导致的预热失效
* 删掉之前的资源文件
* 修复优化模型的路径设置错误
2025-05-12 22:38:32 +08:00
Shatyuka
b2958ac646
用Image<Rgb24>替换Bitmap ( #1563 )
2025-05-11 11:03:53 +08:00
Takaranoao
5b3bac478d
升级多个依赖&增加额外的推理加速功能&迁移OCR ( #1459 )
...
* 更新多个NuGet包至最新版本
* 重构模型加载以适应yolosharp
* feat: 改变接口。TensorRT缓存的初步支持,修改配置项。
* 更新依赖并调整变量顺序,修复加载问题
* 更新AvalonEdit和Microsoft.ML.OnnxRuntime包至最新版本,以修复问题
* fix: downgrade Microsoft.ML.OnnxRuntime.DirectML to version 1.21.0
* typo
* fix: change log level from warning to error for ONNX provider loading failure
* 增加 paddle ocr 的 onnx 模型
* feat: add PaddleOCR models for Chinese, English, and Latin recognition
* 使用cv的DNN生成Tensor,加速Yap文字识别
* feat: 尝试搓一个onnx的ocr
* clean up code
* chore: update OpenCvSharp4 package versions to 4.10.0.20241108
* 修复因格式化代码而丢的引用
* chore: update Microsoft.ML.OnnxRuntime.DirectML package to version 1.21.1 and improve logging for ONNX provider initialization
* chore: 等yolosharp更新再升级onnx
* chore: add Microsoft.ML.OnnxRuntime.Managed package and clean up logging in Det class
* fix: refactor output tensor handling in Det class for improved clarity
* 补充注释,修复DML的OCR问题
* 默认OCR推理使用CPU,整理配置
* fix error NETSDK1152: 找到了多个具有相同相对路径的发布输出文件
* fix(logging): enhance debug log for ONNX initialization with provider details
* 修复TensorRT模型缓存的加载问题
* fix(onnx): improve cached model retrieval and add file existence check
* fix(ocr): replace SrcGreyMat with SrcMat for region of interest processing
* fix(onnx): add file existence check for cached model and adjust session options for DirectML provider
* 增加硬件加速配置UI界面
* 移除旧的OCR模型
* 错别字
---------
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com >
2025-05-11 01:08:37 +08:00
辉鸭蛋
9e41808326
独立与分层地图支持 ( #1503 )
...
* 抽象基础类
* 修改定义
* 抽象出Feature2D相关能力
* 新增地图基类实现
* 临时提交
* 迁移坐标计算
* 加载分层特征数据
* 新增独立地图 层岩巨渊,渊下宫,旧日之海
* 支持不切分特征点匹配
* 添加远古圣山,修改地图参数
* 提瓦特大陆的大地图匹配
* 提瓦特大陆地图大地图位置获取使用256级别的地图
* 替换大地图匹配类 BigMap.cs
* 替换小地图匹配类 EntireMap
* 修改tp的入参方式,删除无用类
* 兼容新提交的内容
* 修复类方法覆盖不生效的问题
* 修复定位问题,迁移部分 MapCoordinate 的代码。MapCoordinate 标记为废弃
* 更多坐标方法的迁移
* 修复不正确的坐标转换
* 是用正确的特征匹配
* 体积较小的地图动态生成特征
* 路径追踪窗体支持多地图
* 传送时切换独立地图地区
* 更新传送点信息
* 修改独立地图相关命名,使用 Scene(场景) 命名,和原神内部命名保持一致
* 录制支持多独立地图
* 修复地区切换失败的问题
2025-05-03 21:59:37 +08:00
Shatyuka
fbac55b40c
二进制特征文件 ( #1473 )
2025-04-26 18:49:21 +08:00
FishmanTheMurloc
fce70c0e96
分解5星圣遗物 ( #1383 )
...
* 分解圣遗物基础设施建设
* 分解圣遗物独立任务基本功能完成:单独的启动按钮,正则表达式逐一筛选;代码文件整理到单独的文件夹
* 自动分解5星圣遗物功能初步完成
* 修复上次修改快速分解产生的问题,主要点击分解按钮时的bug,还有与五星分解步骤衔接的问题
* 针对切换队伍时,多语言识别效果不佳的情况,将用户设定的队伍名作为正则表达式进行模糊匹配,并在LogInfo输出相关提示;传送任务对任务取消进行单独的异常处理
* 一个便于测试分解圣遗物OCR识别和正则匹配结果的弹窗
2025-04-05 19:53:52 +08:00
FishmanTheMurloc
057efe78a9
静态化SharpDX.Direct3D11.Device的实例、恢复GraphicsCapture.cs的Stop方法中被注释的清理frame的代码,以期降低WGC反复启停的时观察到的内存泄漏;WGC方法传入的截图似乎是4通道的,paddle吃不进,故做4转3处理 ( #1386 )
2025-04-02 21:39:56 +08:00
Takaranoao
cbaf1f6c36
更新OpenCvSharp4版本到4.10.0,PaddleOCR到2.7.0.3,尝试修复bitblt导致崩溃的问题 ( #1381 )
2025-04-01 14:47:13 +08:00
辉鸭蛋
ad73198125
js 图像识别的补充
2025-03-30 15:34:25 +08:00
FishmanTheMurloc
6d4f8b80e8
Feat/multi lan ( #1336 )
...
* 记录一次对hutaofisher的访谈,帮助开发者理解其算法
* 本地化HelloWorld
* .csproj取消windows版本号,此处导致了IDE在新建代码文件和自动生成代码时,默认命名空间丢失的问题。已知VisualStudio和ReSharper存在这个问题。
* 优化扩展方法写法,改为从localizer扩展;Converter优化写法,避免冲突;新增两种语言,待测试ocr效果
* Revert ".csproj取消windows版本号,此处导致了IDE在新建代码文件和自动生成代码时,默认命名空间丢失的问题。已知VisualStudio和ReSharper存在这个问题。"
This reverts commit 8bd7ee74c5 .
* localizer改为由构造函数传入以支持单元测试;一个英语上钩的单元测试
* 传送任务支持英语游戏界面;本地化参数挪至OtherConfig类下,但界面位置暂不挪动,待定
* 调整resx位置风格,放在直接使用字符串的类下;一条龙合成树脂及领取每日奖励支持游戏内中英双语
* 删除无用碎片文件
* 删去两个不必要的Sdcb包引用
* Paddle服务类去掉分类模型;检测和识别新增支持繁中和法语,配有单元测试;因小语种识别效果不理想,使用正则匹配替换多处识别文本相等或包含判断;钓鱼、一条龙合成树脂及领取每日奖励支持游戏内繁中和法语;
* 检查今日奖励任务的多语言化;右侧联机的P图标检测区域宽度缩减,避免英语角色名被误识别成P
* AutoDomainTask的游戏多语言化,由于我的游戏账号无法测试,仅配一些测试用例
* 修复有3个Mizuki导致异常的bug,临时用拼音代替新角色英文名,并为该数据初始化方法添加单元测试
* 瓦雷莎删去别名“牛牛”,因荒泷一斗已占用此别名;别名加载和读取优化
* 加个锁避免单元测试中多线程初始化paddle崩溃
2025-03-28 11:00:08 +08:00
辉鸭蛋
e5629f1bb4
5.5 map
2025-03-25 00:37:58 +08:00
秋云
ad4993c3cf
Add some comments
2025-01-13 08:38:10 +08:00
秋云
01fe05e0c8
Remove unused code from FeatureStorage.cs
2025-01-13 08:36:03 +08:00
辉鸭蛋
11dda84592
pick drops
2024-12-09 00:57:17 +08:00
辉鸭蛋
3c2739c5c5
add GoToAdventurersGuildTask
...
优化项目结构并新增任务和路径文件
主要更改:
- 在 `BetterGenshinImpact.csproj` 文件中,添加了对 `GameTask\Common\Element\Assets\Json\**` 目录的处理,并确保其内容始终复制到输出目录。
- 在 `RecognitionObject.cs` 文件中,新增了多个静态方法 `Ocr` 和一个静态实例 `OcrThis`。
- 在 `PathExecutor.cs` 文件中,优化了路径执行逻辑,新增 `GetPosition` 方法,并调整了超时判断。
- 在 `AutoPickAssets.cs` 文件中,添加了多个 `using` 语句,新增 `_logger` 和 `PickRo` 字段,并在构造函数中添加了自定义拾取按键的处理逻辑。
- 在 `AutoPickTrigger.cs` 文件中,移除了自定义拾取按键的初始化逻辑。
- 在 `OneKeyExpeditionTask.cs` 文件中,注释掉了 `Cv2.ImWrite` 方法的调用。
- 在 `TpTask.cs` 文件中,添加了点位很近时不切换的判断逻辑。
- 在 `BvSimpleOperation.cs` 文件中,新增了多个点击按钮的方法和 `FindF`、`FindFAndPress` 方法。
- 在 `BvStatus.cs` 文件中,新增了多个方法用于判断是否在对话界面并等待对话界面加载完成。
- 在 `GameTaskManager.cs` 文件中,添加了 `MapAssets.DestroyInstance` 方法的调用。
- 在 `HotKeyPageViewModel.cs` 文件中,注释掉了 `ElementalCollectHandler` 的测试代码,并添加了 `GoToAdventurersGuildTask` 的测试代码。
- 在 `TaskSettingsPageViewModel.cs` 文件中,更新了 `OnGoToAutoGeniusInvokationUrlAsync` 方法中的 URL。
- 添加了 `BetterGenshinImpact - Backup.csproj` 文件,配置了项目属性、资源文件和包引用。
- 添加了 `冒险家协会_枫丹.json`、`合成台_枫丹.json` 和 `合成台_璃月.json` 文件,定义了前往相应地点的路径和动作。
- 添加了 `ChooseTalkOptionTask.cs` 文件,实现了选择对话选项的任务。
- 添加了 `GoToAdventurersGuildTask.cs` 文件,实现了前往冒险家协会领取奖励的任务。
2024-11-10 22:49:55 +08:00
ema
335b053b32
change: moved image assets to new folder
2024-09-30 10:12:13 +08:00
辉鸭蛋
d9e5f2f1dd
add rotate task
...
在 `BgiYoloV8Predictor.cs` 文件中,添加了 `System.Diagnostics`、`System.Drawing.Imaging` 和 `System.IO` 的引用,并在 YOLOv8 识别结果返回前,添加了调试输出,使用 `JsonSerializer` 序列化识别结果并输出到调试窗口。
在 `AutoFightTask.cs` 文件中,添加了 `System.Collections.Generic` 和 `BetterGenshinImpact.GameTask.AutoPathing` 的引用,修改了 `combatScenes.BeforeTask` 方法的调用,使用新的取消令牌 `cts2`。在战斗操作的 `Task.Run` 中添加了 `try-catch` 块,以捕获并忽略异常。修改了战斗结束检测线程,使用 `async` 和 `await` 关键字,并在检测战斗结束时添加了 `try-catch` 块。修改了 `CheckFightFinish` 方法,改为异步方法 `CheckFightFinish`,并在检测战斗结束时添加了旋转视角的逻辑。
在 `PathExecutor.cs` 文件中,添加了关于 DPI 和分辨率影响转动速度的注释。
在 `TaskSettingsPageViewModel.cs` 文件中,在获取战斗策略后,创建了 `AutoFightParam` 对象,并设置了 `EndDetect` 和 `AutoPickAfterFight` 参数。修改了 `RunSoloTaskAsync` 方法的调用,传入了新的 `AutoFightParam` 对象。
在 `CameraRotateTask.cs` 文件中,添加了新的 `CameraRotateTask` 类,用于处理相机视角的旋转,实现了 `RotateToApproach` 方法,用于将视角旋转到接近目标角度,实现了 `WaitUntilRotatedTo` 异步方法,用于等待视角旋转到目标角度。
2024-09-30 00:10:08 +08:00
辉鸭蛋
0549df75b6
auto fight: init end detect
...
在 `BetterGenshinImpact.csproj` 文件中,删除了 `Assets\Model\World\` 和 `Script\JustTp\` 文件夹的包含项。
在 `AutoFightConfig.cs` 文件中,`AutoFightConfig` 类新增了两个属性:`_endDetect` 和 `_autoPickAfterFight`,并且默认值分别为 `true`。
在 `AutoFightParam.cs` 文件中,`AutoFightParam` 类新增了两个属性:`EndDetect` 和 `AutoPickAfterFight`,并且默认值分别为 `false`。
在 `AutoFightTask.cs` 文件中:
* 修改了 `using` 引用,添加了 `BetterGenshinImpact.Core.Config` 和 `BetterGenshinImpact.GameTask.Model.Area`,删除了 `BetterGenshinImpact.GameTask.AutoGeniusInvokation.Exception`。
* 在 `AutoFightTask` 类中,新增了 `_predictor` 和 `_lastFightFlagTime` 字段。
* 在 `AutoFightTask` 构造函数中,增加了对 `EndDetect` 和 `AutoPickAfterFight` 属性的检查,并在满足条件时初始化 `_predictor`。
* 修改了 `Start` 方法,增加了战斗结束检测线程和自动拾取掉落物的功能。
* 新增了 `CheckFightFinish` 和 `HasFightFlag` 方法,用于检测战斗是否结束。
在 `BetterGenshinImpact.Core.Recognition.ONNX` 命名空间下新增了 `BgiYoloV8Predictor` 类,并实现了 `IDisposable` 接口。
* 添加了一个只读字段 `_predictor`,并通过 `YoloV8Builder` 创建了一个默认的 YoloV8 预测器。
* 添加了一个 `Predictor` 属性,用于获取 `_predictor`。
* 添加了一个 `Detect` 方法,该方法接受一个 `ImageRegion` 对象作为参数,并返回一个包含类别和矩形框的字典。
* 添加了 `Dispose` 方法,用于释放 `_predictor` 的资源。
2024-09-29 23:01:29 +08:00
辉鸭蛋
5984adf015
auto pathing: add pick timer
...
更新地图特征点路径和UI文本,地图追踪时添加自动拾取
在 `FeatureStorage.cs` 中,将 `rootPath` 的路径从 `Global.Absolute(@"User\Map\");` 修改为 `Global.Absolute(@"Assets\Map\");`。
在 `Navigation.cs` 中,更新了日志信息的内容,使其更加明确首次加载速度较慢。
在 `BigMap.cs` 中,将 `FeatureMatcher` 的初始化参数从 `MapAssets.Instance.MainMap256BlockMat.Value` 修改为 `new Size(4096, 3328)`。
在 `MapPathingPage.xaml` 中,更新了部分 UI 文本,使其更加准确和清晰。例如,将“查看地图”修改为“查看实时追踪地图”,并在功能描述中添加了“尝鲜”字样。
在 `MapPathingPage.xaml` 中,注释掉了一个 `GridViewColumn`,该列包含了一个操作按钮。
在 `MapPathingViewModel.cs` 中,添加了 `using BetterGenshinImpact.Core.Script.Dependence.Model;` 引用。
在 `MapPathingViewModel.cs` 中,修改了 `TaskRunner` 的初始化参数,并在执行路径任务前添加了一个触发器。
在 `PickHandler.cs` 中,添加了一个新的类 `PickHandler`,并标记为 `[Obsolete]`,表示该类暂时不需要。
2024-09-08 20:28:50 +08:00