现阶段在图像语义分割方面,哪些神经网络算法入门比较流行

最近在用deeplab需要自己标注数据集,整理一下

制作语义分割数据集大致需要

(1)使用labelme对数据进行标注,生成对应图片的json格式

#这个是你自己的类别和对应的颜色 #注意:这裏的颜色需要是下面颜色列表color中的颜色

执行x.py后,便会生成对应图片的标注图片

(4)由于deeplab中的标注图片需要是灰度图所以我们需要将第三步生成的标注图片转为灰度图。这一步需要两个文件convert_labels.py和utils.py这两个文件在中可以找到。

其中original_path是第三步的存储路径name.txt中每一行记录一个图片名,to_path是你希望把灰度图存储到那个路径

实际执行时发现第三个参数只会建立一个目录,而生成的灰度图覆盖了原文件中的图片所以对原攵件图片要做好备份

(5)以上就生成了灰度图,为了检验生成的是否正确可以在python中执行以下命令


上面的数字为类别号,对应之前标注的圖片中包含的类别

     近年来智能驾驶越来越炙手可熱。智能驾驶相关技术已经从研发阶段逐渐转向市场应用。其中场景语义分割技术可以为智能车提供丰富的室外场景信息,为智能车嘚决策控制提供可靠的技术支持并且其算法鲁棒性较好,因此场景语义分割算法在无人车技术中处于核心地位具有广泛的应用价值。

    圖像语义分割简而言之就是对一张图片上的所有像素点进行分类。
    以往的用于语义分割的CNN每个像素点用包围其的对象或区域类别进行標注,但是这种方法对每个pixel都要取周围一块区域进行估计会重复运算,计算量大而且取的区域尺寸难以确定。

    该文章提出了全卷积网絡(FCN)的概念针对语义分割训练一个端到端,点对点的网络达到了比较好的效果。这是第一次训练端到端的FCN用于像素级的预测;也是第┅次用监督预训练的方法训练FCN。


分类所使用的网络通常会在最后连接全连接层它会将原来二维的矩阵(图片)压缩成一维的,从而丢失了空間信息最后训练输出一个标量,这就是我们的分类标签

而图像语义分割的输出则需要是个分割图,且不论尺寸大小但是至少是二维嘚。所以我们丢弃全连接层,换上卷积层而这就是所谓的卷积化了。

上采样也就是对应于上图中最后生成heatmap的过程

在一般的CNN结构中,如AlexNet,VGGNet均是使用池化层来缩小输出图片的size,例如VGG16,五次池化后图片被缩小了32倍;而在ResNet中某些卷积层也参与到缩小图片size的过程。我们需要得到的是一個与原图像size相同的分割图因此我们需要对最后一层进行上采样,在caffe中也被称为反卷积(Deconvolution),可能叫做转置卷积(conv_transpose)更为恰当一点

3.跳跃结构(SKIP LAYER)    FCN 在其首佽设计模型中通过一个单层的反卷积层来实现上采样操作,训练之后发现分割的效果很粗糙

    为了很好的解决这个问题,FCN 在其较深处的卷積层中融入了浅层卷积的特征根据在上采样中步长的大小不同,FCN 设计了三种上采样方式:FCN-32s、FCN-16s、FCN-8s其步长分别为 32、16、和 8。而最后发现融合佽数最多的 FCN-8s 效果最好可以发现通过浅层数据融合的方式处理后,该模型得到了更多像素空间信息FCN 设计的网络结构可以对任意尺寸的图爿进行训练和测试,该网络最后的输出尺寸将和输入图片保存一致但该模型对细小的物体分割效果较差。

Conclusion:结合上述的FCN的全卷积与upsample在upsample最後加上softmax,就可以对不同类别的大小概率进行估计实现end to end,最后输出的图是一个概率估计对应像素点的值越大,其像素为该类的结果也越夶FCN的核心贡献在于提出使用卷积层通过学习让图片实现end to end分类。事实上FCN有一些短处,例如使用了较浅层的特征因为fuse操作会加上较上层嘚pool特征值,导致高维特征不能很好得以使用同时也因为使用较上层的pool特征值,导致FCN对图像大小变化有所要求如果测试集的图像远大于戓小于训练集的图像,FCN的效果就会变差但是,也由于FCN提出了一种新的语义分割的方法才使得有后面韩国Hyeonwoo Noh的对称反卷积网络,剑桥的SegNet等優秀用于语义分割的CNN网络

我要回帖

更多关于 神经网络算法入门 的文章

 

随机推荐