You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

359 lines
31 KiB

---
comments: true
description: विम म आवक टक करनिए Ultralytics YOLO क उपयग क कर। टकरस क उपयग करन और टकर किगरशन क अनित करनिए गइड।
keywords: Ultralytics, YOLO, आवक टिग, विम, BoT-SORT, ByteTrack, पयथन गइड, CLI गइड
---
# Ultralytics YOLO कथ मल-ऑबट टि
<img width="1024" src="https://user-images.githubusercontent.com/26833433/243418637-1d6250fd-1515-4c10-a844-a32818ae6d46.png" alt="Multi-object tracking examples">
ि एनििस कर म, ऑबट टिग एक महतवपण कय हवल फम म वसन और वरग क पहचन करन अलिरगतिथ-सथ परतक ख गई वसिए एक अदिय आईड बनए रखत। इसक अनरयग ह असित—निगर और सरककर रियल-टइम सस एनििस तक।
## ऑबट टिग किए Ultralytics YOLO क?
Ultralytics टकर उतपनन परिम मनक ऑबट डिशन कथ मल ख, लिन विम म ऑबक करन और उपय गणन करन आसन ह। यह आपक Ultralytics YOLO क उपयग अपन ऑबट टिग क जररतिए करन सलह द रह:
- **परदरशनशलत:** सटकतमल समय-सतय हथ विम करकि कर
- **लचपन:** वििन टिग ऍलिदम और विस पर समरथन कर
- **उपयग करन आस:** झटपट एककरण और डिय करनिए सरल पयथन API और CLI विकलप।
- **कसटमइजिि:** कसटम टन किए गए YOLO मडल कथ उपयग म आसन, जिससन-वििट एपिशन म समश करनभव ह
<p align="center">
<br>
<iframe width="720" height="405" src="https://www.youtube.com/embed/hHyHmOtmEgs?si=VNZtXmm45Nb9s-N-"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen>
</iframe>
<br>
<strong>:</strong> Ultralytics YOLOv8 कथ ऑबट डिशन और टिग।
</p>
## वतविक दि अनरय
| परिवहन | खदरर | जलजजनित उतदन |
|:-------------------------------:|:-----------------------------:|:----------------------------:|
| ![वहन टिग][vehicle track] | ![लग टिग][people track] | ![मछलिग][fish track] |
| वहन टिग | लग टिग | मछलिग |
## विषत एक झलक म
Ultralytics YOLO अपन ऑबट डिशन विषत बढकर मजत और बह ऑबट टिग परदन करत:
- **रयल-टइम टिग:** उचच फम दर वि समयबदध रप स ऑबस कक कर
- **एकिक टकर समरथन:** इसित टिग ऍलिदम एक च
- **कसटमइजबल टकर किगरशन:** वििन पटरस क समित करकिष आवशयकत करनिए टिग ऍलिदम क अनित कर
## उपलबध टकर
Ultralytics YOLO निनलिित टिग ऍलिदम समरथन करत। आप इनय YAML किगरशन फइल (`tracker=tracker_type.yaml`) पित करक सकषम कर सकत:
* [BoT-SORT](https://github.com/NirAharon/BoT-SORT) - इस टकर क सकषम करनि`botsort.yaml` उपयग कर
* [ByteTrack](https://github.com/ifzhang/ByteTrack) - इस टकर क सकषम करनि`bytetrack.yaml` उपयग कर
िट टकर BoT-SORT ह
## टि
िस पर टकर चलिए, YOLOv8n, YOLOv8n-seg और YOLOv8n-pose जरशिित Detect, Segment य Pose मडल क उपयग कर
!!! Example "उदहरण"
=== "पयथन"
```python
from ultralytics import YOLO
# एक आधििक य कसटम मडल लड कर
model = YOLO('yolov8n.pt') # एक आधििक Detect मडल लड कर
model = YOLO('yolov8n-seg.pt') # एक आधििक Segment मडल लड कर
model = YOLO('yolov8n-pose.pt') # एक आधििक Pose मडल लड कर
model = YOLO('path/to/best.pt') # एक कसटम परशिित मडल लड कर
# मडल कथ टिग कर
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True) # डिट टकर कथ टिग कर
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml") # ByteTrack टकर कथ टिग कर
```
=== "CLI"
```ब
# CLI कथ वििन मडल कथ टिग कर
क मडल=yolov8n.pt सत="https://youtu.be/LNwODJXcvt4" # आधििक डिट मडल
क मडल=yolov8n-seg.pt सत="https://youtu.be/LNwODJXcvt4" # आधििक सगमट मडल
क मडल=yolov8n-pose.pt सत="https://youtu.be/LNwODJXcvt4" # आधििक पज मडल
क मडल=path/to/best.pt सत="https://youtu.be/LNwODJXcvt4" # कसटम परशिित मडल
# ByteTrack टकर क उपयग कर
क मडल=path/to/best.pt टकर="bytetrack.yaml"
```
ऊपर क उपयग मगलििचलििग उपलबध ह सभिट, सगमट और पज मडलस किए जििग सत पर चल सकत
## किगरशन
### टिग आर
िग किगरशन, जि `conf`, `iou` और `show`, निशन मड कथ ग करत। और विस करनिए, कपय [िशन](../modes/predict.md#inference-arguments) मडल पठ पर सदरभ कर
!!! Example "उदहरण"
=== "पयथन"
```python
from ultralytics import YOLO
# टिग पटर आवटन कर और टकर चल
model = YOLO('yolov8n.pt')
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.3, iou=0.5, show=True)
```
=== "CLI"
```ब
# कमड लइन इटरफस क उपयग करिग पटर किगर कर और टकर चल
क मडल=yolov8n.pt सत="https://youtu.be/LNwODJXcvt4" conf=0.3, iou=0.5 show
```
### टकर चयन
Ultralytics आपक एक सित टकर किगरशन फइल क उपयग करन अनमति। ऐस करनिए, बस [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) स एक टकर किगरशन फइल (ज `custom_tracker.yaml`) क एक परतििि बन और कििस कित कर ( `tracker_type`कर) अपन जररत अनर।
!!! Example "उदहरण"
=== "पयथन"
```python
from ultralytics import YOLO
# मडल लड कर और एक कसटम किगरशन फइल कथ टकर चल
model = YOLO('yolov8n.pt')
results = model.track(source="https://youtu.be/LNwODJXcvt4", tracker='custom_tracker.yaml')
```
=== "CLI"
```ब
# टकर कथ एक कसटम किगरशन फइल क उपयग करकडल लड कर और टकर चल
क मडल=yolov8n.pt सत="https://youtu.be/LNwODJXcvt4" tracker='custom_tracker.yaml'
```
िग आरस क एक वपक सिए, [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) पज पर सदरभ कर
## पयथन उदहरण
### टक परिट करन
यह एक Python सिट ह OpenCV (`cv2`) और YOLOv8 क उपयग करकिम पर ऑबट टिग चलिए ह। इस सिट म यह मन लि गयि आपन पहल आवशयक पज (`opencv-python` और `ultralytics`) इल कर लिए ह`persist=True` आरट यकर क बति इमज यम उन अनसरण तथिए हिछल इमज म बनए गए ह
!!! Example "टिग किए सिग फर-लप"
```python
import cv2
from ultralytics import YOLO
# YOLOv8 मडल लड कर
model = YOLO('yolov8n.pt')
# विइल ख
video_path = "path/to/video.mp4"
cap = cv2.VideoCapture(video_path)
# विस पर लप चल
while cap.isOpened():
# वि एक फम पढ
success, frame = cap.read()
if success:
# फम पर YOLOv8 टिग चल, फम कच टक परिट करत
results = model.track(frame, persist=True)
# परिम पर दि
annotated_frame = results[0].plot()
# टक करम करदरित कर
cv2.imshow("YOLOv8 टिग", annotated_frame)
# 'q' दबम सहर निकल
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
# वित तक पहचन पर भम सहर निकल
break
# विचर ऑबट छ और परदरशन विद कर
cap.release()
cv2.destroyAllWindows()
```
म सिग किए 'model(frame)' स 'model.track(frame)' म बदलव कि, जरण डिशन क बजय ऑबट टिग क सकषम करत। यह सित सिट परतिम वि पर टकर चलएग, परििएग और एक वििएग। 'q' दब पर फम सहर निकल सकत
### समय कथ टक चिित करन
ित विम पर ऑबट टस कट करक समतर सय मरदरित करन हमिित पथ कयम स पहलतर और पत आपियवन परणिल सकत। Ultralytics YOLOv8 कथ समय कथ टस कट करन एक चत और कशल परकि
िन उदहरण म, हम दिए गए विस पर YOLO मडल क उपयग करकििन ऑबट क गतििित करनिए क कर। यह सिट एक विइल कलत, फम दर फम यह पढ, और YOLO मडल क उपयग करकििन ऑबट क पहचन और टक करत। पहचन वस कय पि करक उन, हम टक किए गए वसलत जगहिरहित करनिए लइनच सकत
!!! Example "कई विस पर पथ चिित करन"
```python
from collections import defaultdict
import cv2
import numpy as np
from ultralytics import YOLO
# YOLOv8 मडल लड कर
model = YOLO('yolov8n.pt')
# विइल ख
video_path = "path/to/video.mp4"
cap = cv2.VideoCapture(video_path)
# टक इतिस करहत कर
track_history = defaultdict(lambda: [])
# विस पर लप चल
while cap.isOpened():
# वि एक फम पढ
success, frame = cap.read()
if success:
# फम पर YOLOv8 टिग चल, फम कच टक परिट करत
results = model.track(frame, persist=True)
# बस और टक आईडत कर
boxes = results[0].boxes.xywh.cpu()
track_ids = results[0].boxes.id.int().cpu().tolist()
# रिट पर विअलइज कर
annotated_frame = results[0].plot()
# पथ चिित कर
for box, track_id in zip(boxes, track_ids):
x, y, w, h = box
track = track_history[track_id]
track.append((float(x), float(y))) # x, y centre point
if len(track) > 30: # 90 फस किए 90 टस क जम कर
track.pop(0)
# टिग लइन
points = np.hstack(track).astype(np.int32).reshape((-1, 1, 2))
cv2.polylines(annotated_frame, [points], isClosed=False, color=(230, 230, 230), thickness=10)
# पथ करदरित कर
cv2.imshow("YOLOv8 टिग", annotated_frame)
# 'q' दबम सहर निकल
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
# वित तक पहचन पर भम सहर निकल
break
# विचर ऑबट छ और परदरशन विद कर
cap.release()
cv2.destroyAllWindows()
```
### मलड टि
मलड टिग एक सथ कई वि पर ऑबट टिग चलषमतरदन करत। यह खसकर उपय जब हम कई निगरमरि वहद वि इनपट कलनिए परसपर पिग करनषमत बढ सकत
रदन किए गए पयथन सिट म हम Python क `threading`ल क उपयग करक यह सभव करति कई इज क एक सथ टकर चल सक। यह हर थड किए एक टकर चलि, और सभड सघ थड बकगड म एक सथ चलत
हर थड क सहटरस (विइल, उपयग करनिए मडल और फइल इस) पत करनिए, हम `run_tracker_in_thread`मक एक फशन क परिित करत इन पटरस कर करत और मय टिग लप कित करत। यह फशन विस कम द पढकर, टकर चल और परिरदरित कर रह
इस उदहरण म अलग मडल इसल ह: `yolov8n.pt` और `yolov8n-seg.pt`, ज हर एक अलग विइल म ऑबट कक करत। विइल `video_file1` और `video_file2`ििट किए गए ह`threading.Thread` `daemon=True`ििमति उपयग सत करति यह सिित करति जब परमख कयकरम समत हए, त सभड बद ह। हम `start()` उपयग करक करत और `join()` उपयग करकय थड करत करनिए बन जब तक किकर थड खतम नह
ि सभ अपनय प कर लि, इसलि`cv2.destroyAllWindows()` उपयग करक परिििद करत
!!! Example "टिग किए सिग फर-लप"
```python
import threading
import cv2
from ultralytics import YOLO
def run_tracker_in_thread(filename, model, file_index):
"""
िग कथ YOLOv8 मडल कथ एक विइल य webcam सत सगतरप पर टकर चल
यह फशन एक वदनय विइल यमरत सि पकड और ऑबट टिग किए YOLOv8 मडल क उपयग करत। यह फशन अपनड म चलतय परसकरण कप म एक सथ चलत
Args:
filename (str): विइल क पथ यमर / बहरमरत क पहचनकर
model (obj): YOLOv8 मडल ऑबट।
file_index (int): फइल क पहचननिए ऐिक कड।
न द:
िििद करनिए 'q' दब
"""
ि = cv2.VideoCapture(filename) # विइल पढ
while True:
सफलत, फम = वि.read() # विम पढ
# कई भम न बच, तप सहर निकल
if not सफलत:
# ऑबस कक कर यदि उपलबध ह
results = model.track(फम, persist=True)
res_plotted = results[0].plot()
cv2.imshow(f"सत_{file_index} पर टिग", res_plotted)
= cv2.waitKey(1)
if क == ord('q'):
# वि
ि.रि()
# मडल लड कर
model1 = YOLO('yolov8n.pt')
model2 = YOLO('yolov8n-seg.pt')
# टकर किए विइल परिित कर
video_file1 = "path/to/video1.mp4" # विइल क पथ, वबकम किए 0
video_file2 = 0 # विइल क पथ, वबकम किए 0, बहरमरिए 1
# टकर थड सबस ऊपर बन
tracker_thread1 = threading.Thread(target=run_tracker_in_thread, args=(video_file1, model1, 1), daemon=True)
tracker_thread2 = threading.Thread(target=run_tracker_in_thread, args=(video_file2, model2, 2), daemon=True)
# टकर थड पभ कर
tracker_thread1.start()
tracker_thread2.start()
# टकर थड करत कर
tracker_thread1.join()
tracker_thread2.join()
# सभकर थिपटए जद, परिरदरशन विज बद कर
cv2.destroyAllWindows()
```
यह उदहरण सिट जकर और इसगदरशन क उपयग करक और अधिक विइल और मडल किए बहरड बन कर इसित करनिए आसिित कि सकत
## नए टकर सहयग द
आप बह-ऑबट टिग मिर ह और उलििस YOLO कथ एक टिग ऍलिदम क सफलतवक अमल म? हम आपक [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) म हमकर खड किए यगदन दिए आमित करत! आपकतविक दि अनरयग और समन आपक समय किए अमय ह सकत
इस खड मगदन दकर, आप उलििस YOLO फमवरक कतर उपलबध टिग समिरव बढ सकत, ज उलििस YOLO मयम सम कर रह उपयगकरिए अतयधिक समरपणशलत और उपय
अपनगदन कआत करनिए, कपय हम [गदन गइड](https://docs.ultralytics.com/help/contributing) कदरभ ल जह परमरिरसत करन सचत निश दिए गए ह। हम इतजर कर रह आप क!
थ म, चलिए Ultralytics YOLO पििि गतिलत मजबत कर 🙏!
[वहन टिग]: https://github.com/RizwanMunawar/ultralytics/assets/62513924/ee6e6038-383b-4f21-ac29-b2a1c7d386ab
[लग टिग]: https://github.com/RizwanMunawar/ultralytics/assets/62513924/93bb4ee2-77a0-4e4e-8eb6-eb8f527f0527
[मछलिग]: https://github.com/RizwanMunawar/ultralytics/assets/62513924/a5146d0f-bfa8-4e0a-b7df-3c1446cd8142