[Машинное обучение] Реализуйте свою первую большую визуальную модель искусственного интеллекта на основе YOLOv10.
[Машинное обучение] Реализуйте свою первую большую визуальную модель искусственного интеллекта на основе YOLOv10.

1. Введение

Конечной формой искусственного интеллекта должен стать «воплощённый робот» — как и у человека, у него есть глаза (зрение), уши (слух), рот (язык), язык (вкус), нос (обоняние) и другие органы. чувство вкуса и обоняния в настоящее время существенного прогресса не произошло, но зрительные, слуховые и языковые способности совершили крупный прорыв в научном и инженерном сообществе:

  • Визуальная модель: YOLOv10、LLaVA、Версия Vision большой языковой модели, такая как Qwen-VL
  • Модель слуха: TTS (текст в речь), шепот (ASR, речь в текст)
  • Языковая модель: GPT4、LLaMA、Qwen、Вэнь Синьиян и так далее. Модель большого языка.

Сегодня мы поговорим о недавно популярном YOLOv10 (You Only Look Once v10), который был выпущен Университетом Цинхуа 23 мая. По сравнению с YOLOv9 задержка уменьшена на 46%, а параметры уменьшены на 25% при той же производительности. .

2. Визуальное обнаружение целей YOLOv10 — обзор принципов

2.1 Что такое ЙОЛО

YOLO (You Only Look Once) — это обнаружение целей, основанное на алгоритме глубокой нейронной сети.,Используется для идентификации и определения местоположения нескольких объектов на изображениях или видео в режиме реального времени. Основными особенностями YOLO являются высокая скорость и высокая точность.,Возможность достижения быстрого обнаружения целей в сценариях реального времени.,Широко используется в области компьютерного зрения.,включатьАнализ видео в реальном времениАвтономное вождениеУмная медицинаждать。 До появления YOLO основным алгоритмом был R-CNN, который можно назвать «двухэтапным алгоритмом»: сначала привязывать кадр, а затем прогнозировать объекты в кадре. После появления YOLO материалы и локации можно будет выводить напрямую, сквозным образом, «в один этап».

  • одноэтапный алгоритм:Модель Выполните задачу регрессии напрямую,Выведите значение вероятности и координаты местоположения цели. Например: SSD, ЙОЛО, MTCNN и т. д.
  • двухэтапный алгоритм:Сначала создайте несколько полей привязки,Затем сверточная нейронная сеть используется для вывода значений вероятности и координат положения. Например: серия R-CNN

2.2 Структура сети YOLO

YOLOv10 — это улучшение YOLOv8. Вот краткий обзор сетевой структуры YOLOv8:

3. Визуальное обнаружение цели YOLOv10 – вывод обучения

3.1 Установка YOLov10

3.1.1 Клонировать проект
Язык кода:javascript
копировать
git clone https://github.com/THU-MIG/yolov10.git
3.1.2 Создание среды conda
Язык кода:javascript
копировать
conda create -n yolov10 python=3.9
conda activate yolov10
3.1.3 Загрузите и скомпилируйте зависимости

Рекомендуется использовать исходный код Tencent, это действительно быстро.

Язык кода:javascript
копировать
pip install -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple
pip install -e . -i https://mirrors.cloud.tencent.com/pypi/simple

3.2 Вывод модели YOLov10

3.2.1 Загрузка модели

Вы можете напрямую щелкнуть ссылку для скачивания:

YOLOv10-N:https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10n.pt YOLOv10-S:https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10s.pt YOLOv10-M:https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10m.pt YOLOv10-B:https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10b.pt YOLOv10-L:https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10l.pt YOLOv10-X:https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10x.pt

3.2.2 Рассуждения о веб-интерфейсе

Запустите в корневом каталоге проекта:

Язык кода:javascript
копировать
python app.py

После успешного выполнения отображается:

Разрешение ошибки:

При выполнении я получил ошибку: ImportError: libGL.so.1: невозможно открыть файл общего объекта: нет такого файла или каталога.

Эта ошибка возникла перед запуском, в основном из-за версии opencv-python-headless. Переустановка решила проблему.

Язык кода:javascript
копировать
pip uninstall opencv-python -y
pip install opencv-python-headless -i https://mirrors.cloud.tencent.com/pypi/simple

Введите 127.0.0.1:7861 в браузере, чтобы стать свидетелем чудесного момента:

  • Обнаружение загруженного изображения: обнаруживается мгновенно за миллисекунды.
  • Камера Фото осмотр: Люди, мобильные телефоны и часы неполные, но их можно быстро идентифицировать, приятно!

3.2.3 Обоснование командной строки

Начните с yolo в среде conda, предскажите прогноз параметров, модель используется для указания загруженной модели, устройство указывает графический процессор, а источник указывает изображение, которое необходимо обнаружить.

Язык кода:javascript
копировать
yolo predict model=yolov10n.pt device=2 source=/aigc_dev/yolov10/ultralytics/assets

По умолчанию обнаруживаемые изображения хранятся в каталоге yolov10/ultralytics/assets. После обнаружения они сохраняются в каталоге yolov10/runs/detect/predictxx.

Видно, что под видеокартой V100 среднее время обнаружения yolov10n составляет 78,7 мс.

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

Отображение результатов теста:

3.2.4 Преобразование формата вывода

Проекты можно легко конвертировать в форматы ONNX и TensorRT для кросс-платформенного вывода и развертывания.

Язык кода:javascript
копировать
yolo export model=yolov10n.pt format=onnx opset=13 simplify device=2
yolo predict model=yolov10n.onnx device=2

  • ONNX (Open Neural Network Exchange) — открытый формат.,Используется для представления модели глубокого обучения.,Это позволяет легко мигрировать Модель между различными платформами. Он поддерживает несколько фреймворков глубокого обучения.,Такие как PyTorch, TensorFlow, MXNet и т. д.,Позволяет разработчикам выбирать наиболее подходящие инструменты для обучения моделей в различных экосистемах.,Затем экспортируйте в формат ONNX.,для развертывания на других платформах с поддержкой ONNX.
  • TensorRT — это высокопроизводительный оптимизатор и среда выполнения глубокого обучения (Inference), разработанная NVIDIA и специально разработанная для NVIDIA. GPUдизайн。Он проходит обучение Модель(поддерживатьONNXждать格式),и оптимизировать его,Создавайте эффективный код выполнения для конкретного оборудования графического процессора.

3.3 Обучение модели YOLov10

yolo не только предоставляет услуги вывода, но и поддерживает внедрение наборов данных для обучения:

Язык кода:javascript
копировать
yolo detect train data=coco.yaml model=yolov10s.yaml epochs=100 batch=128 imgsz=640 device=2

обнаружение поезда — это команда обучения обнаружению, данные указывают набор данных, набор данных по умолчанию загружается и сохраняется в ../datasets/coco, модель определяет конфигурацию модели обучения, эпохи представляют количество итераций, imgsz представляет размер масштабирования изображения , пакет представляет собой пакетную обработку, а устройство — Укажите устройство графического процессора.

После запуска скачайте набор COCOданные.,очень огромный,Потому что сервер не может получить доступ к Интернету с научной точки зрения,Это занимает много времени,Здесь не вложено время,Если вам интересно, вы можете перейти наCOCO - Common Objects in Context скачать. Вы также можете выполнить приведенную выше команду для автоматической загрузки.

4. YOLOv10 в действии: 20 строк кода для построения видеонаблюдения в реальном времени на базе YOLOv10

Создайте run_python.py в корневом каталоге:

Язык кода:javascript
копировать
import cv2
from ultralytics import YOLOv10
model = YOLOv10("yolov10s.pt")
cap = cv2.VideoCapture(0)
while True:
        ret, frame = cap.read()
        if not ret:
                break  # Если ни один кадр не прочитан, выйдите из цикла
        results = model.predict(frame)
        # Перебрать каждый результат прогнозирования
        for result in results:
                # Каждый элемент результата соответствует прогнозу для изображения.
                boxes = result.boxes  # Получить информацию об ограничительной рамке
                for box in boxes:
                        x1,y1,x2,y2 = map(int, box.xyxy[0])
                        cls = int(box.cls[0])
                        conf = float(box.conf[0])
                        cv2.rectangle(frame, (x1, y1), (x2, y2), (255, 0, 0), 2)
                        cv2.putText(frame, f'{model.names[cls]} {conf:.2f}', (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)
        # Отображение кадров с результатами обнаружения
        cv2.imshow('Обнаружение YOLOv10 в реальном времени', frame)
        # Нажмите клавишу «q», чтобы выйти
        if cv2.waitKey(1) & 0xFF == ord('q'):
                break

# Освободить ресурсы
cap.release()
cv2.destroyAllWindows()

После бега компьютерная камера автоматически включится и обнаружит цель в камере в режиме реального времени:

Ощущения: Из-за использования личного ноутбука Mac производительность вывода низкая. При использовании модели yolov10b.pt время вывода достигает 300-400 мс, и эффективно идентифицировать многие объекты, например, сложно. возьмет пачку сигарет, его будут судить как книгу. Реальное применение в производственной среде также требует углубленного исследования производительности вывода и обучения модели.

5. Резюме

В этой статье сначала рассматривается положение визуальных моделей в области искусственного интеллекта, затем дается предварительное объяснение принципов и концепций, а затем подробно описываются процесс рассуждения и обучения. Наконец, на практическом примере используется портативный компьютер. очень мало строк кода. Камера модифицирована для видеонаблюдения в реальном времени. Цель — дать читателям возможность быстро начать работу с технологией YOLOv10 для обнаружения объектов после прочтения этой статьи.

  • С точки зрения приложений YOLO очень подходит для практического применения. Многие люди начинают бизнес на основе YOLO и получают прибыль, например, в области интеллектуального вождения, мониторинга безопасности, медицинского тестирования и т. д.
  • С точки зрения исследований, YOLO выпустила 10 версий с частыми итерациями и оптимизациями эффекта и скорости, а система знаний очень глубокая.​​​​​​
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose