Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    【CVPR 2020】ContourNet学习笔记

    CV领域
    2
    2
    174
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 1
      189****3901 last edited by Alice_恒源云

      一、背景

      虽然ocr发展了很多年,也有了非常不错的表现,但在场景文本识别领域仍然有很多挑战:
      1、真实场景下文本样式复杂、背景杂乱
      2、图像质量参差不齐
      3、文本方向各异甚至弯曲文本
      4、文本过密、尺寸过长、过小
      。。。

      通常STR会分为:文本检测和文本识别两个问题,当然也有很多研究关注于end-to-end文本识别。

      其中检测方面,2019年韩国NAVER Clova AI Research的Craft为我们提供了一个很优秀的模型,这种类型的检测模型属于自下而上的分割,即先分割再实例化为一个个文本,类似的还有DBNet、PSENet。然而我在实际应用时发现,对于多行密集文本场景,往往会将其识别为同一个文本区域,这给后续文本识别任务带来了不小的麻烦。

      本文介绍的ContourNet是cvpr2020的一篇属于自上而下的文本检测方法,即先识别到文本框,再分割出文本mask区域。类似的还有maskRcnn、SPCNet等。这一思路我认为可以较好地解决文本区域实例化的问题。

      本文将对这篇论文的主要思想做梳理,详细部分建议还是仔细查看源码和论文。

      二、论文主要解决两个问题:

      1、伪召回

      2、对尺度变化剧烈的文本检测不准确

      5c2be73f-73c7-4292-89f7-efc8cda17cb1-image.png

      三、方案

      1、利用9个点的adaptive-rpn 替换rpn(通常rpn在fpn的每个stage输出之后)

      其中外边沿的8个点的外界矩形代表回归后的box,且中心点对最终的box做最后的矫正(若边沿超过中心点,如xmin>center_x,则xmin=center_x)

      2、LOTM,负责解耦候选框中的水平和竖直方向的文本轮廓检测。

      问题:lotm输出的两个方向的feature map 代表的是轮廓还是text的mask?
      论文说的不够清楚,查看代码确认是轮廓而不是mask。因此监督训练时需要gt的轮廓。(将gt的segmentation先转成mask,然后再利用distance_transform_edt,计算计算图像中非零点到最近背景点(即0)的距离,再将距离>2的过滤掉剩下的就是gt mask的轮廓)

      问题:LOTM的proposal features是利用adaptive-RPN得到的共享特征图还是利用最终two-stage的bbox重新做roi-pooling?
      这里仅看框架图和论文,似乎bbox的结果没有被利用上,检查源码后发现,训练时用的同一个rpn bbox;预测时box branch的输出bbox被用于LOTM的roi-pooling。

      3、后处理

      伪代码见下图。46ebf34f-8dc5-4f57-bae6-968886d082d1-image.png
      查看源码确定细节:
      先对hmap和vmap分别做1k和k1的max_pooling
      将同时满足hmap和vmap大于threshod的位置至为1。看代码,感觉hmap和vmap都是轮廓的feature map而不是mask的。利用alpha-shape散点轮廓算法得到轮廓,然后根据最后得到的轮廓进行填充mask,再利用cv2提取边界,得到包含边界的最小四边形。

      4、loss (对crop masks进行loss,而非整图)

      c4af4f36-4c90-467c-a967-ae5d6d854bec-image.png

      Reference:
      https://cloud.tencent.com/developer/article/1652640
      https://github.com/wangyuxin87/ContourNet
      https://arxiv.org/abs/2004.04940

      1 Reply Last reply Reply Quote 2
      • Alice_恒源云
        Alice_恒源云 last edited by

        哇!感谢分享,论文也很新,赞~
        希望对CV领域的朋友,能有所帮助哈
        也期待lz后续的学习笔记!

        论坛技术分享有奖励,lz留一个用户ID,或者联系客服小姐姐,方便发放奖励哈~

        1 Reply Last reply Reply Quote 0
        • Pinned by  Alice_恒源云 Alice_恒源云 
        • Unpinned by  System 
        • First post
          Last post