coco資料集詳解

牛奔發表於2024-06-11

什麼是COCO資料集?

COCO資料集是一個可用於影像檢測(image detection),語義分割(semantic segmentation)和影像標題生成(image captioning)的大規模資料集。它有超過330K張影像(其中220K張是有標註的影像),包含150萬個目標,80個目標類別(object categories:行人、汽車、大象等),91種材料類別(stuff categoris:草、牆、天空等),每張影像包含五句影像的語句描述,且有250,000個帶關鍵點標註的行人。

官網:https://cocodataset.org/

COCO 格式

COCO 資料集由五個資訊部分組成,提供了整個資料集的資訊。COCO 物體檢測資料集的格式記錄在 COCO 資料格式中。

  • info:有關資料集的一般資訊。
  • licenses:資料集中影像的許可資訊。
  • images:資料集中影像的列表。
  • annotations:資料集中所有影像中存在的註釋(包括邊界框)的列表。
  • categories:標籤類別列表。

要建立自定義標籤清單,需要使用 COCO 清單檔案中的 imagesannotationscategories 列表。其他兩個部分(infolicences)不是必需的。下面是一個 COCO 清單檔案示例。

{
    "info": {
        "description": "COCO 2017 Dataset","url": "http://cocodataset.org","version": "1.0","year": 2017,"contributor": "COCO Consortium","date_created": "2017/09/01"
    },
    "licenses": [
        {"url": "http://creativecommons.org/licenses/by/2.0/","id": 4,"name": "Attribution License"}
    ],
    "images": [
        {"id": 242287, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/xxxxxxxxxxxx.jpg", "flickr_url": "http://farm3.staticflickr.com/2626/xxxxxxxxxxxx.jpg", "width": 426, "height": 640, "file_name": "xxxxxxxxx.jpg", "date_captured": "2013-11-15 02:41:42"},
        {"id": 245915, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg", "flickr_url": "http://farm1.staticflickr.com/88/xxxxxxxxxxxx.jpg", "width": 640, "height": 480, "file_name": "nnnnnnnnnn.jpg", "date_captured": "2013-11-18 02:53:27"}
    ],
    "annotations": [
        {"id": 125686, "category_id": 0, "iscrowd": 0, "segmentation": [[164.81, 417.51,......167.55, 410.64]], "image_id": 242287, "area": 42061.80340000001, "bbox": [19.23, 383.18, 314.5, 244.46]},
        {"id": 1409619, "category_id": 0, "iscrowd": 0, "segmentation": [[376.81, 238.8,........382.74, 241.17]], "image_id": 245915, "area": 3556.2197000000015, "bbox": [399, 251, 155, 101]},
        {"id": 1410165, "category_id": 1, "iscrowd": 0, "segmentation": [[486.34, 239.01,..........495.95, 244.39]], "image_id": 245915, "area": 1775.8932499999994, "bbox": [86, 65, 220, 334]}
    ],
    "categories": [
        {"supercategory": "speaker","id": 0,"name": "echo"},
        {"supercategory": "speaker","id": 1,"name": "echo dot"}
    ]
}

影像列表

COCO 資料集引用的影像列在影像陣列中。每個影像物件都包含了有關該影像的資訊,例如影像檔名。在以下示例影像物件中,請注意以下資訊以及建立 Amazon Rekognition Custom Labels 清單檔案需要哪些欄位。

  • id:(必需)影像的唯一識別符號。id 欄位對映到註釋陣列(儲存邊界框資訊的地方)中的 id 欄位。
  • license:(非必需)對映到許可證陣列。
  • coco_url:(可選)影像的位置。
  • flickr_url:(非必需)影像在 Flickr 上的位置。
  • width:(必需)影像的寬度。
  • height:(必需)影像的高度。
  • file_name:(必需)影像檔名。在本示例中,file_nameid 匹配,但 COCO 資料集對此不作要求。
  • date_captured:(必需)影像拍攝的日期和時間。
{
    "id": 245915,
    "license": 4,
    "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg",
    "flickr_url": "http://farm1.staticflickr.com/88/nnnnnnnnnnnnnnnnnnn.jpg",
    "width": 640,
    "height": 480,
    "file_name": "000000245915.jpg",
    "date_captured": "2013-11-18 02:53:27"
}

註釋(邊界框)列表

所有影像上的所有物體的邊界框資訊都儲存在註釋列表中。單個註釋物件包含單個物體的邊界框資訊以及該物體在影像上的標籤。影像上物體的每個例項都有一個註釋物件。

在以下示例中,請注意以下資訊以及建立 Amazon Rekognition Custom Labels 清單檔案需要哪些欄位。

  • id:(非必需)註釋的識別符號。
  • image_id:(必需)對應於影像陣列中的影像 id
  • category_id:(必需)用於標識邊界框內物體的標籤的識別符號。它對映到類別陣列的 id 欄位。
  • iscrowd:(非必需)指定影像中是否包含物體群。
  • segmentation:(非必需)影像中物體的分段資訊。Amazon Rekognition Custom Labels 不支援分段。
  • area:(非必需)註釋的區域。
  • bbox:(必需)包含影像中物體的邊界框的座標(以畫素為單位)。
{
    "id": 245915,
    "license": 4,
    "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg",
    "flickr_url": "http://farm1.staticflickr.com/88/nnnnnnnnnnnnnnnnnnn.jpg",
    "width": 640,
    "height": 480,
    "file_name": "000000245915.jpg",
    "date_captured": "2013-11-18 02:53:27"
}

類別列表

標籤資訊儲存在類別陣列中。在以下示例類別物件中,請注意以下資訊以及建立 Amazon Rekognition Custom Labels 清單檔案需要哪些欄位。

  • supercategory:(非必需)標籤的父類別。
  • id:(必需)標籤識別符號。id 欄位對映到 annotation 物件中的 category_id 欄位。在以下示例中,echo dot 的識別符號為 2。
  • name:(必需)標籤名稱。
{"supercategory": "speaker","id": 2,"name": "echo dot"}

COCO資料集的下載

下載網址:官網下載連結

相關文章