【Deep Learning】アノテーションツール labelImg
前回のDeep Learning記事は以下参照
buffalokusojima.hatenablog.com
今回は少し道を外れて、画像データ作成のツールであるlabelImgの紹介です。
インストールはググると出てきます。一応以下参照
git clone https://github.com/tzutalin/labelImg.git cd labelImg sudo apt-get install pyqt5-dev-tools sudo pip3 install lxml make qt5py3
基本的にフォルダ内の画像をどんどんアノテーションしていくと思うので、Open Dirを選択して対象のフォルダを開きます。
アノテーションの座標ファイルの保存先はChange Save Dirで選択します。
Next Image、Prev Imageで画像の切替を行います。アノテーションが保存されてない場合はWarningが出るのでうっかり移動してしまうこともないです。
アノテーションの形式はYoloとPascal Voc
です。ここでは、Keras-yolo3に合うフォーマットがないですが、情報量の多いPascalVocを選択します。こちらはxml形式で座標ファイルが作成されます。
さて、実際のアノテーション操作ですが、まずはCreate RectBoxを選択してカーソルを表示します。
マウスをクリックしたまま、領域を広げて離すと、表示された領域がアノテーション領域と認識されます。
ラベル付けのポップアップが出るのでラベル名を選択または新しく入力します。デフォルトのラベルが下の方に表示されていますがこちらはdataフォルダ内のpredefined_classes.txtを編集することで設定出来ます。
この状態でSaveしてみます。
作成されたxmlファイルを見てみると以下のようになってます。
<annotation> <folder>image</folder> <filename>sample1.jpg</filename> <path>keras-yolo3/image/sample1.jpg</path> <source> <database>Unknown</database> </source> <size> <width>510</width> <height>340</height> <depth>3</depth> </size> <segmented>0</segmented> <object> <name>リンゴ</name> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>57</xmin> <ymin>96</ymin> <xmax>252</xmax> <ymax>311</ymax> </bndbox> </object> </annotation>
ここから必要な情報を取得して、keras-yolo3の形式に変換するところを次回説明しようかと思います。