无需深度学习的手写孟加拉文切分:图像处理技术深度解析
参考论文: Color Independent Word Segmentation From Transcribed Bangla Passages — Faias Satter, Noor Masrur, Sk. Md. Masudul Ahsan
如果你拍下一张手写孟加拉文(Bangla)段落的照片,本研究所应对的挑战在识别出任何一个具体单词之前就已然出现。切分算法必须判定哪些墨水笔画属于同一部分,以及一个词在哪里结束、下一个词在哪里开始。然而,人工书写并不总是会留下易于做出这些判定的清晰间隙。
间距过近的词可能会合并为一个被检测出的区域;而断开的字符与符号又可能使同一个词看起来像好几个词。
作者指出,目前可靠的手写孟加拉文 OCR 技术依然十分匮乏。他们的研究重点聚焦于词语切分(word segmentation)——即将整页图像切割为独立词语区域的处理阶段。这一阶段若出现差错,后续的识别阶段就只能面对残缺不全的词,或者被错误打包在同一个切片中的多个词。
在他们的论文《Color Independent Word Segmentation From Transcribed Bangla Passages》中,来自库尔纳工程技术大学(Khulna University of Engineering & Technology, KUET)的研究人员 Faias Satter、Noor Masrur 和 Sk. Md. Masudul Ahsan 提出了一套自适应经典图像处理流水线来攻克这一瓶颈。他们测试了使用智能手机拍摄的文档,涵盖不同的纸张颜色、笔迹类型以及阴影干扰,并通过一种迭代轮廓计数的启发式算法提取词语边界框。该论文于 2026 年 10 月 1 日提交至 arXiv,并注明为 2023 年电气信息与通信技术国际会议(EICT)录用论文的最终版本。
以下是对该项工程研究的深度拆解:为什么手写孟加拉文切分如此棘手、KUET 团队如何设计他们的处理管线,以及他们公布的实验结果说明了什么。

手写文字的视觉几何特征
要理解切分难题,必须首先审视该文字系统的物理拓扑结构。
孟加拉文中的许多字符在同一个词内部通过一条称为 matra(字顶横线)的横向笔画相连。这种连接特性有助于在图像区域中将一个词维持为一个整体,但并非所有字符或符号都带有 matra,而且手写文本也不一定总能保持连贯的笔画连接。
论文指出了三种反复出现的复杂情况:
- 缺少 matra 的字符和符号会导致错误的词语断裂。 作者指出,像“◌ঃ”、“◌ং”和“◌ঁ”等符号是导致切分过细错误(splitting errors)的潜在根源。词内部缺失连接或留有间隙,会导致其各组成构件被划入不同的检测区域。
- 分离的附加符号使词边界判定更加复杂。 诸如“◌ু”、“◌ূ”、“ি◌”、“◌ী”、“ৈ◌”和“ে◌ৗ”等元音符号会干扰相邻词语的分离。作者描述了某些词的组成部分被错误并入另一个词的情况,以及离主体较远的符号被排除在自身所属词的边界框之外的现象。
- 词间距极不稳定。 有些书写者在词与词、行与行之间留下的间距极小;另一些人书写风格散漫,词内各字符之间的间隙很大。某种能够将一位书写者断开的字母连接起来的参数设置,可能会导致另一位书写者的相邻词语被错误合并。
除了这些文字层面的动态特征外,文档拍摄过程还引入了物理环境的混乱干扰。该研究涵盖了带有阴影干扰、不同图像尺寸与分辨率、不同墨水颜色以及不同底色纸张的智能手机拍摄图像。这些现实条件促使团队构建一套能够根据图像特征动态选择滤波与阈值参数的流水线,而不是对所有页面施加一套固定的设定。
阶段一:将混乱的手机拍摄图像转换为稳定的像素
KUET 团队将其方案组织为一个包含六个阶段的串行流水线,从原始像素直接生成带有边界框的词语区域,而无需执行单独的文本行切分过程。
第一步是将输入图像转换为灰度图。作者解释说,虽然直接进行黑白二值化扫描速度更快,但可能会丢失部分字符信息。因此,灰度图为后续的滤波和阈值处理阶段提供了起点。
接下来是自适应降噪。不同的设备拍摄出的图像分辨率各异,不同书写者的字符尺寸也大不相同。作者提出了一种名为平均轮廓尺寸(Average Contour Size, ACS)的图像特异性指标来确定滤波设置。
计算初始 ACS 的步骤如下:
- 系统首先使用大小为 21×21 像素的高斯核进行初步去噪。论文指明其垂直方向的标准差为 21,缩放因子为 7。
- 使用 21×21 的窗口应用初始自适应阈值处理。
- 提取初步轮廓,并将面积小于 50 的轮廓作为椒盐噪声剔除。
- 剩余轮廓的平均面积即为 ACS,用于后续卷积核尺寸的选择。
一旦系统获取了文档的 ACS,论文将接下来的平滑阶段描述为非局部均值去噪(Non-local Means Denoising)。文中还给出了一个使用坐标变量 $x$ 和 $y$ 的平滑核公式,其中 $\sigma$ 定义为核尺寸的平方根。而核尺寸本身则取自一张基于 ACS 的经验查找表。
作者并未固定核的尺寸,而是将计算得出的 ACS 映射到不同规格:
- ACS 低于 200 时,使用 3×3 核。
- ACS 在 200 到 300 之间(不含 300)时,使用 5×5 核。
- 在 1000 以内,每递增 100 个 ACS 区间,核尺寸增加 2,在 $900 \le \text{ACS} < 1000$ 时达到 19×19。
- 随后的项在 $1000 \le \text{ACS} < 1200$ 时使用 21×21,在 $1200 \le \text{ACS} < 1400$ 时使用 23×23。
超出该表范围的情况,作者说明每增加 200 个 ACS 单位,核尺寸相应增加 2。
作者还将页面背景亮度纳入考量。他们指出,在像素值介于 181 至 255 的浅色背景中椒盐噪声较少,而背景越深噪声越严重。对于背景像素值在 101 到 180 之间的图像,他们将所选核尺寸增加 2;对于低于 100 的值,则增加 4。
这些都是针对所提系统做出的经验性设计选择。它们根据估计的轮廓尺度和背景亮度来自适应调整滤波强度,而非确立了纸张颜色与所需平滑强度之间的普适数学关系。
阶段二:阴影检测与自适应二值化
完成平滑后,必须将图像转换为二值表示。该流程最终将这种表示规范化为黑底白字的二值图(白色前景笔画,黑色背景)。
作者在利用 Otsu 法的全局阈值处理与自适应局部阈值处理之间进行权衡。他们的策略是:当全局阈值足以应对图像时优先使用 Otsu,而面对彩色背景或阴影干扰时则选择自适应阈值。
这种权衡带有取舍代价。论文指出,自适应阈值处理由于是在局部窗口内计算,可能会导致字符破碎。词的某些部分随后可能被排除在其检测轮廓之外。据作者所述,在条件允许时优先使用 Otsu,正是因为它能避免这种字符破碎现象。
KUET 流程在确定二值化方法前先执行阴影干扰检测:
$$\frac{\text{Area of largest contour}}{\text{Average Contour Size}} > 100$$
系统首先应用 Otsu 阈值处理,并测量生成的最大轮廓。如果其面积超过 ACS 的 100 倍,该流程就判定图像存在阴影干扰。该比值是作者设定的检测启发式规则;论文并未证明所有大轮廓都必然是阴影。
基于该检测及背景像素强度,二值化策略产生分支:
- 彩色或深色纸张(像素值低于 180): 采用自适应阈值法。
- 浅色纸张(像素值达到或高于 180): 若检测到阴影干扰,采用自适应阈值法;否则采用 Otsu 阈值法。
自适应阈值的窗口大小同样取自 ACS 查找表。
阈值处理完成后,必要时对像素值进行反转,生成统一的黑底白字图像。随后图像通过 Canny 边缘检测和霍夫变换(Hough transform)识别共线结构,以进行倾斜校正。
该倾斜校正阶段并未将页面分割为独立的文本行图像。词语检测依然在没有前置行切分步骤的情况下直接运行。
阶段三:形态学膨胀与峰值轮廓停止判定
接下来是核心挑战:将断开的字符笔画和分离的附加符号组合为完整的词语实体,同时又不消除相邻词语之间的间距。
作者依靠数学形态学——具体而言是使用由白色前景像素构成的正方形结构元进行膨胀(dilation)操作。膨胀能扩张前景区域,将同一个词内的断开部件连接起来,但过度扩张也会把相邻的词串联在一起。
确定膨胀的停止点是核心的技术难题。作者通过引入最小面积阈值(Minimum Area Threshold, MAT)并结合迭代轮廓计数搜索来解决这一问题。
定义何为一个“词”
在系统统计候选词数量之前,需要一条保留轮廓的过滤规则。面积大于 MAT 的连通区域会被计入候选,并获得边界框。
通过面积阈值并不保证该区域恰好包含一个完整的词。这只是该流水线的过滤准则。
MAT 的计算取决于此前选用了哪种二值化方法:
- Otsu 阈值处理后: 作者直接由 ACS 计算 MAT:
$$\text{MAT} = \frac{\text{Average Contour Size}}{1.25}$$
- 自适应阈值处理后: 作者引入书写密度(Writing Density, WD)这一指标来弥补轮廓破碎的影响:
$$\text{Writing Density} = \frac{\text{Total area of the page}}{\text{Average Contour Size}}$$
论文将较大的 WD 理解为书写稀疏。其公式体现的是页面总面积与平均轮廓面积的相对比值,而非直接测量词间空隙。
系统将 WD 映射到关于 MAT 的经验公式。该表格涵盖从 $\text{WD} < 1500$ 时的 $\text{ACS} - \frac{\text{ACS}}{4}$,到 $\text{WD} \ge 10000$ 时的 $\text{ACS} \times 6$。中间区间则采用 ACS 的其他倍数与分式调整。
第二张表对 WD 与 ACS 的组合进行进一步修正。其列出的规则包括:在 $\text{WD} > 2000$ 且 $\text{ACS} > 700$ 时减去 $\frac{\text{ACS}}{8}$,并在指定的高 WD、高 ACS 范围内加上基于 ACS 计算的增量。
这些映射均为该方法中经验性选定的部分,旨在保留词语组成部件的同时,尽量避免采纳细小碎屑或融合更大的区域。
峰值轮廓搜索
在定义了 MAT 之后,系统根据 ACS 确定初始膨胀核的大小。表格列出的初值从 ACS 低于 100 时的 1×1,以及 $100 \le \text{ACS} < 1000$ 时的 3×3 开始。更大的 ACS 区间对应更大的起始核,且在 Otsu 和自适应阈值分支之间存在些许差异。
例如,当 $2000 \le \text{ACS} < 2200$ 时,该表在 Otsu 处理后分配 9×9 的起始核,在自适应阈值后则分配 11×11 的核。自适应阈值分支中列出的项在 $2400 \le \text{ACS} < 2600$ 时达到 13×13;但这并未被表述为所有图像的绝对上限。
算法首先使用起始核对二值图像执行一次迭代膨胀,并统计面积超过 MAT 的轮廓数量。随后它测试更多参数设置(增加迭代次数或增大核尺寸),并重新统计保留下来的轮廓数。
这种轮廓计数启发式方法依赖于两种相反的效应:
- 断开的部件互相合并,形成足以超过 MAT 的区域,从而增加保留候选词的数量。
- 随着膨胀进一步加剧,相邻的词语区域发生粘连合并,从而导致轮廓总数下降。
作者描述的过程是寻找轮廓计数的极大值点,并在进一步膨胀导致词语相互粘连之前停止。这是一种选择膨胀参数的启发式手段,并不保证在选定点上每个词都完整无缺,也不保证每对相邻词都保持独立分离。
在论文图 4 记录的一个示例中,一幅 ACS 为 641 的图像以 3×3 的膨胀核开始。在所展示的最优设置下,使用该核迭代膨胀 3 次检测出了 33 个词;而改用 10×10 的核迭代 2 次则仅产生 23 个词。
最后,在选定的参数设置下,围绕保留下来的词语轮廓拟合出矩形边界框。

基准测试:在三个不同数据集上的评测
为了评估该方法,KUET 团队在三个文档集合上对流水线进行了测试:专门为本项目创建的自建数据集、CMATERdb1.1.1,以及论文中称为 Bangla Writing 数据集的集合。
1. 自建的 80 份文档数据集
为了评估各种复杂的拍摄条件,作者构建了一个包含 80 份文档的数据集,涵盖不同的手写风格,分别书写在白色、红色、蓝色、绿色和黑色的纸张上。他们使用了包括黑、红、绿、蓝等多种颜色的中性笔、圆珠笔和闪光笔。
他们还引入了阴影干扰,并使用不同的拍摄设备以使图像在尺寸和分辨率上具有多样性。
论文给出的数据为:
- 真实标注词数(Ground truth words): 7,374
- 生成的边界框数: 7,278
- 正确切分词数: 6,681
- 切分错误数: 527 个词,分为欠切分(under-segmented)、过切分(over-segmented)或缺陷切分(defect-segmented)
- 未检出词数: 166
- 召回率(Recall): 90.60%
- 精确率(Precision): 91.80%
- F1 分数(F1-score): 91.20%
这些结果验证了该方法在作者自建的多底色、含阴影数据集上的有效性,但并未证明其在纸张、墨水、笔迹和光照的所有可能组合下均具备可靠的切分能力。
2. CMATERdb1.1.1 基准测试
作者在来自 CMATERdb1.1.1 的 100 份文档上运行了该流水线,在 15,730 个词中生成了 15,587 个边界框:
- 正确切分: 13,552 个词
- 切分错误: 2,048 个词
- 未检出: 130 个词
- 召回率: 86.15%
- 精确率: 86.94%
- F1 分数: 86.54%
作为对比,论文指出 Sarkar 等人(2011)取得了 86.01% 的词语切分成功率:在 15,730 个词中正确切分了 13,530 个词,有 2,200 个词出现欠切分或过切分。
输入条件的差异非常关键。根据 KUET 论文的描述,Sarkar 等人使用的是已经预先切分为文本行的文档图像,而所提出的方法并不需要该预处理阶段。
所提方法公布的召回率略高于早期的成功率。然而,输入条件的差异意味着这并不是在严格控制变量下得出的全面性能优势证明。
3. Bangla Writing 数据集
该系统还在 Bangla Writing 数据集的 100 份文档上进行了评估:
- 文档实际总词数: 7,400
- 生成的边界框数: 7,191
- 正确切分: 6,380 个词
- 切分错误: 987 个词
- 未检出: 33 个词
- 召回率: 86.22%
- 精确率: 88.72%
- F1 分数: 87.45%
论文指出,Das 等人(2023)利用水平投影轮廓(horizontal projection profiles)、接缝裁剪(seam carving)和轮廓跟踪技术处理了该数据集的一部分。他们报告的结果为 88.39% 的行切分准确率、95.65% 的词切分准确率,以及 84.55% 的平均准确率。
KUET 论文的对比表将这 84.55% 的平均准确率与所提方法的召回率、精确率和 F1 分数并列摆放。然而,这些属于不同的评估指标,且两次评估使用的数据集子集也不尽相同。因此,不应将 87.45% 的 F1 分数直接解读为相较于早期平均准确率的绝对提升。
处理管线效能受挫的四种错误模式
由于该算法利用的是图像几何特征而非对文字本身进行识别,其报告的失败案例多符合几何边缘情况。作者将它们归为四类错误。
以下标签沿用了论文中的术语(该论文将单词被割裂称为 under-segmentation,将多个单词被合并称为 over-segmentation):
- 欠切分错误(词语割裂 / Under-segmentation error): 单个词被切分到了两个或多个边界框中。作者将此归因于 matra 连接缺失、内部字符间距异常过大,以及像“◌ঃ”、“◌ং”和“◌ঁ”等缺少 matra 的符号。
- 过切分错误(词语合并 / Over-segmentation error): 单个边界框包含了两个或更多个词。书写密集且词间或行间缺乏足够间距时,极易发生此类错误。
- 缺陷切分错误(符号遗漏 / Defect-segmentation error): 边界框框住了词的主体,但将其部分构件遗漏在框外。论文列举了涉及元音符号及其他符号的例子,包括“◌া”、“ি◌”、“◌ঁ”、“◌ৃ”和“◌ী”,尤其是当它们书写位置距离单词主体较远时。
- 漏检错误(遗漏词语 / Overlooking error): 输出结果中彻底漏掉了某个词。作者指出,当最小面积阈值增大时,原本面积较小的词极易被忽略。
这些错误给参数调优带来了相互冲突的权衡压力。较小的初始膨胀核或较小的 MAT 有助于处理书写密集的页面,但作者报告称,此类设置会增加散漫书写下的割裂错误;较小的膨胀核还会导致位置较偏的符号被遗漏在词边界框之外。
标点符号带来了另一重麻烦。论文指出,诸如孟加拉语句末句号 daari(“।”)和逗号等标点可能会与相邻的词一同被检出;而在某些手写风格中,它们又会被单独框选。
最后,当纸张周围的背景像素值与字符相近时,可能会产生虚假检测。作者建议裁剪图像以去除这些外部背景。
为何这对文档解析与OCR系统至关重要
KUET 的这篇论文展示了一个基于经典图像处理操作构建词语切分的详尽范例。其核心贡献在于提出了一种生成词语区域的方法,并通过切分计数与各项指标对其进行了评测。
该论文并未评估这些区域内部词语的识别准确率。在解读实验结果时,区分这一点至关重要:切分正确的图像块只是后续 OCR 阶段的输入,而不能证明其中的文本已被正确转录。值得注意的是,相较于该研究所针对的孟加拉文或仅涵盖英文/拉丁字母的典型场景,面对拥有数千个复杂字符、密集排版且词间缺乏天然空格的汉字表意文字体系,此类依赖连通轮廓与形态学膨胀的启发式切分规则在汉字与词边界判定上将面临截然不同的几何挑战与适用局限。
摆脱对文本行切分的依赖
传统的切分工作流通常按如下层级推进:
$$\text{Page} \longrightarrow \text{Text Lines} \longrightarrow \text{Words} \longrightarrow \text{Characters}$$
在这样的工作流中,文本行切分的错误会连带影响后续的词语提取。论文在相关工作讨论中指出了当手写文本行相互重叠或延伸范围差异过大时所面临的困难。
所提出的方法无需预先将文档划分为独立的行即可直接提取词语区域。作者认为,这避免了让词语提取受制于行切分阶段的成败。
但这并不能消除因词语和行过于拥挤而导致的错误。在论文的失败案例分析中,此类情况依然存在。该方案的优势在于免除了独立的行预处理依赖,而非保证切分错误一定仅局限在一对词语之间。
经典图像处理流程,但缺乏运行耗时基准
文中描述的流水线包含了灰度转换、去噪、阈值化、Canny 边缘检测、霍夫变换以及形态学膨胀。所提出的切分方法中没有使用任何深度学习模型。
这使得该论文成为经典方法的一个极具价值的实践范例。然而,它并没有证实具体的执行速度或部署成本。
该研究报告了切分指标,但并未提供运行耗时、内存占用、能耗或端侧设备执行基准。使用智能手机拍摄的图像仅描述了输入数据的来源,并不代表整个处理流程是在智能手机上运行的。
因此,任何关于毫秒级运行速度、低端手机运行表现、电池续航消耗或相对于神经网络系统的优势等说法,都会超出论文所提供的证据范围。
经验查找表的局限性
该论文也揭示了此类方法严苛的调优需求。
其映射表将 ACS 和 WD 关联到平滑核尺寸、面积阈值以及初始膨胀核。这些表采用的是离散区间:例如 ACS 为 299 时选择 5×5 平滑核,而 ACS 为 301 时则会选择 7×7 平滑核。
这意味着越过表格边界的微小变化就会改变处理参数。论文并未测试这些临界点处的敏感度,也未能证明这些映射规则能够可靠地泛化到每一种全新的拍摄环境中。
作者的错误分析揭示了参数调优困难的原因。增大膨胀程度虽然可以连接词内断裂的部分,但同时也可能合并相邻的词;提高面积阈值则可能剔除较小的词。不同的手写风格对这些参数提出了截然相反的要求。
针对观察到的失败案例,作者给出了改进建议:对包含多个词的边界框进行嵌套处理,以及更精确地调节自适应阈值和膨胀滤波器的尺寸。对于几乎没有间隙的粘连词语,他们还建议引入在词典词汇上训练的机器学习模型。
这些属于未来的研究方向,而非已在论文管线中得到验证的扩展工作。
Satter、Masrur 和 Ahsan 展示了一套自适应经典图像处理流水线如何在多个数据集(包括他们自建的受彩色纸张和阴影干扰的照片集)上实现手写孟加拉文切分。其轮廓计数搜索策略与详尽的失效分析,为词语切分领域做出了切实的贡献——也为后续将这些检测框转化为可编辑文本的识别阶段奠定了基础。