Перейти к содержанию

Ultralytics Расширение VS Code



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


Отрывок Предсказание Превью
Выполните пример кода с помощью Ultralytics YOLO менее чем за 20 секунд! 🚀

Вдохновленные сообществом 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-Хранилище сниппетов.

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

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

  2. Нажмите кнопку Установить.


Меню расширения VS Code

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

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

  2. Нажмите кнопку Install и разрешите браузеру запустить сеанс VS Code.

  3. Следуйте всем подсказкам, чтобы установить расширение.


Установка расширения VS Code marketplace
Страница Visual Studio Code Extension Marketplace для Ultralytics-Сниппетс

Использование расширения Ultralytics-Snippets

  • 🧠 Интеллектуальное завершение кода: Пишите код быстрее и точнее с помощью расширенных предложений по завершению кода, адаптированных к API Ultralytics .

  • Увеличение скорости разработки: экономия времени за счет исключения повторяющихся задач кодирования и использования готовых фрагментов блоков кода.

  • 🔬 Улучшенное качество кода: Пишите более чистый, последовательный и безошибочный код с помощью интеллектуального завершения кода.

  • 💎 Оптимизированный рабочий процесс: Не отвлекайтесь от основной логики проекта, автоматизируя общие задачи.

Обзор

Расширение будет работать только тогда, когда Языковой режим настроен на Python 🐍. Это сделано для того, чтобы избежать вставки сниппетов при работе с файлами другого типа. Все фрагменты имеют префикс, начинающийся с ultraи просто наберите ultra в вашем редакторе после установки расширения, отобразит список возможных сниппетов для использования. Вы также можете открыть VS Code Палитра команд используя Ctrl+Смена ⇑+p и выполните команду Snippets: Insert Snippet.

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

Во многих сниппетах есть "поля" со значениями или именами по умолчанию. Например, вывод из предсказать метод может быть сохранен в переменной Python с именем r, results, detections, preds или что-либо еще по выбору разработчика, поэтому сниппеты включают "поля". Использование Вкладка ⇥ на клавиатуре после вставки фрагмента, курсор будет быстро перемещаться между полями. После того как поле выбрано, ввод нового имени переменной изменит не только этот экземпляр, но и все остальные экземпляры в коде сниппета для этой переменной!


Поле и опции мультиобновления
После вставки фрагмента, переименования model в роли world_model обновляет все экземпляры. Нажав Вкладка ⇥ переходит к следующему полю, которое открывает выпадающее меню и позволяет выбрать масштаб модели, а переход к следующему полю открывает еще одно выпадающее меню, позволяющее выбрать либо world или worldv2 вариант модели.

Завершения сниппета кода

Еще более короткие короткие пути

Не обязательно вводить полный префикс сниппета или даже начинать ввод с начала сниппета. Смотрите пример на изображении ниже.

Сниппеты названы максимально описательно, но это означает, что набирать их придется очень много, а это будет непродуктивно, если цель - продвижение быстрее. К счастью, VS Code позволяет пользователям вводить ultra.example-yolo-predict, example-yolo-predict, yolo-predict, или даже ex-yolo-p и все равно доберетесь до нужного варианта сниппета! Если предполагаемый фрагмент был на самом деле ultra.example-yolo-predict-kwordsЗатем просто используйте стрелки клавиатуры. или выделите нужный фрагмент и нажмите кнопку Введите ↵ или Вкладка ⇥ вставит нужный блок кода.


Пример неполного сниппета
Типирование ex-yolo-p будет все еще приходят к правильному фрагменту.

Категории сниппетов

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

Категория Начальный префикс Описание
Примеры ultra.examples Примеры кода для изучения или начала работы с Ultralytics. Примеры - это копии или подобия кода со страниц документации.
Kwargs ultra.kwargs Ускорьте разработку, добавив сниппеты для методов train, track, predict и val со всеми аргументами ключевых слов и значениями по умолчанию.
Импорт ultra.imports Сниппеты для быстрого импорта распространенных объектов Ultralytics .
Модели ultra.yolo Вставьте блоки кода для инициализации различных модели (yolo, sam, rtdetr, и т.д.), включая выпадающие параметры конфигурации.
Результаты ultra.result Блоки кода для общих операций при работе с результатами выводов.
Утилиты ultra.util Обеспечивает быстрый доступ к общим утилитам, встроенным в пакет Ultralytics . Подробнее о них можно узнать на странице "Простые утилиты".

Обучение на примерах

Сайт ultra.examples Сниппеты очень полезны для тех, кто хочет научиться основам работы с Ultralytics YOLO . Примеры сниппетов предназначены для запуска после вставки (некоторые из них также имеют опции выпадения). Пример этого показан в анимации в топ этой страницы, где после вставки фрагмента весь код выбирается и запускается в интерактивном режиме с помощью Смена ⇑+Введите ↵.

Пример

Как и анимационные шоу в топ этой страницы, вы можете использовать сниппет ultra.example-yolo-predict чтобы вставить следующий пример кода. После вставки единственным настраиваемым параметром является масштаб модели, который может быть любым из следующих: n, s, m, l, или x.

from ultralytics import ASSETS, YOLO

model = YOLO("yolo11n.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 полученный в результате использования модели предсказать метод. Сайт 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 атрибуты, к которым вы можете захотеть получить доступ, и именно здесь поля сниппета будет мощным.


Варианты циклов результатов
После перехода на вкладку boxes появится выпадающее меню, позволяющее выбрать другой атрибут.

Ключевые слова Аргументы

Существует более 💯 ключевых слов-аргументов для всех различных Ultralytics задания и режимы! Многое нужно запомнить, и это легко забыть, если аргумент save_frame или save_frames (это определенно save_frames кстати). Именно здесь ultra.kwargs сниппеты могут помочь!

Пример

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

Все сниппеты кода

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

Заключение

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как запросить новый сниппет?

Новые сниппеты можно запросить с помощью Issues на репо Ultralytics-Snippets.

Сколько стоит Ultralytics-Extension?

Это 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 Extension?

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


Меню расширения VS Code

📅 Создано 6 месяцев назад ✏️ Обновлено 1 день назад

Комментарии