Ultralytics YOLO27:

إضافة 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، وميزاته المدمجة، وتوافقه الواسع، وقابليته للتوسعة، فليس من المستغرب أن يستخدمه هذا العدد الكبير من المطورين. وبالنظر إلى شعبيته في مجتمع المطورين الأوسع وداخل مجتمعات 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 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[h,w] 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) save class activation heatmaps
    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.

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

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

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

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

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

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

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


    VS Code extension menu

التعليقات