labelImgを使って画像をアノテーションしよう
目的
既存の物体検出アルゴリズムのファインチューニング用データを自作する
アノテーション(=画像内の物体にラベルを付ける)をおこなう
物体検知アルゴリズムはSSD(Single Shot multiboxDetecor)を採用
※今回はWindowsOS上で動作する
(Ubuntuでは環境変数の設定等が必要になった。Windowsでも問題なく動くのでこちらを採用した。)
labelImgとは
手軽にアノテーションをおこなうことができるGUIアプリケーション
筆者は「ラベルアイエムジー」と呼んでいる
labelImgのインストール手順
※pythonやpipが使用できる環境を事前に準備する
git cloneでリポジトリを取ってくる
git clone https://github.com/HumanSignal/labelImg
ディレクトリを移動・コマンド実行
cd ./labelImg
pip install PyQt5 lxml
pyrcc5 -o libs/resources.py resources.qrc
アプリケーションの起動
python labelImg.py
コマンド実行後、アプリケーションのウィンドウが開く
アプリケーションの使い方
検出したい物体を決める
data/predefined_classes.txt というファイルを編集する
デフォルトですでに「dog」や「person」が書きこまれている
(多分)英語の方が良い.文字化け等の予防
保存形式を決定する
labelImgではデータの保存形式を、目的によって変更可能
YOLOで使いたいデータの場合は「YOLO」に変えておく(アノテーションデータは.txtで保存される)
アノテーションする画像データを選択する
画面左上の「ディレクトリを開く」を選択し、画像が保存されているディレクトリを開く
ディレクトリ内の任意の画像を選択
バウンディングボックス(BBox)を作る
「矩形を作成する」を選択
検出したい物体を囲む
該当するカテゴリを選択し、「OK」を押す