Meet YOLO26: next-gen vision AI.

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

Sixel example of image in Terminal

libsixel web sitesinden alınan görsel.

Link to this sectionMotivasyon#

SSH üzerinden uzak bir makineye bağlandığında, görüntü sonuçlarını normal yollarla görselleştirmek mümkün değildir veya verilerin GUI (grafiksel arayüz) içeren yerel bir cihaza aktarılmasını gerektirir. VSCode tümleşik terminali görüntüleri doğrudan işleyebilir, böylece dosyaları dizüstü bilgisayarına geri kopyalamak zorunda kalmadan, çıkarımı çalıştırdığın yerde tahmin sonuçlarını inceleyebilirsin. Bu kılavuz, kurulumu etkinleştirme, kodu bağlama süreçlerinde sana yol gösterir ve sık sorulan soruları yanıtlar.

Yalnızca Linux ve macOS

Only compatible with Linux and macOS. Check the VSCode repository, check Issue status, or documentation for updates about Windows support to view images in terminal with sixel.

Tümleşik terminali kullanarak görüntüleri görüntülemek için VSCode ile uyumlu protokoller sixel ve iTerm protokolleridir. Bu kılavuz sixel protokolünün kullanımını gösterecektir.

Link to this sectionSüreç#

  1. Öncelikle VSCode'da terminal.integrated.enableImages ve terminal.integrated.gpuAcceleration ayarlarını etkinleştirmen gerekir.

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

    VSCode enable terminal images setting

  2. Install the python-sixel library in your virtual environment. This is a fork of the PySixel library, which is no longer maintained.

    pip install sixel
  3. Bir model yükle ve çıkarımı çalıştır, ardından sonuçları çizdir ve bir değişkende sakla. Çıkarım argümanları ve sonuçlarla çalışma hakkında daha fazla bilgi için tahmin modu sayfasına bak.

    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. Kullanabileceğin olası argümanları görmek için plot yöntemi parametrelerine göz at.
  4. Now, use OpenCV to convert the np.ndarray to bytes data. Then use io.BytesIO to make a "file-like" object.

    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. Döndürülen dizin 1'deki nesneye ihtiyaç duyulur.
  5. Bir SixelWriter örneği oluştur ve ardından görüntüyü terminalde çizmek için .draw() yöntemini kullan.

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

Link to this sectionÖ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.

Link to this sectionTam 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. Döndürülen dizin 1'deki nesneye ihtiyaç duyulur.
  3. Kullanabileceğin olası argümanları görmek için plot yöntemi parametrelerine göz at.

Görüntüyü temizleme

Terminaldeki görüntü görünümünü "silmek" için clear komutunu kullanman gerekebilir.

Link to this sectionSSS#

Link to this sectionmacOS 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 tahmin modu sayfasını ziyaret et.

Link to this sectionSixel protokolü neden sadece Linux ve macOS'te çalışıyor?#

Sixel protokolü şu anda yalnızca Linux ve macOS'te desteklenmektedir çünkü bu platformlar, sixel grafikleriyle uyumlu yerel terminal yeteneklerine sahiptir. Windows'ta sixel kullanarak terminal grafikleri desteği hâlâ geliştirme aşamasındadır. Windows uyumluluğu ile ilgili güncellemeler için VSCode Sorun durumunu ve belgeleri kontrol et.

Link to this sectionVSCode 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. Confirm both terminal.integrated.enableImages and terminal.integrated.gpuAcceleration are enabled, as shown in the Process section, then restart the integrated terminal so the settings take effect.
  2. sixel'in komut dosyanın çalıştığı sanal ortamda kurulu olduğunu doğrula (pip install sixel).
  3. Make sure plot is a valid np.ndarray before encoding it, since cv2.imencode raises an error if the image is empty or not a valid array. See the plot method parameters for the values results[0].plot() accepts.

Sorunlar devam ederse, terminal-görüntü desteği durumu için VSCode deposuna başvur.

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

Terminalde sixel kullanarak video çıkarım sonuçlarını veya hareketli GIF karelerini görüntülemek şu anda test edilmemiştir ve desteklenmiyor olabilir. Statik görüntülerle başlamanı ve uyumluluğu doğrulamanı öneririz. Performans kısıtlamalarını göz önünde bulundurarak, video sonuçlarını denemek kendi sorumluluğundadır. Çıkarım sonuçlarını çizdirmek hakkında daha fazla bilgi için tahmin modu sayfasını ziyaret et.

Link to this sectionpython-sixel kütüphanesiyle ilgili sorunları nasıl giderebilirim?#

The sixel package is a fork of the unmaintained PySixel library and is a thin Python wrapper over Pillow (PIL). If import sixel fails or SixelWriter().draw() raises an error, confirm the package installed into your active virtual environment, ensure Pillow is available, and check the python-sixel GitHub repository for platform-specific notes. For more on generating the image you pass to draw(), see the predict mode documentation.

Yorumlar