图像数据标注和标记——你需要知道的一切

时间:2022-10-21 12:49:29

作者:欧陆注册科技

浏览: 次

图像数据标注作用

图像数据标注推动了计算机视觉的飞速发展,随着各类图像检测、识别算法的商业化落地,市场对图像标注精准度愈发严格,同时针对不同的应用场景,也衍生出了不同的图像标注方法。


汽车图像数据标注


图像数据标注是监督机器学习任务中必不可少的步骤。Garbage In Garbage Out是 机器学习界常用的一句话,意思是训练数据的质量决定了模型的质量。用于数据标注的注释也是如此。如果你给孩子看一个西红柿并说它是土豆,那么下次孩子看到西红柿时,他很可能会把它归类为土豆。由于机器学习模型以类似的方式学习,通过查看示例,模型的结果取决于我们在训练阶段输入的标签。

在这篇文章中,我们将介绍图像的标注类型、常用的标注格式以及一些可用于图像数据标注的工具。

在进入图像数据标注之前,了解存在的不同图像标注类型很有用,以便为您的用例选择正确的类型。以下是几种不同类型的标注:

1.1、边界框

边界框是计算机视觉中最常用的标注类型。边界框是用于定义目标对象位置的矩形框。它们可以由矩形左上角的x和y轴坐标以及矩形右下角的x和y轴坐标确定。边界框通常用于目标检测和定位任务。 


汽车图像边界框标注


检测到的汽车的边界框(Patricia Jekki在Unsplash上的原始照片)

边界框通常由两个坐标 (x1, y1) 和 (x2, y2) 或边界框的一个坐标 (x1, y1) 和宽度 (w) 和高度 (h) 表示。(见下图)



边界框显示坐标 x1、y1、x2、y2、宽度 (w) 和高度 (h)(照片来自Unsplash上的an_vision)

1.2、多边形分割

多边形标注较为精确,与矩形框标注不同,避免了大量白色空间和额外噪音导致的视觉模型偏差。当然,多边形绘制需要更多的工作量,所以其价格也会有所不同。常见的多边形标注应用包括机器人抓取、医学影像识别、卫星图片识别等。


多边形标注图像


来自 COCO 数据集的图像多边形分割(来源)

1.3、语义分割

对分割后的图像加上语义标签(用不同的颜色代表不同类别的物体),就是给分割后图像中的每一类物体加上标签,这些类可以是行人、汽车、公共汽车、道路、人行道等,每个像素都带有语义,输入一般是彩色深度(RGB-D)图像。

语义分割主要用于环境上下文非常重要的情况。例如,它用于自动驾驶汽车和机器人技术,因为模型可以了解它们所处的环境。


深度学习图像语义分割


来自 Cityscapes 数据集的图像语义分割(来源)

1.4、3D长方体标注 

3D 长方体类似于具有关于对象的附加深度信息的边界框。因此,使用 3D 长方体,您可以获得对象的 3D 表示,允许系统区分 3D 空间中的体积和位置等特征。

3D 长方体的一个用例是在自动驾驶汽车中,它可以使用深度信息来测量物体与汽车的距离。



图像上的 3D Cuboid 标注(原始照片由Jose Carbajal在Unsplash上提供)

1.5、关键点标注

关键点标注用于通过在图像上创建点来检测小物体和形状变化。这种类型的标注对于检测面部特征、面部表情、情绪、人体部位和姿势很有用。


关键点标注


 来自 COCO 数据集的关键点标注示例(来源)

1.6、线条标注

直线标注主要用于自动驾驶车辆的道路识别,定义车辆,自行车,相反方向交通灯,分叉路等不同道路。



道路上的线标注(原始照片由Karsten Würth在Unsplash上提供)

图像数据标注格式

在图像标注方面没有单一的标准格式。以下是几种常用的标注格式:

2.1COCO

COCO 有五种标注类型:用于对象检测、关键点检测、素材分割、全景分割和图像字幕。标注使用JSON存储。

对于物体检测,COCO 遵循以下格式:

注解{“id”:整数,“image_id”:int,“category_id”:int,“分割”:RLE 或 [多边形],“区域”:浮动,"bbox": [x,y,width,height],"iscrowd": 0 或 1,}类别[{“id”:int,“名称”:str,“超类别”:str,}]Pascal VOC: Pascal VOC 将标注存储在 XML 文件中。以下是用于对象检测的 Pascal VOC 标注文件示例。

<annotation>

  <folder>Train</folder>

  <filename>01.png</filename>       

  <path>/path/Train/01.png</path>

  <source>   

    <database>Unknown</database>

  </source >

  <size>   

    <width>224</width>   

    <height>224</height>   

    <depth>3</depth>    

  </size>

  <segmented>0</segmented>

  <object>   

    <name>36</name >   

    <pose>正面</pose>   

    <truncated>0</truncated>   

    <difficult>0</difficult>   

    <occluded>0</occluded>   

    <   bndbox>

      <xmin>90</xmin>    

      <xmax>190</xmax>    

      <ymin>54</ymin>    

      <ymax>70</ymax>  

    </bndbox>

  </object>

</annotation>

 

2.2YOLO

在YOLO标签格式中,.txt为同一目录下的每个图像文件创建一个同名文件。每个.txt文件都包含相应图像文件的标注,即对象类别、对象坐标、高度和宽度。

<object-class> <x> <y> <width> <height>

对于每个对象,都会创建一个新行。

下面是 YOLO 格式的标注示例,其中图像包含两个不同的对象。

0 45 55 29 67

1 99 83 28 44

 

图像标注工具

以下是可用于标注图像的工具列表:

1.知乎

2.标签图像

3.VGG 图像标注器

4.标签

5.可扩展

6.矩形标签

概括

在这篇文章中,我们介绍了什么是/标签以及为什么它对机器学习很重要。我们查看了 6 种不同类型的图像标注:边界框、多边形分割、语义分割、3D 长方体、关键点和地标、线条和样条,以及 3 种不同的标注格式:COCO、Pascal VOC 和 YOLO。我们还列出了一些可用的图像标注工具。


做AI行业客户的数据参谋