语义分割
三件事情你需要知道的
如何语义分割的目标检测不同?
语义分割可以是物体检测有用的替代方案,因为它允许的在像素级利益跨越多个区域中的图像中的对象。这种技术干净地检测出形状不规则,而相比之下,对象检测,其中,对象必须适合的边界框(图2)中的对象。
如何语义分割使用?
因为语义分割图像中的像素标记,它比其他形式的物体检测更精确。这使得用于在各种需要精确的图像的地图,诸如产业应用语义分割有用:
- 自动驾驶- 对于由像行人,人行道,电线杆,等车的障碍分离的道路标识的汽车可行驶路线
- 工业检测- 用于检测材料中的缺陷,如晶片检查
- 卫星图像- 用于识别山脉,河流,沙漠和其他地形
- 医学影像- 用于分析和检测在细胞癌变的异常
- 机器人视觉- 用于识别和导航对象和地形
例如:自动驾驶的应用
在图4中示出了该序列用于自动驾驶语义分割的一个真实的例子。道路的图像会自动从其他车辆分割。下一节将展示如何创建这些网络。
了解架构
语义分割的一种常见方法是创建一个SegNet,这是基于卷积神经网络(CNN)架构。一个典型的CNN架构显示在图5。
此CNN整个图像分类成多个预定义的类别之一。
为了在像素级别,而不是整个图像进行分类,可以追加一个反向实施CNN的。上采样处理中执行相同的次数作为下采样过程,以确保最终的图像的尺寸与输入图像相同。最后,一个像素分类输出层被使用,其中,每个像素到某一类映射。这形成编码器 - 解码器的体系结构,这使得语义分割。
步骤1:标签的数据或获得标签数据。
深学习模型是建立在大量的数据,以及语义分割也不例外。一种选择是在互联网上找到的标签数据。如果你有自己的数据集,你可以使用MATLAB中的图像贴标应用。您可以使用此数据集来训练SegNet。
学到更多
第2步:创建原始图像和标记图像数据存储。
当有大量数据的工作,它往往无法加载所有的信息到内存中。要管理大型数据集,您可以使用的数据存储。数据存储区包含您要访问的文件的位置,它可以让你阅读到内存只有当你需要对文件进行操作。
要创建一个SegNet,你需要两个数据存储:
- ImageDatastore,其中包含的原始图像
- PixelLabelDatastore,其中包含标记的图像
第3步:分区中的数据存储。
当创建一个SegNet,您必须将数据存储分为两个部分:
- 训练集,用来训练SegNet
- 测试集,用于评估网络的精度
第4步:导入CNN和修改它是一个SegNet。
加载预训练的网络,诸如VGG16,以及使用该SegNetLayers命令,创建所必需的像素级的标记编码器 - 解码器架构。
第5步:培训和评估网络。
在最后的步骤中,您为网络设置超参数和培训网络。
如何了解更多关于语义分割
影片
- 语义分割概述(七点56分)
- 揭秘深学习:语义分割和部署- 网络研讨会
- 使用Deep学习脑肿瘤的三维图像分割(3:14)
示例以及如何
- 语义分割和部署- 网络研讨会
- 多光谱图像的语义分割使用Deep学习- 示例