这篇论文已经有很多人写过解析了,方法就大致说一说就好了。看这篇论文的时候学习了他们代码的实现,感觉学到了很多东西,就在这里讲一讲和代码实现有关的东西。
论文提要
我看的代码,原作者的博客讲了原理方面的内容。首先用FPN在图片中生成“推荐区域”,将“推荐区域”利用广度优先搜索进行合并,得到最后的结果。
论文中主要的东西是,使用FPN提取出图片中不同粗细的可能是文字的部分,然后使用广度优先搜索将FPN得到的几个部分给区分开。
代码实现
复现的论文神经网络部分使用的是tensorflow,广度优先搜索部分使用C++实现。
先从train.py开始看,103行定义了损失函数,在tower_loss函数中,构建了模型。模型的输出seg_maps是一个6通道的tensor,对应了论文中segmentation result。在train.py中没有引用到pse,pse在训练的过程中没有用到。
预测的过程在eval.py中。
# eval.py,第76行
def detect(seg_maps, timer, image_w, image_h, min_area_thresh=10, seg_map_thresh=0.9, ratio = 1)