YOLOE: инструмент с открытым исходным кодом для обнаружения и сегментации объектов на видео в реальном времени

Общее введение

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

YOLOE:实时视频检测和分割物体的开源工具

 

Список функций

  • Поддержка обнаружения объектов в реальном времени для быстрого определения целей на изображениях или видео.
  • Предоставляет функцию сегментации экземпляров для точного очерчивания объектов.
  • Поддержка обнаружения текстовых подсказок, пользователь вводит текст для указания цели обнаружения.
  • Обеспечивает распознавание визуальных подсказок, позволяющих узнавать похожие объекты по картинкам.
  • Встроенный режим без подсказок автоматически обнаруживает более 1200 распространенных объектов.
  • Модель может быть перепараметризована с помощью YOLOv8/YOLO11 Нет накладных расходов на вывод.
  • Предоставляет множество предварительно обученных моделей (шкала S/M/L) для поддержки различных требований к производительности.
  • Открытый исходный код и документация, позволяющие разработчикам вносить изменения и дополнения.

 

Использование помощи

Использование YOLOE разделено на две части: установка и эксплуатация. Ниже подробно описаны шаги, которые позволят пользователям легко начать работу.

Процесс установки

  1. Подготовка среды
    Требуется Python 3.10 и PyTorch. Рекомендуется использовать Conda для создания виртуальной среды:
conda create -n yoloe python=3.10 -y
conda activate yoloe
  1. Клонирование кода
    Загрузите проект YOLOE с GitHub:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
  1. Установка зависимостей
    Установите необходимые библиотеки, включая 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
  1. Загрузите предварительно обученную модель
    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")
  1. Проверка установки
    Выполните команду 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. обнаружение текстовых уведомлений

  • Функциональное описание: Введите текст для обнаружения соответствующего объекта.
  • процедура::
    1. Подготовьте такие изображения, как bus.jpg.
    2. Запустите команду и укажите цель (например, "человек, собака, кошка"):
      python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
      
    3. Просмотрите результаты, и изображение будет помечено обнаруженными объектами.
  • Метод корректировки: Порог доверия может быть снижен, если обнаружение пропущено:
    --conf 0.001
    

2. Обнаружение визуальных подсказок

  • Функциональное описание: Обнаружение похожих объектов с помощью эталонных изображений.
  • процедура::
    1. Подготовьте контрольные и целевые картинки.
    2. Тренировка модулей визуальных подсказок:
      python tools/convert_segm2det.py
      python train_vp.py
      python tools/get_vp_segm.py
      
    3. Запустите тест:
      python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
      
    4. Проверьте выход и подтвердите результат.
  • предостережение: Ссылочные фотографии должны быть четкими и характерными.

3. Беспредметное обнаружение

  • Функциональное описание: Автоматическое распознавание объектов на фотографиях без необходимости вводить подсказки.
  • процедура::
    1. Убедитесь, что модель загружена с предварительно обученным словарем (поддерживается 1200+ категорий).
    2. Выполнить команду:
      python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
      
    3. Просмотрите результаты, и все тела будут помечены.
  • Метод корректировки: Если обнаружение неполное, максимальное количество обнаружений может быть увеличено:
    --max_det 1000
    

4. преобразование и развертывание моделей

  • Функциональное описание: Преобразование YOLOE в формат YOLOv8/YOLO11 для развертывания на различных устройствах.
  • процедура::
    1. Установите инструмент экспорта:
      pip install onnx coremltools onnxslim
      
    2. Выполните команду экспорта:
      python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
      
    3. Выходной формат поддерживает TensorRT (GPU) или CoreML (iPhone).
  • Данные о производительности: на графическом процессоре T4.yoloe-v8l-seg.pt FPS составил 102,5; на iPhone 12 - 27,2.

5. обучение пользовательским моделям

  • Функциональное описание: Обучите YOLOE с помощью собственного набора данных.
  • процедура::
    1. Подготовьте набор данных, например Objects365v1 или GQA.
    2. Создайте аннотации к сегментации:
      python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
      
    3. Создайте обучающий кэш:
      python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
      
    4. Беговая тренировка:
      python train_seg.py
      
    5. Проверьте эффект:
      python val.py
      

Другие инструменты

  • Веб-демонстрация: Запустите интерфейс с Gradio:
    pip install gradio==4.42.0
    python app.py
    

    интервью http://127.0.0.1:7860.

 

сценарий применения

  1. контроль безопасности
    Обнаружение людей или объектов в реальном времени на видео, маркировка контуров для управления безопасностью.
  2. интеллектуальный транспорт
    Идентификация транспортных средств и пешеходов на дороге для анализа трафика или автономного вождения.
  3. промышленный контроль качества
    Обнаружение дефектов деталей с помощью визуальных подсказок повышает производительность.
  4. научные исследования
    Обрабатывает экспериментальные изображения, автоматически маркирует объекты и ускоряет обработку данных.

 

QA

  1. В чем разница между YOLOE и YOLOv8?
    YOLOE поддерживает открытое определение сцен (текстовое, визуальное, без подсказок), в то время как YOLOv8 ограничен фиксированными категориями. YOLOE также может быть преобразован в YOLOv8 без дополнительных накладных расходов.
  2. Нужен графический процессор?
    Не требуется. Процессор может работать, но GPU (например, CUDA) будет быстрее.
  3. Что делать, если тест не точен?
    Снижение порога доверия (--conf 0.001) или увеличить количество тестов (--max_det 1000).
  4. Какие устройства поддерживаются?
    Поддержка ПК (TensorRT), iPhone (CoreML) и многих других устройств.
© заявление об авторских правах

Похожие статьи

LiteLLM:统一调用多种大模型API的Python SDK,多平台LLM调用与管理工具

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...