Расширение 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 Developer Survey в 2021, 2022, 2023 и 2024 годах. Благодаря высокой степени настройки, встроенным функциям, широкой совместимости и расширяемости VS Code, неудивительно, что многие разработчики выбирают именно его. Учитывая его популярность в широком сообществе разработчиков, а также в сообществах Ultralytics в Discord, Discourse, Reddit и GitHub, решение создать расширение для VS Code, чтобы упростить твой рабочий процесс и повысить продуктивность, оказалось вполне логичным.
Хочешь рассказать нам, что ты используешь для написания кода? Загляни в наш опрос сообщества на Discourse и поделись своим мнением! А заодно можешь посмотреть наши любимые мемы о компьютерном зрении, машинном обучении, AI и разработке или даже опубликовать свой собственный!
Установка расширения
Любая среда разработки, поддерживающая установку расширений для VS Code, должна быть совместима с расширением Ultralytics-snippets. После публикации расширения выяснилось, что neovim также можно сделать совместимым с расширениями VS Code. Чтобы узнать подробности, см. раздел по установке neovim в файле Readme в репозитории Ultralytics-Snippets.
Установка в VS Code
-
Перейди в меню Extensions в VS Code или воспользуйся сочетанием клавиш Ctrl+Shift ⇑+x и найди Ultralytics-snippets.
-
Нажми кнопку Install.
Установка из Marketplace расширений VS Code
-
Посети VS Code Extension Marketplace и найди Ultralytics-snippets или перейди сразу на страницу расширения в Marketplace.
-
Нажми кнопку 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.
Поля сниппетов кода
Многие сниппеты содержат «поля» с плейсхолдерами или именами по умолчанию. Например, результат метода 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 со всеми ключевыми аргументами и значениями по умолчанию. |
| Импорты | ultra.imports | Сниппеты для быстрого импорта основных объектов Ultralytics. |
| Модели | ultra.yolo | Вставка блоков кода для инициализации различных моделей (yolo, sam, rtdetr и т. д.), включая параметры конфигурации из выпадающего списка. |
| Results | 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, возвращаемых методом модели 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.
Ключевые аргументы
Существует более 💯 ключевых аргументов для различных задач и режимов 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[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 на случай, если ты используешь другие переменные. Для каждой строки с ключевым аргументом приведено краткое описание для справки.
Все сниппеты кода
Лучший способ узнать, какие сниппеты доступны, — это скачать и установить расширение! Если тебе любопытно и ты хочешь взглянуть на список заранее, посети репозиторий или страницу расширения в Marketplace, чтобы увидеть таблицы всех доступных сниппетов.
Заключение
Расширение Ultralytics-Snippets для VS Code создано, чтобы помочь дата-сайентистам и инженерам по машинному обучению более эффективно создавать приложения компьютерного зрения с использованием Ultralytics YOLO. Предоставляя готовые фрагменты кода и полезные примеры, мы помогаем тебе сосредоточиться на самом важном: создании инновационных решений. Пожалуйста, поделись своим мнением, перейдя на страницу расширения в Marketplace и оставив отзыв. ⭐
Часто задаваемые вопросы (FAQ)
Как запросить новый сниппет?
Новые сниппеты можно запросить через 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, ты можешь удалить его через меню Extensions. Найди расширение Ultralytics-snippets в списке, нажми на иконку шестеренки (⚙) и выбери «Uninstall».