anylabeling
Segment Anything、MobileSAM および YOLOモデルによるAIサポート付きのアノテーションツール。
特徴は多角形、長方形、円、線、点の画像注釈、
YOLOv5 と Segment Anything による自動ラベル付け。
テキストの検出、認識、KIE (Key Information Extraction) ラベル付け。
多言語対応:英語、ベトナム語、中国語。
github:https://github.com/vietanhdev/anylabeling
ドキュメント: https://anylabeling.com
YouTube デモ: https://youtu.be/5qVJiYNX5Kk
install
インストールの方法は2つ。
- 実行ファイルをダウンロードして実行する
リリースから最新バージョンをダウンロードして実行します。
MacOSの場合:
インストール後、アプリケーションインストールに移動します
アプリを右クリックして「開く」を選択します
2 回目以降は、Launchpad を使用して通常通りアプリを開くことができます
2.Pypiからインストールする
要件: Python >=3.8、<= 3.10。
推奨: Miniconda/Anaconda。
環境を作成します。
conda create -n anylabeling python=3.8
conda activate anylabeling
(macOS のみ) Conda を使用して PyQt5 をインストールします。
conda install -c conda-forge pyqt==5.15.7
AnyLabeling をインストールします。
pip install anylabeling # or pip install anylabeling-gpu for GPU support
AnyLabeling を実行します。
anylabeling
使い方
AIを使用する場合
画面が起動したらAuto Labelingボタンを押下。画面上部にモデルの選択BOXが表示されるのでモデルを選択します。
今回はCPUで動かすのでSegment Anything(MobaieSAM)を使用。
※Segment Anythingモデルを使用する場合GPUはCUDAが推奨。
ファイル位のアイコンをクリックし画像を読み込ませたら「+Point」を有効にし、アノテーションしたいオブジェクトをクリックします。
AIモデルがオブジェクトのセグメンテーションを実施。
オジェクトの輪郭が画像上に表示される。
ラベル設定のウィンドウが表示されるのでラベルを設定し、画面上部の「Finish Object」をクリック。
この段階でアノテーション済データがJSON形式で画像と同じディレクトリに1画像につき1ファイルで作成される。
アノテーション済みの画像に関してはマスク部分を手動で変更することも可能。
1クリックでかなり精度良くセグメンテーションマスクが作成されているが確認できます。
画面上部のOutputをRectangleに設定し「+Rct」を有効にすることで矩形でのセグメンテーションも可能。
AIを使わない場合
画面左側中段の図形マークでそれぞれに対応した形式でオブジェクトの指定を行うことができます。
ラベルをつけてobjectが確定した段階でアノテーション済データがJSON形式で画像と同じディレクトリに1画像につき1ファイルで作成される。
まとめ
個人的に使用してみて輪郭が複雑なオブジェクトをアノテーションする際は簡単な操作で作業がきそうと感じました。
日本語対応がされるとより使いやすくなりそうなツールだと思います。