PaddlePaddle / PaddleYOLO

🚀🚀🚀 YOLO series of PaddlePaddle implementation, PP-YOLOE+, RT-DETR, YOLOv5, YOLOv6, YOLOv7, YOLOv8, YOLOv10, YOLOX, YOLOv5u, YOLOv7u, YOLOv6Lite, RTMDet and so on. 🚀🚀🚀
https://github.com/PaddlePaddle/PaddleYOLO
GNU General Public License v3.0
554 stars 133 forks source link

yolov7_L训练打电话数据准确率很低的问题 #148

Closed Daniel-deng-yi closed 7 months ago

Daniel-deng-yi commented 1 year ago

问题确认 Search before asking

请提出你的问题 Please ask your question

Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.026 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.044 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.007 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.022 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.034 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.200 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.407 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.495 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.291 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.466 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.575 [05/31 06:51:43] ppdet.engine INFO: Total sample number: 12362, average FPS: 41.24864364260208

Process finished with exit code 0

训练检测打电话模型,10w数据训练,1w数据测试,正样本:负样本比列大概为1:3 想问下准确率很低大概会发生在哪?

nemonameless commented 1 year ago

你好,请发下更多详细信息,包括配置文件并说明改动,以及此epoch的训练log loss可截图

Daniel-deng-yi commented 1 year ago

metric: COCO num_classes: 2

TrainDataset: !COCODataSet image_dir: ./ anno_path: 00.Datasets/train.json dataset_dir: ./ data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] allow_empty: true

EvalDataset: !COCODataSet image_dir: ./ anno_path: 00.Datasets/test.json dataset_dir: ./ allow_empty: true

TestDataset: !ImageFolder anno_path: 00.Datasets/test.json # also support txt (like VOC's label_list.txt) dataset_dir: ./

architecture: YOLOv7

norm_type: sync_bn

use_ema: True ema_decay: 0.9999 ema_decay_type: "exponential" act: silu find_unused_parameters: True

配置文件修改了数据路径和去掉了norm_type: sync_bn,这是训练完300epoch给出的结果。

loss的话在下面

image [05/31 09:53:44] ppdet.engine INFO: Epoch: [298] [ 270/1398] eta: 0:57:53 lr: 0.001120 loss_box: 0.036667 loss_cls: 0.333099 loss_obj: 0.003078 loss: 26.953529 batch_cost: 1.2885 data_cost: 0.0019 ips: 13.9698 images/s [05/31 09:53:57] ppdet.engine INFO: Epoch: [298] [ 280/1398] eta: 0:57:29 lr: 0.001090 loss_box: 0.037921 loss_cls: 0.245189 loss_obj: 0.002674 loss: 20.492538 batch_cost: 1.2566 data_cost: 0.0003 ips: 14.3248 images/s [05/31 09:54:11] ppdet.engine INFO: Epoch: [298] [ 290/1398] eta: 0:57:08 lr: 0.001090 loss_box: 0.038404 loss_cls: 0.245271 loss_obj: 0.002955 loss: 21.004105 batch_cost: 1.2892 data_cost: 0.0016 ips: 13.9622 images/s [05/31 09:54:24] ppdet.engine INFO: Epoch: [298] [ 300/1398] eta: 0:56:46 lr: 0.001090 loss_box: 0.036650 loss_cls: 0.310136 loss_obj: 0.003122 loss: 25.084692 batch_cost: 1.2677 data_cost: 0.0021 ips: 14.1993 images/s [05/31 09:54:37] ppdet.engine INFO: Epoch: [298] [ 310/1398] eta: 0:56:26 lr: 0.001090 loss_box: 0.035082 loss_cls: 0.311220 loss_obj: 0.003341 loss: 24.991810 batch_cost: 1.2878 data_cost: 0.0009 ips: 13.9774 images/s [05/31 09:54:51] ppdet.engine INFO: Epoch: [298] [ 320/1398] eta: 0:56:07 lr: 0.001090 loss_box: 0.034560 loss_cls: 0.261475 loss_obj: 0.003178 loss: 21.827656 batch_cost: 1.2866 data_cost: 0.0008 ips: 13.9904 images/s

nemonameless commented 1 year ago

https://github.com/PaddlePaddle/PaddleYOLO/issues/43 image

首先需要加载coco权重做预训练。此外bs和lr也改动了吧?以后也请一起说明下,是不是单卡训的?总bs太小再加上不合适的lr不一定训的收敛,资源不够建议换小模型或小尺度。 还有ppyoloe+和rtdetr模型可以考虑用下。