إضافة 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 هنا للمساعدة! تابع القراءة لمعرفة المزيد عن الإضافة وكيفية تثبيتها واستخدامها.
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
-
انتقل إلى قائمة الإضافات في 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
-
🧠 إكمال الكود الذكي: اكتب الكود بشكل أسرع وأكثر دقة مع اقتراحات إكمال الكود المتقدمة المصممة خصيصًا لـ API الخاص بـ Ultralytics.
-
⌛ زيادة سرعة التطوير: وفر الوقت عن طريق التخلص من مهام البرمجة المتكررة والاستفادة من مقتطفات كتل الكود الجاهزة.
-
🔬 تحسين جودة الكود: اكتب كودًا أنظف وأكثر اتساقًا وخالٍ من الأخطاء باستخدام إكمال الكود الذكي.
-
💎 سير عمل مبسط: ابقَ مركزًا على المنطق الأساسي لمشروعك من خلال أتمتة المهام الشائعة.
نظرة عامة
ستعمل الإضافة فقط عند ضبط وضع اللغة على Python 🐍. هذا لتجنب إدراج المقتطفات عند العمل على أي نوع ملف آخر. تحتوي جميع المقتطفات على بادئة تبدأ بـ ultra، ومجرد كتابة ultra في محررك بعد تثبيت الإضافة سيعرض قائمة بالمقتطفات الممكن استخدامها. يمكنك أيضًا فتح لوحة الأوامر في VS Code باستخدام Ctrl+Shift ⇑+p وتشغيل الأمر Snippets: Insert Snippet.
حقول مقتطفات الكود
العديد من المقتطفات لها "حقول" ذات قيم أو أسماء نائبة افتراضية. على سبيل المثال، يمكن حفظ مخرجات طريقة التنبؤ في متغير 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 | تسريع التطوير عن طريق إضافة مقتطفات لطرق التدريب، والتتبع، والتنبؤ، والتحقق مع جميع وسائط الكلمات المفتاحية والقيم الافتراضية. |
| الاستيرادات | 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 قد ترغب في الوصول إليها، وهو المكان الذي ستكون فيه حقول المقتطفات قوية.
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، ولا تريد رؤية الرسالة بعد الآن، فهناك طريقتان لتعطيل هذه الرسالة.
-
قم بتثبيت Ultralytics-snippets ولن يتم عرض الرسالة بعد الآن 😆!
-
يمكنك استخدام
yolo settings vscode_msg Falseلتعطيل ظهور الرسالة دون الحاجة إلى تثبيت الإضافة. يمكنك معرفة المزيد حول إعدادات Ultralytics في صفحة التشغيل السريع إذا كنت غير مطلع على ذلك.
لدي فكرة لمقتطف كود جديد لـ Ultralytics، كيف يمكنني إضافته؟
قم بزيارة مستودع Ultralytics-snippets وافتح مشكلة (Issue) أو طلب سحب (Pull Request)!
كيف يمكنني إلغاء تثبيت إضافة Ultralytics-Snippets؟
مثل أي إضافة أخرى لـ VS Code، يمكنك إلغاء تثبيتها عن طريق الانتقال إلى قائمة الإضافات في VS Code. ابحث عن إضافة Ultralytics-snippets في القائمة وانقر على أيقونة الترس (⚙) ثم انقر على "Uninstall" لإزالة الإضافة.