Расширение 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 поможет тебе! Читай дальше, чтобы узнать больше о расширении, способах его установки и использования.


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 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

  1. Перейди в меню Extensions в VS Code или воспользуйся сочетанием клавиш Ctrl+Shift ⇑+x и найди Ultralytics-snippets.

  2. Нажми кнопку Install.


VS Code extension menu

Установка из Marketplace расширений VS Code

  1. Посети VS Code Extension Marketplace и найди Ultralytics-snippets или перейди сразу на страницу расширения в Marketplace.

  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.

Поля сниппетов кода

Многие сниппеты содержат «поля» с плейсхолдерами или именами по умолчанию. Например, результат метода predict можно сохранить в переменную 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Ускорь разработку, используя сниппеты для методов train, track, predict и val со всеми ключевыми аргументами и значениями по умолчанию.
Импортыultra.importsСниппеты для быстрого импорта основных объектов Ultralytics.
Моделиultra.yoloВставка блоков кода для инициализации различных моделей (yolo, sam, rtdetr и т. д.), включая параметры конфигурации из выпадающего списка.
Resultsultra.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, для чего пригодятся поля сниппетов.


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!

Пример

Для вставки метода 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, но не хочешь видеть его снова, есть два способа отключить это сообщение.

  1. Установи Ultralytics-snippets, и сообщение больше не будет показываться 😆!

  2. Ты можешь использовать команду yolo settings vscode_msg False, чтобы отключить показ сообщения без установки расширения. Узнать больше о настройках Ultralytics можно на странице краткого руководства, если ты с ними не знаком.

У меня есть идея для нового сниппета Ultralytics, как его добавить?

Посети репозиторий Ultralytics-snippets и открой Issue или Pull Request!

Как удалить расширение Ultralytics-Snippets?

Как и любое другое расширение VS Code, ты можешь удалить его через меню Extensions. Найди расширение Ultralytics-snippets в списке, нажми на иконку шестеренки (⚙) и выбери «Uninstall».


VS Code extension menu

Комментарии