ifzhang / ByteTrack

[ECCV 2022] ByteTrack: Multi-Object Tracking by Associating Every Detection Box
MIT License
4.69k stars 891 forks source link

why custom dataset doesn't train well? #208

Open Seoung-wook opened 2 years ago

Seoung-wook commented 2 years ago

*I trained using the McGill hockey dataset.

*I created the json file properly, and it is as follows.

(my ds) {"images": [ {"file_name": "car_bos_2019_001/img1/000001.jpg", "id": 1, "frame_id": 1, "prev_image_id": -1, "next_image_id": 2, "video_id": 1, "height": 720, "width": 1280}, {"file_name": "car_bos_2019_001/img1/000002.jpg", "id": 2, "frame_id": 2, "prev_image_id": 1, "next_image_id": 3, "video_id": 1, ...... {"file_name": "pit_was_2016_001/img1/002981.jpg", "id": 12142, "frame_id": 2981, "prev_image_id": 12141, "next_image_id": -1, "video_id": 3, "height": 720, "width": 1280}], "annotations": [ ], "videos": [ {"id": 1, "file_name": "car_bos_2019_001"}, {"id": 2, "file_name": "car_bos_2019_002"}, {"id": 3, "file_name": "pit_was_2016_001"}], "categories": [{"id": 1, "name": "pedestrian"}]}

*Currently, after 15 epochs, it is not learned at all, and it is as follows.

2022-06-22 09:43:58 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17280/17485, mem: 20647Mb, iter_time: 0.382s, data_time: 0.000s, total_loss: 5.090, iou_loss: 2.087, l1_loss: 0.000, conf_loss: 2.458, cls_loss: 0.545, lr: 5.668e-05, size: 736, ETA: 7 days, 8:39:09 2022-06-22 09:44:07 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17300/17485, mem: 20647Mb, iter_time: 0.458s, data_time: 0.000s, total_loss: 5.508, iou_loss: 2.364, l1_loss: 0.000, conf_loss: 2.568, cls_loss: 0.576, lr: 5.668e-05, size: 928, ETA: 7 days, 8:38:49 2022-06-22 09:44:18 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17320/17485, mem: 20647Mb, iter_time: 0.533s, data_time: 0.000s, total_loss: 5.069, iou_loss: 2.086, l1_loss: 0.000, conf_loss: 2.445, cls_loss: 0.539, lr: 5.668e-05, size: 800, ETA: 7 days, 8:38:36 2022-06-22 09:44:27 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17340/17485, mem: 20647Mb, iter_time: 0.469s, data_time: 0.000s, total_loss: 6.599, iou_loss: 2.453, l1_loss: 0.000, conf_loss: 3.558, cls_loss: 0.588, lr: 5.668e-05, size: 896, ETA: 7 days, 8:38:17 2022-06-22 09:44:38 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17360/17485, mem: 20647Mb, iter_time: 0.526s, data_time: 0.000s, total_loss: 7.216, iou_loss: 2.738, l1_loss: 0.000, conf_loss: 3.857, cls_loss: 0.621, lr: 5.668e-05, size: 576, ETA: 7 days, 8:38:03 2022-06-22 09:44:47 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17380/17485, mem: 20647Mb, iter_time: 0.461s, data_time: 0.001s, total_loss: 4.822, iou_loss: 1.877, l1_loss: 0.000, conf_loss: 2.452, cls_loss: 0.493, lr: 5.668e-05, size: 928, ETA: 7 days, 8:37:43 2022-06-22 09:45:03 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17400/17485, mem: 20647Mb, iter_time: 0.806s, data_time: 0.000s, total_loss: 4.369, iou_loss: 2.149, l1_loss: 0.000, conf_loss: 1.678, cls_loss: 0.542, lr: 5.667e-05, size: 1024, ETA: 7 days, 8:37:53 2022-06-22 09:45:19 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17420/17485, mem: 20647Mb, iter_time: 0.780s, data_time: 0.000s, total_loss: 4.145, iou_loss: 2.039, l1_loss: 0.000, conf_loss: 1.579, cls_loss: 0.527, lr: 5.667e-05, size: 864, ETA: 7 days, 8:38:01 2022-06-22 09:45:30 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17440/17485, mem: 20647Mb, iter_time: 0.552s, data_time: 0.000s, total_loss: 8.512, iou_loss: 2.836, l1_loss: 0.000, conf_loss: 5.031, cls_loss: 0.645, lr: 5.667e-05, size: 896, ETA: 7 days, 8:37:49 2022-06-22 09:45:41 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17460/17485, mem: 20647Mb, iter_time: 0.577s, data_time: 0.000s, total_loss: 6.852, iou_loss: 2.685, l1_loss: 0.000, conf_loss: 3.510, cls_loss: 0.658, lr: 5.667e-05, size: 640, ETA: 7 days, 8:37:40 2022-06-22 09:45:54 | INFO | yolox.core.trainer:244 - epoch: 15/80, iter: 17480/17485, mem: 20647Mb, iter_time: 0.612s, data_time: 0.003s, total_loss: 4.109, iou_loss: 1.862, l1_loss: 0.000, conf_loss: 1.748, cls_loss: 0.499, lr: 5.667e-05, size: 768, ETA: 7 days, 8:37:33 2022-06-22 09:45:56 | INFO | yolox.core.trainer:318 - Save weights to ./YOLOX_outputs/yolox_s_mine 100%|##########| 3036/3036 [09:43<00:00, 5.20it/s] Running per image evaluation... Evaluate annotation type bbox 2022-06-22 09:55:41 | INFO | yolox.evaluators.coco_evaluator:172 - Evaluate in main process... 2022-06-22 09:55:41 | INFO | yolox.evaluators.coco_evaluator:205 - Loading and preparing results... 2022-06-22 09:55:41 | INFO | yolox.evaluators.coco_evaluator:205 - DONE (t=0.00s) 2022-06-22 09:55:41 | INFO | pycocotools.coco:363 - creating index... 2022-06-22 09:55:41 | INFO | pycocotools.coco:363 - index created! COCOeval_opt.evaluate() finished in 0.17 seconds. Accumulating evaluation results... COCOeval_opt.accumulate() finished in 0.00 seconds. 2022-06-22 09:55:41 | INFO | yolox.core.trainer:308 - Average forward time: 47.13 ms, Average NMS time: 0.27 ms, Average inference time: 47.40 ms Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = -1.000 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = -1.000 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = -1.000 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = -1.000 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = -1.000 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = -1.000 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000

2022-06-22 09:55:41 | INFO | yolox.core.trainer:318 - Save weights to ./YOLOX_outputs/yolox_s_mine 2022-06-22 09:55:42 | INFO | yolox.core.trainer:189 - ---> start train epoch16

There are no errors, but I don't know why the learning doesn't work at all. If you know or have a problem that is expected, please reply.

Seoung-wook commented 2 years ago

Could it be that the video itself ignores the audience, which could be a problem in that case? Or is it a problem caused by converting to coco format, but not performing mot and mix? Currently, I can only think of the above two things that I am suspicious of.

Seoung-wook commented 2 years ago

I found that my test.json's annotations =[] train.json is divided into train_half & val_half.json and they have annotations. I will use them for train, and if resolved, I will close it.

starhou commented 2 years ago

I also encountered this problem, have you solved it? What is the solution? @Seoung-wook

liu-anan commented 1 year ago

same error, have you solved it @Seoung-wook