实例分割,也称为图像分割,是计算机视觉中的一项任务,它不仅识别图像中的对象,还识别与之相关的形状。它是目标检测的扩展,其中每个预测不仅包括一个由中心点、宽度和高度定义的边界框,还包括一个形状。通过实例分割,应用程序可以确定图像中对象的数量、分类以及它们的轮廓。
这项技术在需要测量检测到的对象的大小(例如番茄叶)、从背景中剪切它们(例如用于背景移除)或更准确地检测椭圆形旋转对象(例如卫星图像中的桥梁)的情况下非常有用。在训练了实例分割模型之后,模型将预测检测到的对象周围的边界框和实例分割掩码。
例如,一个在公共美国手语数据集上训练的模型的实例分割推理输出。那么,实例分割与其他用于解决计算机视觉问题的算法相比如何呢?这是一个很好的问题。让比较一下实例分割与目标检测和语义分割,以便可以更好地评估哪种模型类型最适合用例。
实例分割和目标检测模型都识别图像中对象的位置。但是,目标检测只预测对象的边界框,而不是轮廓。以下是关于实例分割和目标检测的一些须知事项:实例分割标记更为繁琐。训练准确的实例分割模型更难。实例分割模型通常更大、更慢,且不太适合边缘部署。实例分割模型可能需要更大的数据集才能获得与目标检测模型相同的准确性。
应该只在应用程序需要对象轮廓的特定性时才使用实例分割。通常,首先尝试目标检测更好,因为它更容易、更便宜地进行测试,运行起来更快、更准确。让考虑一个这些模型类型有用的示例。实例分割更适合测量卫星图像中草坪的面积。但是,如果需要识别草坪上的所有树木,目标检测将是一个更谨慎的模型选择。
语义分割为图像中的每个像素分配一个类别标签。与实例分割类似,可以在图像中看到对象的轮廓,但与实例分割不同,如果对象重叠,无法计数或区分单独的对象。对于实例分割问题,图像必须在注释工具中尽可能精确地进行注释。应该在要注释的对象周围绘制一个轮廓,然后为该对象分配一个类别。
如何在RoboflowAnnotate中为实例分割标记图像?好消息是,现在可以通过在Roboflow Annotate中绘制多边形来为实例分割标记图像。在Roboflow中标记一个手做出字母Q轮廓的示例。一旦标记了实例分割数据集,就该训练一个模型来对未标记的图像进行预测了。
Roboflow提供了一个自动化的机器学习解决方案,通过Roboflow Train进行训练和部署实例分割模型,只需一键操作。点击该链接查看如何轻松地将实例分割训练并部署到生产中。如果选择在Roboflow之外训练模型,请查看教程:如何在没有使用自动ML解决方案的情况下训练Detectron2进行实例分割。将了解在不使用自动ML解决方案时训练是如何工作的。
实例分割数据集最常见的格式是COCO。COCO格式以一系列x,y对的形式记录分割点。例如,一个COCO格式的数据集可能如下所示:
{
"id": 4,
"image_id": 1,
"category_id": 2,
"bbox": [
273,
451,
98.81642999999997,
119.86870800000003
],
"area": 11844.99779327244,
"segmentation": [
[
294.526515,
451.00638,
273.495847,
518.689734,
372.312277,
570.875088,
295.413657,
452.786753,
294.526515,
451.00638
]
],
"iscrowd": 0
}
现在可以从Roboflow导入和导出实例分割数据为COCO格式。很高兴地宣布今天在Roboflow中启动实例分割项目。新的项目类型扩展了Roboflow Annotate的功能,使其能够检测具有更大特定性的对象。实例分割和多边形标记包含在所有定价计划中。要开始使用,请登录Roboflow账户,创建一个新项目,并选择实例分割项目类型。