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

Python उपयोग

में आपका स्वागत है YOLOv8 Python उपयोग प्रलेखन! यह मार्गदर्शिका आपको मूल रूप से एकीकृत करने में मदद करने के लिए डिज़ाइन की गई है YOLOv8 अपने में Python ऑब्जेक्ट डिटेक्शन, सेगमेंटेशन और वर्गीकरण के लिए प्रोजेक्ट्स। यहां, आप सीखेंगे कि पूर्व-प्रशिक्षित मॉडल कैसे लोड करें और उनका उपयोग करें, नए मॉडल को प्रशिक्षित करें और छवियों पर भविष्यवाणियां करें। प्रयोग करने में आसान Python इंटरफ़ेस शामिल करने के इच्छुक किसी भी व्यक्ति के लिए एक मूल्यवान संसाधन है YOLOv8 में उनके Python परियोजनाएं, आपको उन्नत ऑब्जेक्ट डिटेक्शन क्षमताओं को जल्दी से लागू करने की अनुमति देती हैं। आएँ शुरू करें!



सतर्कता: माहिर Ultralytics YOLOv8: Python

उदाहरण के लिए, उपयोगकर्ता एक मॉडल लोड कर सकते हैं, इसे प्रशिक्षित कर सकते हैं, सत्यापन सेट पर इसके प्रदर्शन का मूल्यांकन कर सकते हैं, और यहां तक कि इसे निर्यात भी कर सकते हैं ONNX कोड की कुछ पंक्तियों के साथ प्रारूपित करें।

Python

from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolov8n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolov8n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

# Export the model to ONNX format
success = model.export(format="onnx")

रेलगाड़ी

ट्रेन मोड का उपयोग प्रशिक्षण के लिए किया जाता है a YOLOv8 कस्टम डेटासेट पर मॉडल। इस मोड में, मॉडल को निर्दिष्ट डेटासेट और हाइपरपैरामीटर का उपयोग करके प्रशिक्षित किया जाता है। प्रशिक्षण प्रक्रिया में मॉडल के मापदंडों का अनुकूलन शामिल है ताकि यह एक छवि में वस्तुओं के वर्गों और स्थानों की सटीक भविष्यवाणी कर सके।

रेलगाड़ी

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # pass any model type
results = model.train(epochs=5)
from ultralytics import YOLO

model = YOLO("yolov8n.yaml")
results = model.train(data="coco8.yaml", epochs=5)
model = YOLO("last.pt")
results = model.train(resume=True)

ट्रेन उदाहरण

वैल

वैल मोड का उपयोग एक YOLOv8 प्रशिक्षित होने के बाद मॉडल। इस मोड में, मॉडल का मूल्यांकन इसकी सटीकता और सामान्यीकरण प्रदर्शन को मापने के लिए एक सत्यापन सेट पर किया जाता है। इस मोड का उपयोग मॉडल के प्रदर्शन को बेहतर बनाने के लिए हाइपरपैरामीटर को ट्यून करने के लिए किया जा सकता है।

वैल

from ultralytics import YOLO

# Load a YOLOv8 model
model = YOLO("yolov8n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()
from ultralytics import YOLO

# Load a YOLOv8 model
model = YOLO("yolov8n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on separate data
model.val(data="path/to/separate/data.yaml")

वैल उदाहरण

भविष्‍यवाणी करना

भविष्यवाणी मोड का उपयोग प्रशिक्षित का उपयोग करके भविष्यवाणियां करने के लिए किया जाता है YOLOv8 नई छवियों या वीडियो पर मॉडल। इस मोड में, मॉडल को चेकपॉइंट फ़ाइल से लोड किया जाता है, और उपयोगकर्ता अनुमान लगाने के लिए चित्र या वीडियो प्रदान कर सकता है। मॉडल इनपुट छवियों या वीडियो में वस्तुओं के वर्गों और स्थानों की भविष्यवाणी करता है।

भविष्‍यवाणी करना

import cv2
from PIL import Image
from ultralytics import YOLO

model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")

# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)

for result in results:
    # Detection
    result.boxes.xyxy  # box with xyxy format, (N, 4)
    result.boxes.xywh  # box with xywh format, (N, 4)
    result.boxes.xyxyn  # box with xyxy format but normalized, (N, 4)
    result.boxes.xywhn  # box with xywh format but normalized, (N, 4)
    result.boxes.conf  # confidence score, (N, 1)
    result.boxes.cls  # cls, (N, 1)

    # Segmentation
    result.masks.data  # masks, (N, H, W)
    result.masks.xy  # x,y segments (pixels), List[segment] * N
    result.masks.xyn  # x,y segments (normalized), List[segment] * N

    # Classification
    result.probs  # cls prob, (num_class, )

# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()

उदाहरणों की भविष्यवाणी करें

निर्यातित माल

निर्यात मोड का उपयोग निर्यात के लिए किया जाता है YOLOv8 एक प्रारूप के लिए मॉडल जिसे परिनियोजन के लिए उपयोग किया जा सकता है। इस मोड में, मॉडल को एक प्रारूप में परिवर्तित किया जाता है जिसका उपयोग अन्य सॉफ़्टवेयर एप्लिकेशन या हार्डवेयर उपकरणों द्वारा किया जा सकता है। मॉडल को उत्पादन वातावरण में परिनियोजित करते समय यह मोड उपयोगी होता है।

निर्यातित माल

एक अधिकारी निर्यात करें YOLOv8n मॉडल को ONNX गतिशील बैच-आकार और छवि-आकार के साथ।

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="onnx", dynamic=True)

एक अधिकारी निर्यात करें YOLOv8n मॉडल को TensorRT पर device=0 CUDA उपकरणों पर त्वरण के लिए।

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="onnx", device=0)

निर्यात उदाहरण

ट्रैक

ट्रैक मोड का उपयोग वास्तविक समय में वस्तुओं को ट्रैक करने के लिए किया जाता है YOLOv8 को गढ़ना। इस मोड में, मॉडल को चेकपॉइंट फ़ाइल से लोड किया जाता है, और उपयोगकर्ता रीयल-टाइम ऑब्जेक्ट ट्रैकिंग करने के लिए एक लाइव वीडियो स्ट्रीम प्रदान कर सकता है। यह मोड निगरानी प्रणाली या स्व-ड्राइविंग कारों जैसे अनुप्रयोगों के लिए उपयोगी है।

ट्रैक

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official detection model
model = YOLO("yolov8n-seg.pt")  # load an official segmentation model
model = YOLO("path/to/best.pt")  # load a custom model

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

ट्रैक उदाहरण

कसौटी

बेंचमार्क मोड का उपयोग विभिन्न निर्यात प्रारूपों की गति और सटीकता को प्रोफाइल करने के लिए किया जाता है YOLOv8. बेंचमार्क निर्यात किए गए प्रारूप के आकार के बारे में जानकारी प्रदान करते हैं, इसके mAP50-95 मेट्रिक्स (ऑब्जेक्ट डिटेक्शन और सेगमेंटेशन के लिए) या accuracy_top5 मीट्रिक (वर्गीकरण के लिए), और विभिन्न निर्यात प्रारूपों में प्रति छवि मिलीसेकंड में अनुमान समय जैसे ONNX, OpenVINO, TensorRT और अन्य। यह जानकारी उपयोगकर्ताओं को गति और सटीकता के लिए उनकी आवश्यकताओं के आधार पर उनके विशिष्ट उपयोग के मामले के लिए इष्टतम निर्यात प्रारूप चुनने में मदद कर सकती है।

कसौटी

बेंचमार्क एक अधिकारी YOLOv8n सभी निर्यात प्रारूपों में मॉडल।

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

बेंचमार्क उदाहरण

खोजयात्री

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

एक्सप्लोरर का उपयोग करके सिमेंटिक खोज

from ultralytics import Explorer

# create an Explorer object
exp = Explorer(data="coco8.yaml", model="yolov8n.pt")
exp.create_embeddings_table()

similar = exp.get_similar(img="https://ultralytics.com/images/bus.jpg", limit=10)
print(similar.head())

# Search using multiple indices
similar = exp.get_similar(
    img=["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/bus.jpg"], limit=10
)
print(similar.head())
from ultralytics import Explorer

# create an Explorer object
exp = Explorer(data="coco8.yaml", model="yolov8n.pt")
exp.create_embeddings_table()

similar = exp.get_similar(idx=1, limit=10)
print(similar.head())

# Search using multiple indices
similar = exp.get_similar(idx=[1, 10], limit=10)
print(similar.head())

खोजयात्री

प्रशिक्षकों का उपयोग करना

YOLO मॉडल क्लास ट्रेनर कक्षाओं पर एक उच्च-स्तरीय आवरण है। हर YOLO टास्क का अपना ट्रेनर है जो इनहेरिट करता है BaseTrainer.

डिटेक्शन ट्रेनर उदाहरण

```python
from ultralytics.models.yolo import DetectionPredictor, DetectionTrainer, DetectionValidator

# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best

# Validator
val = DetectionValidator(args=...)
val(model=trained_model)

# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)

# resume from last weight
overrides["resume"] = trainer.last
trainer = detect.DetectionTrainer(overrides=overrides)
```

आप कस्टम कार्यों का समर्थन करने या आर एंड डी विचारों का पता लगाने के लिए प्रशिक्षकों को आसानी से अनुकूलित कर सकते हैं। अनुकूलित करने के बारे में अधिक जानें Trainers, Validators और Predictors अनुकूलन अनुभाग में आपकी परियोजना की आवश्यकताओं के अनुरूप करने के लिए।

अनुकूलन ट्यूटोरियल



बनाया गया 2023-11-12, अपडेट किया गया 2024-05-19
लेखक: ग्लेन-जोचर (11), आयुषएक्सल (1), रिजवान मुनव्वर (1), लाफिंग-क्यू (1)

टिप्पणियाँ