PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.68k stars 2.87k forks source link

MOT数据集问题 #3179

Closed Monday-Leo closed 2 years ago

Monday-Leo commented 3 years ago

请问这里五个数据集分别是什么意思?和普通的detection数据集不太一样 6}J%`0QNAHBH`CHWIEMNQ8E

nemonameless commented 3 years ago

TrainDataset是训练的数据配置,EvalDataset是eval的数据配置(单独评估跟踪的detection任务或reid任务),TestDataset是单独inference检测任务的数据配置,可以是一张图或一个图片文件夹。EvalMOTDataset是专门评估跟踪效果的MOTA指标的,TestMOTDataset是专门inference一个待跟踪的视频。

EvalDataset是按照JDE原论文设置的。JDE论文中评估检测指标只使用'citypersons.val'和'caltech.val',而且metric和COCO VOC的不同。JDE论文评估ReID指标只使用'caltech.10k.val', 'cuhksysu.val', 'prw.val'。MOT任务中评估检测指标和ReID指标在PaddleDetection中并不常用,后期会删除EvalDataset和TestDataset。

Monday-Leo commented 3 years ago

如果我只想训练MOT20的数据集,该怎么修改?

nemonameless commented 3 years ago
TrainDataset:
  !MOTDataSet
    dataset_dir: dataset/mot
    image_lists: ['mot20.train']
    data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide']

EvalMOTDataset:
  !MOTImageFolder
    task: MOT20_train
    dataset_dir: dataset/mot
    data_root: MOT20/images/train
    keep_ori_im: False # set True if save visualization images or video

TestMOTDataset:
  !MOTVideoDataset
    dataset_dir: dataset/mot
    keep_ori_im: True # set True if save visualization images or video
Monday-Leo commented 3 years ago

我的数据集格式如下 MOT20 |——————images | └——————train | └——————test └——————labels_with_ids └——————train 训练的时候报错: File "G:\code\PaddleDetection-release-2.1\ppdet\data\source\mot.py", line 108, in parse_dataset "The {} is not a directory.".format(image_lists_dir) AssertionError: The dataset/mot\image_lists is not a directory.

Monday-Leo commented 3 years ago

并没有image_lists和Caltech文件夹,是不是缺少数据,完成的数据集下载链接有吗?

nemonameless commented 3 years ago

并没有image_lists和Caltech文件夹,是不是缺少数据,完成的数据集下载链接有吗?

数据集准备和目录请参照 https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/configs/mot/README_cn.md image_lists.zip已提供下载链接,下载并解压放在dataset/mot目录下:

wget https://dataset.bj.bcebos.com/mot/image_lists.zip

如果只训练MOT20,不用下载其他几个数据集的

Monday-Leo commented 3 years ago

metric: MOT num_classes: 1

MOTDataZoo: { 'MOT15_train': ['ADL-Rundle-6', 'ADL-Rundle-8', 'ETH-Bahnhof', 'ETH-Pedcross2', 'ETH-Sunnyday', 'KITTI-13', 'KITTI-17', 'PETS09-S2L1', 'TUD-Campus', 'TUD-Stadtmitte', 'Venice-2'], 'MOT15_test': ['ADL-Rundle-1', 'ADL-Rundle-3', 'AVG-TownCentre', 'ETH-Crossing', 'ETH-Jelmoli', 'ETH-Linthescher', 'KITTI-16', 'KITTI-19', 'PETS09-S2L2', 'TUD-Crossing', 'Venice-1'], 'MOT16_train': ['MOT16-02', 'MOT16-04', 'MOT16-05', 'MOT16-09', 'MOT16-10', 'MOT16-11', 'MOT16-13'], 'MOT16_test': ['MOT16-01', 'MOT16-03', 'MOT16-06', 'MOT16-07', 'MOT16-08', 'MOT16-12', 'MOT16-14'], 'MOT17_train': ['MOT17-02-SDP', 'MOT17-04-SDP', 'MOT17-05-SDP', 'MOT17-09-SDP', 'MOT17-10-SDP', 'MOT17-11-SDP', 'MOT17-13-SDP'], 'MOT17_test': ['MOT17-01-SDP', 'MOT17-03-SDP', 'MOT17-06-SDP', 'MOT17-07-SDP', 'MOT17-08-SDP', 'MOT17-12-SDP', 'MOT17-14-SDP'], 'MOT20_train': ['MOT20-01', 'MOT20-02', 'MOT20-03', 'MOT20-05'], 'MOT20_test': ['MOT20-04', 'MOT20-06', 'MOT20-07', 'MOT20-08'], 'demo': ['MOT16-02'], }

TrainDataset: !MOTDataSet dataset_dir: dataset/mot image_lists: ['mot20.train'] data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide']

EvalMOTDataset: !MOTImageFolder task: MOT20_train dataset_dir: dataset/mot data_root: MOT20/images/train keep_ori_im: False # set True if save visualization images or video

TestMOTDataset: !MOTVideoDataset dataset_dir: dataset/mot keep_ori_im: True # set True if save visualization images or video

我的数据集读取文件如上,训练一轮评价的时候,报错object has no attribute 'EvalDataset',EvalDataset应该怎么设置?

nemonameless commented 3 years ago

mot模型训练早期效果不够好,而且评估比较耗时,不建议开--eval 边训边验证,看loss稳定下降即可,即使开了也是评估纯检测性能或者纯reid性能。训完的模型单独跑tools/eval_mot.py即可评估MOTA,是EvalMOTDataset设置的评估具体哪个数据集的MOTA。而EvalDataset在mot模型中是评估纯检测性能或者纯reid性能用的,是JDE论文中的做法,其实不太常用,FairMOT里也没用到。

Monday-Leo commented 3 years ago

已经成功训练,也评估成功了,评估是针对训练的图片,现在想要预测测试集,并保存结果,是使用infer_mot.py一个个视频预测吗?但是发现infer_mot.py只能保存图片视频,没有最终的结果文件,有没有直接预测训练集的脚步?

nemonameless commented 3 years ago

已经成功训练,也评估成功了,评估是针对训练的图片,现在想要预测测试集,并保存结果,是使用infer_mot.py一个个视频预测吗?但是发现infer_mot.py只能保存图片视频,没有最终的结果文件,有没有直接预测训练集的脚步?

后期会修复。您急用的话可以暂时先用eval_mot.py跑出结果,虽然最后由于没有gt MOTA指标会-inf%,但不影响保存结果。

NikolaTeslein commented 3 years ago

如果我只想训练MOT20的数据集,该怎么修改?

请问这是跑的什么模型哎

nemonameless commented 2 years ago

infer_mot.py目前已经默认跑出结果视频加txt文件了

LegendSun0 commented 2 years ago

已经成功训练视频评估成功了,评估结果也是针对训练的,现在想要预测测试集,并保存结果,是使用 infer_mot.py 一个预测图片吗?但是发现 infer_mot.py 只能保存图片视频,没有最终的结果文件,有没有直接训练预测集的步骤?

请问是怎么在训练过程中评估成功的?