论文解读
目标检测部分
FairMOT的目标检测部分基于CenterNet,只需识别person一个类别,然后在网络输出部分增加id分支,使用交叉熵损失函数进行训练。
网络backbone默认使用深层聚合网络dla34,沿用CenterNet对dla的修改,上采样时使用可变形卷积。
损失函数分为4部分,分别是
- heatmap损失(类别),使用Focal loss或者MSE loss;
- 中心点偏移损失,使用L1 loss或者smooth L1 loss
- wh宽高损失,使用L1 loss;
- id损失使用交叉熵。
跟踪部分
track部分基于JDE,这部分代码还没有详细阅读,其中用到了卡尔曼滤波。
1.AttributeError: module ‘tensorflow’ has no attribute 'Summary’
Traceback (most recent call last):
File "train.py", line 136, in <module>
logger.list_of_scalars_summary(tensorboard_log, batches_done)
File "/media/smartcity/E6AA1145AA1113A1/dengjie/PyTorch-YOLOv3/utils/logger.py", line 17, in list_of_scalars_summary
summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value) for tag, value in tag_value_pairs])
AttributeError: module 'tensorflow' has no attribute 'Summary'
2.运行track里的demo文件时首先需要编译sh make.sh
然后运行时会报以下错误
问题:ImportError: libcudart.so.9.0: cannot open shared object file: No such file or directory
解决办法:
.bashrc中添加环境变量:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
命令行输入以下命令:
sudo ldconfig /usr/local/cuda-9.0/lib64
会有提示:/sbin/ldconfig.real: /usr/local/cuda-9.0/lib64/libcudnn.so.7 不是符号连接
但是程序可以跑
3.训练时有很多警告
UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead
参考博客:https://www.cnblogs.com/zhibei/p/12106893.html
4. --resume时报错
python train.py mot --exp_id ft_mot20_last --gpus 3,5 --batch_size 8 --load_model '../exp/mot/20epoch_ft_mot20_dla34/model_last.pth' --data_cfg '../src/lib/cfg/mot20.json' --num_epochs 60 --lr_step '15' --K 500 --resume
博客:
变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作
PyTorch—torchvision.models导入预训练模型—残差网络代码讲解
深层特征融合DLA