语义分割该如何走下去?

2023-11-19

作者:立夏之光
链接:https://www.zhihu.com/question/390783647/answer/1223902660
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

做过一年多语义分割,来回答一下这个问题。

语义分割目前遇到了很大的瓶颈

首先是研究方式的受限。目前的研究方案,大都构建在Dilated FCN[1]之上。在这一设定下,研究者在做的都是戴着镣铐跳舞。既往的研究,能做的无非如下两种选择:

  1. 设计一个更有效的语义分割head;
  2. 修改feature flow,现在多用NAS形式。

其次是数据集的受限。语义分割所用的数据集需要大量标注的数据,这造成了如下两个现象:

  1. 少有的几个数据集刷到接近天花板。
  2. 数据量少,支撑不起 training from scratch。

现象1直接导致了近些年的工作显得“没有突破”。做过语义分割的人,肯定知道提升0.5 mIoU是怎样一种难度。这是诸多研究者们现在遇到的最大难点。

现象2则是上述“研究方式的受限”的原因。除了

@张航

等大组,一般人训练不起ImageNet,所以无法 from scratch 地训练完整的网络,于是只能在head上做功夫。

最后是领域内卷。语义分割的pipeline比较简洁,适合快速入手和尝试idea。刚入手时看过一系列文章,很容易产生“这还不容易”的错觉。于是会有一些眼高手低的现象,但仍然不缺乏一批能沉下心的能手不断刷新榜单。

于是,三座大山之下,目前领域的发展便出现了

@点点点

回答中所说的同质化,令审稿人一脸懵逼。不得不说,领域确实需要新的破局点,而非蜂拥追热。

近些年的文章,也并非没有价值

三座大山之下,仍是不断有引人思考的文章出现。

  • 远有ASPP[2]和Dilated FCN[1] ,它们定义了dilated conv这一操作,而今已是深度学习的入门基础。能成为人人皆知的基础知识,可见之影响力。
  • 近有

    @Yanwei Li

    的Dynamic routing,打破了上述“研究方式的受限”,让人意识到还有比NAS更灵活的存在。
  • 而一系列对注意力机制的不断思考与探索[3],也让人见识到:注意力不止是注意力。

一个领域不一定要惊天动地才有价值,稳扎稳打的推进亦让人受益匪浅。

而领域内卷,反而一定程度上提升了领域的bar

  • 君不见,NL(nonlocal) based文章别处风生水起,而本领域却被连环拒稿。
  • 君不见,seg领域arxiv层出不穷,但只有个中精妙且幸运者,才能中的广传。

许多语义分割的文章,目标不止本领域

很多人搞语义分割,是因为它是一个优良的representation learning的试兵厂。其简洁的pipeline,方便轻松地进行新模块的探索。

举自己的EMANet[4]为例,其作为一种general的模块,本人对它的期望不只是分割领域。倘若资源充足,本人何尝不想学习ResNest,直接做成backbone。而很多人眼中它就是个注意力,而我更看中他的低秩性质。我们后续的工作也在继续挖掘这一性质,而彻底告别注意力的外壳。

一些方法论则看似弱鸡,实则并不浅薄

这里援引下高赞回答[5]的第五条:DNN太枯燥,融入点传统视觉的方法搞成end-to-end训练“融入”一词轻描淡写,但个中奥妙却被掩藏。

深度学习时代,人们忽视了太多经典的基础。很多过去早已研究透彻的东西,被重新发明一套名词。与之相比,正确的价值观,应该是重视前人的宝贵探索,并在这个繁杂逐利的时代将之renaissance。与其重造轮子,倒不如思考下DL的局限,而经典可以为之补足什么。

Lecun大力提倡的Differentiable programming[6],恰是这一思潮的重要武器。有经验的人会告诉你,“搞成end-to-end”从来不是一蹴而就。这一功力,不易拿捏。过轻则网络难以训练,过重则丧失优异性质,完全沦为标准网络。鄙人的EMANet[4],算作这类方法里最low的范例。但是跟我讨论过的人都知道,只靠纯粹简洁E、M、R公式难以work,背后的付出多在Bases Maintenance上。

而前段时间热评的PointRend[7],又有多少人能开脑洞从rendering迁移到seg;又有多少人能这“简陋”算法高效实现且跑出高性能?而Nonlocal[8]出现之前,又有多少人思考到了self-attention和经典非局部算子的联系?

盖大智者,能思其本质;而飘飘者,啖笑其浅薄。

遇到瓶颈,正适合高追求者入局

对强者:

领域陷入瓶颈时,正是入局变革的好时机。当总结出了种种不足,恰是对其rethink的最好时候。一个领域充斥“没啥突破”的文章时,一篇高质量的文章,定能引得众人赏识。鹤立鸡群,总比强强对抗来的容易,不是么?

领域内的研究者,何尝不希望若干破局者的到来?诸多人陷入有限资源的内卷,都希望能有新的着力点。一篇高质量文章的出炉,最差的待遇也是成百上千引用者的追逐。对于有相关领域经验,且对representation learning有深入思考的同行,语义分割是你们很好的试金石。

对小白:

全监督的语义分割确实门槛略高,需要丰富的机器资源,稳扎稳打扫平trick的耐心,还需要足够开阔的思维来衍生漂亮而实用的idea,所以鄙人也不建议盲目入坑。

道路千万条,求真第一条。造假一时爽,同门两行泪。

 

参考

  1. ^abYu, Fisher, Vladlen Koltun, and Thomas Funkhouser. "Dilated residual networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017. https://arxiv.org/abs/1705.09914
  2. ^Chen, Liang-Chieh, et al. "Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs." IEEE transactions on pattern analysis and machine intelligence 40.4 (2017): 834-848. http://arxiv.org/abs/1606.00915
  3. ^语义分割中的Attention和低秩重建 https://zhuanlan.zhihu.com/p/77834369
  4. ^ab[ICCV 2019 Oral] 期望最大化注意力网络 EMANet 详解 https://zhuanlan.zhihu.com/p/78018142
  5. ^语义分割该如何走下去? - 湃森的回答 - 知乎  http://www.zhihu.com/question/390783647/answer/1221984335
  6. ^Differentiable programming-Wikipedia https://en.wikipedia.org/wiki/Differentiable_programming
  7. ^Kirillov, Alexander, et al. "PointRend: Image Segmentation as Rendering." arXiv preprint arXiv:1912.08193 (2019). http://xxx.itp.ac.cn/pdf/1912.08193v2
  8. ^Wang, Xiaolong, et al. "Non-local neural networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018. https://arxiv.org/abs/1711.07971

 

 

====================================================

 

 

作者:湃森
链接:https://www.zhihu.com/question/390783647/answer/1221984335
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

说句泼冷水的话,对大多数研究从业人员来说语义分割目前已经达到瓶颈期了。

顶会顶刊paper看来看去真没啥突破:

(1)手动设计网络结构 -> NAS搜索;

(2)固定感受野 -> 引入空间注意力做感受野自动调节;

(3)效果提升不上去 -> 换个思路做实时分割来对比结果;

(4)自监督太热门 -> 引入弱监督 (GAN, 知识蒸馏, ...) + trick = 差不多的score;

(5)DNN太枯燥,融入点传统视觉的方法搞成end-to-end训练;

(6)CNN太单调,配合GCN搞点悬念;

(7)嫌2D太low逼,转3D点云分割;

觉得太懒?积木堆起:A+B,A+B+C,A+B+C+D,...

积木总结:

A-注意力机制:SE ~ Non-local ~ CcNet ~ GC-Net ~ Gate ~ CBAM ~ Dual Attention ~ Spatial Attention ~ Channel Attention ~ ... 【只要你能熟练的掌握加法、乘法、并行、串行四大法则,外加知道一点基本矩阵运算规则(如:HW * WH = HH)和sigmoid/softmax操作,那么你就能随意的生成很多种注意力机制】

B-卷积结构:Residual block ~ Bottle-neck block ~ Split-Attention block ~ Depthwise separable convolution ~ Recurrent convolution ~ Group convolution ~ Dilated convolution ~ Octave convolution ~ Ghost convolution ~ ...【直接替换掉原始卷积块就完事了】

C-多尺度模块:ASPP ~ PPM ~ DCM ~ DenseASPP ~ FPA ~ OCNet ~ MPM... 【好好把ASPP和PPM这两个模块理解一下,搞多/减少几条分支,并联改成串联或者串并联结合,每个分支搞点加权,再结合点注意力或者替换卷积又可以组装上百种新结构出来了】

D-损失函数:Focal loss ~ Dice loss ~ BCE loss ~ Wetight loss ~ Boundary loss ~ Lovász-Softmax loss ~ TopK loss ~ Hausdorff distance(HD) loss ~ Sensitivity-Specificity (SS) loss ~ Distance penalized CE loss ~ Colour-aware Loss...

E-池化结构:Max pooling ~ Average pooling ~ Random pooling ~ Strip Pooling ~ Mixed Pooling ~...

F-归一化模块:Batch Normalization ~Layer Normalization ~ Instance Normalization ~ Group Normalization ~ Switchable Normalization ~ Filter Response Normalization...

G-学习衰减策略:StepLR ~ MultiStepLR ~ ExponentialLR ~ CosineAnnealingLR ~ ReduceLROnPlateau ~...

H-优化算法:BGD ~ SGD ~ Adam ~ RMSProp ~ Lookahead ~...

I-数据增强:水平翻转、垂直翻转、旋转、平移、缩放、裁剪、擦除、反射变换 ~ 亮度、对比度、饱和度、色彩抖动、对比度变换 ~ 锐化、直方图均衡、Gamma增强、PCA白化、高斯噪声、GAN ~ Mixup

J-骨干网络:LeNet ~ ResNet ~ DenseNet ~ VGGNet ~ GoogLeNet ~ Res2Net ~ ResNeXt ~ InceptionNet ~ SqueezeNet ~ ShuffleNet ~ SENet ~ DPNet ~ MobileNet ~NasNet ~ DetNet ~ EfficientNet ~ ...

...

语义分割从入门到放弃...

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

语义分割该如何走下去? 的相关文章

随机推荐

  • Sublime中自动代码提示插件Anaconda插件下载及设置

    Sublime中自动代码提示插件Anaconda插件下载及设置 一 代码提示功能插件 Anaconda 通过package Control 进行插件下载 按住ctr shift p会弹出对话框 没果没有的话 需要进行package Cont
  • Python可迭代类

    Python可迭代类 iter 和 next python中我们常常会用到for循环结构 for 元素 in 元素来源 for循环后面的元素来源实际上就是一个可以迭代的对象 for in 语句其实做了两件事 第一件事是获取一个可迭代对象 即
  • QT5.14解决控制台打印中文乱码的问题

    如上图 在控制台打印的中文显示乱码 解决方法如下 第一 在main函数中加入 pragma execution character set utf 8 第二 将所有字符串包含中文 用QStringLiteral修饰 综上解决中文乱码问题
  • 彻底理解js中的闭包

    闭包是js的一个难点也是它的一个特色 是我们必须掌握的js高级特性 那么什么是闭包呢 它又有什么用呢 我们都知道 js的作用域分两种 全局和局部 基于我们所熟悉的作用域链相关知识 我们知道在js作用域环境中访问变量的权利是由内向外的 内部作
  • protobuf (Protocol Buffers)

    Protobuf Protocol Buffers 是一种语言无关 平台无关的序列化数据结构的协议 由Google开发 它可以用于将结构化数据序列化为二进制格式 并在不同的系统之间进行高效的数据传输或存储 Protobuf使用 proto文
  • 提示msvcr120.dll丢失怎么办?由于找不到msvcr120.dll如何修复?

    msvcr120 dll 是 Microsoft Visual C 文件中的一个重要组件 它是一种动态链接库 包含了很多函数 提供了许多基础的 C 运行时支持 这个库文件的主要功能是提供 C 应用程序的运行时环境 它是一些常用的 C 运行时
  • Netty从零开始(一)

    需要用到netty 之前就当年实习的时候用过Mina netty没用过 所以加急学习了一下 感觉还不错 不多说 从官网入手 官网地址 http netty io wiki user guide for 4 x html 有兴趣的朋友可以自己
  • 2.4G信号干扰原因

    转自 http wenku baidu com link url iw 8wLsNphcELx J7artsLTdIKtCLGO7X PAgQG6BYXuG GPHzYh8xrhkRVzJo2HL1LvI2p4RlgfxCuVBSwt9VG
  • 方框滤波,均值滤波,高斯滤波

    邻域算子 局部算子 是利用给定像素周围的像素值的决定此像素的最终输出值的一种算子 对于邻域算子 除了用于局部色调调整以外 还可以用于图像滤波 实现图像的平滑和锐化 图像边缘增强或者图像噪声的去除 而线性邻域滤波是一种常用的邻域算子 像素的输
  • Android Studio Unsupported Java

    问题 升级 Android Studio Flamingo 出现如下报错信息 Unsupported Java Your build is currently configured to use Java 17 0 2 and Gradle
  • 费马小定理【模板例题】

    费马小定理 如果p是一个质数 而整数a不是p的倍数 则有a p 1 1 mod p 即 假如a是整数 p是质数 且a p互质 即两者只有一个公约数1 那么a的 p 1 次方除以p的余数恒等于1 变式延伸 在对质数 p 求余的条件下 n ap
  • 零基础如何入门数学建模?

    小羊简介 博客主页 小羊不会飞 年龄 20 大二在读 爱好 干饭 运动 码代码 看书 旅游 即将更新 1 手把手带你搭建个人博客网站 2 后台管理系统模块更新 感兴趣的朋友 赶紧上车吧 欢迎关注 点赞 收藏 留言 有任何疑问 欢迎留言讨论
  • arduino/Mixly HX711称重传感器

    比例系数 假设现在放上去的物体实际重量为175 测出的是43 85 那么实际的比例系数X应该等于 175 X 43 85 1992 现在放上去一个面包板 实际重量为70克 串口显示14 24 那么比例系数 1992 14 24 70 405
  • “fixture ‘xxx‘ not found / 参数传入无效”的解决方案

    问题描述 今天在对强化学习的Gradient Bandit进行编码测试的时候 在主函数中多次执行测试函数 出现以下两个问题 在主函数运行test 6测试函数时 传入的参数是3000 但是绘图结果只显示1000 也就是test 6默认参数值
  • 一篇带你MySQL运维

    1 日志 1 1 错误日志 错误日志是 MySQL 中 重要的日志之一 它记录了当 mysqld启动和停止时 以及服务器在运行过程中发生任何严重错误时的相关信息 当数据库出现任何故障导致无法正常使用时 建议首先查看此日志 该日志是默认开启的
  • 【语义分割】--SegNet理解

    原文地址 SegNet 复现详解 http mi eng cam ac uk projects segnet tutorial html 实现代码 github TensorFlow 简介 SegNet是Cambridge提出旨在解决自动驾
  • mybatis自动生成@Table、@Column、@Id注解

    在pom xml中添加如下插件以及插件相关的依赖
  • kvm之多网卡队列开启设置

    背景 目前基于dpdk数据平面开发套件的应用越来越多 而dpdk对于上层应用运行时 服务的进程数多于1时 要求网卡支持多队列 否则项nginx这种多进程应用程序只能再默认配置下运行 只能启动一个worker 要求 在kvm虚机中将网卡设置支
  • 模拟器提示关闭 hyper-V,但 hyper-V实际上并没有开启

    这个问题是windows系统问题导致无法使用BlueStacks 按下win R键打开执行窗口 输入regedit命令 打开注册表找到位置 HKEY LOCAL MACHINE SYSTEM CurrentControlSet Contro
  • 语义分割该如何走下去?

    作者 立夏之光 链接 https www zhihu com question 390783647 answer 1223902660 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 做过一年多语义分割 来回