【DeepSORT系列之】Cosine Metric Learning训练与demo可视化

模型训练
训练流程

数据准备:由于训练代码目前支持两种数据集如下,分别包含各自的数据准备方式。

Market-1501数据集介绍
Mars数据集介绍

代码准备
cosine_metric_learning

demo代码准备
deep_sort

训练启动命令

训练mars数据集脚本如下:

python train_mars.py \
    --dataset_dir=/media/holo/B834B57734B538E8/tracking/MARs \
    --loss_mode=cosine-softmax \
    --log_dir=./output/mars/ \
    --run_id=cosine-softmax

训练market数据集脚本如下:

python train_market1501.py \
    --dataset_dir=/media/holo/B834B57734B538E8/tracking/Market-1501-v15.09.15 \
    --loss_mode=cosine-softmax \
    --log_dir=./output/market1501/ \
    --run_id=cosine-softmax

训练完成之后,需要对模型进行冻结。执行如下命令:

# Market-1501
python train_market1501.py --mode=freeze --restore_path=PATH_TO_CHECKPOINT
# Mars
python train_mars.py --mode=freeze --restore_path=PATH_TO_CHECKPOINT

关于模型冻结示例如下:(不要添加模型后缀)

# Market-1501
python train_market1501.py --mode=freeze --restore_path=./output/market/cosine-softmax/model.ckpt-1560
# Mars
python train_mars.py --mode=freeze --restore_path=/output/mars/cosine-softmax/model.ckpt-1560

当保存好模型pb文件之后,将其拷贝至deep_sort工程目录下。

训练可视化

当训练过程中,可以终端运行tensorboard来观察训练过程。

我们在终端输入如下命令:

tensorboard --logdir ./output/mars/cosine-softmax --port 8008

稍等一会,我们能够看到终端弹出链接,点击即可。或者打开网页,输入以下IP就可以看到如下的训练变量可视化。

http://127.0.0.8008 

我们可以看下每个变量的训练变化过程:

demo可视化

上面训练结束并且生成pb模型之后,将其拷贝至deep_sort目录下./model/networks/

然后,执行目录tools下面的generate_detections.py来生成对应的检测&外观特征合并在一起。

python generate_detections.py  --mot_dir ../data/MOT16/test 

执行完该命令,会在tools/detections下面生成对应的结果。

生成完后,执行deep_sort_app.py脚本来进行可视化。

python deep_sort_app.py \
    --sequence_dir=./data/MOT16/test/MOT16-06 \
    --detection_file=./model/detections/MOT16_POI_test/MOT16-06.npy \
    --min_confidence=0.3 \
    --nn_budget=100 \
    --display=True
问题记录

问题1:训练模型时候终端报错cudnn failed,添加如下代码:

# Add to solve cudnn failed.
from tensorflow import ConfigProto
from tensorflow import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

问题2:图片训练过程中报错如下:【需要你手动写个脚本排查一下图片是否完好无损】

EnqueueError: Expected image (JPEG, PNG, or GIF), got empty file
         [[node map/while/DecodeJpeg (defined at /home/holo/anaconda3/envs/kitti_vis/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py:1748) ]]

问题3:如何接着训练
目前使用的tensorflow版本是1.14.0。关于在之前模型继续训练方式:需要你修改一下train_app.py里面的参数。在parser里面有个--restore_path变量,里面添加默认路径即可,注意需要你写到对应的model名称。例如:

# 注意需要写到mpdel.ckpt-xxxx后缀不需要填写
--restore_path="./output/mars/cosine-softmax/model.ckpt-20000"

关于训练模型cosine_metric_learningloss选择问题:

triplet loss 损失函数

magnet loss 损失函数

sparse_softmax_cross_entropy 损失函数

小结

本篇是针对算法deep_sort的训练以及可视化记录。以及训练模型使用的损失函数一些简单总结。

参考

cosine_metric_learning
deep_sort
使用deepsort重新训练自己的多目标跟踪模型

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值