Py学习  »  机器学习算法

收藏 | 图像分割深度学习从零开始学习路线

小白学视觉 • 1 年前 • 129 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


本文转自:计算机视觉联盟

第零阶段:看分割看不懂

这个阶段典型表现是,对于梯度下降,交叉熵损失,激活函数等概念模棱两可,这可能是博主说的零基础入门。你可能需要对深度学习和计算机视觉的基本任务有一个较为系统的学习,这块应该转看深度学习入门等相关话题,斯坦福的李飞飞cs231n被推荐的挺多的。这块我就不多赘述了,我更多分享后面三个阶段关于分割的学习。


第一阶段:看分割是分割


这个阶段的典型表现是,有了对深度学习和计算机视觉的基础,开始痴迷于各种分割网络和loss改进,对benchmark的每一个性能的改进都有很好的follow。这个阶段应该梳理以下问题。

  • 语义/实例/全景分割的问题难点在哪里

  • benchmark数据集有哪些

  • 评价指标是什么

  • 现有的方法有哪些,关系是什么

  • 还有哪些可以改进的地方

之前很粗糙的总结过自然影像和医疗影像领域语义分割的一些主要工作和发展脉络。


当然目前的SOTA model在各个benchmark上都有更新,自然影像可能是立夏之光的Expectation Maximization Attention Networks for Semantic Segmentation,医疗影像最新出了一篇Divided We Stand: A Novel Residual Group Attention Mechanism for Medical Image Segmentation,性能不错。

另外整理脉络建议读该领域的survey,最近Amusi整理了一个不错的分割survey。

Amusi:大盘点 | 2019年5篇图像分割算法最佳综述。

理论搞的差不多,我们开始上一些code部分。这里推荐几个优秀的分割的repo,供入门的同学学习。

语义分割

立夏之光的EMANet,代码风格简洁易懂。

Zijun Deng的分割模板,写的也非常不错。

旷视的TorchSeg,很旷视。

实例分割

FAIR的经典maskrcnn框架。


第二阶段:看分割是CV


这个阶段建立在第一个阶段的基础上,对分割问题有了较为全面的认识,各个benchmark和网络都能如数家珍。这个阶段的典型表现是开始看其他视觉领域的工作,包括但不限于Object Detection,Skeleton Detection,Face Detection,Text Detection,PersonReID,Single/Multi objectTracking,能发现分割从表示上的局限性和其他任务之间的相关性 (注意,第一阶段是分割这个domain内部工作之间的相关性)。到这里,你会发现分割可以用来做检测,回归可以用来做分割,不同CV领域的工作和设计思路对分割都可能有启发。

典型的最近Anchor-free的一系列工作(CornerNet, CenterNet, FCOS等),其实就是用FCN+Regression去做检测,本质上改变了Detection gt的表示。再比如谢恩泽的PolarMask: Single Shot Instance Segmentation with Polar Representation,将mask表示从dense pixel-wise的gt,变成极坐标下的polygon,进而可以用回归相关的参数。


第三阶段:看分割是learning


到了这个阶段,你会发现我们之前都在一个supervised并且没有noise的框架下讨论问题。比如一些unsupervised和semi-supervised的范式,怎么能更好的提升。如何让分割网络有更好的transfer能力和抵御对抗攻击的能力。 这个阶段一般开始看learning相关的文章,包括但不限于unsupervised learning,semi-supervised learning,adversarial training,generative model,transfer learning, federated Learning。


比如在Indirect Local Attacks for Context-aware Semantic Segmentation Networks中,PSPNet和PSANet等SOTA分割模型被局部攻击后,效果还不如FCN baseline,是非常有意思的发现。Google的 Self-training with Noisy Student improves ImageNet classification,已经不再是从(人工)网络设计上去提升性能,而是通过一种半监督的方式,利用更多的无监督的数据进行迭代学习去提升分类的性能。何凯明的Momentum Contrast for Unsupervised Visual Representation Learning提出了一种新的无监督范式,在7个分割/检测的benchmark上得到了提升。

# ===== 结语 ===== #

大部分研究生硕士甚至是博士读完就停留在第一阶段,少部分能进入第二阶段开始对视觉问题有更深刻的认识。至于第三阶段,都是大牛!


好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇




下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147409
 
129 次点击