第1回AIチャレンジコンテスト参加記 (2) : 検出部門編

はじめに

こんにちは、tadaです。以前の記事でも紹介があった第1回AIチャレンジコンテストに参加した際にどのような取り組みを行ったかを書かせていただきたいと思います。なぜ改めてと思う方もいらっしゃると思いますが、実は前回の記事で紹介のあった分類部門とは別に検出部門にも参加していたためです。

採用したアルゴリズム

精度が高い物体検出を行うアルゴリズムとしてよく知られているのはおそらく以下のものでしょう。

  • Faster R-CNN
  • YOLO
  • SSD

いずれもDeapLearningを用いたアルゴリズムであり、Pascal VOCというコンペで使用されているデータセットを用いての精度も非常に優れていることが知られています。その中でも論文上ではVOCでの検出精度が一番高い結果となっていたSSDを選んで検出部門に挑みました。

SSDの実装

SSDにはアルゴリズムを発表したWei Liu氏が実装したCaffe-SSDやそれを元に実装したKeras-SSD, chainer-SSDなど複数の実装があります(当時はまだでしたが最近ではChainerCVでも実装されています)。 今回はもっとも使われていてそのため信頼性が高いCaffe-SSDを採用しました。データセットを取り込むのにとても苦労したのですが、機会があればいずれ紹介したいと思います。

2つのモデルを使用した推論

論文では画像の入力解像度として300×300を使ったSSD300と512×512を使ったSSD512の2種類のネットワークが紹介されています。解像度が大きくなると何が変わるのかというと、畳み込み層を増やすことができてその層から出てくるFeature Mapを使用することにより検出精度がよくなるそうです。ということで手始めにSSD300で検出した結果を投稿したところ、なんとスコアが0.8237で7位につけることができました。続いてSSD512に変更したところスコアが0.8479となり5位になりました。ここまでは凄く威勢のいい結果なのですが、ここからスコアを上げる方法がなかなか見つからず最終的にモデルアンサンブルに近いことを試しました。モデルアンサンブルとは複数のモデルを使って推論した結果を平均するテクニックで、今回の場合は料理の座標を検出するということなので平均せずに検出結果を高い順に並べなおすということを行いました。それを試したところでコンテストが終了しました。

結果

最終的な結果として最高精度賞では5位に、アイデア賞では4位になることができました。アイデア賞に関しては正直、他の参加者が少なかったのでは?という気がしてるのですが、なさねばならぬということでしょうか。
ちなみにこちらが分類部門と検出部門での賞品です!

おわりに

簡単にですが、検出部門で取り組んだ内容を紹介させていただきました。正直たいしたこと出来なかったのですが、それでも上々の結果を出せたのかなと思っています。まだまだ未成熟な分野なのでアプローチ次第では結果も大きく変わると思います。興味ある方はいろいろ参加して一攫千金してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です