训练阶段1.主干网络 FPN提取多尺度文本特征2.三个并行卷积分支输出概率图、阈值图、二值图都是和原图一样大的图概率图预测 “这个像素属于文本的概率”值为0-1。阈值图预测 “这个像素的自适应二值化阈值”不固定值为0-1由模型学习得到。二值图通过可微分二值化DB模块由前两个图计算得到值为0或者1传统二值化的问题普通分割方法的推理流程是先输出概率图 → 用 固定阈值(人工决定)把概率图转成二值图。比如阈值为0.5那么概率图中每个像素的概率0.5才能是1(文本)。这种转化是离散操作不可逆因此不能回传梯度也不能根据这个来训练阈值DBNet 做了两个关键改动用网络学自适应阈值每个像素的阈值都不一样由阈值图分支预测网络会根据图像的局部对比度自动调整 —— 墨迹淡的地方阈值低墨迹浓的地方阈值高完美适配低质量文本。用近似函数让二值化可微传统二值化是 “阶跃函数”要么 0 要么 1没有中间状态不可微DBNet 用一个近似的 sigmoid 函数来模拟二值化过程让输出结果 “近似二值” 但有连续的梯度这样梯度就能回传网络在训练时就能同时学 “概率图” 和 “阈值图”知道怎么调整这两个图才能让检测结果更准。3.标签制作4. 联合损失函数训练三个分支一起监督总损失 概率图损失 阈值图损失 二值图损失三个损失都是针对像素的分类损失一般用 BCE Loss 或 Dice Loss解决文本 / 背景类别不平衡问题整个网络端到端反向传播更新权重。传统二值化不能训练的原因推理阶段前向传播输入测试图像网络直接输出概率图也可以用二值图效果差不多。后处理二值化用固定阈值比如 0.2把概率图转成二值图也可以用网络输出的阈值图做自适应二值化效果更好但速度稍慢。连通域分析对二值图做连通域分析每个独立的连通域就是一个文本实例。轮廓提取对每个连通域提取轮廓再做轻微扩张还原回原始文本的大小得到最终的文本检测框可以是最小外接矩形也可以是多边形。