-----------------------------------------------
手っ取り早く SSD の学習あるいは推論を試す方法
-----------------------------------------------

本書の２章で示した SSD の学習プログラム(myssd0.py)で実際にモデルを学習
させても、なかなか精度は上がらないと思います。実際に使える学習プログラ
ムは３章の myssd3.py です。

このディレクトリ（./SSD）では手っ取り早く SSD の学習あるいは推論を試す
のに必要なファイルだけを集めました。ここに記した手順を経ることで、SSD
の学習あるいは推論が行えます。

------------------------------------------------
○ 学習を試したい場合

(0) ディレクトリ train に移動

これで現在のディレクトリ（カレントディレクトリ）が./SSD/train になりま
す。

(1) 学習データのダウンロードと展開

以下のファイルをダウンロードし、カレントディレクトリ（./SSD/train）の
下で展開して下さい。

http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

(2) ank.pkl の作成

カレントディレクトリ（./SSD/train）の下で以下を実行して下さい。

python ann2list.py

カレントディレクトリ（./SSD/train）に ans.pkl のファイルが作成されます。

(3) vgg の初期化データのダウンロード

以下のファイルをダウンロードし、カレントディレクトリ（./SSD/train）の
下に置いて下さい。

https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth

(4) 学習

以上で学習が行えます。

python myssd3.py

プログラム中の以下の設定は自身の環境と目的に合わせて、適当に変更して下
さい。

batch_size = 30  ## バッチサイズ、GPU のメモリが少ない場合、もっと小さい数に
epoch_num = 15   ## 学習のエポック数

------------------------------------------------
○ 推論を試したい場合

(0) ディレクトリ test に移動

これで現在のディレクトリ（カレントディレクトリ）が ./SSD/test になりま
す。

(1) モデルのダウンロード

下の既存モデルをダウンロードして、カレントディレクトリ（./SSD/test）の
下に置いて下さい。

https://s3.amazonaws.com/amdegroot-models/ssd300_mAP_77.43_v2.pth

これは自身で学習したモデル（例えば mymodel.bin）でも構いません。

(2) 検出対象の画像ファイルの準備

検出対象となる画像ファイル（ここでは mydog.png）をカレントディレクトリ
（./SSD/test）の下に置いて下さい。

(3) 推論

以上で検出対象に対して物体検出が行えます。

python mytest.py mydog.png ssd300_mAP_77.43_v2.pth

モデル(ssd300_mAP_77.43_v2.pth)の部分は、自身が構築したモデル
(mymodel.bin) や他の SSD のモデルでも構いません。





