RoadDamageDetectorを参考にした道路損傷検出モデルのChainerによる実装
道路のひび割れやセンターラインのかすれなどを検出することができる.
データセットはCC BY-SA 4.0ライセンスのもとで配布されている.
詳細は以下を参照
依存パッケージのダウンロードやデータのダウンロード・展開は全て自動で行われる.
git clone https://github.com/IshitaTakeshi/RoadDamageDetector.git
cd RoadDamageDetector
./setting-environment.sh
基本的には以下のコマンドですぐに学習が行えるようになっている.
python3 train_detector.py --base-network <vgg16 or resnet101> --gpu <gpu id>
GPU IDに負の値を指定すればCPUで実行することもできる.
その他のオプションは
python3 train_detector.py -h
で確認できる.
ベースネットワークとしてResNet-101を用いる場合は,Caffeの学習済みモデルを自分でダウンロードする必要がある. 方法はChainerのドキュメントに記述されている.
精度向上の試みとしてベースネットワークそのものを事前に学習することができる.この機能は現在ResNet-101のみに対して有効である.
python3 train_extractor.py --gpu <gpu id>
得られたモデルmodel-extractor.npz
を--pretrained-extractor
オプションで指定することで,学習済みのベースネットワークをSSDに組み込むことができる.
python3 train_detector.py --base-network resnet101 \
--gpu <gpu id> \
--pretrained-extractor model-extractor.npz
学習済みモデルを用いる場合はモデルファイル(link)をダウンロードしておく.
python3 demo.py --base-network <base network> \
--gpu <gpu id> \
--pretrained_model models/ssd300-vgg16-v0.1/model.npz <path to image>
学習時と同様に,GPU IDに負の値を指定すればCPUで実行することもできる.
データの詳細はwikiに書かれている.
RoadDamageDatasetの全ての地区のデータをマージし,学習と評価に用いている.
学習には全地区のtrainをマージしたものを,評価には全地区のvalデータをマージしたものを用いている.