انتقل إلى المحتوى

عرض نتائج الاستدلال في محطة طرفية

مثال Sixel للصورة في المحطة الطرفية

الصورة من موقع libsixel الإلكتروني.

الحافز

عند الاتصال بجهاز بعيد ، عادة ما يكون تصور نتائج الصور غير ممكن أو يتطلب نقل البيانات إلى جهاز محلي باستخدام واجهة المستخدم الرسومية. يسمح الطرف الطرفي المدمج VSCode بعرض الصور مباشرة. هذا عرض توضيحي قصير حول كيفية استخدام هذا جنبا إلى جنب مع ultralytics مع نتائج التنبؤ.

تحذير

متوافق فقط مع نظامي Linux و MacOS. تحقق من مستودع VSCodeفحص حالة المشكلةأو توثيق للحصول على تحديثات حول دعم Windows لعرض الصور في المحطة الطرفية باستخدام sixel.

البروتوكولات المتوافقة مع VSCode لعرض الصور باستخدام المحطة المدمجة هي sixel و iTerm. سيوضح هذا الدليل استخدام sixel بروتوكول.

عملية

  1. أولا ، يجب عليك تمكين الإعدادات terminal.integrated.enableImages و terminal.integrated.gpuAcceleration في VSCode.

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

    VSCode تمكين إعداد الصور الطرفية

  2. قم بتثبيت الزر python-sixel المكتبة في بيئتك الافتراضية. هذا هو شوكة من PySixel المكتبة ، التي لم تعد محفوظة.

    pip install sixel
    
  3. قم بتحميل نموذج وتنفيذ الاستدلال ، ثم ارسم النتائج وتخزينها في متغير. اطلع على المزيد حول وسيطات الاستدلال والعمل مع النتائج في صفحة وضع التنبؤ .

    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. راجع معلمات أسلوب الرسم لرؤية الوسيطات المحتملة لاستخدامها.
  4. Now, use أوبن سي في to convert the 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. من الممكن استخدام امتدادات صور أخرى أيضا.
    2. فقط الكائن في الفهرس 1 هناك حاجة إلى إرجاع.
  5. إنشاء ملف SixelWriter ، ثم استخدم الزر .draw() طريقة لرسم الصورة في المحطة.

    from sixel import SixelWriter
    
    # Create sixel writer object
    w = SixelWriter()
    
    # Draw the sixel image in the terminal
    w.draw(mem_file)
    

مثال على نتائج الاستدلال

عرض الصورة في المحطة الطرفية

خطر

لم يتم اختبار استخدام هذا المثال مع مقاطع الفيديو أو إطارات 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. من الممكن استخدام امتدادات صور أخرى أيضا.
  2. فقط الكائن في الفهرس 1 هناك حاجة إلى إرجاع.
  3. راجع معلمات أسلوب الرسم لرؤية الوسيطات المحتملة لاستخدامها.

بقشيش

قد تحتاج إلى استخدام clear "لمحو" عرض الصورة في الجهاز.

الأسئلة المتداولة

كيف يمكنني عرض نتائج الاستدلال YOLO في محطة VSCode الطرفية على نظامي macOS أو Linux؟

لعرض نتائج الاستدلال YOLO في محطة VSCode الطرفية على نظامي macOS أو Linux، اتبع الخطوات التالية:

  1. قم بتمكين إعدادات VSCode الضرورية:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. تثبيت مكتبة سكسيل:

    pip install sixel
    
  3. تحميل نموذج YOLO وتشغيل الاستدلال:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model.predict(source="path_to_image")
    plot = results[0].plot()
    
  4. قم بتحويل صورة نتيجة الاستدلال إلى بايت وعرضها في الطرفية:

    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)
    

لمزيد من التفاصيل، قم بزيارة صفحة وضع التنبؤ.

لماذا يعمل بروتوكول Sixel على نظامي Linux و macOS فقط؟

بروتوكول sixel مدعوم حاليًا على نظامي Linux و macOS فقط لأن هذه المنصات لديها إمكانيات طرفية أصلية متوافقة مع رسومات sixel. لا يزال دعم ويندوز للرسومات الطرفية باستخدام sixel قيد التطوير. للحصول على تحديثات حول التوافق مع ويندوز، راجع حالة إصدار VSCode والوثائق.

ماذا لو واجهت مشاكل في عرض الصور في محطة VSCode الطرفية؟

إذا واجهتك مشاكل في عرض الصور في محطة VSCode الطرفية باستخدام sixel:

  1. تأكد من تمكين الإعدادات اللازمة في VSCode:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. تحقق من تثبيت مكتبة Sixel:

    pip install sixel
    
  3. تحقق من تحويل بيانات الصورة ورمز الرسم البياني بحثًا عن الأخطاء. على سبيل المثال:

    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)
    

إذا استمرت المشاكل، راجع مستودع VSCode، وراجع قسم معلمات أسلوب الرسم للحصول على إرشادات إضافية.

هل يمكن YOLO عرض نتائج استدلال الفيديو في المحطة الطرفية باستخدام Sixel؟

إن عرض نتائج استدلال الفيديو أو إطارات GIF المتحركة باستخدام Sixel في المنصة لم يتم اختباره حاليًا وقد لا يكون مدعومًا. نوصي بالبدء بصور ثابتة والتحقق من التوافق. حاول عرض نتائج الفيديو على مسؤوليتك الخاصة، مع مراعاة قيود الأداء. للمزيد من المعلومات حول رسم نتائج الاستدلال البياني، قم بزيارة صفحة وضع التنبؤ.

كيف يمكنني استكشاف المشكلات وإصلاحها في python-sixel مكتبة؟

لاستكشاف مشكلات استكشاف الأخطاء وإصلاحها في python-sixel المكتبة:

  1. تأكد من تثبيت المكتبة بشكل صحيح في بيئتك الافتراضية:

    pip install sixel
    
  2. تحقق من أن لديك Python وتبعيات النظام الضرورية.

  3. ارجع إلى مستودع GitHubpython -sixel GitHub للحصول على وثائق إضافية ودعم المجتمع.

  4. تحقق مرة أخرى من الشيفرة البرمجية الخاصة بك بحثًا عن الأخطاء المحتملة، وتحديدًا استخدام SixelWriter وخطوات تحويل بيانات الصورة.

لمزيد من المساعدة في العمل مع النماذج YOLO وتكامل Sixel، راجع صفحات وثائق وضع التصدير والتنبؤ.

📅 تم إنشاؤها منذ 8 أشهر ✏️ تم التحديث منذ 1 شهر

التعليقات