読者です 読者をやめる 読者になる 読者になる

物体検出のssdモデルを自作データセットでfine tuning

ssd_kerasレポジトリを使って,物体検出をしました.

github.com

このレポジトリは非常に優秀で,画像,動画だけでなくwebカメラからの入力を取得して,リアルタイムで物体検出してくれるのでとてもよろしい.

 

READMEの

 You need weights_SSD300.hdf5, weights_300x300_old.hdf5 is for the old version of architecture with 3x3 convolution for pool6.

で言及されているweights_SSD300.hdf5はここにある.ちょっと探した.

https://mega.nz/#F!7RowVLCL!q3cEVRK9jyOSB9el3SssIA

 

PASCAL VOCデータセットでの学習済みモデルを使って20クラス検出するのも楽しいけど,やるなら自作でデータセットを作って好きなものを検出してみたい.

 

物体検出のデータセット作るなんてクソめんどいんじゃないかって思ってたところに革命を起こしたのが次のレポ.

github.com

こんな風にGUIでガンガンデータを作れる,早いものだと一個10秒とかでできる.超捗る.

annotationデータはPASCAL VOCデータセットに準拠したxmlファイルで出力される.

先程のssd_kerasレポジトリにはPASCALxmlファイルのパーサーが含まれており,そいつをそのまま自作データセットxmlファイルに適応できるので非常に楽.

もともと PASCAL VOC データセット,1カテゴリ数百枚とかだったりするので,自作データセットもそこまで気が遠くなるような枚数が必要なわけではない.一人でやっても数時間もぽちぽちやってれば学習に十分な枚数は集まる.

 

 

そんなわけで,自作でデータセット作って,物体検出をやってみた.

f:id:r1akamoo:20170417030906p:plain

 

一応,ペットボトル飲料の飲み終わりを検知して,amazon apiで注文してくれるとか,そういうシステムを念頭に置いてはいる(プロジェクト的なやつに応募する).

ということで,潰したペットボトルとお茶ペットボトルという地味な物体検出だけど,検出精度は結構いい感じ.