Semantic Segmentation(语义分割)

  1. end-to-end training(端对端的训练):输入的是原始数据,输出的是最后的结果,假如输入的是提取后的特征或者是降维,分割之后图像输入则不是端对端,机器学习中的难点是特征的选择和提取,而端对端网络则能够自己提取特征,典型的用于语义分割的代表FCN,YOLO。CNN本质的作用还是用来分类,定位的功能其并没有做到。而yolo这种方法就是只通过CNN网络,就能够实现目标的定位和识别。也就是原始图像输入到CNN网络中,直接输出图像中所有目标的位置和目标的类别。这种方法就是end-to-end(端对端)的方法,一端输入我的原始图像,一端输出我想得到的结果。只关心输入和输出,中间的步骤全部都不管。
  2. 非end-to-end代表:RCNN,这种方法需要先在图像中提取可能含有目标的候选框(region proposal), 然后将这些候选框输入到CNN模型,让CNN判断候选框中是否真的有目标,以及目标的类别是什么。
  3. image classification主要解决是“我是谁”,给定一幅图片,列出都有哪些类别。detection主要解决的是“我在哪里”,不仅可以分类,还可以定位在哪里。semantic segmentation, and instance segmentation都是语义分割的不同方向,Semantic Segmentation目标是对于图像中所有像素点分配给其对应的标签(区别于Object Detection/Localization,Detection不是对图像中所有的像素,加入一个桌面上有电脑,鼠标,目标检测会检测出电脑,鼠标,而语义分割会把桌面也分割出来),Semantic Segmentation 只是关心每个像素所属的类别,Instance Segmentation关心其具体内容实例。Semantic Segmentation(语义分割)_第1张图片
  4. CV主要的应用领域:视频监控、人脸识别、医学图像分析、自动驾驶、 机器人、AR、VR
  5. FCN不仅仅可以解决object detection,也可以用来解Semantic Segmentation。
  6. Semantic Segmentation目前已经被深度学习占领,各种模型层出不穷。个人目前主要精读了一些2D Semantic image Segmentation,在技术实现上大体分为3派:
    1、FCN(Fully Convolutional Networks),通过Encoder-Decoder模型建立end-to-end的训练,技术关键点deconvolution/Transposed convolution(后者描述更确切)。
    2、CRF(Conditional random fields)/MRF(Markov random fields)
    3、Dilated Convolutions,带孔的卷积,比如ICNet.
  7. 发展历程 http://www.sohu.com/a/155907339_610300

你可能感兴趣的:(语义分割)