物体検出用データセット
概要
SSD, YOLO, Faster R-CNN等、物体検出のディープラーニングアルゴリズムは多々ありますが、それらの多くが学習時に「imagenetの重みで初期化→PASCAL VOCのデータセットで学習」という流れを踏んでいます。
PASCAL VOCは、The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Development Kitに各アノテーションの説明が書いてあります。
データセットの例
アノテーションはxmlファイル形式で、以下にその一部を挙げます。これは鳥が表示されている画像ですね。
大事なのは、どこに何が位置しているのかをきちんと説明できるフォーマットになっているところです。
- 物体のクラス名(name)
- 物体の座標(bndbox)
- 写真そのもので判断できるか(difficult)
<annotation> <folder>VOC2007</folder> <filename>000040.jpg</filename> <source> <database>The VOC2007 Database</database> <annotation>PASCAL VOC2007</annotation> <image>flickr</image> <flickrid>97167996</flickrid> </source> <owner> <flickrid>ResQgeek</flickrid> <name>?</name> </owner> <size> <width>500</width> <height>332</height> <depth>3</depth> </size> <segmented>0</segmented> <object> <name>bird</name> <pose>Right</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>1</xmin> <ymin>52</ymin> <xmax>384</xmax> <ymax>290</ymax> </bndbox> </object> </annotation>
自作のデータセットを作る
なぜ作る必要があるのか
VOCのデータセットにクラスがあればいいのですが、必ずしもあるとは限りません。
例えば、トラの物体検出を行いたいと考えた時に、トラのデータセットは存在していません。
その時は、自分で画像に対してbounding boxを作って1画像に対して1つのxmlファイルを作成しなければなりません。そのツールとして「物体検出用の画像アノテーション正解データ作成に便利なツール」で取り上げられていたものが見つかりました。
tzutalin/labelImg
手動で囲った結果を自動的にPASCAL VOCと同じ形式のxmlファイルとして出力、保存してくれます。
インストール
インストールですが、前述のサイトの通りに行ってもうまくいきませんでした。
$ brew install qt $ brew install pyqt $ make qt4py2 make: *** No rule to make target `qt4py2'. Stop.
こちらのissue(Installation in macOS SIerra: No rule to make target qt4py2
. Stop.)と同様のエラーが出てmakeできません。pythonのversionやqtのversionを変更していじってみましたが、同様のエラーが出ます。
時間を取られすぎていたので、下のこちらの方が提示してくれているパッケージをインストールし、アプリとして使いました。
jiyeqian/labelImg labelImg_qt5py3_mac_latest
エラーが出ている理由をきちんと突き止めてはいない(3/18現在、githubのissueもopenのままです)ので、わかりしたいアップデートしたいと思います。