İçeriğe geç

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

Terminal'de görüntü için altı örnek

Resim libsixel web sitesinden alınmıştır.

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 oluşturulmasına olanak tanır. Bu, bunun aşağıdakilerle birlikte nasıl kullanılacağına dair kısa bir gösterimdir ultralytics ile tahmi̇n sonuçlari.

Uyarı

Yalnızca Linux ve MacOS ile uyumludur. Kontrol et VSCode deposu, kontrol et Sorun durumuveya dokümantasyon ile terminaldeki görüntüleri görüntülemek için Windows desteği hakkındaki 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, aşağıdakilerin kullanımını gösterecektir sixel Protokol.

Süreç

  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": false
    

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

  2. Yükleme python-sixel sanal ortamınızdaki kütüphane. Bu bir çatal .. 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 bilgi için tahmin modu sayfasına bakın.

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolov8n.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ı bağımsız değişkenleri görmek için plot yöntemi parametrelerine bakın.
  4. Şimdi, OpenCV'yi kullanarak numpy.ndarray için bytes veri. Sonra kullanın io.BytesIO "dosya benzeri" bir nesne yapmak 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 görüntü uzantılarını da kullanmak mümkündür.
    2. Yalnızca dizindeki nesne 1 iade edilene ihtiyaç vardır.
  5. Oluşturmak SixelWriter örneğini kullanın ve ardından .draw() yöntemini kullanarak terminaldeki görüntüyü çizin.

    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

Bu örneğin videolar veya animasyonlu GIF kareleri ile kullanımı test edilmemiştir. Deneme riski size aittir.

Tam Kod Örneği

import io

import cv2
from sixel import SixelWriter

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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ı da kullanmak mümkündür.
  2. Yalnızca dizindeki nesne 1 iade edilene ihtiyaç vardır.
  3. Kullanılabilecek olası bağımsız değişkenleri görmek için plot yöntemi parametrelerine bakın.

İpucu

Kullanmanız gerekebilir clear terminaldeki görüntüyü "silmek" için.

SSS

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

YOLO çıkarım sonuçlarını macOS veya Linux üzerinde bir VSCode terminalinde görüntülemek için aşağıdaki adımları izleyin:

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

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

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

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.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 sadece Linux ve macOS üzerinde çalışıyor?

Sixel protokolü şu anda yalnızca Linux ve macOS'ta desteklenmektedir çünkü bu platformlar sixel grafikleriyle uyumlu yerel terminal özelliklerine sahiptir. Sixel kullanan terminal grafikleri için Windows desteği hala geliştirilme aşamasındadır. Windows uyumluluğu ile ilgili güncellemeler için VSCode Issue durumunu ve belgelerini kontrol edin.

VSCode terminalinde görüntülerin gösterilmesiyle ilgili sorunlarla karşılaşırsam ne olur?

Sixel kullanarak VSCode terminalinde görüntülerin görüntülenmesinde 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üphane kurulumunu doğrulayın:

    pip install sixel
    
  3. Görüntü verisi dönüştürme ve çizim kodunuzda hata olup olmadığını 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, VSCode deposuna başvurun ve ek rehberlik için çizim yöntemi parametreleri bölümünü ziyaret edin.

YOLO video çıkarım sonuçlarını sixel kullanarak terminalde 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 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. Kütüphanenin sanal ortamınıza doğru şekilde yüklendiğinden 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. Kodunuzu olası hatalara karşı iki kez kontrol edin, özellikle SixelWriter ve görüntü verisi dönüştürme adımları.

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



Oluşturuldu 2024-03-09, Güncellendi 2024-07-05
Yazarlar: glenn-jocher (6), IvorZhu331 (1), Burhan-Q (1)

Yorumlar