YOLOv12: инструмент с открытым исходным кодом для обнаружения целей на изображениях и видео в реальном времени
Общее введение
YOLOv12 - это проект с открытым исходным кодом, разработанный пользователем GitHub sunsmarterjie, ориентированный на технологию обнаружения целей в реальном времени. Проект основан на серии рамок YOLO (You Only Look Once), внедрение механизма внимания для оптимизации производительности традиционных сверточных нейронных сетей (CNN), не только в обнаружении повышенной точности, но и поддерживает высокую скорость вывода. YOLOv12 для различных сценариев, таких как системы наблюдения, автоматизированное вождение и анализ изображений, и т.д., чтобы обеспечить Nano, Small, Medium, Large и Extra-Large для удовлетворения различных вычислительных мощностей и требований приложений. Проект лицензирован под GNU AGPL-3.0, что позволяет пользователям бесплатно скачивать код и адаптировать его под свои нужды. В команду разработчиков входят исследователи из Университета Буффало и Китайской академии наук, а техническая документация и руководство по установке подробно описаны, чтобы пользователи могли быстро приступить к работе.

Список функций
- Эффективное обнаружение целей в режиме реального времениНа графическом процессоре T4 YOLOv12-N достигает 40,6% mAP с задержкой вывода всего 1,64 мс.
- Выбор нескольких моделейПять моделей (от Nano до Extra-Large) доступны для широкого спектра аппаратных сред, от маломощных устройств до высокопроизводительных серверов.
- Оптимизация механизма внимания: Внедрение модулей Area Attention и R-ELAN для повышения точности обнаружения и снижения сложности вычислений.
- Экспорт моделей: Поддержка экспорта обучающих моделей в формат ONNX или TensorRT для легкого развертывания в производственных средах.
- Обучение по индивидуальному набору данных: Пользователи могут обучать модели на собственных наборах данных, подходящих для решения конкретных задач обнаружения целей.
- Поддержка визуализации:: Интеграция инструментов наблюдения для удобного представления результатов тестирования и оценки производительности.
Использование помощи
Процесс установки
В настоящее время YOLOv12 не имеет отдельного пакета PyPI и должен быть установлен из источника на GitHub. Ниже приведены подробные шаги по установке для Linux (пользователям Windows или Mac потребуется изменить конфигурацию среды):
- Подготовка среды
- Убедитесь, что в вашей системе установлен Python 3.11 или более поздняя версия.
- Установите Git:
sudo apt install git
(на примере Ubuntu). - Дополнительно: установите драйвер NVIDIA GPU и CUDA (рекомендуется версия 11.8 или выше), чтобы ускорить обучение и выводы.
- склад клонов
Загрузите репозиторий YOLOv12 локально, выполнив следующую команду в терминале:git clone https://github.com/sunsmarterjie/yolov12.git cd yolov12
- Создание виртуальной среды
Используйте Conda или venv, чтобы создать отдельное окружение Python и избежать конфликтов зависимостей:conda create -n yolov12 python=3.11 conda activate yolov12
- Установка зависимостей
Установите необходимые зависимости для вашего проекта, включая PyTorch, flash-attn, supervision и т.д:wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl pip install -r requirements.txt pip install -e .
- Проверка установки
Выполните следующую команду, чтобы проверить, правильно ли настроена среда:python -c "from ultralytics import YOLO; print('YOLOv12 installed successfully')"
Использование
Обучение пользовательских моделей
YOLOv12 поддерживает обучение на собственных наборах данных, подходящих для задач обнаружения целей на конкретных сценах. Операции выполняются следующим образом:
- Подготовка набора данных
- Данные должны быть в формате YOLO (содержать папки с изображениями и метками, метки в виде файлов .txt, с указанием категорий целей и координат границ).
- создать
data.yaml
файл, указав путь к обучающему набору, проверяющему набору и название категории. Пример:train: ./dataset/train/images val: ./dataset/val/images nc: 2 # 类别数量 names: ['cat', 'dog'] # 类别名称
- Загрузите модель и обучите ее
Используйте сценарий Python, чтобы загрузить предварительно обученную модель и начать обучение:from ultralytics import YOLO model = YOLO('yolov12s.pt') # 可选 n/s/m/l/x 模型 results = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
epochs
: Количество тренировочных раундов, для достижения лучших результатов рекомендуется более 250.imgsz
: Введите размер изображения, по умолчанию 640x640.
- Посмотреть результаты тренировок
После завершения обучения результаты сохраняются вruns/detect/train
папку, включая веса моделей (best.pt
), матрицы запутывания и т. д. Выполните следующий код, чтобы увидеть матрицу запутывания:from IPython.display import Image Image(filename='runs/detect/train/confusion_matrix.png', width=600)
Рассуждение и тестирование
Обученная модель может быть использована для обнаружения целей на изображениях или видео:
- Обнаружение одного изображения
model = YOLO('path/to/best.pt') results = model('test.jpg') results.show() # 显示检测结果 results.save() # 保存结果到 runs/detect/predict
- Обнаружение видео
Используйте командную строку для обработки видеофайлов:python app.py --source 'video.mp4' --model 'path/to/best.pt'
- Оценка производительности
Валидационный набор оценивается для получения таких метрик, как mAP:results = model.val(data='path/to/data.yaml') print(results.box.map) # 输出 mAP@0.5:0.95
Экспорт моделей
Экспортируйте модель в формат, пригодный для использования в производственной среде:
model.export(format='onnx', half=True) # 导出为 ONNX,支持 FP16 加速
Экспортированные модели могут быть развернуты на пограничных устройствах или серверах.
Функциональное управление
- Оптимизация механизма внимания
Модуль "Внимание к области" в YOLOv12 не требует ручной настройки, а автоматически оптимизирует извлечение признаков в процессе обучения и вывода для улучшения обнаружения мелких целей. Пользователям достаточно выбрать подходящий размер модели (например, Nano для маломощных устройств), чтобы насладиться повышенной точностью этой функции. - обнаружение в реальном времени
Выводы выполняются чрезвычайно быстро при работе на графических процессорах с поддержкой CUDA. Например, при запуске модели YOLOv12-N на GPU T4 обнаружение одного изображения происходит всего за 1,64 мс, а пользователи могут визуализировать кадр обнаружения и уровень достоверности в режиме реального времени с помощью инструмента наблюдения:results = model('image.jpg') results.plot() # 显示带标注的图像
- Многосюжетная адаптация
Настраивая размер модели и обучающие данные, YOLOv12 можно легко адаптировать к различным задачам. Например, обнаружение пешеходов в системе наблюдения или распознавание транспортных средств и дорожных знаков при автономном вождении.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...