Windows下PP-Tracking多目标跟踪数据训练
Posted シ゛甜虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下PP-Tracking多目标跟踪数据训练相关的知识,希望对你有一定的参考价值。
https://bj.bcebos.com/v1/paddledet/data/mot/demo/MOT16.ziphttps://bj.bcebos.com/v1/paddledet/data/mot/demo/MOT16.zip解压后移动到PaddleDetection\\dataset\\mot\\images目录
创建labels_with_ids目录
打开cmd,进入python环境activate paddle_env然后进入PaddleDetection根目录
如果不懂可以查看这篇文章
user_gen_labels_MOT.py的代码
# 生成mot16.train文件并且复制到 image_lists下面
import glob
import os.path as osp
image_list = []
for seq in sorted(glob.glob('PaddleDetection/dataset/mot/MOT16/images/train/*')):
for image in glob.glob(osp.join(seq, "img1")+'/*.jpg'):
image = image.replace('PaddleDetection/dataset/mot/','')
image_list.append(image)
with open('mot16.train','w') as image_list_file:
image_list_file.write(str.join('\\n',image_list))
生成的文件很奇怪
复制过去目录就是这个样子
修改配置文件里面的数据集
添加在PaddleDetection/configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml文件最后
... ...
# for MOT training
# for MOT training
TrainDataset:
!MOTDataSet
dataset_dir: dataset/mot
image_lists: ['mot16.train']
data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide']
# for MOT evaluation
# If you want to change the MOT evaluation dataset, please modify 'data_root'
EvalMOTDataset:
!MOTImageFolder
dataset_dir: dataset/mot
data_root: MOT16/images/train
keep_ori_im: False # set True if save visualization images or video, or used in DeepSORT
# for MOT video inference
TestMOTDataset:
!MOTImageFolder
dataset_dir: dataset/mot
keep_ori_im: True # set True if save visualization images or video
添加完就是这个样子
开始训练
使用MOT16-02序列作为训练数据,训练30epoch,V100环境下大约需要30分钟
在PaddleDetection根目录创建一个fairmot_dla34_30e_1088x608目录用来存放日志,然后执行如下命令开始训练
python -m paddle.distributed.launch --log_dir=fairmot_dla34_30e_1088x608/ --gpus 0 tools/train.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml
果然之前发现文件内容比较怪的地方出问题了,批量修改一下
配置文件也需要改成这个样子,因为我用的是windows
_BASE_: [
'../../datasets/mot.yml',
'../../runtime.yml',
'_base_/optimizer_30e.yml',
'_base_/fairmot_dla34.yml',
'_base_/fairmot_reader_1088x608.yml',
]
weights: output/fairmot_dla34_30e_1088x608/model_final
# for MOT training
# for MOT training
TrainDataset:
!MOTDataSet
dataset_dir: dataset\\mot
image_lists: ['mot16.train']
data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide']
# for MOT evaluation
# If you want to change the MOT evaluation dataset, please modify 'data_root'
EvalMOTDataset:
!MOTImageFolder
dataset_dir: dataset\\mot
data_root: MOT16\\images\\train
keep_ori_im: False # set True if save visualization images or video, or used in DeepSORT
# for MOT video inference
TestMOTDataset:
!MOTImageFolder
dataset_dir: dataset\\mot
keep_ori_im: True # set True if save visualization images or video
开始训练了
如果显卡内存不够会提示
为了方便我们下载训练好的模型进行eval,如果显存不够下载别人训练好的
python tools/eval_mot.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml -o weights=output/fairmot_dla34_30e_1088x608.pdparams
结果
然后我们开始推理
python tools/infer_mot.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml -o weights=output/fairmot_dla34_30e_1088x608.pdparams --image_dir=dataset/mot/MOT16/images/test/MOT16-01/img1 --save_videos
结果和视频
图像
导出模型
python tools/export_model.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml -o weights=output/fairmot_dla34_30e_1088x608.pdparams
使用导出的模型进行推理
PP-Tracking中在部署阶段提供了多种跟踪相关功能,例如流量计数,出入口统计,绘制跟踪轨迹等,具体使用方法可以参考文档
下载两个视频
https://bj.bcebos.com/v1/paddledet/data/mot/demo/person.mp4
https://bj.bcebos.com/v1/paddledet/data/mot/demo/entrance_count_demo.mp4
推理视频1
python deploy/pptracking/python/mot_jde_infer.py --model_dir=output_inference/fairmot_dla34_30e_1088x608 --video_file=person.mp4 --device=GPU
效果还是很不错的
推理视频2
python deploy/pptracking/python/mot_jde_infer.py --model_dir=output_inference/fairmot_dla34_30e_1088x608 --do_entrance_counting --draw_center_traj --video_file=entrance_count_demo.mp4 --device=GPU
以上是关于Windows下PP-Tracking多目标跟踪数据训练的主要内容,如果未能解决你的问题,请参考以下文章
PP-Tracking Python的MTMCT 跨镜跟踪体验
交互式多模型-无迹卡尔曼滤波IMM-UKF——CV/CT/CA模型交互机动目标跟踪(模型维数不同IMM算法设计)
交互式多模型-无迹卡尔曼滤波IMM-UKF——CV/CT/CA模型交互机动目标跟踪(模型维数不同IMM算法设计)