İçeriğe geç

VisionEye Ultralytics YOLO11 kullanarak Nesne Haritalamayı Görüntüle 🚀

VisionEye Nesne Eşleme nedir?

Ultralytics YOLO11 VisionEye, insan gözünün gözlemsel hassasiyetini taklit ederek bilgisayarların nesneleri tanımlama ve nokta atışı yapma kabiliyetini sunar. Bu işlevsellik, insan gözünün belirli bir bakış açısından ayrıntıları gözlemlemesine benzer şekilde, bilgisayarların belirli nesneleri ayırt etmesini ve bunlara odaklanmasını sağlar.

Örnekler

VisionEye GörünümüNesne Takibi ile VisionEye GörünümüMesafe Hesaplamalı VisionEye Görünümü
VisionEye Ultralytics YOLO11 kullanarak Nesne Haritalamayı GörüntüleVisionEye Ultralytics YOLO11 kullanarak Nesne Takibi ile Nesne Haritalamayı GörüntüleUltralytics YOLO11 kullanarak Mesafe Hesaplama ile VisionEye Görünümü
VisionEye Ultralytics YOLO11 kullanarak Nesne Haritalamayı GörüntüleVisionEye Ultralytics YOLO11 kullanarak Nesne Takibi ile Nesne Haritalamayı GörüntüleUltralytics YOLO11 kullanarak Mesafe Hesaplama ile VisionEye Görünümü

YOLO11 kullanarak VisionEye Nesne Haritalama

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolo11n.pt")
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter("visioneye-pinpoint.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))

center_point = (-10, h)

while True:
    ret, im0 = cap.read()
    if not ret:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = model.predict(im0)
    boxes = results[0].boxes.xyxy.cpu()
    clss = results[0].boxes.cls.cpu().tolist()

    annotator = Annotator(im0, line_width=2)

    for box, cls in zip(boxes, clss):
        annotator.box_label(box, label=names[int(cls)], color=colors(int(cls)))
        annotator.visioneye(box, center_point)

    out.write(im0)
    cv2.imshow("visioneye-pinpoint", im0)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

out.release()
cap.release()
cv2.destroyAllWindows()
import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter("visioneye-pinpoint.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))

center_point = (-10, h)

while True:
    ret, im0 = cap.read()
    if not ret:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    annotator = Annotator(im0, line_width=2)

    results = model.track(im0, persist=True)
    boxes = results[0].boxes.xyxy.cpu()

    if results[0].boxes.id is not None:
        track_ids = results[0].boxes.id.int().cpu().tolist()

        for box, track_id in zip(boxes, track_ids):
            annotator.box_label(box, label=str(track_id), color=colors(int(track_id)))
            annotator.visioneye(box, center_point)

    out.write(im0)
    cv2.imshow("visioneye-pinpoint", im0)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

out.release()
cap.release()
cv2.destroyAllWindows()
import math

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator

model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("Path/to/video/file.mp4")

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter("visioneye-distance-calculation.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))

center_point = (0, h)
pixel_per_meter = 10

txt_color, txt_background, bbox_clr = ((0, 0, 0), (255, 255, 255), (255, 0, 255))

while True:
    ret, im0 = cap.read()
    if not ret:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    annotator = Annotator(im0, line_width=2)

    results = model.track(im0, persist=True)
    boxes = results[0].boxes.xyxy.cpu()

    if results[0].boxes.id is not None:
        track_ids = results[0].boxes.id.int().cpu().tolist()

        for box, track_id in zip(boxes, track_ids):
            annotator.box_label(box, label=str(track_id), color=bbox_clr)
            annotator.visioneye(box, center_point)

            x1, y1 = int((box[0] + box[2]) // 2), int((box[1] + box[3]) // 2)  # Bounding box centroid

            distance = (math.sqrt((x1 - center_point[0]) ** 2 + (y1 - center_point[1]) ** 2)) / pixel_per_meter

            text_size, _ = cv2.getTextSize(f"Distance: {distance:.2f} m", cv2.FONT_HERSHEY_SIMPLEX, 1.2, 3)
            cv2.rectangle(im0, (x1, y1 - text_size[1] - 10), (x1 + text_size[0] + 10, y1), txt_background, -1)
            cv2.putText(im0, f"Distance: {distance:.2f} m", (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 1.2, txt_color, 3)

    out.write(im0)
    cv2.imshow("visioneye-distance-calculation", im0)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

out.release()
cap.release()
cv2.destroyAllWindows()

visioneye Argümanlar

İsimTipVarsayılanAçıklama
colortuple(235, 219, 11)Çizgi ve nesne centroid rengi
pin_colortuple(255, 0, 255)VisionEye nokta atışı renk

Not

Sorularınız için Ultralytics Sorun Bölümüne veya aşağıda belirtilen tartışma bölümüne sorularınızı göndermekten çekinmeyin.

SSS

VisionEye Object Mapping'i Ultralytics YOLO11 ile kullanmaya nasıl başlayabilirim?

VisionEye Object Mapping'i Ultralytics YOLO11 ile kullanmaya başlamak için öncelikle pip aracılığıyla Ultralytics YOLO paketini yüklemeniz gerekir. Ardından, VisionEye ile nesne algılamayı ayarlamak için belgelerde verilen örnek kodu kullanabilirsiniz. İşte başlamanız için basit bir örnek:

import cv2

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")

while True:
    ret, frame = cap.read()
    if not ret:
        break

    results = model.predict(frame)
    for result in results:
        # Perform custom logic with result
        pass

    cv2.imshow("visioneye", frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

VisionEye'ın Ultralytics YOLO11 kullanarak nesne izleme özelliğinin temel özellikleri nelerdir?

VisionEye'ın Ultralytics YOLO11 ile nesne takibi, kullanıcıların bir video karesi içindeki nesnelerin hareketini takip etmelerini sağlar. Temel özellikler şunlardır:

  1. Gerçek Zamanlı Nesne Takibi: Nesneler hareket ederken onlara ayak uydurur.
  2. Nesne Tanımlama: YOLO11'in güçlü algılama algoritmalarını kullanır.
  3. Mesafe Hesaplama: Nesneler ve belirtilen noktalar arasındaki mesafeleri hesaplar.
  4. Ek Açıklama ve Görselleştirme: İzlenen nesneler için görsel işaretler sağlar.

VisionEye ile izlemeyi gösteren kısa bir kod parçacığı:

import cv2

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")

while True:
    ret, frame = cap.read()
    if not ret:
        break

    results = model.track(frame, persist=True)
    for result in results:
        # Annotate and visualize tracking
        pass

    cv2.imshow("visioneye-tracking", frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

Kapsamlı bir kılavuz için VisionEye Object Mapping with Object Tracking'i ziyaret edin.

VisionEye'ın YOLO11 modeli ile mesafeleri nasıl hesaplayabilirim?

VisionEye ve Ultralytics YOLO11 ile mesafe hesaplaması, tespit edilen nesnelerin çerçevedeki belirli bir noktadan uzaklığının belirlenmesini içerir. Otonom sürüş ve gözetim gibi uygulamalarda yararlı olan uzamsal analiz yeteneklerini geliştirir.

İşte basitleştirilmiş bir örnek:

import math

import cv2

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
center_point = (0, 480)  # Example center point
pixel_per_meter = 10

while True:
    ret, frame = cap.read()
    if not ret:
        break

    results = model.track(frame, persist=True)
    for result in results:
        # Calculate distance logic
        distances = [
            (math.sqrt((box[0] - center_point[0]) ** 2 + (box[1] - center_point[1]) ** 2)) / pixel_per_meter
            for box in results
        ]

    cv2.imshow("visioneye-distance", frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

Ayrıntılı talimatlar için Mesafe Hesaplamalı VisionEye'a bakın.

Nesne haritalama ve izleme için neden Ultralytics YOLO11 kullanmalıyım?

Ultralytics YOLO11 hızı, doğruluğu ve entegrasyon kolaylığı ile ünlüdür ve nesne haritalama ve izleme için en iyi seçimdir. Temel avantajları şunlardır:

  1. Son Teknoloji Performans: Gerçek zamanlı nesne algılamada yüksek doğruluk sağlar.
  2. Esneklik: Algılama, izleme ve mesafe hesaplama gibi çeşitli görevleri destekler.
  3. Topluluk ve Destek: Sorun giderme ve geliştirmeler için kapsamlı belgeler ve aktif GitHub topluluğu.
  4. Kullanım Kolaylığı: Sezgisel API, karmaşık görevleri basitleştirerek hızlı dağıtım ve yinelemeye olanak tanır.

Uygulamalar ve avantajlar hakkında daha fazla bilgi için Ultralytics YOLO11 belgelerine göz atın.

VisionEye'ı Comet veya ClearML gibi diğer makine öğrenimi araçlarıyla nasıl entegre edebilirim?

Ultralytics YOLO11, Comet ve ClearML gibi çeşitli makine öğrenimi araçlarıyla sorunsuz bir şekilde entegre olarak deney takibini, işbirliğini ve tekrarlanabilirliği geliştirebilir. Başlamak için YOLOv5 'un Comet ile nasıl kullanılacağına ve YOLO11 'in ClearML ile nasıl entegre edileceğine ilişkin ayrıntılı kılavuzları izleyin.

Daha fazla keşif ve entegrasyon örnekleri için Ultralytics Entegrasyonlar Kılavuzumuza göz atın.

📅 1 1 ay önce oluşturuldu ✏️ 1 ay önce güncellendi

Yorumlar