YOLO Vision 2026:

Расширение 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 в 2021, 2022, 2023 и 2024 годах. Из-за высокого уровня кастомизации VS Code, встроенных функций, широкой совместимости и расширяемости неудивительно, что им пользуется так много разработчиков. Учитывая популярность в более широком сообществе разработчиков, а также в сообществах Ultralytics в Discord, Discourse, Reddit и GitHub, было вполне логично создать расширение для VS Code, которое поможет оптимизировать твой рабочий процесс и повысить продуктивность.

Хочешь рассказать нам, что ты используешь для разработки кода? Загляни в наш опрос сообщества на Discourse и дай нам знать! Пока ты там, можешь посмотреть некоторые из наших любимых мемов о компьютерном зрении, машинном обучении, ИИ и разработке или даже опубликовать свой любимый!

Установка расширения#

Примечание

Любая среда разработки кода, позволяющая устанавливать расширения для VS Code, должна быть совместима с расширением Ultralytics-snippets. После публикации расширения выяснилось, что neovim тоже можно сделать совместимым с расширениями VS Code. Подробнее об этом читай в разделе установки neovim в файле Readme в репозитории Ultralytics-Snippets.

Установка в VS Code#

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

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


VS Code extension menu

Установка из VS Code Extension Marketplace#

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

  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 со всеми ключевыми аргументами и значениями по умолчанию.
Importsultra.importsСниппеты для быстрого импорта распространенных объектов Ultralytics.
Modelsultra.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, возвращаемого при использовании метода 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[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 и оставив рецензию. ⭐

FAQ#

  • Новые сниппеты можно запрашивать, используя вкладку Issues в репозитории Ultralytics-Snippets.

  • Оно на 100% бесплатное!

  • VS Code использует сочетание клавиш Ctrl+Space для отображения дополнительной/краткой информации в окне предпросмотра. Если при вводе префикса сниппета ты не видишь его превью, это сочетание клавиш должно восстановить отображение.

  • Если ты используешь VS Code и начал видеть сообщение с предложением установить расширение Ultralytics-snippets, но больше не хочешь его видеть, есть два способа отключить это сообщение.

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

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

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

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


    VS Code extension menu

Комментарии