-
语义分割是对图像中的每一个像素进行分类,目前广泛应用于医学图像与无人驾驶等。从这几年的论文来看,这一领域主要分为有监督语义分割、无监督语义分割、视频语义分割等。
语意分割究竟有什么用呢?似乎看起来没有目标检测/跟踪等应用范围广。
- 数据问题:分割不像检测等任务,只需要标注一个bbs就可以拿来使用,分割需要精确的像素级标注,包括每一个目标的轮廓等信息;
- 计算资源问题:个人觉得太吃backbone,这就说明了如果要想得到较高的精度就需要使用类似于ResNet101等深网络。同时,分割预测了每一个像素,这就要求feature map的分辨率尽可能的高,这都说明了计算资源的问题,加GPUGPUGPU.....,虽然也有一些轻量级的网络,但精度还是太低了,期待类似于YOLO/SSD这样的工作能在分割中出现;
- 精细分割:查看cityscape结果可以看出,很多算法的像道路、建筑物等类别,分割精度很高,能达到98%,而对于细小的类别,像行人、交通等等,由于其轮廓太小,而无法精确的定位轮廓,造成精度较低;
- 上下文信息:分割中上下文信息很重要,否则会造成一个目标被分成多个part,或者不同类别目标分类成相同类别;
- 非深度学习方法:经典的特征+forst/boost+CRF的分割pipline,但是每一个分类器一般只针对单一的类别设计,如果分割类别数很多,会造成计算复杂,训练难度大的问题。并且非深度学习方法受特征的限制较大,精度一直没有增加很多。
- 深度学习方法:自2014年的FCN与Deeplabv1的提出,近几年深度学习语义分割方法进步明显,并且深度学习方法可以直接预测多类别目标,这克服了非深度学习方法的单类别的限制,但对于但类别问题,仍然是深度学习方法好,如道路分割等。
- encoder-decoder方法:与经典的FCN中的skip-connection思想类似,encoder为分类网络,用于提取特征,而decoder则是将encoder的先前丢失的空间信息逐渐恢复,decoder的典型结构有U-Net/segnet/refineNet,该类方法虽然有一定的效果,能恢复部分信息,但毕竟信息已经丢失了,不可能完全恢复。
- dialed FCN方法:deeplabv1提出的方法,将vgg的最后的两个pool层步长置为1,这样网络的输出分辨率从1/32变为1/8。可以保留更多的细节信息,同时也丢掉了复杂的decoder结构,但这种方法计算量大。
- 二分支轻量化分割方法:2020年提出BiseNet,三分支网络