2024-09-28 19:46:22 +08:00
|
|
|
|
## OCR自动化执行方法
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-07-14 02:21:30 +08:00
|
|
|
|
### 分析图像更新
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-08-24 01:32:53 +08:00
|
|
|
|
这个方法会使用参数“图像稳定性阈值”“图像一致性阈值”“文本相似度阈值”
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
1. #### 图像稳定性阈值
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
当游戏文本不是立即出现(文本速度不是最快),或者游戏有动态背景或live2d时,截取的图片是会不停的发生变化的。
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
每次截图时,和上一次截图进行比较,计算相似度。当相似度大于阈值时,认为图片是处于稳定状态,进行下一步判断。
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
如果可以确定游戏是完全静态的,可以将这个值设置为0,反之可以适当提高该值。
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
1. #### 图像一致性阈值
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
这个参数是最重要的。
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
当图片稳定后,比较当前图片和上一次进行OCR时图片(而非上一次截图)的相似度。当相似度小于该阈值时,认为游戏文本发生了变化,进行OCR。
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
如果OCR频率过快,可以适当提高该值;反之如果太过迟钝,可以适当降低该值。
|
2024-07-14 02:34:54 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
1. #### 文本相似度阈值
|
2024-08-24 01:32:53 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
OCR的结果是不稳定的,经常对于图片的微小扰动会使文本发生微小变化,导致翻译也会连带重新翻译。
|
2024-08-24 01:32:53 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
每次调用OCR后,都会比较本次OCR的结果和上一次OCR的结果(编辑距离),当编辑距离大于阈值时,才会输出文本。
|
2024-08-24 01:32:53 +08:00
|
|
|
|
|
|
|
|
|
|
2024-07-14 02:21:30 +08:00
|
|
|
|
### 周期执行
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-08-24 01:32:53 +08:00
|
|
|
|
这个方法会依据“执行周期”来周期执行,并采用“文本相似度阈值”来避免翻译相同的文本。
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
|
|
|
|
|
2024-07-14 02:21:30 +08:00
|
|
|
|
### 分析图像更新+周期执行
|
2024-07-14 02:19:37 +08:00
|
|
|
|
|
2024-08-24 01:32:53 +08:00
|
|
|
|
结合上述两种方法,当根据至少每“执行周期”的时间间隔都会执行一次OCR,并采用“文本相似度阈值”来避免翻译相同的文本。且也会根据“分析图像更新”在间隔内进行OCR,间隔内的OCR会重置间隔的计时。
|
2024-08-21 08:57:14 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 鼠标键盘触发+等待稳定
|
|
|
|
|
|
2024-08-21 19:26:11 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
1. #### 触发事件
|
2024-08-21 19:26:11 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
默认以下鼠标键盘事件将触发该方法:按下鼠标左键、按下Enter、松开Ctrl、松开Shift、松开Alt。如果绑定了游戏窗口,则仅当游戏窗口为前台窗口时,才会触发方法。
|
2024-08-21 19:26:11 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
触发该方法后,由于需要等待游戏渲染新的文本,或文本可能不是立即出现(文本速度不是最快),因此需要稍微等待一小段时间,直到显示的文本稳定。
|
2024-08-21 08:57:14 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
触发该方法并稳定后,一定会进行翻译,不会考虑文本的相似度。
|
2024-08-24 01:32:53 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
如果文本速度是最快的,则可以将以下两个参数都设置为0。否则,判断需要等待的时间需要以下参数:
|
2024-08-21 08:57:14 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
1. #### 延迟(s)
|
2024-08-21 19:26:11 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
等待一个固定的延迟时间(内置有0.1s的固有延迟时间,以满足游戏引擎的内部逻辑处理)。
|
2024-08-21 08:57:14 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
1. #### 图像稳定性阈值
|
2024-08-21 08:57:14 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
这个值和上面的同名参数类似。不过这个仅用来判定文本是否绘制完毕,因此和上面的同名参数不共用配置。
|
2024-08-21 08:57:14 +08:00
|
|
|
|
|
2024-10-28 12:00:12 +08:00
|
|
|
|
由于慢速文本的绘制时间不固定,因此使用指定的固定延迟可能不能满足需要。当图像与上次截图相似度大于阈值时,执行本次触发事件。
|