YOLOE: инструмент с открытым исходным кодом для обнаружения и сегментации объектов на видео в реальном времени
Общее введение
YOLOE - это проект с открытым исходным кодом, разработанный Группой мультимедийного интеллекта (THU-MIG) Школы программного обеспечения Университета Цинхуа, полное название которого - "You Only Look Once Eye". Он основан на фреймворке PyTorch и относится к YOLO Расширение для серии, которое обнаруживает и сегментирует любой объект в реальном времени. Проект, размещенный на GitHub, поддерживает три режима: текстовые подсказки, визуальные подсказки и обнаружение без подсказок. Пользователи могут указать цель с помощью текста или картинки, а модель может автоматически распознать более 1200 объектов. Согласно официальным данным, YOLOE в 1,4 раза быстрее YOLO-Worldv2 на наборе данных LVIS и в 3 раза дешевле в обучении, сохраняя при этом высокую точность. Модель также может быть легко конвертирована в YOLOv8 или YOLO11 без дополнительных накладных расходов, что делает ее пригодной для развертывания на нескольких устройствах.

Список функций
- Поддержка обнаружения объектов в реальном времени для быстрого определения целей на изображениях или видео.
- Предоставляет функцию сегментации экземпляров для точного очерчивания объектов.
- Поддержка обнаружения текстовых подсказок, пользователь вводит текст для указания цели обнаружения.
- Обеспечивает распознавание визуальных подсказок, позволяющих узнавать похожие объекты по картинкам.
- Встроенный режим без подсказок автоматически обнаруживает более 1200 распространенных объектов.
- Модель может быть перепараметризована с помощью YOLOv8/YOLO11 Нет накладных расходов на вывод.
- Предоставляет множество предварительно обученных моделей (шкала S/M/L) для поддержки различных требований к производительности.
- Открытый исходный код и документация, позволяющие разработчикам вносить изменения и дополнения.
Использование помощи
Использование YOLOE разделено на две части: установка и эксплуатация. Ниже подробно описаны шаги, которые позволят пользователям легко начать работу.
Процесс установки
- Подготовка среды
Требуется Python 3.10 и PyTorch. Рекомендуется использовать Conda для создания виртуальной среды:
conda create -n yoloe python=3.10 -y
conda activate yoloe
- Клонирование кода
Загрузите проект YOLOE с GitHub:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
- Установка зависимостей
Установите необходимые библиотеки, включая CLIP и MobileCLIP:
pip install -r requirements.txt
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/CLIP
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/ml-mobileclip
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/lvis-api
wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt
- Загрузите предварительно обученную модель
YOLOE предлагает множество моделей, таких какyoloe-v8l-seg.pt
. Загрузитесь с помощью следующей команды:
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain
Или загрузите его автоматически с помощью Python:
from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
- Проверка установки
Выполните команду test, чтобы убедиться, что с окружением все в порядке:python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
Основные функции
1. обнаружение текстовых уведомлений
- Функциональное описание: Введите текст для обнаружения соответствующего объекта.
- процедура::
- Подготовьте такие изображения, как
bus.jpg
. - Запустите команду и укажите цель (например, "человек, собака, кошка"):
python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
- Просмотрите результаты, и изображение будет помечено обнаруженными объектами.
- Подготовьте такие изображения, как
- Метод корректировки: Порог доверия может быть снижен, если обнаружение пропущено:
--conf 0.001
2. Обнаружение визуальных подсказок
- Функциональное описание: Обнаружение похожих объектов с помощью эталонных изображений.
- процедура::
- Подготовьте контрольные и целевые картинки.
- Тренировка модулей визуальных подсказок:
python tools/convert_segm2det.py python train_vp.py python tools/get_vp_segm.py
- Запустите тест:
python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
- Проверьте выход и подтвердите результат.
- предостережение: Ссылочные фотографии должны быть четкими и характерными.
3. Беспредметное обнаружение
- Функциональное описание: Автоматическое распознавание объектов на фотографиях без необходимости вводить подсказки.
- процедура::
- Убедитесь, что модель загружена с предварительно обученным словарем (поддерживается 1200+ категорий).
- Выполнить команду:
python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
- Просмотрите результаты, и все тела будут помечены.
- Метод корректировки: Если обнаружение неполное, максимальное количество обнаружений может быть увеличено:
--max_det 1000
4. преобразование и развертывание моделей
- Функциональное описание: Преобразование YOLOE в формат YOLOv8/YOLO11 для развертывания на различных устройствах.
- процедура::
- Установите инструмент экспорта:
pip install onnx coremltools onnxslim
- Выполните команду экспорта:
python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
- Выходной формат поддерживает TensorRT (GPU) или CoreML (iPhone).
- Установите инструмент экспорта:
- Данные о производительности: на графическом процессоре T4.
yoloe-v8l-seg.pt
FPS составил 102,5; на iPhone 12 - 27,2.
5. обучение пользовательским моделям
- Функциональное описание: Обучите YOLOE с помощью собственного набора данных.
- процедура::
- Подготовьте набор данных, например Objects365v1 или GQA.
- Создайте аннотации к сегментации:
python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
- Создайте обучающий кэш:
python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
- Беговая тренировка:
python train_seg.py
- Проверьте эффект:
python val.py
Другие инструменты
- Веб-демонстрация: Запустите интерфейс с Gradio:
pip install gradio==4.42.0 python app.py
интервью
http://127.0.0.1:7860
.
сценарий применения
- контроль безопасности
Обнаружение людей или объектов в реальном времени на видео, маркировка контуров для управления безопасностью. - интеллектуальный транспорт
Идентификация транспортных средств и пешеходов на дороге для анализа трафика или автономного вождения. - промышленный контроль качества
Обнаружение дефектов деталей с помощью визуальных подсказок повышает производительность. - научные исследования
Обрабатывает экспериментальные изображения, автоматически маркирует объекты и ускоряет обработку данных.
QA
- В чем разница между YOLOE и YOLOv8?
YOLOE поддерживает открытое определение сцен (текстовое, визуальное, без подсказок), в то время как YOLOv8 ограничен фиксированными категориями. YOLOE также может быть преобразован в YOLOv8 без дополнительных накладных расходов. - Нужен графический процессор?
Не требуется. Процессор может работать, но GPU (например, CUDA) будет быстрее. - Что делать, если тест не точен?
Снижение порога доверия (--conf 0.001
) или увеличить количество тестов (--max_det 1000
). - Какие устройства поддерживаются?
Поддержка ПК (TensorRT), iPhone (CoreML) и многих других устройств.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...