Набор данных MS COCO | Августовское обновление

глубокое обучение

Введение

MS COCOНабор данных — еще один очень известный большой набор данных в области обнаружения объектов (описанный ранее).PASCAL VOC),вCOCOдаCommon Objects in COntextАббревиатура для , созданная корпорацией Microsoft, которая содержитdetection,segmentation,keypointsи другие задачи, текущими главными спонсорами являютсяMicrosoft,Facebook,GoogleЖдите больших заводов.

иPASCAL VOCПо сравнению с набором данных,MS COCOДанные изображения в , объекты больше, размер меньше, а фон изображения сложнее, поэтому задача с этим набором данных сложнее. Для текущего алгоритма обнаружения вMS COCOРезультаты обнаружения вышеперечисленного стали стандартом де-факто для измерения качества модели.

MS COCOВсего содержит 91stuff categories, 80object cagegoriesТо есть к категории предметов мы часто говорим, к которой относится следующая картинаPASCAL VOCСравнение категорий и объемов данных

MS COCO

Критерии оценки

MS COCOСтандартное соотношение оценкиPASCAL VOCстроже, сPASCAL VOCиспользоватьmAPразные,MS COCOОсновной оценочный показательAP

MS COCO

Как вы можете видеть на изображении выше:

  • MS COCOсерединаAPнаходится в 10IOU(начиная с 0,5, шаг 0,05 до 0,95) уровень и среднее значение 80 уровней класса
  • для трех разных размеров (small,medium,large) предложил разные стандарты измерения
  • КромеAP, также предлагаетсяARкоторый(Average Recall) стандарт оценки, его метод расчета такой же, какAPпохож

Формат выноски

отличается отPASCAL VOC, одна картинка соответствует однойxmlдокумент,MS COCOзаключается в прямом преобразовании всех изображений и соответствующихbboxинформация записывается вjsonв файле. отмеченjsonФайл такой

{
    "info": info,
    "images": [image],
    "annotations": [annotation],
    "licenses": [license],
    "categories": [category]
}

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,
}

{  
    "id": int,  
    "name": str,  
    "supercategory": str,  
    "keypoints": [str],  
    "skeleton": [edge]  
} 

annotation{
    "id": int,    
    "image_id": int,
    "category_id": int,
    "segmentation": RLE or [polygon],
    "area": float,
    "bbox": [x,y,width,height],
    "iscrowd": 0 or 1,
}

Вот несколько ключевых слов для объяснения

  • info: запись основной информации о наборе данных
  • license: Информация об авторских правах, которая является источником изображения.
  • images: Содержит информацию о каждом изображении, включая имя файла, ширину, высоту,idЖдать
  • categories: информация о категории,idНумерация начинается с 1, 0 — это фон, аsupercategory, такие как собаки и кошки,supercategoryживотное
  • annotations: в тренировочном наборе (или тестовом наборе)bboxколичество

MS COCOВ наборе данных есть три типа аннотаций, а именноobject instances,object keypointsиimage captions,в,info,licensesиimagesТри структуры являются общими в разныхjsonТри типа в файле одинаковы, иannotationиcategoryэто отличается

Загрузка набора данных

В основном имеется два набора данных за 2014 и 2017 годы, а данные за 2014 год используются дляDetectionОбнаружение цели,Captioningсубтитры,KeypointsВ трех задачах обнаружения ключевых точек, а данные 2017 года основаны на этом, большеStuffиPanopticРазделите задачи.

train2017 val2017 test2017

Инструмент аннотации

рекомендоватьlabelme, Используйте напрямуюpip install labelmeдля завершения установки. Он также очень прост в использовании,labelImgпочти слишком много

MS COCO

Взаимное преобразование PASCAL VOC и MS COCO

Вы можете использовать следующий инструмент с открытым исходным кодомGitHub.com/ver Идентификатор позы, о…

COCO API

MS COCOпри условии соответствующегоAPI, используемый для операций с наборами данных, адрес:GitHub.com/cocoDataSet…,Это обеспечиваетPython,LuaиMatlibинтерфейс, здесьPythonНапример

Первый — установить

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
make

Ниже приведен официальный пример использования

from pycocotools.coco import COCO
import numpy as np
import skimage.io as io
import matplotlib.pyplot as plt
import pylab
pylab.rcParams['figure.figsize'] = (8.0, 10.0)

dataDir='..'
dataType='val2017'
annFile='{}/annotations/instances_{}.json'.format(dataDir,dataType)
# 通过instance annotations的json文件得到coco对象
coco=COCO(annFile)

cats = coco.loadCats(coco.getCatIds())
nms=[cat['name'] for cat in cats]
# 输出目标类别
print('COCO categories: \n{}\n'.format(' '.join(nms)))

nms = set([cat['supercategory'] for cat in cats])
# 输出大类别,supercategory
print('COCO supercategories: \n{}'.format(' '.join(nms)))

# get all images containing given categories, select one at random
catIds = coco.getCatIds(catNms=['person','dog','skateboard']);
imgIds = coco.getImgIds(catIds=catIds );
imgIds = coco.getImgIds(imgIds = [324158])
# 得到img对象,图片信息都在这里
img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]

# 读取图片并显示出来
# I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['file_name']))
# use url to load image
I = io.imread(img['coco_url'])
plt.axis('off')
plt.imshow(I)
plt.show()

Отображается после выполнения кода

MS COCO

использованная литература