عرض نتائج الاستدلال في محطة طرفية
الصورة من موقع libsixel الإلكتروني.
التحفيز
عند الاتصال بجهاز بعيد، عادةً ما يكون عرض نتائج الصور غير ممكن أو يتطلب نقل البيانات إلى جهاز محلي مزود بواجهة مستخدم رسومية. تسمح محطة VSCode المدمجة بعرض الصور مباشرةً. هذا هو عرض توضيحي قصير حول كيفية استخدام هذا بالتزامن مع ultralytics
مع نتائج التنبؤ.
تحذير
متوافق فقط مع نظامي Linux و MacOS. تحقق من مستودع VSCode، تحقق حالة الإصدارأو الوثائق للحصول على تحديثات حول دعم ويندوز لعرض الصور في المحطة الطرفية مع sixel
.
بروتوكولات VSCode المتوافقة مع VSCode لعرض الصور باستخدام المحطة الطرفية المدمجة هي sixel
و iTerm
. سيوضح هذا الدليل استخدام sixel
البروتوكول.
العملية
-
أولاً، يجب تمكين الإعدادات
terminal.integrated.enableImages
وterminal.integrated.gpuAcceleration
في رمز VSCode."terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on" "terminal.integrated.enableImages": false
-
قم بتثبيت
python-sixel
مكتبة في بيئتك الافتراضية. هذا هو شوكة منPySixel
المكتبة، والتي لم تعد تحتفظ بها. -
تحميل نموذج وتنفيذ الاستدلال، ثم رسم النتائج وتخزينها في متغير. راجع المزيد حول وسيطات الاستدلال والعمل مع النتائج في صفحة وضع التنبؤ.
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)!
- انظر معلمات أسلوب الرسم البياني لمعرفة الوسيطات الممكن استخدامها.
-
والآن، استخدم OpenCV لتحويل
numpy.ndarray
إلىbytes
البيانات. ثم استخدمio.BytesIO
لإنشاء كائن "شبيه بالملف".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
التي يتم إرجاعها مطلوبة.
-
إنشاء
SixelWriter
مثال، ثم استخدم المثيل.draw()
لرسم الصورة في الطرفية.
أمثلة على نتائج الاستدلال
الخطر
لم يتم اختبار استخدام هذا المثال مع مقاطع الفيديو أو إطارات GIF المتحركة. حاول على مسؤوليتك الخاصة.
مثال على الكود الكامل
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
التي يتم إرجاعها مطلوبة. - انظر معلمات أسلوب الرسم البياني لمعرفة الوسيطات الممكن استخدامها.
نصيحة
قد تحتاج إلى استخدام clear
"لمسح" عرض الصورة في الطرفية.
الأسئلة الشائعة
كيف يمكنني عرض نتائج الاستدلال YOLO في محطة VSCode الطرفية على نظامي macOS أو Linux؟
لعرض نتائج الاستدلال YOLO في محطة VSCode الطرفية على نظامي macOS أو Linux، اتبع الخطوات التالية:
-
قم بتمكين إعدادات VSCode الضرورية:
-
تثبيت مكتبة سكسيل:
-
تحميل نموذج YOLO وتشغيل الاستدلال:
-
قم بتحويل صورة نتيجة الاستدلال إلى بايت وعرضها في الطرفية:
لمزيد من التفاصيل، قم بزيارة صفحة وضع التنبؤ.
لماذا يعمل بروتوكول Sixel على نظامي Linux و macOS فقط؟
بروتوكول sixel مدعوم حاليًا فقط على نظامي Linux و macOS لأن هذه المنصات لديها إمكانيات طرفية أصلية متوافقة مع رسومات sixel. لا يزال دعم ويندوز للرسومات الطرفية باستخدام sixel قيد التطوير. للحصول على تحديثات حول التوافق مع ويندوز، راجع حالة إصدار VSCode والوثائق.
ماذا لو واجهت مشاكل في عرض الصور في محطة VSCode الطرفية؟
إذا واجهتك مشاكل في عرض الصور في محطة VSCode الطرفية باستخدام sixel:
-
تأكد من تمكين الإعدادات اللازمة في VSCode:
-
تحقق من تثبيت مكتبة Sixel:
-
تحقق من تحويل بيانات الصورة ورمز الرسم البياني بحثًا عن الأخطاء. على سبيل المثال:
إذا استمرت المشاكل، راجع مستودع VSCode، وراجع قسم معلمات أسلوب الرسم للحصول على إرشادات إضافية.
هل يمكن YOLO عرض نتائج استدلال الفيديو في المحطة الطرفية باستخدام Sixel؟
إن عرض نتائج استدلال الفيديو أو إطارات GIF المتحركة باستخدام Sixel في المنصة لم يتم اختباره حاليًا وقد لا يكون مدعومًا. نوصي بالبدء بصور ثابتة والتحقق من التوافق. حاول عرض نتائج الفيديو على مسؤوليتك الخاصة، مع مراعاة قيود الأداء. للمزيد من المعلومات حول رسم نتائج الاستدلال البياني، قم بزيارة صفحة وضع التنبؤ.
كيف يمكنني استكشاف المشكلات وإصلاحها في python-sixel
مكتبة؟
لاستكشاف مشكلات استكشاف الأخطاء وإصلاحها في python-sixel
المكتبة:
-
تأكد من تثبيت المكتبة بشكل صحيح في بيئتك الافتراضية:
-
تحقق من أن لديك Python وتبعيات النظام الضرورية.
-
ارجع إلى مستودع GitHubpython -sixel GitHub للحصول على وثائق إضافية ودعم المجتمع.
-
تحقق مرة أخرى من الشيفرة البرمجية الخاصة بك بحثًا عن الأخطاء المحتملة، وتحديدًا استخدام
SixelWriter
وخطوات تحويل بيانات الصورة.
لمزيد من المساعدة في العمل مع النماذج YOLO وتكامل Sixel، راجع صفحات وثائق وضع التصدير والتنبؤ.