物体検出のssdモデルを自作データセットでfine tuning
ssd_kerasレポジトリを使って,物体検出をしました.
このレポジトリは非常に優秀で,画像,動画だけでなくwebカメラからの入力を取得して,リアルタイムで物体検出してくれるのでとてもよろしい.
READMEの
You need
weights_SSD300.hdf5
,weights_300x300_old.hdf5
is for the old version of architecture with 3x3 convolution forpool6
.
で言及されているweights_SSD300.hdf5はここにある.ちょっと探した.
https://mega.nz/#F!7RowVLCL!q3cEVRK9jyOSB9el3SssIA
PASCAL VOCデータセットでの学習済みモデルを使って20クラス検出するのも楽しいけど,やるなら自作でデータセットを作って好きなものを検出してみたい.
物体検出のデータセット作るなんてクソめんどいんじゃないかって思ってたところに革命を起こしたのが次のレポ.
こんな風にGUIでガンガンデータを作れる,早いものだと一個10秒とかでできる.超捗る.
annotationデータはPASCAL VOCデータセットに準拠したxmlファイルで出力される.
先程のssd_kerasレポジトリにはPASCALのxmlファイルのパーサーが含まれており,そいつをそのまま自作データセットのxmlファイルに適応できるので非常に楽.
もともと PASCAL VOC データセット,1カテゴリ数百枚とかだったりするので,自作データセットもそこまで気が遠くなるような枚数が必要なわけではない.一人でやっても数時間もぽちぽちやってれば学習に十分な枚数は集まる.
そんなわけで,自作でデータセット作って,物体検出をやってみた.
一応,ペットボトル飲料の飲み終わりを検知して,amazon apiで注文してくれるとか,そういうシステムを念頭に置いてはいる(プロジェクト的なやつに応募する).
ということで,潰したペットボトルとお茶ペットボトルという地味な物体検出だけど,検出精度は結構いい感じ.