CVATを使ってみた
CVATを使ってみた。
CVATはアノテーションツールです。
このツールの機能としては、
- 基本的なアノテーション機能
- 自動ラベリング機能
- 半自動のラベリング支援機能
- ユーザ管理、タスク管理機能
があります。基本的な使い方は公式ドキュメントも、日本語の説明もたくさんありますので、
ここでは、CVATのロードマップとか設計とか一部機能とか面白そうなところとか見ていきます。
公式サイトのロードマップを見てみると、Intelのロシア拠点の開発者が開発していて、
最終的にはのデータプラットフォームにしたいようです。インフラも合わせて提供するかは不明です。
このアノテーションツールの(現時点の)特徴は、
半自動のラベル付け支援機能や自動ラベリング機能がそこそこ揃っていることです。
これらの機能について説明します。
自動ラベリング・半自動ラベリング機能の設定
自動アノテーション機能をオンにするためには、通常のインストール手順とは異なり、
こちらの手順に従う必要があります。
また、ラベル付けするためのモデルをnuclioというServerlessなAPIを管理するOSSにデプロイする必要があります。
nuclioはAWS Lambdaのようなもので、APIをコンテナごとに管理したものを作れます。
cvatには、apiはたくさん用意されているのですが、すべてのモデルをデプロイするための、スクリプトが用意されており、
これを実行することですべてのapiを利用できるようになります。
nuclioを使っているのは、おそらく、
モデルをserverless functionとしてはアクセスする設計にすることで、
あとから、拡張しやすくしたり、別リポジトリとして管理できるようにしたり、
したいからだと思います。
auto/semiラベル機能の活用
実際に使ってみるのがいいと思います。
私が人の手のInstance Segmentationのアノテーションに活用してみた感じだと、f-BRS以外は、いい感じのマスクを生成してくれませんでした。また、処理時間が遅いため、アノテーション速度が向上するかと言われると、非常に疑問に感じました。
普通に機能としては、deep extreme cut, f-BRS, Inside-Outside Guidanceの3つがありまして、残りの2つでいい感じのマスクを生成できませんでした。
所感
ラベリングの基本機能について
画像をラベリングをするための基本機能が少し使いづらいと感じました。
その理由しては、
- オブジェクトをアノテーションすることに特化しており、セマンティックセグメンテーションのラベリングが少しむずかしいこと
- ショートカットキーの設定ができないこと
などが上げられます。
自動ラベリングについて
使いにくかったです。
データ管理について
使ってみた感じだと、複数人でアノテーションしたり、データを管理したい場合、
CVATをチームで使えるサービスとして立てて使うのはありかなと思っています。
SageMaker Ground Truthなどと比較すると、機能面では不足があったりしますが、
オープンソースとしてはそこそこいいかなと思っています。
合いそうなプロジェクト
- 複数人でアノテーションするプロジェクト
- セマンティックセグメンテーション以外のDetection系のデータセットを作りたいプロジェクト
- AWSよりも安く済ませることを目指す場合
- CVATへのContributionも視野に入れる場合
Discussion