YOLO Vision 2026:

VSCode Terminal'inde YOLO Çıkarım Sonuçları Nasıl Görüntülenir#

Sixel example of image in Terminal

libsixel web sitesinden görsel.

Motivasyon#

SSH üzerinden uzak bir makineye bağlanırken, görsel sonuçları normalde görselleştirmek mümkün değildir veya verilerin GUI'ye sahip yerel bir cihaza taşınmasını gerektirir. VSCode entegre terminali, dosyaları dizüstü bilgisayarınıza geri kopyalamadan, çıkarımı çalıştrığınız yerde tam olarak tahmin sonuçlarını inceleyebilmeniz için görselleri doğrudan oluşturabilir. Bu kılavuz, kurulumun etkinleştirilmesini, kodun bağlanmasını adım adım açıklar ve sık sorulan soruları yanıtlar.

Yalnızca Linux ve macOS

Yalnızca Linux ve macOS ile uyumludur. Terminalde sixel ile görselleri görüntlemek için Windows desteğine ilişkin güncellemeler için VSCode repository adresini, Issue status sayfasını veya documentation sayfasını kontrol et.

Entegre terminali kullanarak görselleri görüntülemek için VSCode ile uyumlu protokoller sixel ve iTerm şeklindedir. Bu kılavuz, sixel protokolünün kullanımını gösterecektir.

Süreç#

  1. İlk olarak, VSCode'da terminal.integrated.enableImages ve terminal.integrated.gpuAcceleration ayarlarını etkinleştirmelisin.

    "terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on"
    "terminal.integrated.enableImages": true

    VSCode enable terminal images setting

  2. Sanal ortamına python-sixel kütüphanesini kur. Bu, artık bakım görmeyen PySixel kütüphanesinin bir fork projesidir.

    pip install sixel
  3. Bir model yükleyin ve çıkarım gerçekleştirin, ardından sonuçları çizin ve bir değişkende saklayın. Çıkarım argümanları ve sonuçlarla çalışmak hakkında daha fazla bilgi için predict mode sayfasına bakın.

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n.pt")
    
    # Run inference on an image
    results = model.predict(source="ultralytics/assets/bus.jpg")
    
    # Plot inference results
    plot = results[0].plot()  # (1)!
    1. Kullanılabilecek olası argümanları görmek için plot method parameters kısmına bakın.
  4. Şimdi, np.ndarray verisini bytes verisine dönüştuşturmek için OpenCV kullan. Ardından "dosya benzeri" (file-like) bir nesne oluşturmak için io.BytesIO kullan.

    import io
    
    import cv2
    
    # Results image as bytes
    im_bytes = cv2.imencode(
        ".png",  # (1)!
        plot,
    )[1].tobytes()  # (2)!
    
    # Image bytes as a file-like object
    mem_file = io.BytesIO(im_bytes)
    1. Diğer görüntü uzantılarını kullanmak da mümkündür.
    2. Yalnızca döndürülen 1 indeksindeki nesne gereklidir.
  5. Bir SixelWriter örneği oluşturun ve ardından terminalde görseli çizmek için .draw() yöntemini kullanın.

    from sixel import SixelWriter
    
    # Create sixel writer object
    w = SixelWriter()
    
    # Draw the sixel image in the terminal
    w.draw(mem_file)

Örnek Çıkarım Sonuçları#

YOLO inference results displayed in terminal

Videolar ve GIF'ler test edilmemiştir

Bu örneğin videolar veya hareketli GIF kareleri ile kullanımı test edilmemiştir. Denemek kendi sorumluluğundadır.

Tam Kod Örneği#

import io

import cv2
from sixel import SixelWriter

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Run inference on an image
results = model.predict(source="ultralytics/assets/bus.jpg")

# Plot inference results
plot = results[0].plot()  # (3)!

# Results image as bytes
im_bytes = cv2.imencode(
    ".png",  # (1)!
    plot,
)[1].tobytes()  # (2)!

mem_file = io.BytesIO(im_bytes)
w = SixelWriter()
w.draw(mem_file)
  1. Diğer görüntü uzantılarını kullanmak da mümkündür.
  2. Yalnızca döndürülen 1 indeksindeki nesne gereklidir.
  3. Kullanılabilecek olası argümanları görmek için plot method parameters kısmına bakın.

Görüntüyü temizleme

Terminaldeki görsel görünümünü "silmek" için clear kullanmanız gerekebilir.

SSS#

macOS veya Linux'ta VSCode terminalinde YOLO çıkarım sonuçlarını nasıl görüntüleyebilirim?#

macOS veya Linux'ta VSCode terminalinde YOLO çıkarım sonuçlarını görüntülemek için şu adımları izle:

  1. Gerekli VSCode ayarlarını etkinleştir:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
  2. Sixel kütüphanesini kur:

    pip install sixel
  3. YOLO modelini yükle ve çıkarımı çalıştır:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.predict(source="ultralytics/assets/bus.jpg")
    plot = results[0].plot()
  4. Çıkarım sonucu görüntüsünü baytlara dönüştür ve terminalde görüntüle:

    import io
    
    import cv2
    from sixel import SixelWriter
    
    im_bytes = cv2.imencode(".png", plot)[1].tobytes()
    mem_file = io.BytesIO(im_bytes)
    SixelWriter().draw(mem_file)

Daha fazla detay için predict mode sayfasını ziyaret edin.

Sixel protokolü neden sadece Linux ve macOS'te çalışıyor?#

Sixel protokolü şu anda yalnızca Linux ve macOS üzerinde desteklenmektedir çünkü bu platformlar sixel grafikleriyle uyumlu yerel terminal yeteneklerine sahiptir. Sixel kullanan terminal grafikleri için Windows desteği hâlâ geliştirme aşamasındadır. Windows uyumluluğu hakkındaki güncellemeler için VSCode Sorun durumunu ve belgeleri kontrol edin.

VSCode terminalinde görüntüleri görüntülerken sorun yaşarsam ne yapmalıyım?#

Eğer hiçbir şey görüntülenmiyorsa, şu kontrolleri sırasıyla gerçekleştir:

  1. Process bölümünde gösterildiği gibi hem terminal.integrated.enableImages hem de terminal.integrated.gpuAcceleration seçeneklerinin etkinleştirildiğini onayla, ardından ayarların geçerli olması için entegre terminali yeniden başlat.
  2. sixel paketinin, betiğinizin çalıştığı etkin sanal ortamda (pip install sixel) yüklü olduğunu doğrulayın.
  3. Kodlamadan önce plot öğesinin geçerli bir np.ndarray olduğundan emin ol; çünkü cv2.imencode, görsel boş veya geçerli bir dizi değilse bir hata fırlatır. results[0].plot() değeri tarafından kabul edilen değerler için plot method parameters sayfasına bak.

Sorunlar devam ederse, terminal-görsel destek durumu için VSCode deposuna başvurun.

YOLO, sixel kullanarak terminalde video çıkarım sonuçlarını görüntüleyebilir mi?#

Terminalde sixel kullanarak video çıkarım sonuçlarını veya animasyonlu GIF karelerini görüntülemek şu anda test edilmemiştir ve desteklenmiyor olabilir. Statik görsellerle baş Almanızı ve uyumluluğu doğrulamanızı öneririz. Performans kısıtlamalarını göz önünde bulundurarak video sonuçlarını kendi sorumluluğunuzda deneyin. Çıkarım sonuçlarını çizme hakkında daha fazla bilgi için predict mode sayfasını ziyaret edin.

python-sixel kütüphanesiyle ilgili sorunları nasıl giderebilirim?#

sixel paketi, bakımı yapılmayan PySixel kütüphanesinin bir fork projesidir ve Pillow (PIL) üzerinde ince bir Python sarmalayıcısıdır. Eğer import sixel başarısız olursa veya SixelWriter().draw() bir hata fırlatırsa, paketin aktif sanal ortamına kurulduğunu onayla, Pillow kütüphanesinin mevcut olduğundan emin ol ve platforma özel notlar için python-sixel GitHub repository adresini incele. draw() öğesine aktaracağın görseli oluşturma hakkında daha fazla bilgi için predict mode belgelerine göz at.

Yorumlar