Kaggle#
Format specification#
Kaggle provides more than 2800 computer vision datasets for the public good and fair competition. All datasets are available for downloading at here. However, since Kaggle doesn’t enforce community to follow specific rule for dataset uploads, it is more natural to explore a dataset directoy structure by manual. So it eventually requires to take some time for importing those datasets into their machine learning codes. Therefore, Datumaro is providing an ability to import them through Datumaro Python APIs.
Supported type of annotations:
Label
(classification)Bbox
(object detection)Mask
(segmentation)
Import Kaggle Image CSV dataset#
Indeed, Kaggle doesn’t have any specific directory structure, and Datumaro hence requires more user-aided arguments for importing.
For kaggle_image_csv
format, we want to have one csv
file and image_directory
as shown below.
├── <annotation_file>.csv
└── <image_directory>
├── <name_of_image_1>.jpg # extension of video could be other
├── <name_of_image_2>.jpg
└── ...
Here <annotation_file>.csv
contains media name and annotation information such as label or box coordinates as
media_name_in_image_directory,label,...
<name_of_image_1>,<category_1>,...
<name_of_image_2>,<category_2>,...
...
A Datumaro dataset with a Kaggle dataset can be created in the following way in Python API:
import datumaro as dm
dataset = dm.Dataset.import_from('<path_to_image_directory>', format='kaggle_image_csv', ann_file='<path_to_csv_file>', columns={"media": "column_name_of_media", "label": "column_name_of_label"})
At this time, it’s essential to specify the column names for media and label such as dm.Dataset.import_from(..., columns={"media": "column_name_of_media", "label": "column_name_of_label"})
Import Kaggle Image Txt dataset#
Another kaggle_image_txt
format replaces only columns
with an order of information in .txt
.
For instance, dataset can be created by
dataset = dm.Dataset.import_from('<path_to_image_directory>', format='kaggle_image_txt', ann_file='<path_to_txt_file>', columns={"media": 0, "label": 1})
Import Kaggle Image Mask dataset#
For segmentation tasks, kaggle_image_mask
requires to have a directory for mask images as following Python API.
dataset = dm.Dataset.import_from('<path_to_image_directory>', format='kaggle_image_mask', mask_path='<path_to_mask_directory>')
Import Kaggle VOC and Kaggle YOLO datasets#
Sometimes, communities upload their annotation files for each images with VOC (xml
) and YOLO (txt
) formats thanks to its popularity.
But, they violate the directory sturcture of the original Pascal-VOC and YOLO described in VOC and YOLO, respectively.
For these cases, we provide kaggle_voc
and kaggle_yolo
formats by specifying the path to annotation files as below.
dataset = dm.Dataset.import_from('<path_to_image_directory>', format='kaggle_voc', ann_path='<path_to_annotation_directory>')
or
dataset = dm.Dataset.import_from('<path_to_image_directory>', format='kaggle_yolo', ann_path='<path_to_annotation_directory>')
Please refer to here for various practices.