إضافة Ultralytics لـ VS Code



Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉

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

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

✅ هل تشعر بالضجر من كتابة نفس كتل الكود بشكل متكرر؟

✅ هل تنسى دائمًا الوسائط أو القيم الافتراضية لطرق التصدير، أو التنبؤ، أو التدريب، أو التتبع، أو التحقق؟

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

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

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


Snippet Prediction Preview
Run example code using Ultralytics YOLO in under 20 seconds! 🚀

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

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

لماذا VS Code؟

Visual Studio Code مشهور للغاية بين المطورين حول العالم، وقد صُنف كالأكثر شعبية في استطلاع مطوري Stack Overflow في أعوام 2021، و2022، و2023، و2024. نظرًا للمستوى العالي من التخصيص في VS Code والميزات المدمجة والتوافق الواسع والقابلية للتوسع، فليس من المستغرب أن يستخدمه الكثير من المطورين. وبالنظر إلى شعبيته في مجتمع المطورين الأوسع وداخل مجتمعات Discord وDiscourse وReddit وGitHub الخاصة بـ Ultralytics، كان من المنطقي بناء إضافة 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 Extension Marketplace page for Ultralytics-Snippets

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

  • 🧠 إكمال الكود الذكي: اكتب الكود بشكل أسرع وأكثر دقة مع اقتراحات إكمال الكود المتقدمة المصممة خصيصًا لـ API الخاص بـ Ultralytics.

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

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

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

نظرة عامة

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

حقول مقتطفات الكود

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


Multi-update field and options
After inserting snippet, renaming model as world_model updates all instances. Pressing Tab ⇥ moves to the next field, which opens a dropdown menu and allows for selection of a model scale, and moving to the next field provides another dropdown to choose either world or worldv2 model variant.

إكمال مقتطفات الكود

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

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

تمت تسمية المقتطفات بأكثر الطرق وصفًا ممكنة، ولكن هذا يعني أنه قد يكون هناك الكثير لكتابته وهذا سيكون غير منتج إذا كان الهدف هو التحرك بسرعة. لحسن الحظ، يتيح 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
Typing ex-yolo-p will still arrive at the correct snippet.

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

هذه هي فئات المقتطفات الحالية المتاحة لإضافة Ultralytics-snippets. سيتم إضافة المزيد في المستقبل، لذا تأكد من التحقق من التحديثات وتمكين التحديثات التلقائية للإضافة. يمكنك أيضًا طلب مقتطفات إضافية لإضافتها إذا كنت تشعر أن هناك أي شيء مفقود.

الفئةالبادئة البادئةالوصف
أمثلةultra.examplesكود مثالي للمساعدة في التعلم أو للبدء مع Ultralytics. الأمثلة هي نسخ من أو مشابهة للكود الموجود في صفحات التوثيق.
الوسائط kwargsultra.kwargsتسريع التطوير عن طريق إضافة مقتطفات لطرق التدريب، والتتبع، والتنبؤ، والتحقق مع جميع وسائط الكلمات المفتاحية والقيم الافتراضية.
الاستيرادات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()  # uncomment to view each result image

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

الهدف من المقتطفات بخلاف ultra.examples هو جعل التطوير أسهل وأسرع عند العمل مع Ultralytics. كتلة كود شائعة تُستخدم في العديد من المشاريع هي تكرار قائمة Results التي تم إرجاعها من استخدام طريقة التنبؤ الخاصة بالنموذج. يمكن أن يساعد مقتطف 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
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.

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

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

مثال

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

model.predict(
    source=src,  # (str, optional) source directory for images or videos
    imgsz=640,  # (int | list) input images size as int or list[w,h] for predict
    conf=0.25,  # (float) minimum confidence threshold
    iou=0.7,  # (float) intersection over union (IoU) threshold for NMS
    vid_stride=1,  # (int) video frame-rate stride
    stream_buffer=False,  # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)
    visualize=False,  # (bool) visualize model features
    augment=False,  # (bool) apply image augmentation to prediction sources
    agnostic_nms=False,  # (bool) class-agnostic NMS
    classes=None,  # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
    retina_masks=False,  # (bool) use high-resolution segmentation masks
    embed=None,  # (list[int], optional) return feature vectors/embeddings from given layers
    show=False,  # (bool) show predicted images and videos if environment allows
    save=True,  # (bool) save prediction results
    save_frames=False,  # (bool) save predicted individual video frames
    save_txt=False,  # (bool) save results as .txt file
    save_conf=False,  # (bool) save results with confidence scores
    save_crop=False,  # (bool) save cropped images with results
    stream=False,  # (bool) for processing long videos or numerous images with reduced memory usage by returning a generator
    verbose=True,  # (bool) enable/disable verbose inference logging in the terminal
)

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

جميع مقتطفات الكود

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

خاتمة

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

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

كيف يمكنني طلب مقتطف جديد؟

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

كم تبلغ تكلفة إضافة Ultralytics؟

إنها مجانية 100%!

لماذا لا أرى معاينة لمقتطف الكود؟

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

كيف يمكنني تعطيل توصية الإضافة في Ultralytics؟

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

  1. قم بتثبيت Ultralytics-snippets ولن يتم عرض الرسالة بعد الآن 😆!

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

لدي فكرة لمقتطف كود جديد لـ Ultralytics، كيف يمكنني إضافته؟

قم بزيارة مستودع Ultralytics-snippets وافتح مشكلة (Issue) أو طلب سحب (Pull Request)!

كيف يمكنني إلغاء تثبيت إضافة Ultralytics-Snippets؟

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


VS Code extension menu

التعليقات