Skip to content

IshitaTakeshi/RoadDamageDetector

Repository files navigation

RoadDamageDetector in Chainer

RoadDamageDetectorを参考にした道路損傷検出モデルのChainerによる実装

道路のひび割れやセンターラインのかすれなどを検出することができる.

データセットはCC BY-SA 4.0ライセンスのもとで配布されている. Creative Commons License


詳細は以下を参照

環境設定

依存パッケージのダウンロードやデータのダウンロード・展開は全て自動で行われる.
GPUを用いる場合はCuPyを手順にしたがってインストールすることをおすすめする.

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を用いる場合

ベースネットワークとしてResNet-101を用いる場合は,Caffeの学習済みモデルを自分でダウンロードする必要がある.   方法はChainerのドキュメントに記述されている.

ベースネットワークの学習 (ResNet-101のみ)

精度向上の試みとしてベースネットワークそのものを事前に学習することができる.この機能は現在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データをマージしたものを用いている.

About

Implementation of a road damage detector in Chainer

Resources

License

Stars

Watchers

Forks

Packages

No packages published