إضافة Ultralytics لـ VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
الميزات والفوائد#
✅ هل أنت عالم بيانات أو مهندس تعلم آلي تبني تطبيقات رؤية حاسوبية باستخدام Ultralytics؟
✅ هل تكره كتابة نفس كتل التعليمات البرمجية بشكل متكرر؟
✅ هل تنسى دائمًا الوسائط أو القيم الافتراضية لطرق export، أو predict، أو train، أو track، أو val؟
✅ هل تتطلع للبدء مع Ultralytics وتتمنى لو كانت لديك طريقة أسهل للرجوع إلى أمثلة التعليمات البرمجية أو تشغيلها؟
✅ هل ترغب في تسريع دورة التطوير الخاصة بك عند العمل مع Ultralytics؟
إذا كنت تستخدم Visual Studio Code وأجبت بـ "نعم" على أي مما سبق، فإن إضافة Ultralytics-snippets لـ VS Code هنا للمساعدة! تابع القراءة لمعرفة المزيد حول الإضافة وكيفية تثبيتها واستخدامها.
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 الخاص بنا وأخبرنا! وبينما أنت هناك، ربما يمكنك الاطلاع على بعض الـ memes المفضلة لدينا في مجال الرؤية الحاسوبية، والتعلم الآلي، والذكاء الاصطناعي، والمطورين، أو حتى نشر ما تفضله منها!
تثبيت الإضافة#
أي بيئة برمجية تسمح بتثبيت امتدادات VS Code يجب أن تكون متوافقة مع امتداد Ultralytics-snippets. بعد نشر الامتداد، اكتُشف أنه يمكن جعل neovim متوافقًا مع امتدادات VS Code. لمعرفة المزيد، راجع neovim قسم التثبيت في ملف Readme ضمن مستودع Ultralytics-Snippets.
التثبيت في VS Code#
-
انتقل إلى قائمة الامتدادات في VS Code أو استخدم الاختصار Ctrl+Shift ⇑+x، وابحث عن Ultralytics-snippets.
-
انقر فوق زر Install.
التثبيت من سوق إضافات VS Code#
-
قم بزيارة سوق امتدادات VS Code وابحث عن Ultralytics-snippets أو انتقل مباشرة إلى صفحة الامتداد في سوق VS Code.
-
انقر فوق زر Install واسمح لمتصفحك بتشغيل جلسة VS Code.
-
اتبع أي مطالبات لتثبيت الإضافة.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
استخدام إضافة Ultralytics-Snippets#
-
🧠 إكمال ذكي للتعليمات البرمجية: اكتب التعليمات البرمجية بشكل أسرع وأكثر دقة مع اقتراحات إكمال ذكية مصممة خصيصًا لواجهة برمجة تطبيقات Ultralytics.
-
⌛ زيادة سرعة التطوير: وفر الوقت من خلال التخلص من مهام الترميز المتكررة والاستفادة من مقتطفات كتل التعليمات البرمجية الجاهزة.
-
🔬 جودة محسنة للتعليمات البرمجية: اكتب تعليمات برمجية أنظف وأكثر اتساقًا وخالية من الأخطاء مع الإكمال الذكي للتعليمات البرمجية.
-
💎 سير عمل مبسط: ابقَ مركزًا على المنطق الأساسي لمشروعك من خلال أتمتة المهام الشائعة.
نظرة عامة#
سيعمل الامتداد فقط عندما يتم تكوين وضع اللغة لـ Python 🐍. ويهدف هذا لتجنب إدراج القصاصات البرمجية (snippets) عند العمل على أي نوع ملف آخر. جميع القصاصات البرمجية لها بادئة تبدأ بـ ultra، وبمجرد كتابة ultra في محرر النصوص الخاص بك بعد تثبيت الامتداد، سيتم عرض قائمة بالقصاصات البرمجية الممكنة للاستخدام. يمكنك أيضًا فتح لوحة الأوامر في VS Code باستخدام Ctrl+Shift ⇑+p وتشغيل الأمر Snippets: Insert Snippet.
حقول مقتطفات التعليمات البرمجية#
تحتوي العديد من القصاصات البرمجية على "حقول" ذات قيم أو أسماء نائبة افتراضية. على سبيل المثال، يمكن حفظ مخرجات طريقة predict في متغير Python يُسمى r أو results أو detections أو preds أو أي اسم آخر يختاره المطور، ولهذا السبب تتضمن القصاصات البرمجية "حقولاً". باستخدام مفتاح Tab ⇥ على لوحة المفاتيح بعد إدراج القصاصة البرمجية، سيتحرك مؤشر الكتابة بين الحقول بسرعة. بمجرد تحديد الحقل، فإن كتابة اسم متغير جديد ستؤدي إلى تغيير ذلك المثيل، بالإضافة إلى كل مثيل آخر في كود القصاصة البرمجية لذلك المتغير!
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 ⇥ لإدراج كتلة الكود الصحيحة.
Typing ex-yolo-p will still arrive at the correct snippet.
فئات المقتطفات#
هذه هي فئات القصاصات البرمجية الحالية المتاحة لامتداد Ultralytics-snippets. سيتم إضافة المزيد في المستقبل، لذا احرص على التحقق من التحديثات وتمكين التحديثات التلقائية للاتمتة. يمكنك أيضًا طلب إضافة قصاصات برمجية إضافية إذا شعرت أن هناك أي شيء مفقود.
| الفئة | البادئة الأولية | الوصف |
|---|---|---|
| أمثلة | ultra.examples | مثال على التعليمات البرمجية للمساعدة في التعلم أو للبدء مع Ultralytics. الأمثلة هي نسخ من أو مشابهة للتعليمات البرمجية الموجودة في صفحات التوثيق. |
| Kwargs | ultra.kwargs | قم بتسريع التطوير عن طريق إضافة قصاصات برمجية لطرق train، وtrack، وpredict، وval مع كافة وسائط الكلمات المفتاحية (keyword arguments) والقيَم الافتراضية. |
| الواردات (Imports) | ultra.imports | مقتطفات لاستيراد كائنات Ultralytics الشائعة بسرعة. |
| النماذج (Models) | ultra.yolo | أدرج كتل كود لتهيئة مختلف النماذج (yolo، وsam، وrtdetr، وما إلى ذلك)، بما في ذلك خيارات التكوين المنسدلة. |
| النتائج | ultra.result | كتل كود للعمليات الشائعة عند التعامل مع نتائج الاستدلال. |
| الأدوات المساعدة | ultra.util | يوفر وصولاً سريعاً إلى الأدوات المساعدة الشائعة المدمجة في حزمة Ultralytics، ويمكنك معرفة المزيد حول هذه الأدوات على صفحة الأدوات المساعدة البسيطة. |
التعلم بالأمثلة#
تعتبر القصاصات البرمجية ultra.examples مفيدة للغاية لأي شخص يتطلع إلى تعلم كيفية البدء بأساسيات العمل مع Ultralytics YOLO. تهدف أمثلة القصاصات البرمجية إلى التشغيل بمجرد إدراجها (البعض منها يحتوي على خيارات منسدلة أيضاً). يظهر مثال على ذلك في الرسوم المتحركة الموجودة في أعلى هذه الصفحة، حيث يتم تحديد كافة الكود بعد إدراج القصاصة البرمجية وتشغيله تفاعلياً باستخدام Shift ⇑+Enter ↵.
تماماً كما تُظهر الرسوم المتحركة في أعلى هذه الصفحة، يمكنك استخدام القصاصة البرمجية ultra.example-yolo-predict لإدراج مثال الكود التالي. بمجرد الإدراج، يكون الخيار القابل للتكوين الوحيد هو نطاق النموذج (model scale) والذي يمكن أن يكون أيًا من: 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 المُعادة من استخدام طريقة 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 أخرى قد ترغب في الوصول إليها، وهنا تكمن قوة حقول القصاصات البرمجية.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
وسائط الكلمات الأساسية (Keywords Arguments)#
هناك أكثر من 💯 وسيط كلمة مفتاحية (keyword argument) لجميع مهام Ultralytics وأوضاعه المختلفة! هذا عدد كبير يجب تذكره، وقد يكون من السهل نسيان ما إذا كان الوسيط هو save_frame أو save_frames (إنه بالتأكيد save_frames بالمناسبة). وهنا يمكن أن تساعد قصاصات ultra.kwargs البرمجية!
لإدراج طريقة predict، بما في ذلك جميع وسائط الاستدلال، استخدم 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، ولا ترغب في رؤية الرسالة بعد الآن، فهناك طريقتان لتعطيل هذه الرسالة.
-
ثبّت Ultralytics-snippets ولن يتم عرض الرسالة بعد الآن 😆!
-
يمكنك استخدام
yolo settings vscode_msg=Falseلتعطيل ظهور الرسالة دون الحاجة إلى تثبيت الامتداد. يمكنك معرفة المزيد حول إعدادات Ultralytics على صفحة البدء السريع إذا لم تكن على دراية بها.
-
قم بزيارة مستودع Ultralytics-snippets وافتح مشكلة (Issue) أو طلب سحب (Pull Request)!
مثل أي إضافة أخرى لـ VS Code، يمكنك إلغاء تثبيتها بالانتقال إلى قائمة الإضافات في VS Code. ابحث عن إضافة Ultralytics-snippets في القائمة وانقر فوق أيقونة الترس (⚙) ثم انقر فوق "إلغاء التثبيت" لإزالة الإضافة.