Blazingly fast Genshin Impact/Honkai: Starrail artifacts scanner
Yet Another Scanner 又一个原神圣遗物导出器
基于 SVTR(基本上是 MobileNetV3_Small + Transformer)字符识别模型,使用原神字体对原神中会出现的字符串进行训练,达到更高的速度和更精确的结果。相比 CRNN(旧版Yas使用的模型),SVTR 可以达到更小的体积及更好的识别率。导出结果可以导入分析工具(例如 莫娜占卜铺 )进行配装或者其他计算。由于使用了 Rust 进行编写,运行效率和文件体积都得到了很大的提升。
SVTR 原文使用了多个 Local/Global Mixing,其中 Global Mixing 就是 Transformer 层,而根据PaddleOCR的代码,其 SVTR 识别模型也并未完全遵照 SVTR 原模型,而是骨干网络 + Transformer 的结构。Yas同样采用 PaddleOCR 的做法,使用 MobileNetV3_Small + Global Mixing,相当于将 CRNN 的 RNN 替换为 Transformer。由于训练集更加定制化,模型输入张量更小,网络结构简单,Yas模型相比PaddleOCR的V4轻量级模型,推理速度提升了6倍(仅在作者个人电脑上测试)。
yas.exe
把不同游戏的功能都集成到了一个exe中,因此需要使用命令行指定游戏,例如:
yas.exe genshin
运行yas.exe --help
查看所有指令,运行yas.exe help genshin
查看游戏特定的指令。
也可以下载特定游戏的版本,例如yas_artifact.exe
只能用于扫描原神的圣遗物。
yas.exe
,需要用命令行运行yas.exe genshin
,如果是yas_artifact.exe
,直接运行即可假设你知道如何使用命令行工具。
查看选项:
yas --help
yas help genshin
yas help starrail
只扫描五星圣遗物:
yas genshin --min-star=5
只扫描一行:
yas genshin --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
对二进制文件进行签名