VisionEye View Object Mapping kullanarak Ultralytics YOLO11 🚀
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.
Ultralytics YOLO kullanarak VisionEye Haritalama
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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 = cv2.VideoWriter("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
vision_point=(50, 50), # the point, where vision will view objects and draw tracks
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
VisionEye
Argümanlar
İşte bir tablo VisionEye
Argümanlar:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO Model Dosyasının Yolu. |
vision_point |
tuple[int, int] |
(50, 50) |
VisionEye Çözümünü kullanarak görüşün nesneleri izleyeceği ve yolları çizeceği nokta. |
Aynı zamanda çeşitli track
içindeki argümanlar VisionEye
Çözüm:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Kullanılacak izleme algoritmasını belirtir, örn, bytetrack.yaml veya botsort.yaml . |
conf |
float |
0.3 |
Algılamalar için güven eşiğini ayarlar; düşük değerler daha fazla nesnenin izlenmesine izin verir ancak yanlış pozitifler içerebilir. |
iou |
float |
0.5 |
Çakışan algılamaları filtrelemek için Birlik üzerinde Kesişim (IoU) eşiğini ayarlar. |
classes |
list |
None |
Sonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler. |
verbose |
bool |
True |
İzleme sonuçlarının görüntülenmesini kontrol ederek izlenen nesnelerin görsel bir çıktısını sağlar. |
device |
str |
None |
Çıkarım için cihazı belirtir (örn, cpu , cuda:0 veya 0 ). Kullanıcıların CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır. |
Ayrıca, aşağıda listelenen bazı görselleştirme argümanları da desteklenmektedir:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
show |
bool |
False |
Eğer True , açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır. |
line_width |
None or int |
None |
Sınırlayıcı kutuların çizgi genişliğini belirtir. Eğer None çizgi genişliği görüntü boyutuna göre otomatik olarak ayarlanır. Netlik için görsel özelleştirme sağlar. |
VisionEye Nasıl Çalışır?
VisionEye, çerçevede sabit bir görüş noktası oluşturarak ve bu noktadan algılanan nesnelere çizgiler çizerek çalışır. Bu, insan görüşünün tek bir bakış açısından birden fazla nesneye nasıl odaklandığını simüle eder. Çözüm, nesnelerin kareler arasında tutarlı bir şekilde tanımlanmasını sağlamak için nesne izlemeyi kullanır ve gözlemci (görüş noktası) ile sahnedeki nesneler arasındaki uzamsal ilişkinin görsel bir temsilini oluşturur.
Bu process
VisionEye sınıfındaki yöntem birkaç önemli işlem gerçekleştirir:
- Giriş görüntüsünden izleri (sınırlayıcı kutular, sınıflar ve maskeler) çıkarır
- Sınırlayıcı kutuları ve etiketleri çizmek için bir açıklayıcı oluşturur
- Algılanan her nesne için bir kutu etiketi çizer ve görüş noktasından bir görüş çizgisi oluşturur
- İzleme istatistikleriyle birlikte açıklamalı görüntüyü döndürür
Bu yaklaşım özellikle gözetim sistemleri, otonom navigasyon ve etkileşimli kurulumlar gibi uzamsal farkındalık ve nesne ilişkisi görselleştirme gerektiren uygulamalar için kullanışlıdır.
VisionEye Uygulamaları
VisionEye nesne haritalama, çeşitli sektörlerde çok sayıda pratik uygulamaya sahiptir:
- Güvenlik ve Gözetim: Sabit bir kamera konumundan birden fazla ilgi nesnesini izleyin
- Perakende Analitiği: Mağaza vitrinleriyle ilişkili olarak müşteri hareket modellerini izleyin
- Spor Analizi: Bir antrenörün bakış açısıyla oyuncu pozisyonunu ve hareketini analiz etme
- Otonom Araçlar: Bir aracın çevresindeki nesneleri nasıl "gördüğünü" ve önceliklendirdiğini görselleştirin
- İnsan-Bilgisayar Etkileşimi: Mekansal ilişkilere yanıt veren daha sezgisel arayüzler oluşturma
VisionEye'ı mesafe hesaplama veya hız tahmini gibi diğer Ultralytics çözümleriyle birleştirerek, yalnızca nesneleri izlemekle kalmayıp aynı zamanda uzamsal ilişkilerini ve davranışlarını da anlayan kapsamlı sistemler oluşturabilirsiniz.
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 Ultralytics YOLO paketini pip aracılığıyla yüklemeniz gerekir. Ardından, VisionEye ile nesne algılamayı ayarlamak için belgelerde sağlanan örnek kodu kullanabilirsiniz. İşte başlamanız için basit bir örnek:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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 = cv2.VideoWriter("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
Nesne eşleme ve izleme için neden Ultralytics YOLO11 adresini kullanmalıyım?
Ultralytics YOLO11 hızı, doğruluğu ve entegrasyon kolaylığı ile ünlüdür, bu da onu nesne haritalama ve izleme için en iyi seçim haline getirir. 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.
Başvurular 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 gibi çeşitli makine öğrenimi araçlarıyla sorunsuz bir şekilde entegre olabilir ve deney takibini, işbirliğini ve yeniden üretilebilirliği geliştirebilir. Başlamak için 'un ClearML YOLOv5 Comet ile nasıl kullanılacağına ve 'un YOLO11 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.