Çıkarım Sonuçlarını Terminalde Görüntüleme
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 işlenmesini sağlar. 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ç
-
İlk olarak, ayarları etkinleştirmelisiniz
terminal.integrated.enableImages
veterminal.integrated.gpuAcceleration
VSCode'da."terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on" "terminal.integrated.enableImages": false
-
Yükleme
python-sixel
sanal ortamınızdaki kütüphane. Bu bir çatal ..PySixel
artık bakımı yapılmayan kütüphane. -
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("yolo11n.pt") # Run inference on an image results = model.predict(source="ultralytics/assets/bus.jpg") # Plot inference results plot = results[0].plot() # (1)!
- Kullanılabilecek olası bağımsız değişkenleri görmek için plot yöntemi parametrelerine bakın.
-
Şimdi de OpenCV dönüştürmek için
numpy.ndarray
içinbytes
veri. Sonra kullanınio.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)
- Diğer görüntü uzantılarını da kullanmak mümkündür.
- Yalnızca dizindeki nesne
1
iade edilene ihtiyaç vardır.
-
Oluşturmak
SixelWriter
örneğini kullanın ve ardından.draw()
yöntemini kullanarak terminaldeki görüntüyü çizin.
Örnek Çıkarım Sonuçları
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("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)
- Diğer görüntü uzantılarını da kullanmak mümkündür.
- Yalnızca dizindeki nesne
1
iade edilene ihtiyaç vardır. - 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:
-
Gerekli VSCode ayarlarını etkinleştirin:
-
Sixel kütüphanesini yükleyin:
-
YOLO modelinizi yükleyin ve çıkarımı çalıştırın:
-
Çıkarım sonucu görüntüsünü baytlara dönüştürün ve terminalde görüntüleyin:
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:
-
VSCode'da gerekli ayarların etkinleştirildiğinden emin olun:
-
Sixel kütüphane kurulumunu doğrulayın:
-
Görüntü verisi dönüştürme ve çizim kodunuzda hata olup olmadığını kontrol edin. Örneğin:
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:
-
Kütüphanenin sanal ortamınıza doğru şekilde yüklendiğinden emin olun:
-
Gerekli Python ve sistem bağımlılıklarına sahip olduğunuzu doğrulayın.
-
Ek belgeler ve topluluk desteği için python-sixel GitHub deposuna bakın.
-
Kodunuzu olası hatalar için 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.