はじめに
SSD (Single Shot MultiBox Detector) を cuDNN Caffe (ver 1.0) 上にインストールを試みたが、失敗した。その原因を備忘録として残しておく。SSDに関しては、Takanori Ogata さんの SSD: Single Shot MultiBox Detector に概要が説明されている。
SSD-Caffeの取得
関連するファイル一式は、ここから取得する。中段右にある、Clone or Downloadのボタンを押し、Download ZIPを押下すれば、一式のZIPファイルを取得できる。
上記ページにインストール方法の説明が記載されており、これに従えば問題なくインストール出きると推測される。(今は試してはいない)
cuDNN Caffe でSSD CaffeのExsampleを動作させてみる
cuDNN Caffe の環境に、上記ZIPファイルを展開する。展開したら、学習済みデータ(93M)をここから取得する
展開すると
models/VGGNet/VOC0712/SSD_300x300
のフォルダーに、prototxt ファイルと caffemodel ファイルが格納されている
サンプルはプログラムは、exsamplesの下にいくつか準備されている
examples/ssd/ssd_pascal_video.py を使用すると、一緒に提供されていているビデオファイル( examples/videos/ILSVRC2015_train_00755001.mp4) 内のオブジェクトの検出と分類を行う
python examples/ssd/ssd_pascal_video.py
エラー
cuDNN Caffe 上で上記コマンドを実行すると、model_libs.py がないとのメッセージが表示されエラーとなる。
ssd/python/caffe/model_libs.py を /opt/caffe/build/python/caffeに コピーして再び実行させると
net_spec.py 内の関数がおかしいとのエラーとなる。
根本的原因
SSD-Caffe は、BLVC Caffeのバージョン 1.0.0-rc3 をブランチしたものである。これは、CMakeLists.txtをみれば分かる。
# ---[ Caffe version
set(CAFFE_TARGET_VERSION "1.0.0-rc3" CACHE STRING "Caffe logical version")
set(CAFFE_TARGET_SOVERSION "1.0.0-rc3" CACHE STRING "Caffe soname version")
add_definitions(-DCAFFE_VERSION=${CAFFE_TARGET_VERSION})
cuDNN Caffe 1.0 と SSD Caffe の python/caffe フォルダーを比較した結果以下のような差分が確認された。
左側 Caffe 1.0 右側 SSD Caffe (1.0.0-rc3 のブランチ) |
これだけ、pythonのインタフェースに差があると、オリジナル上で動作させることは無理と考えられる。
注意
ブランチにmasterとあるが、これは単にCaffeをそのままブランチしたもんで、SSDではない以上
0 件のコメント:
コメントを投稿