传统的文字检测方法有MSER、基于字体特征、笔画宽度等方法,随着深度学习的发展,有人改善了目标检测方法用于文字检测,比如CTPN。
深度学习的方式需要数据集进行训练。传统的方法可以算作无监督的方法,但需要完善的规则。
一般的叙事漫画是一种结构化的图像,有分镜、气泡等成分,文字是最内部的元素,通常位于气泡内。基于这一特点,可以得到一个漫画文字的检测方法.
步骤
- 二值化图像
- 提取连通区域
- 过滤过大的连通区域,去除包含较小的区域的外围区域
- 取一个连通区域为起点,一定单位为增长量向右生长,如果生长的区域有重合的连通区域,进行合并,并根据融合的连通区域改变增长量。如果找不到可以合并的区域就向左生长,直到没有可以合并的区域。以剩下的连通区域为起点,不断重复这一过程。
- 横向合并后再做纵向合并,得到段落。
约束条件
- 被气泡轮廓分隔的两个区域不能进行合并
- 横向生长时,重叠的高度比例为70%,这样倾斜文本的问题也可以一定程度上解决。
- 二值化可以用OTSU自动计算阈值,但有的漫画气泡轮廓粗细差别大,需要手动指定,不然会生成很多噪音。
问题
- 日语和中文的汉字很多并不是一个整体,比如有左右结构、上下结构
- 标点和汉字的小部件类似
- 非纯色背景的文本
- 在深色背景下的浅色文字无法检测