Ultralytics YOLO27:

إضافة Ultralytics لـ VS Code#



شاهد: كيفية استخدام إضافة Ultralytics في Visual Studio Code | مقتطفات شيفرة جاهزة للاستخدام | Ultralytics YOLO 🎉

الميزات والفوائد#

✅ هل أنت عالم بيانات أو مهندس تعلّم آلي تطوّر تطبيقات الرؤية الحاسوبية باستخدام Ultralytics؟

✅ هل تكره كتابة الكتل البرمجية نفسها مرارًا وتكرارًا؟

✅ هل تنسى دائمًا الوسائط أو القيم الافتراضية لأساليب train أو val أو predict أو export أو track؟

✅ هل ترغب في البدء باستخدام Ultralytics وتتمنى لو كانت لديك طريقة أسهل للرجوع إلى أمثلة التعليمات البرمجية أو تشغيلها؟

✅ هل تريد تسريع دورة التطوير عند العمل باستخدام Ultralytics؟

إذا كنت تستخدم Visual Studio Code وأجبت بـ «نعم» عن أي مما سبق، فإضافة Ultralytics-snippets لـ VS Code هنا لمساعدتك! تابع القراءة لمعرفة المزيد عن الإضافة وكيفية تثبيتها واستخدامها.


Snippet Prediction Preview
شغّل مثالًا برمجيًا باستخدام Ultralytics YOLO في أقل من 20 ثانية! 🚀

مستوحاة من مجتمع Ultralytics#

جاءت فكرة إنشاء هذه الإضافة من مجتمع Ultralytics. وأسهمت أسئلة المجتمع حول موضوعات وأمثلة مشابهة في تطوير هذا المشروع. بالإضافة إلى ذلك، يستخدم كثير من أعضاء فريق Ultralytics برنامج VS Code لتسريع عملهم ⚡.

لماذا VS Code؟#

يحظى Visual Studio Code بشعبية كبيرة للغاية بين المطورين حول العالم، وقد تصدّر استطلاع مطوري Stack Overflow للأكثر شعبية في 2021 و2022 و2023 و2024. وبفضل مستوى التخصيص العالي في VS Code وميزاته المدمجة وتوافقه الواسع وقابليته للتوسّع، ليس من المستغرب أن يستخدمه هذا العدد الكبير من المطورين. ونظرًا إلى شعبيته في أوساط المطورين عمومًا وداخل مجتمعات Ultralytics على Discord وDiscourse وReddit وGitHub، كان من المنطقي إنشاء إضافة لـ VS Code للمساعدة في تبسيط سير عملك وتعزيز إنتاجيتك.

هل ترغب في إخبارنا بالأدوات التي تستخدمها لتطوير التعليمات البرمجية؟ تفضل بزيارة استطلاع المجتمع على Discourse وأخبرنا! وبما أنك هناك، يمكنك إلقاء نظرة على بعض من الميمات المفضلة لدينا حول الرؤية الحاسوبية والتعلّم الآلي والذكاء الاصطناعي والتطوير، أو حتى نشر ميماتك المفضلة!

تثبيت الإضافة#

ملاحظة

ينبغي أن تكون أي بيئة برمجية تسمح بتثبيت إضافات VS Code متوافقة مع إضافة Ultralytics-snippets. وبعد نشر الإضافة، تبيّن إمكانية جعل neovim متوافقًا مع إضافات VS Code. لمعرفة المزيد، راجع قسم تثبيت neovim في ملف Readme ضمن مستودع Ultralytics-Snippets.

التثبيت في VS Code#

  1. انتقل إلى قائمة الإضافات في VS Code أو استخدم الاختصار Ctrl+Shift ⇑+x، ثم ابحث عن Ultralytics-snippets.

  2. انقر على الزر Install.


VS Code extension menu

التثبيت من سوق إضافات VS Code#

  1. تفضل بزيارة سوق إضافات VS Code وابحث عن Ultralytics-snippets، أو انتقل مباشرةً إلى صفحة الإضافة في سوق VS Code.

  2. انقر على الزر Install واسمح لمتصفحك بفتح جلسة VS Code.

  3. اتبع أي مطالبات لتثبيت الإضافة.


VS Code marketplace extension install
صفحة سوق إضافات Visual Studio Code الخاصة بـUltralytics-Snippets

استخدام إضافة Ultralytics-Snippets#

  • 🧠 إكمال التعليمات البرمجية الذكي: اكتب التعليمات البرمجية بسرعة ودقة أكبر بفضل اقتراحات الإكمال المتقدمة المصممة خصيصًا لواجهة Ultralytics البرمجية.

  • ⌛ زيادة سرعة التطوير: وفّر الوقت من خلال التخلص من مهام البرمجة المتكررة والاستفادة من مقاطع التعليمات البرمجية الجاهزة.

  • 🔬 تحسين جودة التعليمات البرمجية: اكتب تعليمات برمجية أوضح وأكثر اتساقًا وخالية من الأخطاء بفضل الإكمال الذكي.

  • 💎 تبسيط سير العمل: حافظ على تركيزك على المنطق الأساسي لمشروعك من خلال أتمتة المهام الشائعة.

نظرة عامة#

لن تعمل الإضافة إلا عند ضبط وضع اللغة على Python 🐍. ويهدف ذلك إلى منع إدراج المقاطع عند العمل على أي نوع آخر من الملفات. تبدأ بادئة جميع المقاطع بـ ultra، وبمجرد كتابة ultra في المحرر بعد تثبيت الإضافة، ستظهر قائمة بالمقاطع المتاحة للاستخدام. يمكنك أيضًا فتح لوحة الأوامر في VS Code باستخدام Ctrl+Shift ⇑+p وتشغيل الأمر Snippets: Insert Snippet.

حقول مقاطع التعليمات البرمجية#

تتضمن مقاطع كثيرة «حقولًا» تحتوي على قيم أو أسماء افتراضية مؤقتة. على سبيل المثال، يمكن حفظ ناتج الأسلوب predict في متغير Python باسم r أو results أو detections أو preds أو أي اسم آخر يختاره المطور، ولذلك تتضمن المقاطع «حقولًا». عند استخدام Tab ⇥ على لوحة المفاتيح بعد إدراج المقطع، ينتقل المؤشر سريعًا بين الحقول. وبعد تحديد حقل، يؤدي إدخال اسم متغير جديد إلى تغييره في ذلك الموضع وفي كل موضع آخر له في تعليمات المقطع البرمجية!


Multi-update field and options
بعد إدراج المقتطف، يؤدي تغيير اسم model إلى world_model إلى تحديث جميع النسخ. يؤدي الضغط على Tab ⇥ إلى الانتقال إلى الحقل التالي، حيث تفتح قائمة منسدلة تتيح اختيار مقياس النموذج، ويؤدي الانتقال إلى الحقل التالي إلى إظهار قائمة منسدلة أخرى لاختيار أحد نوعي النموذج: world أو worldv2.

إكمال مقاطع التعليمات البرمجية#

اختصارات أقصر _حتى_

ليس من الضروري كتابة البادئة الكاملة للمقطع، أو حتى البدء بالكتابة من بدايته. انظر المثال في الصورة أدناه.

صُممت أسماء المقاطع لتكون وصفية قدر الإمكان، لكن هذا يعني أن كتابتها قد تتطلب وقتًا طويلًا، وهو ما يناقض هدف إنجاز العمل بسرعة أكبر. لحسن الحظ، يتيح VS Code للمستخدمين كتابة ultra.example-yolo-predict أو example-yolo-predict أو yolo-predict أو حتى ex-yolo-p والوصول مع ذلك إلى خيار المقطع المطلوب! وإذا كان المقطع المقصود هو فعلًا ultra.example-yolo-predict-kwords، فما عليك سوى استخدام سهمي لوحة المفاتيح ↑ أو ↓ لتحديد المقطع المطلوب، ثم الضغط على Enter ↵ أو Tab ⇥ لإدراج كتلة التعليمات البرمجية الصحيحة.


VS Code incomplete code snippet preview
ستظل كتابة ex-yolo-p تؤدي إلى الوصول إلى المقتطف الصحيح.

فئات المقاطع#

هذه هي فئات المقاطع المتاحة حاليًا في إضافة Ultralytics-snippets. ستُضاف فئات أخرى مستقبلًا، لذا احرص على التحقق من وجود تحديثات وتفعيل التحديث التلقائي للإضافة. يمكنك أيضًا طلب إضافة مقاطع أخرى إذا رأيت أن هناك مقاطع ناقصة.

الفئةالبادئة الابتدائيةالوصف
أمثلةultra.examplesأمثلة تعليمات برمجية للمساعدة في التعلّم أو البدء باستخدام Ultralytics. وهي نسخ من التعليمات البرمجية الواردة في صفحات الوثائق أو أمثلة مشابهة لها.
وسائط الكلمات المفتاحيةultra.kwargsسرّع التطوير بإضافة مقاطع لأساليب train وval وpredict وtrack، مع جميع وسائط الكلمات المفتاحية وقيمها الافتراضية.
عبارات الاستيرادultra.importsمقاطع لاستيراد عناصر Ultralytics الشائعة بسرعة.
النماذجultra.yoloأدرج كتلًا برمجية لتهيئة نماذج متنوعة (yolo وsam وrtdetr، وغير ذلك)، بما في ذلك خيارات إعداد القائمة المنسدلة.
النتائجultra.resultكتل برمجية للعمليات الشائعة عند العمل مع نتائج الاستدلال.
أدوات مساعدةultra.utilتتيح وصولًا سريعًا إلى الأدوات المساعدة الشائعة المضمنة في حزمة Ultralytics. تعرّف على المزيد عنها في صفحة الأدوات المساعدة البسيطة.

التعلّم من خلال الأمثلة#

تُعد مقاطع ultra.examples مفيدة جدًا لكل من يرغب في تعلّم أساسيات البدء بالعمل مع Ultralytics YOLO. صُممت أمثلة المقاطع لتعمل فور إدراجها (وتتضمن بعضها خيارات منسدلة أيضًا). يظهر مثال على ذلك في الرسوم المتحركة في أعلى هذه الصفحة؛ فبعد إدراج المقطع، تُحدَّد جميع التعليمات البرمجية وتُشغَّل تفاعليًا باستخدام Shift ⇑+Enter ↵.

مثال

كما توضح الرسوم المتحركة في أعلى هذه الصفحة، يمكنك استخدام المقطع ultra.example-yolo-predict لإدراج مثال التعليمات البرمجية التالي. وبعد إدراجه، يكون خيار الإعداد الوحيد هو مقياس النموذج، ويمكن أن يكون أيًا من الآتي: n أو s أو m أو l أو x.

from ultralytics import ASSETS, YOLO

model = YOLO("yolo26n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")

for result in results:
    print(result.boxes.data)
    # ⁨result.show()  # أزل التعليق لعرض صورة كل نتيجة⁩

تسريع التطوير#

تهدف المقاطع الأخرى غير ultra.examples إلى تسهيل التطوير وتسريعه عند العمل باستخدام Ultralytics. ومن كتل التعليمات البرمجية الشائعة في العديد من المشاريع تكرار قائمة Results التي تُرجعها طريقة predict الخاصة بالنموذج. ويمكن للمقطع ultra.result-loop أن يساعد في ذلك.

مثال

سيؤدي استخدام ultra.result-loop إلى إدراج التعليمات البرمجية الافتراضية التالية (بما في ذلك التعليقات).

# reference https://docs.ultralytics.com/modes/predict#working-with-results

for result in results:
    result.boxes.data  # torch.Tensor array

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


VS Code YOLO results visualization options
بعد الانتقال باستخدام مفتاح Tab إلى الحقل boxes، تظهر قائمة منسدلة تتيح اختيار سمة أخرى حسب الحاجة.

وسائط الكلمات المفتاحية#

هناك أكثر من 💯 وسيطة كلمات مفتاحية لمختلف مهام Ultralytics وأوضاعها! يصعب تذكر هذا العدد، وقد يسهل نسيان ما إذا كانت الوسيطة save_frame أم save_frames (لكنها بالتأكيد save_frames، بالمناسبة). وهنا يمكن لمقاطع ultra.kwargs أن تساعدك!

مثال

لإدراج أسلوب predict مع جميع وسائط الاستدلال، استخدم ultra.kwargs-predict، إذ سيُدرج التعليمات البرمجية التالية (بما في ذلك التعليقات).

model.predict(
    source=src,  # ⁨(str, optional) دليل المصدر للصور أو مقاطع الفيديو⁩
    imgsz=640,  # ⁨(int | list) حجم صور الإدخال كعدد صحيح أو كقائمة [h,w] للتنبؤ⁩
    conf=0.25,  # ⁨(float) الحد الأدنى لعتبة الثقة⁩
    iou=0.7,  # ⁨(float) عتبة التقاطع على الاتحاد (IoU) لعملية NMS⁩
    vid_stride=1,  # ⁨(int) خطوة معدل إطارات الفيديو⁩
    stream_buffer=False,  # ⁨(bool) تخزين الإطارات الواردة في قائمة انتظار مؤقتة (True)، أو الاحتفاظ بأحدث إطار فقط (False)⁩
    visualize=False,  # ⁨(bool) حفظ الخرائط الحرارية لتنشيط الفئات⁩
    augment=False,  # ⁨(bool) تطبيق زيادة بيانات الصور على مصادر التنبؤ⁩
    agnostic_nms=False,  # ⁨(bool) إجراء NMS دون اعتبار للفئة⁩
    classes=None,  # ⁨(int | list[int], optional) تصفية النتائج حسب الفئة، مثل classes=0 أو classes=[0,2,3]⁩
    retina_masks=False,  # ⁨(bool) استخدام أقنعة تجزئة عالية الدقة⁩
    embed=None,  # ⁨(list[int], optional) إرجاع متجهات السمات/التضمينات من طبقات محددة⁩
    show=False,  # ⁨(bool) عرض الصور ومقاطع الفيديو المتنبأ بها إذا سمحت البيئة بذلك⁩
    save=True,  # ⁨(bool) حفظ نتائج التنبؤ⁩
    save_frames=False,  # ⁨(bool) حفظ إطارات الفيديو المتنبأ بها كلٌّ على حدة⁩
    save_txt=False,  # ⁨(bool) حفظ النتائج في ملف .txt⁩
    save_conf=False,  # ⁨(bool) حفظ النتائج مع درجات الثقة⁩
    save_crop=False,  # ⁨(bool) حفظ الصور المقصوصة مع النتائج⁩
    stream=False,  # ⁨(bool) معالجة مقاطع الفيديو الطويلة أو أعداد كبيرة من الصور مع تقليل استخدام الذاكرة، وذلك بإرجاع مولّد⁩
    verbose=True,  # ⁨(bool) تمكين/تعطيل سجلات الاستدلال التفصيلية في الطرفية⁩
)

يتضمن هذا المقطع حقولًا لجميع وسائط الكلمات المفتاحية، وكذلك للمتغيرين model وsrc في حال استخدمت متغيرًا مختلفًا في التعليمات البرمجية. ويتضمن كل سطر يحتوي على وسيطة كلمة مفتاحية وصفًا موجزًا للرجوع إليه.

جميع مقاطع التعليمات البرمجية#

أفضل طريقة لمعرفة المقاطع المتاحة هي تنزيل الإضافة وتثبيتها وتجربتها! وإذا كنت مهتمًا وتريد الاطلاع على القائمة مسبقًا، فتفضل بزيارة المستودع أو صفحة الإضافة في سوق VS Code لعرض جداول جميع المقاطع المتاحة.

الخلاصة#

صُممت إضافة Ultralytics-Snippets لـ VS Code لتمكين علماء البيانات ومهندسي التعلّم الآلي من تطوير تطبيقات الرؤية الحاسوبية باستخدام Ultralytics YOLO بكفاءة أكبر. ومن خلال توفير مقاطع تعليمات برمجية جاهزة وأمثلة مفيدة، نساعدك على التركيز على الأهم: ابتكار الحلول. يُرجى مشاركة ملاحظاتك بزيارة صفحة الإضافة في سوق VS Code وترك تقييم. ⭐

الأسئلة الشائعة#

  • يمكن طلب مقاطع جديدة من خلال قسم Issues في مستودع Ultralytics-Snippets.

  • إنه مجاني تمامًا!

  • يستخدم VS Code مجموعة المفاتيح Ctrl+Space لإظهار مزيد من المعلومات أو إخفائها في نافذة المعاينة. إذا لم تظهر لك معاينة المقتطف عند كتابة بادئة مقتطف شفرة، فمن المفترض أن تؤدي مجموعة المفاتيح هذه إلى استعادة المعاينة.

  • إذا كنت تستخدم VS Code وبدأت تظهر لك رسالة تطالبك بتثبيت امتداد Ultralytics-snippets، ولا تريد رؤية الرسالة بعد الآن، فهناك طريقتان لتعطيلها.

    1. ثبّت Ultralytics-snippets، ولن تظهر الرسالة بعد ذلك 😆!

    2. يمكنك استخدام yolo settings vscode_msg=False لمنع ظهور الرسالة من دون الحاجة إلى تثبيت الامتداد. يمكنك معرفة المزيد في صفحة إعدادات Ultralytics إذا لم تكن على دراية بها.

  • زُر مستودع Ultralytics-snippets وافتح Issue أو Pull Request!

  • كما هو الحال مع أي امتداد آخر في VS Code، يمكنك إلغاء تثبيته بالانتقال إلى قائمة Extensions في VS Code. ابحث عن امتداد Ultralytics-snippets في القائمة، وانقر على رمز الترس (⚙)، ثم انقر على "Uninstall" لإزالة الامتداد.


    VS Code extension menu

التعليقات