सामग्री पर जाएं

मॉडल पहनावा

📚 यह मार्गदर्शिका बताती है कि कैसे उपयोग करना है YOLOv5 🚀 बेहतर एमएपी और रिकॉल के लिए परीक्षण और अनुमान के दौरान मॉडल पहनावा

https://en.wikipedia.org/wiki/Ensemble_learning से:

पहनावा मॉडलिंग एक ऐसी प्रक्रिया है जहां कई अलग-अलग मॉडलिंग एल्गोरिदम का उपयोग करके या विभिन्न प्रशिक्षण डेटा सेटों का उपयोग करके परिणाम की भविष्यवाणी करने के लिए कई विविध मॉडल बनाए जाते हैं। पहनावा मॉडल तब प्रत्येक आधार मॉडल की भविष्यवाणी को एकत्र करता है और अनदेखी डेटा के लिए एक बार अंतिम भविष्यवाणी का परिणाम देता है। पहनावा मॉडल का उपयोग करने की प्रेरणा भविष्यवाणी की सामान्यीकरण त्रुटि को कम करना है। जब तक आधार मॉडल विविध और स्वतंत्र होते हैं, तब तक पहनावा दृष्टिकोण का उपयोग करने पर मॉडल की भविष्यवाणी त्रुटि कम हो जाती है। दृष्टिकोण भविष्यवाणी करने में भीड़ के ज्ञान की तलाश करता है। भले ही पहनावा मॉडल के भीतर कई आधार मॉडल हैं, यह एकल मॉडल के रूप में कार्य करता है और प्रदर्शन करता है।

शुरू करने से पहले

रेपो क्लोन करें और आवश्यकताओं को स्थापित करें.txt एक Python> = 3.8.0 पर्यावरण, सहित PyTorch>=1.8मॉडल और डेटासेट नवीनतम से स्वचालित रूप से डाउनलोड होते हैं YOLOv5 रिलीज

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

सामान्य रूप से परीक्षण करें

पहनावा करने से पहले हम एकल मॉडल के आधारभूत प्रदर्शन को स्थापित करना चाहते हैं। यह कमांड COCO val2017 पर छवि आकार 640 पिक्सेल पर YOLOv5x का परीक्षण करता है। yolov5x.pt उपलब्ध सबसे बड़ा और सबसे सटीक मॉडल है। अन्य विकल्प हैं yolov5s.pt, yolov5m.pt और yolov5l.pt, या आप एक कस्टम डेटासेट को प्रशिक्षित करने से चेकपॉइंट के मालिक हैं ./weights/best.pt. सभी उपलब्ध मॉडलों के विवरण के लिए कृपया हमारा README देखें सारणी.

python val.py --weights yolov5x.pt --data coco.yaml --img 640 --half

आउटपुट:

val: data=./data/coco.yaml, weights=['yolov5x.pt'], batch_size=32, imgsz=640, conf_thres=0.001, iou_thres=0.65, task=val, device=, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=True, project=runs/val, name=exp, exist_ok=False, half=True
YOLOv5 🚀 v5.0-267-g6a3ee7c torch 1.9.0+cu102 CUDA:0 (Tesla P100-PCIE-16GB, 16280.875MB)

Fusing layers...
Model Summary: 476 layers, 87730285 parameters, 0 gradients

val: Scanning '../datasets/coco/val2017' images and labels...4952 found, 48 missing, 0 empty, 0 corrupted: 100% 5000/5000 [00:01<00:00, 2846.03it/s]
val: New cache created: ../datasets/coco/val2017.cache
               Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100% 157/157 [02:30<00:00,  1.05it/s]
                 all       5000      36335      0.746      0.626       0.68       0.49
Speed: 0.1ms pre-process, 22.4ms inference, 1.4ms NMS per image at shape (32, 3, 640, 640)  # <--- baseline speed

Evaluating pycocotools mAP... saving runs/val/exp/yolov5x_predictions.json...
...
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.504  # <--- baseline mAP
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.688
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.546
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.351
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.551
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.644
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.382
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.628
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.681  # <--- baseline mAR
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.524
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.735
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.826

पहनावा परीक्षण

कई पूर्व-प्रशिक्षित मॉडल को परीक्षण और अनुमान समय पर एक साथ जोड़ा जा सकता है, बस अतिरिक्त मॉडल को जोड़कर --weights किसी भी मौजूदा val.py या detect.py कमांड में तर्क। यह उदाहरण एक साथ 2 मॉडलों के पहनावा का परीक्षण करता है:

  • योलोव5एक्स
  • योलोव5एल6
python val.py --weights yolov5x.pt yolov5l6.pt --data coco.yaml --img 640 --half

आउटपुट:

val: data=./data/coco.yaml, weights=['yolov5x.pt', 'yolov5l6.pt'], batch_size=32, imgsz=640, conf_thres=0.001, iou_thres=0.6, task=val, device=, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=True, project=runs/val, name=exp, exist_ok=False, half=True
YOLOv5 🚀 v5.0-267-g6a3ee7c torch 1.9.0+cu102 CUDA:0 (Tesla P100-PCIE-16GB, 16280.875MB)

Fusing layers...
Model Summary: 476 layers, 87730285 parameters, 0 gradients  # Model 1
Fusing layers...
Model Summary: 501 layers, 77218620 parameters, 0 gradients  # Model 2
Ensemble created with ['yolov5x.pt', 'yolov5l6.pt']  # Ensemble notice

val: Scanning '../datasets/coco/val2017.cache' images and labels... 4952 found, 48 missing, 0 empty, 0 corrupted: 100% 5000/5000 [00:00<00:00, 49695545.02it/s]
               Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100% 157/157 [03:58<00:00,  1.52s/it]
                 all       5000      36335      0.747      0.637      0.692      0.502
Speed: 0.1ms pre-process, 39.5ms inference, 2.0ms NMS per image at shape (32, 3, 640, 640)  # <--- ensemble speed

Evaluating pycocotools mAP... saving runs/val/exp3/yolov5x_predictions.json...
...
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.515  # <--- ensemble mAP
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.699
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.557
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.356
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.563
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.668
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.387
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.638
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.689  # <--- ensemble mAR
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.526
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.743
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.844

पहनावा अनुमान

अतिरिक्त मॉडल जोड़ें --weights पहनावा अनुमान चलाने के लिए तर्क:

python detect.py --weights yolov5x.pt yolov5l6.pt --img 640 --source data/images

आउटपुट:

YOLOv5 🚀 v5.0-267-g6a3ee7c torch 1.9.0+cu102 CUDA:0 (Tesla P100-PCIE-16GB, 16280.875MB)

Fusing layers...
Model Summary: 476 layers, 87730285 parameters, 0 gradients
Fusing layers...
Model Summary: 501 layers, 77218620 parameters, 0 gradients
Ensemble created with ['yolov5x.pt', 'yolov5l6.pt']

image 1/2 /content/yolov5/data/images/bus.jpg: 640x512 4 persons, 1 bus, 1 tie, Done. (0.063s)
image 2/2 /content/yolov5/data/images/zidane.jpg: 384x640 3 persons, 2 ties, Done. (0.056s)
Results saved to runs/detect/exp2
Done. (0.223s)

YOLO अनुमान परिणाम

समर्थित वातावरण

Ultralytics उपयोग के लिए तैयार वातावरण की एक श्रृंखला प्रदान करता है, प्रत्येक आवश्यक निर्भरताओं जैसे CUDA, CUDNN के साथ पूर्व-स्थापित, Pythonऔर PyTorch, अपनी परियोजनाओं को किकस्टार्ट करने के लिए।

परियोजना की स्थिति

YOLOv5 सीआई

यह बैज इंगित करता है कि सभी YOLOv5 GitHub क्रियाएँ सतत एकीकरण (CI) परीक्षण सफलतापूर्वक पास हो रहे हैं। ये सीआई परीक्षण सख्ती से कार्यक्षमता और प्रदर्शन की जांच करते हैं YOLOv5 विभिन्न प्रमुख पहलुओं के पार: प्रशिक्षण, सत्यापन, अनुमान, निर्यात और बेंचमार्क। वे macOS, Windows और Ubuntu पर लगातार और विश्वसनीय संचालन सुनिश्चित करते हैं, हर 24 घंटे में और प्रत्येक नई प्रतिबद्धता पर परीक्षण किए जाते हैं।



2023-11-12 बनाया गया, अपडेट किया गया 2024-01-07
लेखक: ग्लेन-जोचर (5), सर्गिउवैक्समैन (1)

टिप्पणियाँ