1. 程式人生 > >MS COCO官網資料集(百度雲)下載,COCO API、MASK API和Annotation format介紹(來自官網)

MS COCO官網資料集(百度雲)下載,COCO API、MASK API和Annotation format介紹(來自官網)

由於coco的官網老是打不開,因此把官網內容記錄在此

包括MS COCO官網資料集下載地址,COCO API介紹和Result Format介紹

下面是影象和註解下載地址:

Images

Annotations

如果下載不下來可以用百度雲下載

coco2014-2015年的資料集

連結:https://pan.baidu.com/s/1bpuaMtD 密碼:12ya

coco2017年資料集太大了不讓直接上傳

1. 概述

你應該下載哪個資料集?每年的拆分(split)都與不同的挑戰有關。特別地:

2017 Unlabeled [optional data for any competition]

如果您提交2017年的挑戰,只需要下載2017年的資料。您可以忽略較早的資料拆分。

為了有效地下載影象,我們建議使用gsutil rsync來避免下載大的zip檔案。但由於我下不下來這個工具就沒有用

我們的資料託管在Google雲端平臺(GCP)上。gsutil提供了有效訪問這些資料的工具。您不需要GCP帳戶即可使用gsutil。下載資料的說明如下:

(1) Install gsutil via:

curl https://sdk.cloud.google.com | bash

(2) Make local dir:

mkdir val2017

(3) Synchronize via:

gsutil -m rsync gs://images.cocodataset.org/val2017 val2017

The splits are available for download via rsync are: train2014, val2014, test2014, test2015, train2017, val2017, test2017, unlabeled2017. Simply replace 'val2017' with the split you wish to download and repeat steps (2)-(3). Finally, you can also download all the annotation zip files via:

(4) Get annotations:

gsutil -m rsync gs://images.cocodataset.org/annotations [localdir]

The download is multi-threaded, you can control other options of the download as well (seegsutil rsync). Please do not contact us with helpinstalling gsutil (we note only that you do not need to run gcloud init).


請按照COCO API Readme自述檔案中的說明設定下載的COCO資料(影象和註釋)。通過下載這個資料集,您同意我們的使用條款。

2017更新:2017年的主要變化是,根據社群反饋,而不是一個80K / 40K train/ val拆分,現在train/ val的拆分是115K / 5K。使用相同的準確的影象,並且不提供用於檢測/關鍵點的新註釋。然而,2017年新增了40Ktrain圖片(2017年全部115K列車圖片的子集)和5K val圖片的註釋。此外,為了進行測試,在2017年,測試集只有兩個拆分(dev / challenge),而不是前幾年使用的四個拆分(dev / standard / reserve / challenge)。最後,2017年的新作品釋出了COCO的120K無標籤圖片,與標籤圖片一樣,這可能對COCO的半監督學習有用。

注意:註釋最後更新09/05/2017(添加了註釋)。如果您發現有關資料的任何問題,請讓我們知道!

2. COCO API

COCO API幫助載入,解析和視覺化COCO中的註釋。API支援物件例項(object instance),物件關鍵點(object keypoint)和影象標題(image caption)註釋(對於標題,並非所有功能都已定義)。有關更多詳情,請參閱:CocoApi.m,coco.py, and CocoApi.lua for Matlab, Python, and Lua code, respectively, and also the Python API demo.

Throughout the API "ann"=annotation, "cat"=category, and "img"=image.

download           從mscoco.org伺服器下載COCO影象。

getAnnIds          獲取滿足給定過濾器條件的ann ids。

getCatIds           獲取滿足給定過濾條件的cat ID。

getImgIds          獲取滿足給定過濾條件的img ids。

loadAnns           用指定的id載入anns。

loadCats           使用指定的ID載入類別。

loadImgs          用指定的id載入imgs。

loadRes           載入演算法結果並建立用於訪問它們的API。

showAnns        顯示指定的註釋。

3. MASK API

COCO為每個物件例項提供分割掩碼。這產生了兩個挑戰:緊湊地儲存掩碼並有效地執行掩碼計算。我們使用自定義執行長度編碼(RLE,Run Length Encoding)方案來解決這兩個挑戰。RLE表示的大小與掩碼的邊界畫素的數量成比例,並且可以直接在RLE上有效地計算諸如面積,聯合或相交(area, union, or intersection)的操作。具體而言,假設相當簡單的形狀,RLE表示是O(√n),其中n是物件中畫素的數量,並且公共計算同樣是O(√n)。天真地計算解碼掩碼(儲存為陣列)相同的操作將是O(n)。

MASK API提供了一個操作以RLE格式儲存的掩碼的介面。該API定義如下,其他細節請參閱:MaskApi.m,mask.py, or MaskApi.lua.。 最後,我們注意到,大部分的實際真值(ground truth)掩碼被儲存為多邊形(polygons)(非常緊湊),這些多邊形在需要時被轉換為RLE。

encode                 使用RLE編碼二進位制掩碼。

decode                解碼通過RLE編碼的二進位制掩碼。

merge                  計算編碼掩碼的聯合或交集(union, or intersection)。

iou                        計算掩碼之間的聯合的交集(intersection over union)。

area                     計算編碼掩碼的區域(area)。

toBbox                獲取圍繞編碼掩碼的邊界框(bounding boxes)。

frBbox                 將邊界框轉換為編碼的掩碼(Convert bounding boxes to encoded masks.)。

frPoly                  將多邊形轉換為編碼掩碼(Convert polygon to encoded mask)。

4. Annotation format

COCO目前有三種註解型別:物件例項,物件關鍵點和影象標題。註釋使用JSON檔案格式儲存。所有註釋共享下面的基本資料結構:

{

    "info": info,

    "images": [image],

    "annotations": [annotation],

    "licenses": [license],

}

info{

    "year": int,

    "version": str,

    "description": str,

    "contributor": str,

    "url": str,

    "date_created": datetime,

}

image{

    "id": int,

    "width": int,

    "height": int,

    "file_name": str,

    "license": int,

    "flickr_url": str,

    "coco_url": str,

    "date_captured": datetime,

}

license{

    "id": int,

    "name": str,

    "url": str,

}


下面介紹各種註釋型別特有的資料結構。

4.1. Object Instance Annotations

每個例項註釋包含一系列欄位,包括物件的類別ID和分割掩碼(segmentation mask)。分割格式取決於例項是否代表單個物件(iscrowd = 0,在這種情況下使用多邊形)或物件集合(iscrowd = 1,在這種情況下使用RLE)。請注意,單個物件(iscrowd = 0)可能需要多個多邊形,例如,如果被遮擋。人群註釋(Crowd annotations)(iscrowd = 1)用於標記大量物件(例如一群人)。此外,還為每個物件提供了一個封閉的邊界框(框座標是從左上角的影象角度測量的,並且是0索引的)。最後,註解結構的類別欄位儲存了類別ID到類別和超類別名稱的對映。 See also theDetection Challenge.

annotation{

    "id": int,

    "image_id": int,

    "category_id": int,

    "segmentation": RLE or [polygon],

    "area": float,

    "bbox": [x,y,width,height],

    "iscrowd": 0 or 1,

}

categories[{

    "id": int,

    "name": str,

    "supercategory": str,

}]

4.2. Object Keypoint Annotations

關鍵點註釋包含物件註釋的所有資料(包括id,bbox等)和兩個附加欄位。首先,“關鍵點”是長度為3k的陣列,其中k是為該類別定義的關鍵點的總數。每個關鍵點有一個0索引的位置x,y和一個被定義為可見性標誌。v = 0:沒有標記(在這種情況下x = y = 0),v = 1:標記但不可見,v = 2:標記並可見。如果關鍵點位於物件段內部,則認為它是可見的。“num_keypoints”指示給定物件(許多物件,例如擁擠(即重疊)和小物件將具有num_keypoints = 0)的標記關鍵點的數量(v> 0)。最後,對於每個類別,類別struct還有兩個附加欄位:“keypoints”,它是關鍵點名稱的長度為k的陣列,以及“skeleton”,它通過關鍵點邊緣對的列表定義連線,並用於視覺化。目前,關鍵點僅標記為人物類別(對於大多數中/大型非人群人物例項)。See also the Keypoint Challenge.

annotation{

    "keypoints": [x1,y1,v1,...],

    "num_keypoints": int,

    "[cloned]": ...,

}

categories[{

    "keypoints": [str],

    "skeleton": [edge],

    "[cloned]": ...,

}]

"[cloned]": 表示從4.1中定義的物件例項註釋複製的欄位。

4.3. Stuff Segmentation Annotations

物體註釋格式是完全相同和完全相容上面的物件例項註釋格式(除了iscrowd是不必要的,預設設定為0)。我們提供JSON和PNG格式的註釋,以便於訪問,以及兩種格式之間的conversion scripts。在JSON格式中,影象中的每個類別都使用單個RLE註釋進行編碼(有關更多詳細資訊,請參閱上面的Mask API)。 category_id表示當前的東西類別的ID。有關東西類別和超類別的更多細節see thestuff evaluation page.

4.4. Image Caption Annotations

這些註釋用於儲存影象標題。每個標題描述指定的影象,每個影象至少有5個字幕(一些影象有更多)。See also theCaptioning Challenge.

annotation{

    "id": int,

    "image_id": int,

    "caption": str,

}