Ultralytics YOLO27:

Ultralytics YOLO26 kullanarak VisionEye Görünüm Nesne Eşleme#

VisionEye Nesne Haritalama Nedir?#

Ultralytics YOLO26 VisionEye, bilgisayarların insan gözünün gözlemsel hassasiyetini taklit ederek nesneleri tanımlamasını ve konumlarını belirlemesini sağlar. Bu işlev, bilgisayarların tıpkı insan gözünün belirli bir bakış açısından ayrıntıları gözlemlemesi gibi belirli nesneleri ayırt edip bunlara odaklanmasına olanak tanır.

VisionEye object mapping with YOLO tracking

YOLO26 ile Nesneleri Haritalama#

VisionEye, karede tek bir gözlem noktası sabitler ve buradan izlenen her nesneye bir ışın çizer; böylece bir sahnenin tek bir bakış açısından nasıl göründüğünü görselleştirebilirsin. vision_point değerini gözlemcinin piksel koordinatlarına ayarla, ardından Python API veya CLI ile çözümü videon üzerinde çalıştır.

Ultralytics YOLO ile VisionEye Haritalama
# Monitor objects position with visioneye
yolo solutions visioneye show=True

# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"

VisionEye Bağımsız Değişkenleri#

VisionEye bağımsız değişkenlerini içeren tablo aşağıda verilmiştir:

Bağımsız değişkenTürVarsayılanAçıklama
modelstrNoneBir Ultralytics YOLO model dosyasının yolu.
vision_pointtuple[int, int](20, 20)VisionEye Çözümü'nü kullanarak görüşün nesneleri takip edeceği ve yollar çizeceği nokta.
line_widthint2Çözümün çizdiği kutular, kilit noktaları ve sayılar için çizgi kalınlığı.
verboseboolTrueÇözümün kare başına giriş şeklini, sınıf sayılarını ve işlem hızını kaydetmesini etkinleştirir. Takip çağrısı her zaman sessizdir.

Ayrıca VisionEye çözümünde çeşitli track bağımsız değişkenlerini kullanabilirsin:

Bağımsız değişkenTürVarsayılanAçıklama
trackerstr'botsort.yaml'Kullanılacak takip algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Algılamalar için güven eşiğini belirler; daha düşük değerler daha fazla nesnenin takip edilmesine olanak tanır ancak yanlış pozitifler içerebilir.
ioufloat0.7Örtüşen algılamaları filtrelemek için Birleşim Üzerindeki Kesişim (IoU) eşiğini belirler.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları takip eder.
devicestrNoneÇıkarım için cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model çalıştırma işlemi için CPU, belirli bir GPU veya diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.
imgszint or tuple640Hedef çıkarım görüntü boyutu: kare için bir tamsayı veya bir (height, width) çifti. Şekiller model adımına göre ayarlanır.
max_detint300İzlemeden önce kare başına tutulan maksimum algılama sayısı; yoğun sahnelerde bir çözümün işlediği nesneleri sınırlar.
quantizeint or strNoneÇıkarım hassasiyeti: PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/ayarlanmamış (FP32); diğer formatlar, yapılarının ve çalışma zamanının seçtiği hassasiyette hesaplama yapar. Kullanımdan kaldırılan half bayrağının yerini alır.

Bunlara ek olarak aşağıda listelenen bazı görselleştirme bağımsız değişkenleri de desteklenir:

Bağımsız değişkenTürVarsayılanAçıklama
showboolFalseTrue olduğunda 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 almak için kullanışlıdır.
show_confboolTrueHer algılamanın güven skorunu etiketin yanında görüntüler. Modelin her algılamaya ilişkin kesinliği hakkında fikir verir.
show_labelsboolTrueGörsel çıktıda her algılama için etiketleri görüntüler. Algılanan nesnelerin hemen anlaşılmasını sağlar.

VisionEye Nasıl Çalışır?#

VisionEye, karede sabit bir görüş noktası belirleyip bu noktadan algılanan nesnelere çizgiler çizerek çalışır. Bu, insan görüşünün tek bir bakış açısından birden fazla nesneye odaklanma biçimini taklit eder. Çözüm, kareler boyunca nesnelerin tutarlı şekilde tanımlanmasını sağlamak için nesne takibini kullanır ve gözlemci (görüş noktası) ile sahnedeki nesneler arasındaki mekânsal ilişkinin görsel bir temsilini oluşturur.

VisionEye sınıfındaki process yöntemi birkaç temel işlem gerçekleştirir:

  1. Girdi görüntüsünden izleri (sınırlayıcı kutuları, sınıfları ve maskeleri) çıkarır
  2. Sınırlayıcı kutuları ve etiketleri çizmek için bir açıklayıcı oluşturur
  3. Algılanan her nesne için bir kutu etiketi çizer ve görüş noktasından bir görüş çizgisi oluşturur
  4. İzleme istatistiklerini içeren açıklamalı görüntüyü döndürür

Bu yaklaşım; gözetim sistemleri, otonom navigasyon ve etkileşimli kurulumlar gibi mekânsal farkındalık ve nesne ilişkilerinin görselleştirilmesini gerektiren uygulamalar için özellikle 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 izleme
  • Perakende Analitiği: Müşteri hareket modellerini mağaza teşhirleriyle ilişkili olarak izleme
  • Spor Analizi: Oyuncuların konumlarını ve hareketlerini antrenörün bakış açısından analiz etme
  • Otonom Araçlar: Bir aracın çevresindeki nesneleri nasıl "gördüğünü" ve önceliklendirdiğini görselleştirme
  • İnsan-Bilgisayar Etkileşimi: Mekânsal 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 bunların mekânsal ilişkilerini ve davranışlarını da anlayan kapsamlı sistemler oluşturabilirsin.

SSS#

  • Ultralytics YOLO26 ile VisionEye Nesne Haritalamayı kullanmaya başlamak için önce Ultralytics YOLO paketini pip aracılığıyla yüklemen gerekir. Ardından VisionEye ile nesne algılamayı kurmak için belgelerde sağlanan örnek kodu kullanabilirsin. Başlaman 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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., yolo26s.pt
        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
  • Ultralytics YOLO26 hızı, doğruluğu ve entegrasyon kolaylığıyla tanınır; bu da onu nesne haritalama ve izleme için en iyi seçeneklerden biri hâline getirir. 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 hesaplamayı tek bir işlem hattında destekler.
    3. Topluluk ve Destek: Sorun giderme ve geliştirmeler için kapsamlı belgeler ve aktif bir GitHub topluluğu sunar.
    4. Kullanım Kolaylığı: Sezgisel API, karmaşık görevleri basitleştirerek hızlı dağıtım ve yineleme olanağı sağlar.

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

  • Ultralytics YOLO26; Comet ve ClearML gibi çeşitli makine öğrenimi araçlarıyla sorunsuz şekilde entegre olarak deney izleme, iş birliği ve yeniden üretilebilirliği geliştirir. Başlamak için YOLOv5'i Comet ile nasıl kullanacağına ve YOLO26'yı ClearML ile nasıl entegre edeceğine ilişkin ayrıntılı kılavuzları izle.

    Daha fazla inceleme ve entegrasyon örneği için Ultralytics Entegrasyonları Kılavuzumuza göz at.

Yorumlar