2016年1月17日日曜日

SegNetをUbuntuで試してみた

SegNetは、ケンブリッジ大学が開発した画素単位での識別機能を実現する、deep encoder-decoderである。SegNetに関しては、このページを参照

SegNetのビルド

Caffeベースなので、caffeに必要な環境を準備し、このページからZipファイルをダウンロードし展開する。

展開したフォルダー caffe-segnet-segnet-cleaned に移動しする
CPUベースのみで計算するので Makefile.config の内容を書き換えておく
このあとmake して make runtestでビルドが成功していることを確認し、python関連ファイルをpipでインストールする
make pycaffe を行い、最後にpythonフォルダーを.bashrcに追加しておく

export PYTHONPATH=/home/caffe/caffe-segnet-segnet-cleaned/python:$PYTHONPATH >> /home/caffe/.bashrc

サンプルソースの取得

wget https://github.com/alexgkendall/SegNet-Tutorial/archive/master.zip
でサンプルソースを取得し、展開する
フォイルダー名をSegNetに変えておく

サンプルソースにはモデルファイルが含まれていないので、Example_Modelsに移動し、
wget http://mi.eng.cam.ac.uk/projects/segnet/models/segnet_weights_driving_webdemo.caffemodel
でモデルデータを取得する

サンプルの修正

付属のpythonサンプル SegNet/Script/webcam_demo.py では、カメラ入力画像か、AVIファイルの画像を入力画像として識別しているがこの部分のimreadに差し替えjpgやpngファイルを使用して試してみるように修正する

サンプルの実行結果

python test.py --model SegNet/Example_Models/segnet_model_driving_webdemo.prototxt --weights SegNet/Example_Models/segnet_weights_driving_webdemo.caffemodel --colours SegNet/Scripts/camvid12.png


camvid12.pngは、識別された画素のクラスを示している。
色の意味はここ。


入力画像は、480x360なので事前に試したい画像をトリミングしておく
試した結果を示す。


この画像はテストフォルダーに含まれているもの


この画像は、とある神社の参道、


こちらは、ホテルの近くの道

いずれも計算時間が10秒近くかかっており、CPUだけではつらい


0 件のコメント:

コメントを投稿