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.78k stars 2.88k forks source link

将fairmot的backbone替换成x101后,训练正常,eval_mot为空 #9138

Closed zouhan6806504 closed 1 month ago

zouhan6806504 commented 1 month ago

问题确认 Search before asking

请提出你的问题 Please ask your question

配置文件如下 `use_gpu: true use_xpu: false use_mlu: false use_npu: false log_iter: 100 save_dir: /root/paddlejob/workspace/output

save_dir: /home/aistudio/output

snapshot_epoch: 1 print_flops: false print_params: false

Exporting the model

export: post_process: True # Whether post-processing is included in the network when export model. nms: True # Whether NMS is included in the network when export model. benchmark: False # It is used to testing model performance, if set True, post-process and NMS will not be exported. fuse_conv_bn: False

metric: MCMOT num_classes: 228

/root/paddlejob/workspace/train_data/datasets/mot

TrainDataset: !MCMOTDataSet dataset_dir: /root/paddlejob/workspace/train_data/datasets/mot # 需要更改为自己对应的文件目录下 image_lists: ['IKCEST.train'] data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide'] label_list: /root/paddlejob/workspace/train_data/datasets/mot/label_list.txt

EvalMOTDataset: !MOTImageFolder dataset_dir: /root/paddlejob/workspace/train_data/datasets/mot data_root: IKCEST/images/test/ keep_ori_im: False # set True if save visualization images or video, or used in DeepSORT anno_path: /root/paddlejob/workspace/train_data/datasets/mot/label_list.txt

TestMOTDataset: !MOTImageFolder dataset_dir: /root/paddlejob/workspace/train_data/datasets/mot/IKCEST/images/test/ keep_ori_im: True # set True if save visualization images or video anno_path: /root/paddlejob/workspace/train_data/datasets/mot/label_list.txt

pretrain_weights: https://paddledet.bj.bcebos.com/models/centernet_dla34_140e_coco.pdparams

pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/ResNeXt101_vd_64x4d_pretrained.pdparams architecture: FairMOT for_mot: True

FairMOT: detector: CenterNet reid: FairMOTEmbeddingHead loss: FairMOTLoss tracker: JDETracker # multi-class tracker

CenterNet: backbone: ResNet neck: CenterNetDLAFPN head: CenterNetHead post_process: CenterNetPostProcess

ResNet:

for ResNeXt: groups, base_width, base_channels

depth: 101 groups: 64 base_width: 4 variant: d norm_type: bn freeze_at: 0 return_idx: [0,1,2,3] num_stages: 4 dcn_v2_stages: [1,2,3]

CenterNetDLAFPN: down_ratio: 4 last_level: 3 out_channel: 0 first_level: 0 dcn_v2: True with_sge: True

CenterNetHead: head_planes: 256 prior_bias: -2.19 regress_ltrb: False size_loss: 'L1' loss_weight: {'heatmap': 1.0, 'size': 0.1, 'offset': 1.0, 'iou': 0.0} add_iou: False

FairMOTEmbeddingHead: ch_head: 256 ch_emb: 128

CenterNetPostProcess: max_per_img: 200 down_ratio: 4 regress_ltrb: False

JDETracker: conf_thres: 0.4 tracked_thresh: 0.4 metric_type: cosine min_box_area: 0 vertical_ratio: 0 # for pedestrian use_byte: True match_thres: 0.8 low_conf_thres: 0.2

weights: /root/paddlejob/workspace/output/dla

weights: /home/aistudio/output/dla

epoch: 30 LearningRate: base_lr: 0.00025 schedulers:

OptimizerBuilder: regularizer: false optimizer: type: AdamW weight_decay: 0.0001 param_groups:

worker_num: 1 TrainReader: inputs_def: image_shape: [3, 608, 1088] sample_transforms:

EvalMOTReader: sample_transforms:

TestMOTReader: inputs_def: image_shape: [3, 608, 1088] sample_transforms:

` eval的时候,输出txt全空 而且有一堆warning Warning:: 0D Tensor cannot be used as 'Tensor.numpy()[0]' . In order to avoid this problem, 0D Tensor will be changed to 1D numpy currently, but it's not correct and will be removed in release 2.6. For Tensor contain only one element, Please modify 'Tensor.numpy()[0]' to 'float(Tensor)' as soon as possible, otherwise 'Tensor.numpy()[0]' will raise error in release 2.6. I0913 17:10:51.835693 264737 eager_method.cc:140] Warning:: 0D Tensor cannot be used as 'Tensor.numpy()[0]' . In order to avoid this problem, 0D Tensor will be changed to 1D numpy currently, but it's not correct and will be removed in release 2.6. For Tensor contain only one element, Please modify 'Tensor.numpy()[0]' to 'float(Tensor)' as soon as possible, otherwise 'Tensor.numpy()[0]' will raise error in release 2.6. I0913 17:10:51.835812 264737 eager_method.cc:140]

zouhan6806504 commented 1 month ago

突然发现出现了warning后结果又不为空了