axinc-ai / ailia-models

The collection of pre-trained, state-of-the-art AI models for ailia SDK
2.04k stars 325 forks source link

ADD Detrac Vehicle ReID #534

Open kyakuno opened 3 years ago

kyakuno commented 3 years ago

https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking GPL3

kyakuno commented 3 years ago

通常のDeepSortはPersonのReIDモデル。このモデルはVehicleのReIDモデルとなる。ReIDモデルのみをエクスポートできればよい。

ooe1123 commented 3 years ago

○ DETRAC Dataset https://detrac-db.rit.albany.edu/download

公式サイトからDETRAC-train-data.zip はダウンロード可能だが、DETRAC-Train-Annotations-XML-v3.zip がダウンロードできないので、以下のサイトからダウンロード https://d.serctl.com/?uuid=c34a68af-2868-435f-887b-e9a0e8742192

ooe1123 commented 3 years ago

○ Deep SORTモデルの学習

① データセット準備 (https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking)

python crop_dataset.py

② 学習実行 (https://github.com/nwojke/cosine_metric_learning)

cd cosine_metric_learning
mkdir data
ln -s ~/Multi-Camera-Live-Object-Tracking/DETRAC_cropped/ data/bounding_box_train
python train_market1501.py --dataset_dir=./data --loss_mode=triplet --log_dir=./output --run_id=triplet

--loss_mode=cosine-softmax ではエラーが発生するため、--loss_mode=triplet にて学習を行う [参考] https://github.com/nwojke/cosine_metric_learning/issues/46

③ Deep SORT用のモデルにエクスポート  → market1501.pb が生成される

python train_market1501.py --mode=freeze --restore_path=./output/triplet/model.ckpt-XXXXXXX

④ ONNXエクスポート

python -m tf2onnx.convert --graphdef market1501.pb --output model.onnx --opset 11 --inputs images:0 --outputs features:0 --inputs-as-nchw images:0
ooe1123 commented 3 years ago

○ YOLOモデルの学習

① データセット準備 (https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking)

python crop_dataset.py
python detract_to_yolo.py

② 学習実行 (https://github.com/AlexeyAB/darknet)

cd darknet
mkdir data/obj
wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.conv.137
find ~/Multi-Camera-Live-Object-Tracking/DETRAC_YOLO_training/ -exec cp {} ./data/obj \;
find ~/Multi-Camera-Live-Object-Tracking/DETRAC_YOLO_annotations/ -exec cp {} ./data/obj \;
cp ~/Multi-Camera-Live-Object-Tracking/detrac_tools/yolov4-obj.cfg .
cp ~/Multi-Camera-Live-Object-Tracking/detrac_classes.txt data/obj.names

find data/obj/ -name "*.jpg" > data/train.txt

cat > data/obj.data << EOF
classes = 13
train  = data/train.txt
valid  = data/test.txt
names = data/obj.names
backup = backup/
EOF

./darknet detector train data/obj.data yolov4-obj.cfg yolov4.conv.137