代码复现网站:SegNet
复现详解:http://mi.eng.cam.ac.uk/projects/segnet/
SegNet是一个由剑桥大学团队开发的图像分割的开源项目,该项目可以对图像中的物体所在区域进行分割,例如车,马路,行人等,并且精确到像素级别。
复习一下图像分割:
图像分割是将图像分割成几个部分以识别有意义的对象或特征的任务,例如识别图像中的单个单元。图像分割要注意区分语义分割和实例分割。
语义分割是将图像划分为具有语义意义的部分,并为每个部分分配一个类别标签的任务,但不一定会保留“对象特性”。例如:将图像的每个像素标记为细胞质、细胞核或背景,但两个相邻的原子核可能不会被分成两个不同的对象。
实例分割是识别图像中类的每个实例的任务。实例分割需要在语义分割的基础上对同类物体进行更精细的分割。
c图是对a图进行语义分割的结果,d图是对a图进行实例分割的结果。两者最大的区别就是图中的"cube对象",在语义分割中给了它们相同的颜色,而在实例分割中却给了不同的颜色。
SegNet层是Vijay Badrinarayanan等人提出的适用于语义分割的深度完整的CNN架构(deep full CNN architecture)。通常,语义分割方法主要用于室外,室内和道路场景中的大量类别。SegNet最初是为了解场景的应用程序而设计的。因此,它在内存、操作和计算时间方面应该是高效的。就可训练参数的数量而言,它比其他竞争体系结构要小得多,并且可以使用随机梯度下降和交叉熵损失函数来训练端到端的像素标签分类。
SegNet中使用的编码器与VGG16中的卷积层相同。SegNet中删除了VGG16的完全连接层,因此与其他最近的体系结构相比,编码器网络大大减少,更易于训练。SegNet的最重要组成部分是编码器/解码器网络,它由与每个上采样解码器匹配的下采样编码器层次结构以及在其中循环的相关特征向量组成。
网络架构如下: