持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,lmb.informatik.uni-freiburg.de/people/ronn…
FastFCN —Fast Fully-connected network
在这个架构中,使用一个联合金字塔上采样(JPU)模块来替换膨胀卷积,因为它们消耗大量的内存和时间。在应用JPU进行上采样时,其核心部分采用全连接网络。JPU将低分辨率的feature map采样到高分辨率feature map。
如果你想动手实现一些代码,看这里:github.com/wuhuikai/Fa…
Gated-SCNN
这个架构由一个 two-stream CNN架构组成。在该模型中,使用一个单独的分支来处理图像的形状信息。利用形状流来处理边界信息。
实现参考代码:github.com/nv-tlabs/gs…
DeepLab
在这种架构中,上采样滤波器的卷积用于涉及密集预测的任务。多尺度的目标分割是通过空间金字塔池实现的。最后,利用DCNNs来改进目标边界的定位。通过对滤波器插入零进行上采样或对输入特征图进行稀疏采样来实现卷积。
实现参考代码:github.com/fregu856/de…
Mask R-CNN
在这个架构中,使用边界框和语义分割将每个像素划分为一组类别,对对象进行分类和局部化。对每个感兴趣的区域得到一个分割掩码,生成一个类标签和一个边界框作为最终输出。该架构是Faster R-CNN的扩展。Faster R-CNN由regions proposer和深度卷积网络和利局部检测器组成。
这里是COCO测试集中的一张图像的结果:
图像分割损失函数
语义分割模型在训练过程中通常使用一个简单的交叉分类熵损失函数。但是,如果你对获取图像的细粒度信息感兴趣,那么你需要用到稍微高级一点的损失函数。
我们来看看其中的几个。
Focal Loss
这种损失是对标准交叉熵的改进。这是通过改变它的形状来实现的,这样分配给分类良好的样本的损失就降低了。最终,这确保了没有类别不平衡。在这个损失函数中,交叉熵损失被缩放,随着对正确类的置信度的增加,缩放因子衰减为零。在训练时,比例因子会自动降低简单样本的权重,并聚焦于困难样本。
Dice loss
这个损失是通过计算smooth dice coefficient得到的。这种损失是最常用的分割损失。
Intersection over Union (IoU)-balanced Loss
IoU平衡分类损失的目的是增加高IoU样本的梯度,降低低IoU样本的梯度。这样提高了机器学习模型的定位精度。
Boundary loss
边界损失的一种变体应用于分割高度不平衡的任务。这种损失的形式是空间等高线上的距离度量,而不是区域。这种方法解决了高度不平衡的分割任务中区域损失的问题。
Weighted cross-entropy
在交叉熵的一种变体中,所有正样本都用一定的系数进行加权。它用于类别不平衡的场景。
Lovász-Softmax loss
该损失是对基于子模块损失凸Lovasz扩展的神经网络平均IoU损失的直接优化。
其他值得一提的损失包括:
- TopK loss,其目的是确保网络在训练过程中聚焦于困难样本上。
- 距离惩罚交叉熵损失,引导网络难以分割的边界地区。
- 敏感性-特异性(SS)损失,计算特异性和敏感性的均方差的加权和。
- Hausdorff distance(HD) loss,估计了卷积神经网络的Hausdorff距离。
这只是在图像分割中使用的几个损失函数。想了解更多内容,看这里:github.com/JunMa11/Seg…
图像分割数据集
从哪里可以得到一些数据集来开始?让我们来看几个例子。
Common Objects in COntext — Coco Dataset
COCO是一个大型物体检测、分割和图像描述数据集。数据集包含91个类。它有25万个人标注了关键点。它的大小是37.57 GiB。它包含80个物体类别。它遵循Apache 2.0许可,下载链接:cocodataset.org/#download。
PASCAL Visual Object Classes (PASCAL VOC)
PASCAL有9963个图像和20个不同的类。训练/验证集是一个2GB的tar文件。数据集下载:host.robots.ox.ac.uk/pascal/VOC/…
The Cityscapes Dataset
此数据集包含城市场景的图像。它可以用来评估城市场景中视觉算法的性能。数据集下载:www.cityscapes-dataset.com/downloads/。
The Cambridge-driving Labeled Video Database — CamVid
这是一个基于运动的分割和识别数据集。它包含32个语义类。数据集下载:mi.eng.cam.ac.uk/research/pr…
图像分割框架
现在你已经有了数据集,让我们介绍一些工具/框架,你可以使用它们来开始。
- FastAI library – 给定一幅图像,该库能够创建该图像中对象的mask。
- Sefexa Image Segmentation Tool – Sefexa是一个免费的工具,可以用于半自动图像分割,图像分析,创建ground truth
- Deepmask – Deepmask由Facebook Research开发,是Deepmask和SharpMask的Torch实现。
- MultiPath – 这是来源于A MultiPath Network for Object Detection的物体检测网络的Torch实现。
- OpenCV – 这是一个开源的计算机视觉库,有超过2500个优化算法。
- MIScnn – 这是一个医学图像分割开源库。它使用最先进的卷积神经网络和深度学习模型建立管道,只需几行代码。
- Fritz – Fritz提供多种计算机视觉工具,包括用于移动设备的图像分割工具。
总结
本文为你提供了一些图像分割的背景知识,并为你提供了一些工具和框架,可以用于入门。
我们讨论了:
- 什么是图像分割,
- 图像分割架构,
- 图像分割损失,
- 图像分割工具和框架。
要了解更多信息,请查看每个架构和框架的链接。