Link to this sectionРасширение Ultralytics для VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Link to this sectionФункции и преимущества#
✅ Ты дата-сайентист или инженер по машинному обучению, создающий приложения компьютерного зрения с помощью 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! 🚀
Link to this sectionВдохновлено сообществом Ultralytics#
Идея создания этого расширения пришла от сообщества Ultralytics. Вопросы участников сообщества по похожим темам и примерам подстегнули разработку этого проекта. Кроме того, многие члены команды Ultralytics сами используют VS Code для ускорения своей работы ⚡.
Link to this sectionПочему VS Code?#
Visual Studio Code невероятно популярен среди разработчиков по всему миру и занимал первые строчки в опросах Stack Overflow Developer Survey в 2021, 2022, 2023 и 2024 годах. Учитывая высокий уровень кастомизации, встроенные функции, широкую совместимость и расширяемость VS Code, неудивительно, что так много разработчиков пользуются им. Учитывая его популярность в широком сообществе разработчиков, а также в сообществах Ultralytics в Discord, Discourse, Reddit и GitHub, решение создать расширение для VS Code, чтобы оптимизировать твой рабочий процесс и повысить продуктивность, было вполне логичным.
Хочешь рассказать, что ты используешь для написания кода? Заходи в наш опрос сообщества на Discourse и поделись с нами! А пока ты там, можешь посмотреть наши любимые мемы о компьютерном зрении, машинном обучении, ИИ и разработке, или даже запостить свой!
Link to this sectionУстановка расширения#
Любая среда разработки, поддерживающая установку расширений VS Code, должна быть совместима с расширением Ultralytics-snippets. После выпуска расширения выяснилось, что neovim можно сделать совместимым с расширениями для VS Code. Подробнее об этом читай в разделе по установке neovim в файле Readme в репозитории Ultralytics-Snippets.
Link to this sectionУстановка в VS Code#
-
Перейди в меню расширений в VS Code или используй сочетание клавиш Ctrl+Shift ⇑+x и введи в поиске Ultralytics-snippets.
-
Нажми кнопку Install.
Link to this sectionУстановка из VS Code Extension Marketplace#
-
Посети VS Code Extension Marketplace и введи в поиске Ultralytics-snippets или перейди сразу на страницу расширения в маркетплейсе VS Code.
-
Нажми кнопку Install и разреши браузеру запустить сессию VS Code.
-
Следуй инструкциям, чтобы завершить установку расширения.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Link to this sectionИспользование расширения Ultralytics-Snippets#
-
🧠 Интеллектуальное дополнение кода: Пиши код быстрее и точнее с помощью продвинутых подсказок, адаптированных под API Ultralytics.
-
⌛ Повышение скорости разработки: Экономь время, исключая повторяющиеся задачи и используя готовые блоки кода (сниппеты).
-
🔬 Улучшение качества кода: Пиши более чистый, единообразный и безошибочный код благодаря интеллектуальному дополнению.
-
💎 Оптимизированный рабочий процесс: Сосредоточься на основной логике своего проекта, автоматизировав рутинные задачи.
Link to this sectionОбзор#
Расширение работает, только если Language Mode настроен на Python 🐍. Это нужно, чтобы сниппеты не вставлялись в файлы других типов. Все сниппеты имеют префикс ultra, и после установки расширения достаточно просто набрать ultra в редакторе, чтобы увидеть список доступных сниппетов. Ты также можешь открыть Command Palette в VS Code с помощью Ctrl+Shift ⇑+p и запустить команду Snippets: Insert Snippet.
Link to this sectionПоля кода в сниппетах#
У многих сниппетов есть «поля» с дефолтными значениями или именами. Например, вывод метода 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.
Link to this sectionДополнение сниппетов кода#
Тебе не обязательно вводить полный префикс сниппета или даже начинать с самого начала. Посмотри пример на изображении ниже.
Сниппеты названы максимально описательно, но это значит, что их длинные названия могут замедлить тебя, если твоя цель — скорость. К счастью, 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.
Link to this sectionКатегории сниппетов#
Это текущие категории сниппетов, доступные в расширении Ultralytics-snippets. В будущем их будет больше, поэтому проверяй обновления и включи автообновление для расширения. Ты также можешь запросить добавление дополнительных сниппетов, если считаешь, что чего-то не хватает.
| Категория | Начальный префикс | Описание |
|---|---|---|
| Примеры | ultra.examples | Примеры кода для обучения или быстрого старта с Ultralytics. Примеры являются копиями кода из документации или похожи на него. |
| Kwargs | ultra.kwargs | Ускорь разработку, добавляя сниппеты для методов train, track, predict и val со всеми именованными аргументами и значениями по умолчанию. |
| Imports | ultra.imports | Сниппеты для быстрого импорта распространенных объектов Ultralytics. |
| Models | ultra.yolo | Вставляй блоки кода для инициализации различных моделей (yolo, sam, rtdetr и т.д.), включая выпадающие списки конфигурации. |
| Результаты | ultra.result | Блоки кода для распространенных операций при работе с результатами вывода. |
| Утилиты | ultra.util | Предоставляет быстрый доступ к распространенным утилитам, встроенным в пакет Ultralytics; узнай о них больше на странице простых утилит. |
Link to this sectionОбучение с примерами#
Сниппеты 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 imageLink to this sectionУскорение разработки#
Цель других сниппетов, кроме 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.
Link to this sectionИменованные аргументы#
Существует более 💯 именованных аргументов для всех задач 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) 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, на случай если ты используешь другую переменную в своем коде. На каждой строке с именованным аргументом приведено краткое описание для справки.
Link to this sectionВсе сниппеты кода#
Лучший способ узнать, какие сниппеты доступны, — скачать, установить расширение и попробовать! Если любопытно взглянуть на список заранее, можешь посетить репозиторий или страницу расширения в маркетплейсе VS Code, чтобы посмотреть таблицы со всеми доступными сниппетами.
Link to this sectionЗаключение#
Расширение Ultralytics-Snippets для VS Code создано, чтобы помочь дата-сайентистам и инженерам машинного обучения эффективнее создавать приложения компьютерного зрения с использованием Ultralytics YOLO. Предоставляя готовые сниппеты кода и полезные примеры, мы помогаем тебе сосредоточиться на самом важном: создании инновационных решений. Пожалуйста, поделись своим мнением, посетив страницу расширения в маркетплейсе VS Code и оставив отзыв. ⭐
Link to this sectionFAQ#
Link to this sectionКак запросить новый сниппет?#
Новые сниппеты можно запрашивать через Issues в репозитории Ultralytics-Snippets.
Link to this sectionСколько стоит расширение Ultralytics?#
Оно на 100% бесплатное!
Link to this sectionПочему я не вижу превью сниппета?#
VS Code использует сочетание клавиш Ctrl+Space для отображения дополнительной/краткой информации в окне предпросмотра. Если при вводе префикса сниппета ты не видишь его превью, это сочетание клавиш должно восстановить отображение.
Link to this sectionКак отключить рекомендацию расширения в Ultralytics?#
Если ты используешь VS Code и начал видеть сообщение с предложением установить расширение Ultralytics-snippets, но больше не хочешь его видеть, есть два способа отключить это сообщение.
-
Установи Ultralytics-snippets, и сообщение перестанет показываться 😆!
-
Ты можешь использовать
yolo settings vscode_msg=False, чтобы отключить показ сообщения без установки расширения. Если ты не знаком с этим, узнай больше о настройках Ultralytics на странице быстрого старта.
Link to this sectionУ меня есть идея для нового сниппета Ultralytics, как его добавить?#
Посети репозиторий Ultralytics-snippets и создай Issue или Pull Request!
Link to this sectionКак удалить расширение Ultralytics-Snippets?#
Как и любое другое расширение VS Code, его можно удалить через меню расширений. Найди в меню Ultralytics-snippets, нажми на иконку шестеренки (⚙) и выбери «Uninstall».