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üle | VisionEye Ultralytics YOLO11 kullanarak Nesne Takibi ile Nesne Haritalamayı Görüntüle | Ultralytics 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
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
color | tuple | (235, 219, 11) | Çizgi ve nesne centroid rengi |
pin_color | tuple | (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:
- Gerçek Zamanlı Nesne Takibi: Nesneler hareket ederken onlara ayak uydurur.
- Nesne Tanımlama: YOLO11'in güçlü algılama algoritmalarını kullanır.
- Mesafe Hesaplama: Nesneler ve belirtilen noktalar arasındaki mesafeleri hesaplar.
- 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:
- Son Teknoloji Performans: Gerçek zamanlı nesne algılamada yüksek doğruluk sağlar.
- Esneklik: Algılama, izleme ve mesafe hesaplama gibi çeşitli görevleri destekler.
- Topluluk ve Destek: Sorun giderme ve geliştirmeler için kapsamlı belgeler ve aktif GitHub topluluğu.
- 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.