情報系院生の活動日誌

いまはもう社会人

Javaの環境設定をした

将来立派な金融Javaおじさんになるために、Javaの環境設定をしました。

加えてatcoderの設定もした。

github.com

しかし,どうやってもatcoder-tools testコマンドがjavaの場合にうまく動かない。

コードを読んでも、実行可能ファイルを叩く形になっていて、c++の場合には上手くいくんだけど、java Mainのように言語に応じて適切なコマンドを実行してくれるようにはなっていない?よくわからん

OSError: [Errno 88] Malformed Mach-o file: './Main.class'

よくわかんなかったから結局コードをハックして解決した。java Mainをハードコードした。 すごい頭悪そうだけどわかんなかったから仕方ない。 (昔pythonの場合に普通に動いてた気がする、てことはpython main.pyとか呼ぶようになってるはずなので何かがおかしい気がする)

物体検出の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で注文してくれるとか,そういうシステムを念頭に置いてはいる(プロジェクト的なやつに応募する).

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