Ultralytics YOLO27:

Расширение 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](https://ultralytics-translation-0.invalid чрезвычайно популярен среди разработчиков по всему миру и занимал первое место в опросе разработчиков Stack Overflow в 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. Открой меню расширений в VS Code или используй сочетание клавиш Ctrl+Shift ⇑+x, затем найди Ultralytics-snippets.

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


VS Code extension menu

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

  1. Перейди в Marketplace расширений VS Code и найди Ultralytics-snippets или сразу открой страницу расширения в Marketplace 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](https://ultralytics-translation-3.invalid со всеми именованными аргументами и значениями по умолчанию.
Импорты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, возвращённый методом 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, если в коде используется другая переменная. В каждой строке с именованным аргументом есть краткое описание для справки.

Все фрагменты кода#

Лучший способ узнать, какие фрагменты доступны, — скачать и установить расширение, а затем попробовать его! Если тебе интересно заранее посмотреть список, открой репозиторий или страницу расширения в Marketplace VS Code, чтобы просмотреть таблицы со всеми доступными фрагментами.

Заключение#

Расширение Ultralytics-Snippets для VS Code помогает специалистам по работе с данными и инженерам по машинному обучению эффективнее создавать приложения для компьютерного зрения с использованием Ultralytics YOLO. Предоставляя готовые фрагменты кода и полезные примеры, мы помогаем тебе сосредоточиться на самом важном: создании инновационных решений. Поделись своим мнением: зайди на страницу расширения в Marketplace VS Code и оставь отзыв. ⭐

Часто задаваемые вопросы#

  • Новые фрагменты можно запросить через раздел Issues в репозитории Ultralytics-Snippets.

  • Оно полностью бесплатно!

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

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

    1. Установи Ultralytics-snippets — и сообщение больше не будет отображаться 😆!

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

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

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


    VS Code extension menu

Комментарии