zyddnys / manga-image-translator

Translate manga/image 一键翻译各类图片内文字 https://cotrans.touhou.ai/
https://cotrans.touhou.ai/
GNU General Public License v3.0
5.21k stars 536 forks source link

[Bug]: 字体倾斜时进行Inpainting会抹除已保留的to_lang文字且--no-text-lang-skip失灵 #721

Open popcion opened 5 hours ago

popcion commented 5 hours ago

Issue

当检测以下内容时: 日文+日文汉字,实际检测会将后方日文汉字检测成中文,从而被过滤,我尝试使用--no-text-lang-skip来跳过,但是仍然将后半部分过滤。 例如: 先生と生徒の写真集 パートナーの美食之旅 クラスメートの毕业典礼 メンバーの文化交流 チームの庆祝活动 カップルの浪漫之夜

这暂时没有太大影响,因为还保留着原文。当检测以下内容时,翻译日文且保留日文汉字,不影响阅读: image

但是也有一些漫画的文本是这样的(常见于标题等特殊场景): image 此时进行检测并涂抹的话,由于日文汉字被认为是中文,它们被保留,而二者检测后的两个bboxes框此时出现了重合,而重合部分会将保留的日文汉字涂抹,导致原本最终的翻译结果:“日文翻译+日文汉字 ”的“日文汉字”部分被大面积涂抹甚至完全消失,最终让成品翻译只翻译了有假名的一半。

示例: image image 补充剩部分的示例: image 这种情况下,final图片只会显示“老师和学生的”,“写真集”三个字被涂抹直接消失了 如果--no-text-lang-skip可以正常生效的话,应该不会让"写真集"等日语汉字被排除。 请问有什么解决办法

另外,如果我使用图片超分,常常会让我翻译后的文字超出框的限制,让我不得不放弃使用图片超分。请问这种情况怎么解决 例如: image 除了向下超出,若文本框较扁也会向右超出,测试后发现这和字体大小无关,无论字体大小多大,改变unclip_ratio,虽然大小变了,但会同比例超出框

例如: image

Command Line Arguments

python -m manga_translator -v --mode web --host=0.0.0.0 --port=5003 --inpainter lama_large --inpainting-precision bf16 -l CHS --use-gpu --font-path='G:\tools\manga-image-translator\fonts\.ttf' --ocr 48px --inpainting-size 1536 --no-text-lang-skip --det-rotate --revert-upscaling --upscaler esrgan --det-gamma-correct --upscale-ratio 3 --mask-dilation-offset 50 --box-threshold 0.8

Console logs

[GPT4Translator] 1: 美食之旅 => 美食之旅
[web_client] Filtered out: 美食之旅
...
popcion commented 4 hours ago

您好,顺便问一下,为什么我在此配置下使用font_size进行字体固定会失灵,检测器为默认。由于图片大小原因,font size常常需要固定在100甚至以上,我尝试固定为80似乎不起作用,又尝试将其固定为40,所有文字都变小了,似乎是起了作用,但当我将其拉大字体又不固定了,请问这个设置是否有上限,如果有的话上限是多少,和自己使用的字体有关吗