データセットの準備¶
このページでは、既存のベンチマークでのデータセット準備手順について説明します。以下を含みます。
複数物体追跡
ビデオインスタンスセグメンテーション
1. データセットのダウンロード¶
公式ウェブサイトからデータセットをダウンロードしてください。$MMDETECTION/data
にデータセットのルートへのシンボリックリンクを作成することをお勧めします。
1.1 複数物体追跡¶
複数物体追跡タスクの学習とテストには、MOTチャレンジデータセット(例:MOT17、MOT20)のいずれかが必要であり、CrowdHumanを補足的なデータセットとして使用できます。
中国のユーザー向けには、以下のデータセットをOpenDataLabから高速でダウンロードできます。
1.2 ビデオインスタンスセグメンテーション¶
ビデオインスタンスセグメンテーションタスクの学習とテストには、YouTube-VISデータセット(例:YouTube-VIS 2019、YouTube-VIS 2021)のいずれか1つのみが必要です。
YouTube-VIS 2019データセットはYouTubeVOSからダウンロードできます。
YouTube-VIS 2021データセットはYouTubeVOSからダウンロードできます。
1.3 データ構造¶
フォルダ構造が以下のものと異なる場合は、設定ファイルの対応するパスを変更する必要があるかもしれません。
mmdetection
├── mmdet
├── tools
├── configs
├── data
│ ├── coco
│ │ ├── train2017
│ │ ├── val2017
│ │ ├── test2017
│ │ ├── annotations
│ │
| ├── MOT15/MOT16/MOT17/MOT20
| | ├── train
| | | ├── MOT17-02-DPM
| | | | ├── det
| │ │ │ ├── gt
| │ │ │ ├── img1
| │ │ │ ├── seqinfo.ini
│ │ │ ├── ......
| | ├── test
| | | ├── MOT17-01-DPM
| | | | ├── det
| │ │ │ ├── img1
| │ │ │ ├── seqinfo.ini
│ │ │ ├── ......
│ │
│ ├── crowdhuman
│ │ ├── annotation_train.odgt
│ │ ├── annotation_val.odgt
│ │ ├── train
│ │ │ ├── Images
│ │ │ ├── CrowdHuman_train01.zip
│ │ │ ├── CrowdHuman_train02.zip
│ │ │ ├── CrowdHuman_train03.zip
│ │ ├── val
│ │ │ ├── Images
│ │ │ ├── CrowdHuman_val.zip
│ │
2. アノテーションの変換¶
この場合、公式アノテーションをcoco形式に変換する必要があります。スクリプトを提供しており、使用方法は以下のとおりです。
# MOT17
# The processing of other MOT Challenge dataset is the same as MOT17
python ./tools/dataset_converters/mot2coco.py -i ./data/MOT17/ -o ./data/MOT17/annotations --split-train --convert-det
python ./tools/dataset_converters/mot2reid.py -i ./data/MOT17/ -o ./data/MOT17/reid --val-split 0.2 --vis-threshold 0.3
# CrowdHuman
python ./tools/dataset_converters/crowdhuman2coco.py -i ./data/crowdhuman -o ./data/crowdhuman/annotations
# YouTube-VIS 2019
python ./tools/dataset_converters/youtubevis2coco.py -i ./data/youtube_vis_2019 -o ./data/youtube_vis_2019/annotations --version 2019
# YouTube-VIS 2021
python ./tools/dataset_converters/youtubevis2coco.py -i ./data/youtube_vis_2021 -o ./data/youtube_vis_2021/annotations --version 2021
これらのスクリプトを実行した後、フォルダ構造は以下のようになります。
mmdetection
├── mmtrack
├── tools
├── configs
├── data
│ ├── coco
│ │ ├── train2017
│ │ ├── val2017
│ │ ├── test2017
│ │ ├── annotations
│ │
| ├── MOT15/MOT16/MOT17/MOT20
| | ├── train
| | | ├── MOT17-02-DPM
| | | | ├── det
| │ │ │ ├── gt
| │ │ │ ├── img1
| │ │ │ ├── seqinfo.ini
│ │ │ ├── ......
| | ├── test
| | | ├── MOT17-01-DPM
| | | | ├── det
| │ │ │ ├── img1
| │ │ │ ├── seqinfo.ini
│ │ │ ├── ......
| | ├── annotations
| | ├── reid
│ │ │ ├── imgs
│ │ │ ├── meta
│ │
│ ├── crowdhuman
│ │ ├── annotation_train.odgt
│ │ ├── annotation_val.odgt
│ │ ├── train
│ │ │ ├── Images
│ │ │ ├── CrowdHuman_train01.zip
│ │ │ ├── CrowdHuman_train02.zip
│ │ │ ├── CrowdHuman_train03.zip
│ │ ├── val
│ │ │ ├── Images
│ │ │ ├── CrowdHuman_val.zip
│ │ ├── annotations
│ │ │ ├── crowdhuman_train.json
│ │ │ ├── crowdhuman_val.json
│ │
│ ├── youtube_vis_2019
│ │ │── train
│ │ │ │── JPEGImages
│ │ │ │── ......
│ │ │── valid
│ │ │ │── JPEGImages
│ │ │ │── ......
│ │ │── test
│ │ │ │── JPEGImages
│ │ │ │── ......
│ │ │── train.json (the official annotation files)
│ │ │── valid.json (the official annotation files)
│ │ │── test.json (the official annotation files)
│ │ │── annotations (the converted annotation file)
│ │
│ ├── youtube_vis_2021
│ │ │── train
│ │ │ │── JPEGImages
│ │ │ │── instances.json (the official annotation files)
│ │ │ │── ......
│ │ │── valid
│ │ │ │── JPEGImages
│ │ │ │── instances.json (the official annotation files)
│ │ │ │── ......
│ │ │── test
│ │ │ │── JPEGImages
│ │ │ │── instances.json (the official annotation files)
│ │ │ │── ......
│ │ │── annotations (the converted annotation file)
MOT15/MOT16/MOT17/MOT20 のアノテーションとreidのフォルダ¶
例としてMOT17データセットを取り上げます。他のデータセットも同様の構造です。
data/MOT17/annotations
には8つのJSONファイルがあります。
train_cocoformat.json
:MOT17データセットの訓練セットのアノテーション情報を格納したJSONファイル。
train_detections.pkl
:MOT17データセットの訓練セットのパブリック検出結果を格納したPickleファイル。
test_cocoformat.json
:MOT17データセットのテストセットのアノテーション情報を格納したJSONファイル。
test_detections.pkl
:MOT17データセットのテストセットのパブリック検出結果を格納したPickleファイル。
half-train_cocoformat.json
、half-train_detections.pkl
、half-val_cocoformat.json
、half-val_detections.pkl
は、train_cocoformat.json
とtrain_detections.pkl
と同様の意味を持ちます。「half」とは、訓練セットの各ビデオを半分に分割したことを意味します。前半のビデオはhalf-train
セット、後半のビデオはhalf-val
セットと呼ばれます。
data/MOT17/reid
の構造は以下のとおりです。
reid
├── imgs
│ ├── MOT17-02-FRCNN_000002
│ │ ├── 000000.jpg
│ │ ├── 000001.jpg
│ │ ├── ...
│ ├── MOT17-02-FRCNN_000003
│ │ ├── 000000.jpg
│ │ ├── 000001.jpg
│ │ ├── ...
├── meta
│ ├── train_80.txt
│ ├── val_20.txt
train_80.txt
の80
は、ReIDデータセット全体に対する訓練データセットの割合が80%であることを意味します。検証データセットの割合は20%です。
学習のため、アノテーションリストtrain_80.txt
を提供します。リストの各行には、ファイル名とその対応する正解ラベルが含まれています。形式は以下のとおりです。
MOT17-05-FRCNN_000110/000018.jpg 0
MOT17-13-FRCNN_000146/000014.jpg 1
MOT17-05-FRCNN_000088/000004.jpg 2
MOT17-02-FRCNN_000009/000081.jpg 3
MOT17-05-FRCNN_000110
は、MOT17-05-FRCNN
ビデオの110番目の個人を表します。
検証のため、アノテーションリストval_20.txt
は上記の形式と同じままです。
reid/imgs
内の画像は、対応するgt.txt
によってMOT17/train
内の生画像から切り取られています。正解ラベルの値は[0, num_classes - 1]
の範囲内にある必要があります。
crowdhuman のアノテーションフォルダ¶
data/crowdhuman/annotations
には2つのJSONファイルがあります。
crowdhuman_train.json
:CrowdHumanデータセットの訓練セットのアノテーション情報を格納したJSONファイル。crowdhuman_val.json
:CrowdHumanデータセットの検証セットのアノテーション情報を格納したJSONファイル。
youtube_vis_2019/youtube_vis2021 のアノテーションフォルダ¶
data/youtube_vis_2019/annotations
またはdata/youtube_vis_2021/annotations
には3つのJSONファイルがあります。
youtube_vis_2019_train.json
/youtube_vis_2021_train.json
:youtube_vis_2019/youtube_vis2021データセットの訓練セットのアノテーション情報を格納したJSONファイル。
youtube_vis_2019_valid.json
/youtube_vis_2021_valid.json
:youtube_vis_2019/youtube_vis2021データセットの検証セットのアノテーション情報を格納したJSONファイル。
youtube_vis_2019_test.json
/youtube_vis_2021_test.json
:youtube_vis_2019/youtube_vis2021データセットのテストセットのアノテーション情報を格納したJSONファイル。