思いっきり車輪の再発明っぽいツールを2つほど作りました。
Data Augmentationツール
Deep Convolutional Neural Networkとかで画像を学習させる際、学習画像をずらしたりぼかしたり、色々と変形を加えて学習画像を増やすことで、認識をロバストにするというテクニックが良く使われています。(Caffeなんかにも実装されている。)
でまあ、そういうテクニックってDeep Learning以外のケースでも学習データ増やすのに有効だろうってことで、コマンドラインから使えるツールをC++で自作しました。
https://github.com/takmin/DataAugmentation
学習画像に対して、アスペクト比の変更、回転(ロール・ピッチ・ヨー)、ぼかし、ノイズ付加、ずらしなどの処理をランダムに加えます。
詳しくはreadmeJ.txtを読んで下さい。
一般物体検出評価ツール
PASCAL VOCの物体検出の評価方法(矩形のオーバーラップが0.5以上)をMatlabではなくコマンドラインから使えるようにしました。
オレオレ自作データセットなんかにも使えるようにしたいなということで、入力のフォーマットをとりあえずOpenCVのCascade Classifierの学習器と同じにしてあります。
https://github.com/takmin/EvalLocalization
入力に、検出結果とGround Truthを記したテキストファイルを与えると、以下を出力してくれます。
- Average Precision (標準出力)
- Recall-Precision Curve (CSVファイル)
- True PositiveとFalse Positive(テキストファイル or 画像ファイル)
こちらも使い方はreadmeJ.txtを参照して下さい。
なんか他に良いツールがありそうな気もするけど、誰かのお役に立てれば幸いです。