Пакет PyTorch torchvision содержит несколько популярных встроенных наборов данных. Чтобы увидеть список встроенных наборов данных, перейдите по этой ссылке.

Здесь мы покажем вам, как создать набор данных PyTorch из COCO 2017.

Скачивание набора данных COCO

COCO - это крупномасштабный набор данных для обнаружения, сегментации и субтитров. Подробнее об этом можно узнать здесь. COCO 2017 имеет более 118K обучающих образцов и 5000 проверочных образцов. PyTorch torchvision не загружает набор данных COCO автоматически. Таким образом, нам нужно сначала загрузить набор данных. Выполните следующие действия, чтобы загрузить набор данных COCO 2017.

  • С терминала установите pyprotocols:
$ git clone https://github.com/pdollar/coco/
$ cd coco/PythonAPI
$ make
$ python setup.py install
$ cd ../..
$ rm -r coco
  • Установите aria2c для более быстрой загрузки:
$ sudo apt install aria2c
  • Скачать COCO 2017:
$ aria2c -x 10 -j 10 http://images.cocodataset.org/zips/train2017.zip
$ aria2c -x 10 -j 10 http://images.cocodataset.org/zips/val2017.zip
$ aria2c -x 10 -j 10 http://images.cocodataset.org/annotations/annotations_trainval2017.zip
$ unzip *.zip
$ rm *.zip

После скачивания и распаковки вы увидите три папки:

  • train2017: набор данных для обучения, содержащий 118287 изображений в формате jpg.
  • val2017: набор данных проверки, содержащий 5000 изображений jpg.
  • аннотации: содержит шесть файлов json.

Создайте папку с именем data и скопируйте набор данных COCO в папку.

Создать набор данных PyTorch

Теперь мы можем создать набор данных PyTorch для COCO. Здесь нас интересует обнаружение COCO. Поэтому мы будем использовать класс CocoDetection из torchvision.datasets.

Чтобы создать набор данных PyTorch для обучающих данных, выполните следующие действия.

  • Импортируйте пакет:
import torchvision.datasets as dset
  • Определите путь к данным обучения и аннотации:
path2data="./data/train2017"
path2json="./data/annotations/instances_train2017.json"
  • Создайте объект класса CocoDetection для набора обучающих данных:
coco_train = dset.CocoDetection(root = path2data,
                                annFile = path2json)
  • Давайте получим количество образцов в этом coco_train:
print('Number of samples: ', len(coco_train))
Number of samples:  118287
  • Давайте посмотрим на один образец:
img, target-coco_train[0]
print (img.size)
(640, 480)

Вы можете выполнить тот же процесс, чтобы создать набор данных проверки.

Если вы нашли эту статью полезной, попробуйте нажать кнопку хлопка. Не стесняйтесь поделиться этой статьей на своей платформе. Вы также можете следить за мной в Twitter за последними сообщениями.