Kullanarak Mesafe Hesaplama Ultralytics YOLOv8
Mesafe Hesaplama Nedir?
İki nesne arasındaki boşluğun ölçülmesi, belirli bir alan içinde mesafe hesaplaması olarak bilinir. Bu durumda Ultralytics YOLOv8sınırlayıcı kutu merkezi, kullanıcı tarafından vurgulanan sınırlayıcı kutuların mesafesini hesaplamak için kullanılır.
İzle: Kullanarak Mesafe Hesaplama Ultralytics YOLOv8
Görseller
Kullanarak Mesafe Hesaplama Ultralytics YOLOv8 |
---|
Mesafe Hesaplamanın Avantajları?
- Yerelleştirme Hassasiyeti: Bilgisayarla görme görevlerinde doğru uzamsal konumlandırmayı geliştirir.
- Boyut Tahmini: Daha iyi bağlamsal anlayış için fiziksel boyutların tahmin edilmesini sağlar.
- Sahne Anlayışı: Gelişmiş karar verme için çevrenin 3 boyutlu olarak anlaşılmasına katkıda bulunur.
Mesafe Hesaplama
- Mesafe hesaplaması için herhangi iki sınırlayıcı kutuya Sol Fare tıklaması ile tıklayın
YOLOv8 Kullanarak Mesafe Hesaplama Örnek
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
# Video writer
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init distance-calculation obj
dist_obj = solutions.DistanceCalculation(names=names, view_img=True)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = dist_obj.start_process(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Not
- Fare Sağ Tıklaması çizilen tüm noktaları silecektir
- Fare Sol Tıklaması nokta çizmek için kullanılabilir
Argümanlar DistanceCalculation()
Name |
Type |
Default |
Açıklama |
---|---|---|---|
names |
dict |
None |
Sınıf adları sözlüğü. |
pixels_per_meter |
int |
10 |
Pikselden metreye dönüştürme faktörü. |
view_img |
bool |
False |
Video akışının görüntülenmesi gerekip gerekmediğini belirten bayrak. |
line_thickness |
int |
2 |
Görüntü üzerine çizilen çizgilerin kalınlığı. |
line_color |
tuple |
(255, 255, 0) |
Görüntü üzerine çizilen çizgilerin rengi (BGR formatı). |
centroid_color |
tuple |
(255, 0, 255) |
Çizilen merkez noktalarının rengi (BGR biçimi). |
Argümanlar model.track
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
im0 |
None |
resimler veya videolar için kaynak dizin |
persist |
bool |
False |
kareler arasında kalıcı izler |
tracker |
str |
botsort.yaml |
İzleme yöntemi 'bytetrack' veya 'botsort' |
conf |
float |
0.3 |
Güven Eşiği |
iou |
float |
0.5 |
IOU Eşiği |
classes |
list |
None |
sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3] |
verbose |
bool |
True |
Nesne izleme sonuçlarını görüntüleme |
SSS
Ultralytics YOLOv8 adresini kullanarak nesneler arasındaki mesafeleri nasıl hesaplayabilirim?
Nesneler arasındaki mesafeleri hesaplamak için Ultralytics YOLOv8'de, algılanan nesnelerin sınırlayıcı kutu merkezlerini belirlemeniz gerekir. Bu işlem, nesnelerin sınırlayıcı kutu DistanceCalculation
sınıfından Ultralytics' solutions
modülünü kullanır ve mesafeleri hesaplamak için modelin izleme çıktılarını kullanır. Uygulamaya şuradan başvurabilirsiniz mesafe hesaplama örneği.
Mesafe hesaplamasını Ultralytics YOLOv8 ile kullanmanın avantajları nelerdir?
Mesafe hesaplamasını Ultralytics YOLOv8 ile kullanmak çeşitli avantajlar sunar:
- Yerelleştirme Hassasiyeti: Nesneler için doğru uzamsal konumlandırma sağlar.
- Boyut Tahmini: Fiziksel boyutların tahmin edilmesine yardımcı olarak bağlamın daha iyi anlaşılmasına katkıda bulunur.
- Sahne Anlama: 3D sahne kavrayışını geliştirerek otonom sürüş ve gözetleme gibi uygulamalarda gelişmiş karar verme sürecine yardımcı olur.
Ultralytics YOLOv8 ile gerçek zamanlı video akışlarında mesafe hesaplaması yapabilir miyim?
Evet, Ultralytics YOLOv8 ile gerçek zamanlı video akışlarında mesafe hesaplaması yapabilirsiniz. İşlem, OpenCV kullanarak video karelerini yakalamayı, YOLOv8 nesne algılamayı çalıştırmayı ve DistanceCalculation
sınıfı, birbirini izleyen karelerdeki nesneler arasındaki mesafeleri hesaplamak için kullanılır. Ayrıntılı bir uygulama için bkz. video akışı örneği.
Ultralytics YOLOv8 adresini kullanarak mesafe hesaplaması sırasında çizilen noktaları nasıl silebilirim?
Ultralytics YOLOv8 ile mesafe hesaplaması sırasında çizilen noktaları silmek için farenin sağ tuşunu kullanabilirsiniz. Bu işlem çizdiğiniz tüm noktaları silecektir. Daha fazla ayrıntı için mesafe hesaplama örneğinin altındaki not bölümüne bakın.
DistanceCalculation sınıfını Ultralytics YOLOv8 adresinde başlatmak için temel argümanlar nelerdir?
Başlatmak için temel argümanlar DistanceCalculation
sınıfına Ultralytics YOLOv8 adresinden ulaşabilirsiniz:
names
: Sınıf indekslerini sınıf adlarıyla eşleyen sözlük.pixels_per_meter
: Pikselden metreye dönüştürme faktörü.view_img
: Video akışının görüntülenip görüntülenmeyeceğini gösteren bayrak.line_thickness
: Görüntü üzerine çizilen çizgilerin kalınlığı.line_color
: Görüntü üzerine çizilen çizgilerin rengi (BGR formatı).centroid_color
: Merkezlerin rengi (BGR formatı).
Kapsamlı bir liste ve varsayılan değerler için DistanceCalculation argümanlarına bakın.
Oluşturma 2024-01-05, Güncelleme 2024-07-14
Yazarlar: RizwanMunawar (5), glenn-jocher (7), IvorZhu331 (1), AyushExel (1)