Code Monkey home page Code Monkey logo

yas's Introduction

Yas

Yet Another Genshin Impact Scanner 又一个原神圣遗物导出器

介绍

基于 SVTR(基本上是 MobileNetV3_Small + Transformer)字符识别模型,使用原神字体对原神中会出现的字符串进行训练,达到更高的速度和更精确的结果。相比 CRNN,SVTR 可以达到更小的体积及更好的识别率 导出结果可以导入分析工具(例如 莫娜占卜铺 )进行配装或者其他计算 由于使用了 Rust 进行编写,运行效率和文件体积都得到了很大的提升

相关资料

识别模型

SVTR 原文使用了多个 Local/Global Mixing,其中 Global Mixing 就是 Transformer 层,而根据PaddleOCR的代码,其 SVTR 识别模型也并未完全遵照 SVTR 原模型,而是骨干网络 + Transformer 的结构 Yas同样采用 PaddleOCR 的做法,即 MobileNetV3_Small + Global Mixing,相当于将原 RNN 替换为 Transformer。

使用

Windows

  • 打开原神,并切换到背包页面,将背包拉到最上面
  • 下载单 exe 可执行文件,右键管理员运行
  • 扫描过程中,鼠标右键终止

Linux

  • 首先请确保自己在 x11 下或者 GNOME/Wayland 下(其他 wayland de 下会有很坏的性能
  • 用 wine 窗口化运行原神(或者全屏+虚拟桌面),打开圣遗物界面,拉到最顶
  • 启动 yas
  • Alt+Tab 切换到原神窗口,并且在鼠标变为十字后点击一下(还没做窗口聚焦),注意保证原神窗口整体在屏幕内
  • 等待扫描结束。右键中止还没做

注意

  • 默认 4 星以下圣遗物不扫描
  • 不是所有窗口比例都支持,推荐 16:9 的分辨率(如 1600x900, 1920x1080, 3840x2160)
  • 扫描过程中不要对鼠标做任何操作
  • 当前仅支持中文环境,若默认系统为非中文,请前往游戏设置界面修改 Language 为“简体中文”,否则无法读取原神窗口
  • 当前仅支持键鼠作为控制设备,暂不支持手柄。

命令行使用

假设你知道如何使用命令行工具 查看选项

yas --help

只扫描五星圣遗物

yas --min-star=5

只扫描一行

yas --max-row=1

编译

在构建前,请确保安装Git LFS,并运行git lfs pull。否则yas 在运行时会使用错误的模型

# Linux 下需要首先安装 rustup 以及 mingw-w64 ,然后再安装对应的 rust target,
# 构建到Linux需要 `libxdo` 和 `libxcb`
rustup default stable
rustup target add x86_64-pc-windows-gnu
cargo build --release --locked --target=x86_64-pc-windows-gnu

如果使用 macOS,为了保证正常捕捉窗口,需要在编译后运行 codesign.sh 对二进制文件进行签名

训练

yas-train

反馈

  • Issue
  • QQ 群:801106595

yas's People

Contributors

ainopara avatar amenomori avatar cdowen avatar chenjunyu19 avatar cyscgzx33 avatar fachep avatar guluguru avatar gztimewalker avatar jimmyyou avatar leeese avatar lencerf avatar makisekurisu avatar mokurin000 avatar omico avatar paranoid945 avatar ruibaixu avatar wormtql avatar ycr160 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yas's Issues

有关对 macOS 的支持

目前在使用 M1 芯片的 macOS 设备上可以借助 PlayCover 安装 iOS 版本的原神(详见 - 这篇文章),并使用「鼠标模拟触摸」的形式进行比如:点击选择圣遗物、下拉滚动圣遗物列表……的操作。请问本项目是否能够迁移到 macOS 上呢?(比如有使用 Windows-only 的 API 吗?)

目前我猜测可能出现的一些问题:比如窗口大小的识别、触摸下拉滚动页面……

由于我对 Rust 并不熟练,因此想先问问有没有可能做迁移,如果可能我很乐意上手帮忙 :)

HDR导致识别失败

关了HDR就好了

开启HDR的时候,yas的截图是这样的
test
看起来像是画面曝光和饱和度跟训练的差别太大吧

full backtrace,不过估计没啥用。。

>.\yas_v0.1.7.exe --verbose
[2022-03-29T01:38:06Z INFO  yas] Windows version >= 8.1
[2022-03-29T01:38:07Z INFO  yas] detected left: 3000
[2022-03-29T01:38:07Z INFO  yas] detected top: 32
[2022-03-29T01:38:07Z INFO  yas] detected width: 2560
[2022-03-29T01:38:07Z INFO  yas] detected height: 1440
[2022-03-29T01:38:07Z INFO  tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
[2022-03-29T01:38:07Z INFO  tract_linalg::x86_64_fma] mmm_i8_i8 and mmm_i8_i32: x86_64/avx2 activated
[2022-03-29T01:38:07Z INFO  yas::common] capture raw time: 10ms
[2022-03-29T01:38:07Z INFO  yas::common] preprocess time: 12ms
[2022-03-29T01:38:07Z INFO  yas::scanner::yas_scanner] raw count string: 圣遗物 1393/1500
[2022-03-29T01:38:07Z INFO  yas::scanner::yas_scanner] detected count: 1393
[2022-03-29T01:38:07Z INFO  yas::scanner::yas_scanner] total row: 175
[2022-03-29T01:38:07Z INFO  yas::scanner::yas_scanner] last column: 1
[2022-03-29T01:38:08Z INFO  yas::scanner::yas_scanner] YasScanResult { name: "明威之镡", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "
攻击力+29", sub_stat_2: "暴击率+3.5%", sub_stat_3: "元素充能效率+9.1%", sub_stat_4: "攻击力+18.1%", level: "+20", equip: "香菱已装备", star: 5 }
[2022-03-29T01:38:08Z INFO  yas::scanner::yas_scanner] YasScanResult { name: "明威之镡", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "
防御力+19.7%", sub_stat_2: "元素充能效率+11.0%", sub_stat_3: "防御力+16", sub_stat_4: "攻击力+14.0%", level: "+20", equip: "北斗已装备", star: 5 }
thread '<unnamed>' panicked at 'index out of bounds: the len is 14212 but the index is 4294966922', src\inference\pre_process.rs:50:21
stack backtrace:
   0:     0x7ff6c3c4d73f - <unknown>
   1:     0x7ff6c3c67c2a - <unknown>
   2:     0x7ff6c3c48648 - <unknown>
   3:     0x7ff6c3c5029b - <unknown>
   4:     0x7ff6c3c4fd94 - <unknown>
   5:     0x7ff6c3c5079c - <unknown>
   6:     0x7ff6c3c5065b - <unknown>
   7:     0x7ff6c3c4e087 - <unknown>
   8:     0x7ff6c3c50359 - <unknown>
   9:     0x7ff6c3c866a0 - <unknown>
  10:     0x7ff6c3c86667 - <unknown>
  11:     0x7ff6c337824b - <unknown>
  12:     0x7ff6c3378c4f - <unknown>
  13:     0x7ff6c337c743 - <unknown>
  14:     0x7ff6c337fa27 - <unknown>
  15:     0x7ff6c339d2a9 - <unknown>
  16:     0x7ff6c3c5467c - <unknown>
  17:     0x7ffc214c54e0 - BaseThreadInitThunk
  18:     0x7ffc2322485b - RtlUserThreadStart
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SendError { .. }', src\scanner\yas_scanner.rs:583:52
stack backtrace:
   0:     0x7ff6c3c4d73f - <unknown>
   1:     0x7ff6c3c67c2a - <unknown>
   2:     0x7ff6c3c48648 - <unknown>
   3:     0x7ff6c3c5029b - <unknown>
   4:     0x7ff6c3c4fd94 - <unknown>
   5:     0x7ff6c3c5079c - <unknown>
   6:     0x7ff6c3c5065b - <unknown>
   7:     0x7ff6c3c4e087 - <unknown>
   8:     0x7ff6c3c50359 - <unknown>
   9:     0x7ff6c3c866a0 - <unknown>
  10:     0x7ff6c3c867b3 - <unknown>
  11:     0x7ff6c3370df0 - <unknown>
  12:     0x7ff6c3355e78 - <unknown>
  13:     0x7ff6c335d5b6 - <unknown>
  14:     0x7ff6c3351a9c - <unknown>
  15:     0x7ff6c3c4cfff - <unknown>
  16:     0x7ff6c3359587 - <unknown>
  17:     0x7ff6c3c733d4 - <unknown>
  18:     0x7ffc214c54e0 - BaseThreadInitThunk
  19:     0x7ffc2322485b - RtlUserThreadStart

初始化失败

似乎没有识别到窗口,我用的是窗口化的原神,1920x1080
debcf14935f4b20250ef43fcfa9951c

识别中断:翻页出现问题

[2022-07-20T14:21:27Z INFO yas] Windows version >= 8.1 [2022-07-20T14:21:28Z INFO yas] detected left: 0 [2022-07-20T14:21:28Z INFO yas] detected top: 0 [2022-07-20T14:21:28Z INFO yas] detected width: 1920 [2022-07-20T14:21:28Z INFO yas] detected height: 1080 [2022-07-20T14:21:28Z INFO tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated [2022-07-20T14:21:28Z INFO tract_linalg::x86_64_fma] mmm_i8_i8 and mmm_i8_i32: x86_64/avx2 activated [2022-07-20T14:21:28Z INFO yas::common] capture raw time: 5ms [2022-07-20T14:21:28Z INFO yas::common] preprocess time: 8ms [2022-07-20T14:21:28Z INFO yas::scanner::yas_scanner] raw count string: 圣素值 94701300 [2022-07-20T14:21:28Z INFO yas::scanner::yas_scanner] detected count: 1500 [2022-07-20T14:21:28Z INFO yas::scanner::yas_scanner] total row: 188 [2022-07-20T14:21:28Z INFO yas::scanner::yas_scanner] last column: 4 [2022-07-20T14:21:30Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "魂香之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素充伤害+27.2%", sub_stat_2: "元攻击力+5.1%", sub_stat_3: "元命之+15.2%", sub_stat_4: "元素之+23", level: "267", equip: "雷野院藏野的绿野", star: 5 } [2022-07-20T14:21:30Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "魂香之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素伤率+6.2%", sub_stat_2: "元素充伤害+18.7%", sub_stat_3: "生命值+11.1%", sub_stat_4: "元素之+21", level: "267", equip: "雷野院藏野的绿野", star: 5 } [2022-07-20T14:21:30Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "魂香之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素充伤害+20.2%", sub_stat_2: "元素率+10.1%", sub_stat_3: "元素之+5.8%", sub_stat_4: "生命值+4.7%", level: "267", equip: "罗莎裟人的已装备", star: 5 } [2022-07-20T14:21:30Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "垂玉之叶", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "元素之害+23", sub_stat_2: "元暴伤率+9.7%", sub_stat_3: "元素充伤害+20.2%", sub_stat_4: "伤攻击力+5.1%", level: "267", equip: "的 心藏野藏野", star: 5 } [2022-07-20T14:21:30Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "垂玉之叶", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "元素充伤害+22.5%", sub_stat_2: "元素伤害+16", sub_stat_3: "元素伤率+9.3%", sub_stat_4: "元素之+21", level: "267", equip: "鹿里绫 人藏已装备", star: 5 } [2022-07-20T14:21:30Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "垂玉之叶", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "元素充伤害+20.2%", sub_stat_2: "生命值+4.7%", sub_stat_3: "元素精害+19", sub_stat_4: "元素伤率+8.6%", level: "267", equip: "的心 藏野藏野", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "垂玉之叶", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "元攻精力+5.3%", sub_stat_2: "生雷玉之+99", sub_stat_3: "元素伤率+13.6%", sub_stat_4: "元素充伤害+12.4%", level: "267", equip: "的心藏野藏野", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "祝祀之凭", main_stat_name: "攻击力", main_stat_value: "46.6%", sub_stat_1: "元素精通+23", sub_stat_2: "元素充能效率+10.4%", sub_stat_3: "生命值+299", sub_stat_4: "元素充伤害+28.0%", level: "267", equip: "鹿里绫人藏已装备", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "祝祀之凭", main_stat_name: "元素充能效率", main_stat_value: "51.8%", sub_stat_1: "生命值+10.5%", sub_stat_2: "元素充伤害+11.7%", sub_stat_3: "元素伤率+9.7%", sub_stat_4: "元素伤害+21", level: "267", equip: "莫娜已装备", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "祝祀之凭", main_stat_name: "攻击力", main_stat_value: "46.6%", sub_stat_1: "伤攻击害+12.4%", sub_stat_2: "元素伤率+5.4%", sub_stat_3: "元素充伤害+12.4%", sub_stat_4: "元素伤害+37", level: "267", equip: "九绿人野翠", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "涌泉之盏", main_stat_name: "攻击力", main_stat_value: "46.6%", sub_stat_1: "元素伤率+14.4%", sub_stat_2: "之加+35", sub_stat_3: "元素充伤备害+5.4%", sub_stat_4: "生雷玉之值478", level: "267", equip: "鹿 人院藏藏野藏的翠", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "涌泉之盏", main_stat_name: "风元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "之+51", sub_stat_2: "元素充能效率+11.7%", sub_stat_3: "元素充伤装备+14.8%", sub_stat_4: "生命值+5.3%", level: "267", equip: "鹿人院藏藏野藏的翠", star: 5 } [2022-07-20T14:21:31Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "涌泉之盏", main_stat_name: "岩元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "元素充伤害+13.2%", sub_stat_2: "元素之+10.5%", sub_stat_3: "伤攻击力+14.6%", sub_stat_4: "元素充能效率+12.3%", level: "267", equip: "珊瑚人藏已装备", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "涌泉之盏", main_stat_name: "雷元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "生命值+5.3%", sub_stat_2: "元素充伤害+17.9%", sub_stat_3: "饰之+33", sub_stat_4: "元素精力+9.9%", level: "267", equip: "鹿人院藏藏野藏的翠", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "涌泉之盏", main_stat_name: "水元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "元素伤率+10.5%", sub_stat_2: "元素充能效率+11.7%", sub_stat_3: "加+39", sub_stat_4: "伤攻击力+7.3%", level: "267", equip: "鹿人院藏藏野藏的翠", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "浮溯之珏", main_stat_name: "暴击伤害", main_stat_value: "62.2%", sub_stat_1: "生命值+1,105", sub_stat_2: "元素率+10.5%", sub_stat_3: "攻击力+19", sub_stat_4: "元素伤害+19", level: "267", equip: "素人的翠绿的", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "浮溯之珏", main_stat_name: "暴击率", main_stat_value: "31.1%", sub_stat_1: "生命之++448", sub_stat_2: "元素之+9.9%", sub_stat_3: "元素精害通+40", sub_stat_4: "元素充伤害+13.2%", level: "267", equip: "素 人的翠绿的", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "生灵之华", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素充伤害+7.8%", sub_stat_2: "元素伤害+19", sub_stat_3: "元素伤率+11.3%", sub_stat_4: "元素充能效率+11.0%", level: "267", equip: "烟绯已装备", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "生灵之华", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元攻精力+16.3%", sub_stat_2: "生命值+5.3%", sub_stat_3: "元素充伤装备+14.8%", sub_stat_4: "元素伤率+7.4%", level: "267", equip: "珊人之藏的藏野", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "潜光片羽", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "元攻击力+16", sub_stat_2: "元素伤率+6.2%", sub_stat_3: "元素充能效率+5.2%", sub_stat_4: "元素充伤害+24.9%", level: "267", equip: "烟绯已装备", star: 5 } [2022-07-20T14:21:32Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "结契之刻", main_stat_name: "风元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "元攻击害+17.5%", sub_stat_2: "之+19", sub_stat_3: "元素之+11.1%", sub_stat_4: "元素伤率+9.3%", level: "267", equip: "鹿素之的翠藏野藏", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "结契之刻", main_stat_name: "水元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "元素伤率+10.9%", sub_stat_2: "元素充能效率+11.0%", sub_stat_3: "元素精力+9.9%", sub_stat_4: "之+35", level: "267", equip: "雷泽已装备", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "结契之刻", main_stat_name: "雷元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "元素精害通+40", sub_stat_2: "生命值+9.9%", sub_stat_3: "元素充能效率+6.5%", sub_stat_4: "元素充伤害+22.5%", level: "267", equip: "鹿素之的翠藏野藏", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "结契之刻", main_stat_name: "风元素伤害加成", main_stat_value: "46.6%", sub_stat_1: "生命值+5.8%", sub_stat_2: "元击力+60", sub_stat_3: "元素充伤害+11.7%", sub_stat_4: "之+33", level: "267", equip: "烟绯 已装备", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "虺雷之姿", main_stat_name: "暴击伤害", main_stat_value: "62.2%", sub_stat_1: "生玉之+209", sub_stat_2: "元素充能效率+11.7%", sub_stat_3: "元素精害通+40", sub_stat_4: "元命之力+15.7%", level: "267", equip: "烟绯已装备", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海染之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元攻精力+18.7%", sub_stat_2: "元素充伤害+10.9%", sub_stat_3: "饰之++19", sub_stat_4: "元素伤率+6.6%", level: "267", equip: "少 女苦的良辰", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海染之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素充伤害+30.3%", sub_stat_2: "元素之+18", sub_stat_3: "伤攻击害+12.4%", sub_stat_4: "元素之+11.1%", level: "267", equip: "绿 之火", star: 5 } [2022-07-20T14:21:33Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海染之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素充伤害+27.2%", sub_stat_2: "元素之+18", sub_stat_3: "元素伤率+3.1%", sub_stat_4: "生命值+9.9%", level: "267", equip: "绿之 火", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海染之花", main_stat_name: "生命值", main_stat_value: "4,780", sub_stat_1: "元素充伤害+10.9%", sub_stat_2: "生命值+4.1%", sub_stat_3: "元素充能效率+11.7%", sub_stat_4: "攻击力+58", level: "267", equip: "罗已装备", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "渊宫之羽", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "元加+32", sub_stat_2: "元素伤率+3.9%", sub_stat_3: "元素充伤害+27.2%", sub_stat_4: "生雷玉之值+209", level: "267", equip: "绿之火", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "渊宫之羽", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "伤攻击害+11.7%", sub_stat_2: "元素率+10.5%", sub_stat_3: "元素充伤害+13.2%", sub_stat_4: "元攻击力+19", level: "267", equip: "罗 已装备", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "渊宫之羽", main_stat_name: "攻击力", main_stat_value: "311", sub_stat_1: "生玉之+538", sub_stat_2: "元素充伤害+17.9%", sub_stat_3: "元素充能效率+11.0%", sub_stat_4: "生命值+4.1%", level: "267", equip: " 少女苦的良辰", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "离别之贝", main_stat_name: "生命值", main_stat_value: "46.6%", sub_stat_1: "元素伤率+2.7%", sub_stat_2: "伤攻击力+14.6%", sub_stat_3: "元素充伤装备+18.7%", sub_stat_4: "元素伤害+44", level: "267", equip: "达里达的已装备", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "真珠之笼", main_stat_name: "攻击力", main_stat_value: "46.6%", sub_stat_1: "元素伤率+6.6%", sub_stat_2: "之+39", sub_stat_3: "元素精通+37", sub_stat_4: "元素充能效率+15.5%", level: "267", equip: "少女苦 的良辰", star: 5 } [2022-07-20T14:21:34Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "真珠之笼", main_stat_name: "生命值", main_stat_value: "46.6%", sub_stat_1: "元素充伤害+5.4%", sub_stat_2: "元之+51", sub_stat_3: "元素充能效率+15.5%", sub_stat_4: "元命之值+5.8%", level: "267", equip: " 罗已装备", star: 5 } [2022-07-20T14:21:35Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海祇之冠", main_stat_name: "生命值", main_stat_value: "46.6%", sub_stat_1: "元素伤率+2.7%", sub_stat_2: "元之+51", sub_stat_3: "元素充伤装备+21.8%", sub_stat_4: "攻击力+16", level: "267", equip: "达里达 的已装备", star: 5 } [2022-07-20T14:21:35Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海祇之冠", main_stat_name: "治疗加成", main_stat_value: "35.9%", sub_stat_1: "生命值+9.3%", sub_stat_2: "元素伤害+44", sub_stat_3: "攻击力+56", sub_stat_4: "之+19", level: "267", equip: "罗已装备", star: 5 } [2022-07-20T14:21:35Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海祇之冠", main_stat_name: "暴击率", main_stat_value: "31.1%", sub_stat_1: "生玉之+239", sub_stat_2: "元素充伤害+14.8%", sub_stat_3: "元攻击力+16", sub_stat_4: "之+68", level: "267", equip: "绿之火", star: 5 } [2022-07-20T14:21:35Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海祇之冠", main_stat_name: "暴击伤害", main_stat_value: "62.2%", sub_stat_1: "生命值+9.3%", sub_stat_2: "元素之+4.7%", sub_stat_3: "元素伤率+11.7%", sub_stat_4: "元素充能效率+9.1%", level: "267", equip: "五郎已装备", star: 5 } [2022-07-20T14:21:35Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "海祇之冠", main_stat_name: "治疗加成", main_stat_value: "35.9%", sub_stat_1: "元素伤率+9.3%", sub_stat_2: "元素充伤害+14.8%", sub_stat_3: "元素之+10.5%", sub_stat_4: "元素伤害+23", level: "267", equip: "少女苦的良辰", star: 5 } [2022-07-20T14:21:35Z ERROR yas::scanner::yas_scanner] 翻页出现问题 [2022-07-20T14:21:35Z INFO yas::scanner::yas_scanner] 扫描结束,等待识别线程结束,请勿关闭程序 [2022-07-20T14:21:35Z INFO yas::scanner::yas_scanner] error count: 40 [2022-07-20T14:21:35Z INFO yas::scanner::yas_scanner] dup count: 0 [2022-07-20T14:21:35Z INFO yas::scanner::yas_scanner] count: 0 [2022-07-20T14:21:35Z INFO yas] time: 6.9776853s [2022-07-20T14:21:35Z INFO yas] 识别结束,请按Enter退出

版本:yas v0.1.8
以及cocogoat-control-1.2.3出现同样的问题

一个建议

可以手动输入圣遗物数量吗
识图功能不能区分1和7

希望可以添加一下各个角色专属方案计算的比较基准数据说明

就是计算后那个计算了多少组搭配下方的具体方案排序选择那里,第一套应该都是100/XXXXX,后面这个XXXXX具体是指哪个数值能否添加一个说明。我配神子的时候也是碰巧发现XXXXX是三阶杀生樱的期望伤害,但是雷军的这个XXXX具体是哪个值就找不到了。应该是整个Q期间的全部伤害期望之和?希望能够添加这个说明

无法扫描

image
窗口化1600*900 artifacts界面 管理员运行 但是error 大佬能否看看哪出了问题

新版本圣遗物副词条缺失的错误

v1.0.8版本的yas扫描部分圣遗物会识别不出第四条副词条,如下图为v1.0.8和v1.0.7扫描结果中一个圣遗物的对比,可以看到这个4级的圣遗物只有三个副词条。扫描过程全程无报错,这个错误是在将扫描结果导入其他工具分析时发现的。
image

v0.1.9无法正确点击圣遗物(游戏版本3.0)

基础运行条件:

游戏分辨率窗口1920x1080和1600x900都试了,yas版本v0.1.9,游戏版本3.0,右键管理员身份运行,过程中鼠标未动,屏幕分辨率3440x1440,刷新率144hz。

观察到的现象:

扫描过程中可以发现第一个圣遗物就没有点到,然后就显示扫描结束。

推论:

目前推断为新版圣遗物界面左右空白区域大小变了,参考2022.6.6的演示视频可以发现视频中一行8个圣遗物,而我的只有7个(如下图)。重启游戏之后仍然没有变化。判断为issue。

以下为yas log:

[2022-08-26T04:28:47Z INFO yas::common::utils] Shcore.dll found
[2022-08-26T04:28:48Z INFO yas] left = 920, top = 281, width = 1600, height = 900
[2022-08-26T04:28:49Z INFO tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
[2022-08-26T04:28:49Z INFO tract_linalg::x86_64_fma] mmm_i8_i8 and mmm_i8_i32: x86_64/avx2 activated
[2022-08-26T04:28:49Z INFO yas::common] capture raw time: 3ms
[2022-08-26T04:28:49Z INFO yas::common] preprocess time: 4ms
[2022-08-26T04:28:49Z INFO yas::scanner::yas_scanner] raw count string: +6666168
[2022-08-26T04:28:49Z INFO yas::scanner::yas_scanner] detected count: 1500
[2022-08-26T04:28:49Z INFO yas::scanner::yas_scanner] total row: 188
[2022-08-26T04:28:49Z INFO yas::scanner::yas_scanner] last column: 4
[2022-08-26T04:28:50Z INFO yas::scanner::yas_scanner] 扫描结束,等待识别线程结束,请勿关闭程序
[2022-08-26T04:28:50Z INFO yas::scanner::yas_scanner] error count: 0
[2022-08-26T04:28:50Z INFO yas::scanner::yas_scanner] dup count: 0
[2022-08-26T04:28:50Z INFO yas::scanner::yas_scanner] count: 0
[2022-08-26T04:28:50Z INFO yas] time: 1.0673178s
[2022-08-26T04:28:50Z INFO yas] 识别结束,请按Enter退出

以下为本人游戏截屏:

image

以下为教程视频中游戏截屏:

image

希望支持加载图片集

腾讯云游戏用户,测试目前yas因该还不支持,所以手动将圣遗物截图了。请问yas能否支持输入图片集?

无法识别主暴击头

所有的主暴击都被识别成了雷医击壶率。比如钟离身上的这个:

[2021-10-31T06:54:11Z ERROR yas::scanner::yas_scanner] wrong detection: YasScanResult { name: "将帅兜鍪", main_stat_name: "雷医击壶率", main_stat_value: "31.1%", sub_stat_1: "攻击力+10.5%", sub_stat_2: "元素充能效率+4.5%", sub_stat_3: "元素精通+21", sub_stat_4: "攻击力+70", level: "+20", equip: "钟离已装备", star: 5 }

遇到鼠标无法移动的问题

程序版本

yas_v0.1.7.exe

系统信息

来自 cmd - systeminfo

OS 名称: Microsoft Windows 10 企业版
OS 版本: 10.0.18363 暂缺 Build 18363
OS 制造商: Microsoft Corporation
OS 配置: 独立工作站
OS 构建类型: Multiprocessor Free
注册的所有人: Windows 用户
注册的组织:
产品 ID: 00329-00000-00003-AA501
初始安装日期: 2020/5/2, 17:28:36
系统启动时间: 2022/2/27, 12:34:26
系统制造商: Gigabyte Technology Co., Ltd.
系统型号: To be filled by O.E.M.
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: AMD64 Family 21 Model 16 Stepping 1 AuthenticAMD ~3600 Mhz
BIOS 版本: American Megatrends Inc. FC, 2015/12/25
Windows 目录: C:\WINDOWS
系统目录: C:\WINDOWS\system32
启动设备: \Device\HarddiskVolume6
系统区域设置: zh-cn;中文(**)
输入法区域设置: en-us;英语(美国)
时区: (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量: 12,234 MB
可用的物理内存: 4,303 MB
虚拟内存: 最大值: 14,090 MB
虚拟内存: 可用: 4,146 MB
虚拟内存: 使用中: 9,944 MB
页面文件位置: F:\pagefile.sys
域: WORKGROUP
登录服务器: \DESKTOP-8AFPTP2
修补程序: 安装了 31 个修补程序。
[01]: KB5010483
[02]: KB4513661
[03]: KB4516115
[04]: KB4517245
[05]: KB4521863
[06]: KB4535680
[07]: KB4537759
[08]: KB4552152
[09]: KB4560959
[10]: KB4561600
[11]: KB4565554
[12]: KB4569073
[13]: KB4576751
[14]: KB4577670
[15]: KB4580325
[16]: KB4584229
[17]: KB4586863
[18]: KB4598479
[19]: KB4601395
[20]: KB5000908
[21]: KB5001406
[22]: KB5003244
[23]: KB5003710
[24]: KB5003974
[25]: KB5004748
[26]: KB5005412
[27]: KB5007114
[28]: KB4565351
[29]: KB5006936
[30]: KB5007375
[31]: KB5005700

问题描述

  1. 执行 yas 或 yas --verbose 时
    仅打出如下日志:
    D:\o>yas
    [2022-02-27T10:59:39Z INFO yas] Windows version >= 8.1
    [2022-02-27T10:59:40Z INFO yas] detected left: 135
    [2022-02-27T10:59:40Z INFO yas] detected top: 57
    [2022-02-27T10:59:40Z INFO yas] detected width: 1280
    [2022-02-27T10:59:40Z INFO yas] detected height: 720
    [2022-02-27T10:59:41Z INFO tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
    [2022-02-27T10:59:41Z INFO yas::common] capture raw time: 3ms
    [2022-02-27T10:59:41Z INFO yas::common] preprocess time: 6ms

    D:\o>

    运行目录下出现当前界面的截图,鼠标未移动

  2. 执行 yas --capture-only 时
    打印如下日志:
    [2022-02-27T10:58:14Z INFO yas] Windows version >= 8.1
    [2022-02-27T10:58:15Z INFO yas] detected left: 135
    [2022-02-27T10:58:15Z INFO yas] detected top: 57
    [2022-02-27T10:58:15Z INFO yas] detected width: 1280
    [2022-02-27T10:58:15Z INFO yas] detected height: 720
    [2022-02-27T10:58:15Z INFO tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
    [2022-02-27T10:58:15Z INFO yas::common] capture raw time: 4ms
    [2022-02-27T10:58:15Z INFO yas::common] preprocess time: 7ms
    [2022-02-27T10:58:16Z INFO yas] time: 0.0595623s
    [2022-02-27T10:58:16Z INFO yas] 识别结束,请按Enter退出

运行目录下出现 captures 文件夹,其中有识别出的圣遗物数量及当前选中的遗物的属性信息,鼠标未移动

建议使用定点数

虽然可能会影响性能,但是还是建议使用 decimal 之类的定点数或者高精度小数存储小数。

{
    "setName": "noblesseOblige",
    "position": "flower",
    "mainTag": {
        "name": "lifeStatic",
        "value": 4780.0
    },
    "normalTags": [
        {
            "name": "lifePercentage",
            "value": 0.08199999999999999
        },
        {
            "name": "recharge",
            "value": 0.12300000000000001
        },
        {
            "name": "attackPercentage",
            "value": 0.087
        },
        {
            "name": "criticalDamage",
            "value": 0.14800000000000002
        }
    ],
    "omit": false,
    "level": 20,
    "star": 5
}

像上面的元素充能效率、暴击伤害略大,生命值百分比略小,不能直接判等,也不太好以范围的形式兼容,尤其是经过复杂运算后,或者拿来作数值猜解时。

经过简单查询发现,Rust原生好像没有定点数相关类型,也许 rust-decima 这个仓库可能会有点用。或者,要不干脆用字符串存数值?

手柄界面支持

这个需求可能优先级不大高,有机会请加入手柄界面支持。多谢!

更新后圣遗物总数检测有误

图片:
WeChat Screenshot_20211013233642

结果:

[2021-10-14T06:33:47Z INFO  yas::scanner::yas_scanner] raw count string: 圣遗物 9691000
[2021-10-14T06:33:47Z INFO  yas::scanner::yas_scanner] detected count: 96

希望路径支持全路径中文格式

现在最后一个路径如果是中文就会显示不支持的分辨率,而如果多套一层英文文件夹使最后一个文件夹是英文,而前面有中文可以正常使用

Snipaste_2022-04-01_23-52-05

Snipaste_2022-04-01_23-52-22

v0.1.8 性能较上一版大幅降低

概述

变量控制:

  • 同一设备、同一账号的1063件五星圣遗物
  • 没有“来歆余响”和“辰砂往生录”两套新圣遗物

结论

版本 capture preprocess 总时间
0.1.7 15ms 18ms 166.5471636s
0.1.8 9ms 11ms 255.6337522s

0.1.8 版本的capture raw timepreprocess time表现都比上一版好,但总时间较原先慢了53.5%

Logs

v0.1.7:

> sudo .\yas_v0.1.7.exe --min-star=5
[2022-04-10T16:03:01Z INFO  yas] Windows version >= 8.1
[2022-04-10T16:03:02Z INFO  yas] detected left: 0
[2022-04-10T16:03:02Z INFO  yas] detected top: 0
[2022-04-10T16:03:02Z INFO  yas] detected width: 3840
[2022-04-10T16:03:02Z INFO  yas] detected height: 2160
[2022-04-10T16:03:02Z INFO  tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
[2022-04-10T16:03:02Z INFO  tract_linalg::x86_64_fma] mmm_i8_i8 and mmm_i8_i32: x86_64/avx2 activated
[2022-04-10T16:03:02Z INFO  yas::common] capture raw time: 15ms
[2022-04-10T16:03:02Z INFO  yas::common] preprocess time: 18ms
[2022-04-10T16:03:02Z INFO  yas::scanner::yas_scanner] raw count string: 圣遗物 1348/1500
[2022-04-10T16:03:02Z INFO  yas::scanner::yas_scanner] detected count: 1348
[2022-04-10T16:03:02Z INFO  yas::scanner::yas_scanner] total row: 169
[2022-04-10T16:03:02Z INFO  yas::scanner::yas_scanner] last column: 4
[2022-04-10T16:03:10Z INFO  yas::scanner::yas_scanner] avg scroll/row: 10
[2022-04-10T16:03:11Z INFO  yas::scanner::yas_scanner] avg scroll/row: 10
[2022-04-10T16:03:12Z INFO  yas::scanner::yas_scanner] avg scroll/row: 9.666666666666666
[2022-04-10T16:03:13Z INFO  yas::scanner::yas_scanner] avg scroll/row: 9.75
[2022-04-10T16:03:14Z INFO  yas::scanner::yas_scanner] avg scroll/row: 9.8
[2022-04-10T16:05:49Z INFO  yas::scanner::yas_scanner] 扫描结束,等待识别线程结束,请勿关闭程序
[2022-04-10T16:05:49Z INFO  yas::scanner::yas_scanner] error count: 0
[2022-04-10T16:05:49Z INFO  yas::scanner::yas_scanner] dup count: 0
[2022-04-10T16:05:49Z INFO  yas::scanner::yas_scanner] count: 1063
[2022-04-10T16:05:49Z INFO  yas] time: 166.5471636s
[2022-04-10T16:05:49Z INFO  yas] 识别结束,请按Enter退出

v0.1.8:

> sudo .\yas_v0.1.8.exe --min-star=5
[2022-04-10T15:57:02Z INFO  yas] Windows version >= 8.1
[2022-04-10T15:57:03Z INFO  yas] detected left: 0
[2022-04-10T15:57:03Z INFO  yas] detected top: 0
[2022-04-10T15:57:03Z INFO  yas] detected width: 3840
[2022-04-10T15:57:03Z INFO  yas] detected height: 2160
[2022-04-10T15:57:03Z INFO  tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
[2022-04-10T15:57:03Z INFO  tract_linalg::x86_64_fma] mmm_i8_i8 and mmm_i8_i32: x86_64/avx2 activated
[2022-04-10T15:57:03Z INFO  yas::common] capture raw time: 9ms
[2022-04-10T15:57:03Z INFO  yas::common] preprocess time: 11ms
[2022-04-10T15:57:03Z INFO  yas::scanner::yas_scanner] raw count string: 圣遗物 1348/1500
[2022-04-10T15:57:03Z INFO  yas::scanner::yas_scanner] detected count: 1348
[2022-04-10T15:57:03Z INFO  yas::scanner::yas_scanner] total row: 169
[2022-04-10T15:57:03Z INFO  yas::scanner::yas_scanner] last column: 4
[2022-04-10T15:57:14Z INFO  yas::scanner::yas_scanner] avg scroll/row: 10
[2022-04-10T15:57:15Z INFO  yas::scanner::yas_scanner] avg scroll/row: 10
[2022-04-10T15:57:16Z INFO  yas::scanner::yas_scanner] avg scroll/row: 9.666666666666666
[2022-04-10T15:57:17Z INFO  yas::scanner::yas_scanner] avg scroll/row: 9.75
[2022-04-10T15:57:18Z INFO  yas::scanner::yas_scanner] avg scroll/row: 9.8
[2022-04-10T16:01:19Z INFO  yas::scanner::yas_scanner] 扫描结束,等待识别线程结束,请勿关闭程序
[2022-04-10T16:01:19Z INFO  yas::scanner::yas_scanner] error count: 0
[2022-04-10T16:01:19Z INFO  yas::scanner::yas_scanner] dup count: 0
[2022-04-10T16:01:19Z INFO  yas::scanner::yas_scanner] count: 1063
[2022-04-10T16:01:19Z INFO  yas] time: 255.6337522s
[2022-04-10T16:01:19Z INFO  yas] 识别结束,请按Enter退出 

物伤杯识别错误

多次实验,物伤杯一直报错。
总共3个物伤杯,都装备了的情况
image
都没装备的情况
image

圣遗物是否加锁识别错误

RT
在1600x900及1920x1080分辨率下均出现识别错误
表现为部分未加锁的识别为加锁,部分加锁的识别为不加锁
(导致后续使用yas-lock进行加解锁完全错乱…

另外,在全部未加锁下进行识别的话
会有一半圣遗物被识别为加锁

无法扫描,鼠标指针不移动

最新版本,最新游戏客户端。鼠标指针能自动固定到第一个圣遗物上但是不会再移动了。

[2022-07-20T03:40:51Z INFO  yas] Windows version >= 8.1
[2022-07-20T03:40:52Z INFO  yas] detected left: 1626
[2022-07-20T03:40:52Z INFO  yas] detected top: 328
[2022-07-20T03:40:52Z INFO  yas] detected width: 1600
[2022-07-20T03:40:52Z INFO  yas] detected height: 900
[2022-07-20T03:40:52Z INFO  tract_linalg::x86_64_fma] mmm_f32, sigmoid_f32, tanh_f32: x86_64/fma activated
[2022-07-20T03:40:52Z INFO  tract_linalg::x86_64_fma] mmm_i8_i8 and mmm_i8_i32: x86_64/avx2 activated
[2022-07-20T03:40:52Z INFO  yas::common] capture raw time: 1ms
[2022-07-20T03:40:52Z INFO  yas::common] preprocess time: 1ms
[2022-07-20T03:40:52Z INFO  yas::scanner::yas_scanner] raw count string: 3终水
[2022-07-20T03:40:52Z INFO  yas::scanner::yas_scanner] detected count: 1500
[2022-07-20T03:40:52Z INFO  yas::scanner::yas_scanner] total row: 188
[2022-07-20T03:40:52Z INFO  yas::scanner::yas_scanner] last column: 4
[2022-07-20T03:40:53Z INFO  yas::scanner::yas_scanner] 扫描结束,等待识别线程结束,请勿关闭程序
[2022-07-20T03:40:53Z INFO  yas::scanner::yas_scanner] error count: 0
[2022-07-20T03:40:53Z INFO  yas::scanner::yas_scanner] dup count: 0
[2022-07-20T03:40:53Z INFO  yas::scanner::yas_scanner] count: 0
[2022-07-20T03:40:53Z INFO  yas] time: 1.0851657s
[2022-07-20T03:40:53Z INFO  yas] 识别结束,请按Enter退出

无法运行

image
在全屏状态下打开会自动弹出启动页面,然后提示分辨率不支持

不支持21:9屏幕比例

[2021-10-06T15:41:49Z INFO yas] detected left: 0
[2021-10-06T15:41:49Z INFO yas] detected top: 0
[2021-10-06T15:41:49Z INFO yas] detected width: 2560
[2021-10-06T15:41:49Z INFO yas] detected height: 1080
[2021-10-06T15:41:49Z ERROR yas::common::utils] 不支持的分辨率, 按Enter退出

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.