Ultralytics kullanarak Mesafe HesaplamaYOLOv8 🚀
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
from ultralytics import YOLO
from ultralytics.solutions import distance_calculation
import cv2
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 = distance_calculation.DistanceCalculation()
dist_obj.set_args(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
İsteğe Bağlı Argümanlar set_args
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
names |
dict |
None |
Sınıf adları |
view_img |
bool |
False |
Çerçeveleri sayımlarla görüntüleme |
line_thickness |
int |
2 |
Sınırlayıcı kutu kalınlığını artırın |
line_color |
RGB |
(255, 255, 0) |
İki sınırlayıcı kutu üzerinde eşlenen merkezler için Çizgi Rengi |
centroid_color |
RGB |
(255, 0, 255) |
Her sınırlayıcı kutu için centroid rengi |
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 |
Oluşturuldu 2024-01-05, Güncellendi 2024-03-01
Yazarlar: RizwanMunawar (5), glenn-jocher (2), AyushExel (1)