İçeriğe geç

Bir Terminalde Çıkarım Sonuçlarını Görüntüleme

Terminalde resmin Sixel örneği

libsixel web sitesinden alınan görüntü.

Motivasyon

Uzak bir makineye bağlanırken, normalde görüntü sonuçlarını görselleştirmek mümkün değildir veya verilerin bir GUI ile yerel bir cihaza taşınmasını gerektirir. VSCode entegre terminali, görüntülerin doğrudan işlenmesine olanak tanır. Bu, bununla birlikte nasıl kullanılacağına dair kısa bir gösterimdir ultralytics ile tahmin sonuçları.

Uyarı

Yalnızca Linux ve MacOS ile uyumludur. Kontrol edin VSCode deposu, kontrol edin Sorun durumu, veya belgeleme terminalde görüntüleri görüntülemek için Windows desteğiyle ilgili güncellemeler için sixel.

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

İşlem

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

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

    VSCode terminal görüntüleri ayarını etkinleştir

  2. Şunu yükleyin: python-sixel sanal ortamınızdaki kütüphane. Bu bir fork nın PySixel artık bakımı yapılmayan kütüphane.

    pip install sixel
    
  3. Bir model yükleyin ve çıkarım yürütün, ardından sonuçları çizin ve bir değişkende saklayın. Çıkarım argümanları ve sonuçlarla çalışma hakkında daha fazla bilgiyi tahmin modu sayfasında bulabilirsiniz.

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo11n.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 metodu parametrelerine bakın.
  4. Şimdi, şunu kullanın: OpenCV dönüştürmek için np.ndarray için bytes veri. Ardından şunu kullanın: io.BytesIO "dosya benzeri" bir nesne oluşturmak için.

    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 resim uzantılarını da kullanmak mümkündür.
    2. Yalnızca dizindeki nesne 1 döndürülen gereklidir.
  5. Bir tane oluşturun SixelWriter örneği ve ardından şunu kullanın: .draw() görüntüyü terminalde çizmek için yöntem.

    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ı

Terminalde Görüntüyü Görüntüle

Tehlike

Videolar veya animasyonlu GIF kareleriyle bu örneği kullanmak test edilmemiştir. Kendi sorumluluğunuzda deneyin.

Tam Kod Örneği

import io

import cv2
from sixel import SixelWriter

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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 resim uzantılarını da kullanmak mümkündür.
  2. Yalnızca dizindeki nesne 1 döndürülen gereklidir.
  3. Kullanılabilecek olası argümanları görmek için plot metodu parametrelerine bakın.

İpucu

Şunu kullanmanız gerekebilir: clear terminaldeki görüntü görünümünü "silmek" için.

SSS

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

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

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

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

    pip install sixel
    
  3. YOLO modelinizi yükleyin ve çıkarımı çalıştırın:

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

    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 ayrıntı için tahmin modu sayfasını ziyaret edin.

Sixel protokolü neden yalnızca Linux ve macOS'ta çalışıyor?

Sixel protokolü şu anda yalnızca Linux ve macOS'ta desteklenmektedir, çünkü bu platformlar sixel grafikleriyle uyumlu yerel terminal özelliklerine sahiptir. Windows'un sixel kullanarak terminal grafikleri için desteği hala geliştirme aşamasındadır. Windows uyumluluğuyla ilgili güncellemeler için VSCode Sorun durumu ve belgelerine bakın.

VSCode terminalinde görüntüleri görüntülerken sorunlarla karşılaşırsam ne olur?

VSCode terminalinde sixel kullanarak görüntüleri görüntülerken sorunlarla karşılaşırsanız:

  1. VSCode'da gerekli ayarların etkinleştirildiğinden emin olun:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. Sixel kütüphanesi kurulumunu doğrulayın:

    pip install sixel
    
  3. Görüntü verisi dönüştürme ve çizim kodunuzu hatalara karşı kontrol edin. Örneğin:

    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)
    

Sorunlar devam ederse, ek rehberlik için VSCode deposuna danışın ve çizim metodu parametreleri bölümünü ziyaret edin.

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

Terminalde sixel kullanarak video çıkarım sonuçlarını veya animasyonlu GIF çerçevelerini görüntülemek şu anda test edilmemiştir ve desteklenmeyebilir. Statik görüntülerle başlamanı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 tahmin modu sayfasını ziyaret edin.

ile ilgili sorunları nasıl giderebilirim? python-sixel kütüphane mi?

ile ilgili sorunları gidermek için python-sixel kütüphane:

  1. Kitaplığın sanal ortamınızda doğru şekilde kurulduğundan emin olun:

    pip install sixel
    
  2. Gerekli Python ve sistem bağımlılıklarına sahip olduğunuzu doğrulayın.

  3. Ek belgeler ve topluluk desteği için python-sixel GitHub deposuna bakın.

  4. Olası hatalar için kodunuzu, özellikle de kullanımını iki kez kontrol edin. SixelWriter ve görüntü verisi dönüştürme adımları.

YOLO modelleri ve sixel entegrasyonu ile çalışma konusunda daha fazla yardım için dışa aktarma ve tahmin modu dokümantasyon sayfalarına bakın.



📅 1 yıl önce oluşturuldu ✏️ 5 gün önce güncellendi

Yorumlar