Link to this sectionVSCode Terminal'inde YOLO Çıkarım Sonuçları Nasıl Görüntülenir#
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.
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ç#
-
Öncelikle VSCode'da
terminal.integrated.enableImagesveterminal.integrated.gpuAccelerationayarlarını etkinleştirmen gerekir."terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on" "terminal.integrated.enableImages": true
-
Install the
python-sixellibrary in your virtual environment. This is a fork of thePySixellibrary, which is no longer maintained.pip install sixel -
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)!- Kullanabileceğin olası argümanları görmek için plot yöntemi parametrelerine göz at.
-
Now, use OpenCV to convert the
np.ndarraytobytesdata. Then useio.BytesIOto 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)- Diğer görüntü uzantılarını kullanmak da mümkündür.
- Döndürülen dizin
1'deki nesneye ihtiyaç duyulur.
-
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ı#
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)- Diğer görüntü uzantılarını kullanmak da mümkündür.
- Döndürülen dizin
1'deki nesneye ihtiyaç duyulur. - Kullanabileceğin olası argümanları görmek için plot yöntemi parametrelerine göz at.
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:
-
Gerekli VSCode ayarlarını etkinleştir:
"terminal.integrated.enableImages": true "terminal.integrated.gpuAcceleration": "auto" -
Sixel kütüphanesini kur:
pip install sixel -
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() -
Çı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:
- Confirm both
terminal.integrated.enableImagesandterminal.integrated.gpuAccelerationare enabled, as shown in the Process section, then restart the integrated terminal so the settings take effect. sixel'in komut dosyanın çalıştığı sanal ortamda kurulu olduğunu doğrula (pip install sixel).- Make sure
plotis a validnp.ndarraybefore encoding it, sincecv2.imencoderaises an error if the image is empty or not a valid array. See the plot method parameters for the valuesresults[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.