Datumaroとは
https://github.com/openvinotoolkit/datumaro
COCOやVOCなどの画像データセットを変換,結合,解析などができるツール.
OpenVINO toolkitの一部として開発されていて,アノテーションツールCVATでも使われている.
個人的に便利だと思ったところは,
- データセットのフォーマット変換として対応フォーマットが多く使いやすい.
- 結合や分割などの共通の操作が適用できる.
- 検証がかけられて安心できる.
調べてもあまり日本語の解説がヒットしないので,Datumaroの機能と使い方を簡単に紹介する.
まだ使っていない機能も多いので,使いながら適宜追加,修正の予定です.
機能
データセット関連の様々な処理を提供している.
- データセットのフォーマット変換
- データセットの分割や結合,アノテーションのフィルタリング
- アノテーションの検証,エラーチェック
などなど.
機能一覧はhttps://github.com/openvinotoolkit/datumaro#features
インストール
CLIとPython APIがあるが,pipでインストール
pip install datumaro
使い方
プロジェクト作成
プロジェクトを作成し,データセットをDatumaroのプロジェクトとして登録する.
以下はsample_project
というプロジェクトをつくり,COCO形式のデータセットを登録します.
# プロジェクト作成
datum create -o sample_project
# プロジェクトにデータセットを登録
datum add path sample_dataset/annotations/instances_default.json -f coco_instances
datum add path sample_dataset/images -f image_dir
他の形式も同じプロジェクトに登録できるようです.
このプロジェクトに対して結合や分割,フィルタの操作を行うことができるようになっています.
フォーマット変換(Export)
Datumaroプロジェクトは対応しているフォーマットで書き出すことができます.
以下は,sample_project
をexample_dataset_tfrecord
という名前でTFRecord形式で書き出す例です.
# 書き出し(変換)
datum export \
-p example_dataset \
-o example_dataset_tfrecord \
-f tf_detection_api
解析(Statics)
datum stats -p sample_project
画像の平均値,標準偏差が出力されます.ImageNetのものをそのまま使っていたりしますが,この出力を使うの方のが適切かもしれません.またラベルの偏り/分布を確認することもできます.
検証(Validate)
datum validate -p sample_project
定義されていないアノテーションがないかやアノテーションがない画像がないかを確認してくれるようです.一度このような確認をかけておくと安心できます.
validateで検証している内容は以下に記載があります.
https://github.com/openvinotoolkit/datumaro/blob/develop/docs/user_manual.md#validate-project-annotations