このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
こんにちは、tadaです。以前の記事でも紹介があった第1回AIチャレンジコンテストに参加した際にどのような取り組みを行ったかを書かせていただきたいと思います。なぜ改めてと思う方もいらっしゃると思いますが、実は前回の記事で紹介のあった分類部門とは別に検出部門にも参加していたためです。
精度が高い物体検出を行うアルゴリズムとしてよく知られているのはおそらく以下のものでしょう。
いずれもDeapLearningを用いたアルゴリズムであり、Pascal VOCというコンペで使用されているデータセットを用いての精度も非常に優れていることが知られています。その中でも論文上ではVOCでの検出精度が一番高い結果となっていたSSDを選んで検出部門に挑みました。
SSDにはアルゴリズムを発表したWei Liu氏が実装したCaffe-SSDやそれを元に実装したKeras-SSD, chainer-SSDなど複数の実装があります(当時はまだでしたが最近ではChainerCVでも実装されています)。 今回はもっとも使われていてそのため信頼性が高いCaffe-SSDを採用しました。データセットを取り込むのにとても苦労したのですが、機会があればいずれ紹介したいと思います。
論文では画像の入力解像度として300×300を使ったSSD300と512×512を使ったSSD512の2種類のネットワークが紹介されています。解像度が大きくなると何が変わるのかというと、畳み込み層を増やすことができてその層から出てくるFeature Mapを使用することにより検出精度がよくなるそうです。ということで手始めにSSD300で検出した結果を投稿したところ、なんとスコアが0.8237で7位につけることができました。続いてSSD512に変更したところスコアが0.8479となり5位になりました。ここまでは凄く威勢のいい結果なのですが、ここからスコアを上げる方法がなかなか見つからず最終的にモデルアンサンブルに近いことを試しました。モデルアンサンブルとは複数のモデルを使って推論した結果を平均するテクニックで、今回の場合は料理の座標を検出するということなので平均せずに検出結果を高い順に並べなおすということを行いました。それを試したところでコンテストが終了しました。
最終的な結果として最高精度賞では5位に、アイデア賞では4位になることができました。アイデア賞に関しては正直、他の参加者が少なかったのでは?という気がしてるのですが、なさねばならぬということでしょうか。
ちなみにこちらが分類部門と検出部門での賞品です!
簡単にですが、検出部門で取り組んだ内容を紹介させていただきました。正直たいしたこと出来なかったのですが、それでも上々の結果を出せたのかなと思っています。まだまだ未成熟な分野なのでアプローチ次第では結果も大きく変わると思います。興味ある方はいろいろ参加して一攫千金してください。
keisuke.kimura in Livox Mid-360をROS1/ROS2で動かしてみた
Sorry for the delay in replying. I have done SLAM (FAST_LIO) with Livox MID360, but for various reasons I have not be...
Miya in ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました
作成されたプロファイラがとても良さそうです :) ぜひ詳細を書いていただきたいです!...
Deivaprakash in Livox Mid-360をROS1/ROS2で動かしてみた
Hey guys myself deiva from India currently i am working in this Livox MID360 and eager to knwo whether you have done the...
岩崎システム設計 岩崎 満 in Alveo U50で10G Ethernetを試してみる
仕事の都合で、検索を行い、御社サイトにたどりつきました。 内容は大変参考になりま...
Prabuddhi Wariyapperuma in Livox Mid-360をROS1/ROS2で動かしてみた
This issue was sorted....