Добавить в корзинуПозвонить
Найти в Дзене
Заметки кота

Grove Vision AI V2 обучение

Grove Vision AI V2 — это компактный модуль компьютерного зрения и искусственного интеллекта, разработанный компанией Seeed Studio. Он предназначен для запуска моделей машинного обучения прямо на устройстве (Edge AI) без отправки данных в облако. Вот ключевые сведения об этом оборудовании: Благодаря сочетанию мощности и компактности, модуль используется в таких задачах, как: Grove Vision AI V2 — это решение "всё в одном", которое снимает нагрузку по обработке ИИ с основного микроконтроллера. Он делает внедрение компьютерного зрения доступным даже для начинающих разработчиков благодаря простому интерфейсу Grove и мощной, но энергоэффективной начинки. YOLOv8 (You Only Look Once version 8) — это одна из самых популярных и производительных архитектур нейросетей для задач компьютерного зрения, разработанная компанией Ultralytics. Она была выпущена в начале 2023 года и быстро стала стандартом де-факто в индустрии благодаря балансу между скоростью и точностью. Вот ключевые сведения о моделя
Оглавление

Что такое Grove Vision AI V2?!

Grove Vision AI V2 — это компактный модуль компьютерного зрения и искусственного интеллекта, разработанный компанией Seeed Studio. Он предназначен для запуска моделей машинного обучения прямо на устройстве (Edge AI) без отправки данных в облако.

Вот ключевые сведения об этом оборудовании:

1. Основной процессор и ИИ-ускоритель

  • Сердце устройства: Модуль построен на базе высокопроизводительного ИИ-акселератора Hailo-8L. Это специализированный чип для нейросетей, обеспечивающий высокую производительность при низком энергопотреблении.
  • Управляющий МК: В качестве управляющего контроллера используется ESP32-S3. Он отвечает за обработку данных с камеры, взаимодействие с периферией и управление питанием.
  • Производительность: Акселератор Hailo-8L обеспечивает вычислительную мощность до 13 TOPS (триллионов операций в секунду), что позволяет запускать сложные модели (например, YOLOv8) с высокой частотой кадров.

2. Возможности камеры и видеовхода

  • Интерфейс: Поддерживает камерный интерфейс CSI (Camera Serial Interface).
  • Совместимость: Идеально сочетается с камерами Seeed (например, Grove Vision AI Module Camera) или другими стандартными CSI-камерами.
  • Разрешение: Способен обрабатывать видеопоток высокого разрешения (обычно до 1080p) в реальном времени для задач детекции.

3. Интерфейсы и подключение

  • Grove Interface: Оснащен стандартным разъемом Grove I2C/UART, что позволяет мгновенно подключать его к огромной экосистеме совместимых датчиков и микроконтроллеров (Seeed Studio XIAO, Arduino и др.).
  • USB-C: Наличие порта USB-C упрощает прошивку, отладку и питание устройства.
  • Расширение: Имеет слот для карты microSD (для локального хранения данных или логов) и контакты GPIO для дополнительной гибкости.

4. Энергоэффективность

  • Низкое энергопотребление является ключевым преимуществом архитектуры Hailo. Модуль может работать от батарей или портативных источников питания, что критично для IoT-устройств и носимой электроники.

5. Программное обеспечение и экосистема

  • Поддержка моделей: Устройство оптимизировано для работы с популярными фреймворками и моделями, включая TensorFlow Lite, PyTorch и модели семейства YOLO (You Only Look Once — для детекции объектов).
  • Инструменты разработки: Поддержка через Edge Impulse (платформа для обучения ML моделей) и SDK Hailo.
  • Совместимость: Легко интегрируется с платами на базе ESP32, Arduino, Raspberry Pi (через UART/I2C).

6. Ключевые применения

Благодаря сочетанию мощности и компактности, модуль используется в таких задачах, как:

  • Распознавание и детекция объектов (люди, автомобили, животные).
  • Распознавание лиц и эмоций.
  • Контроль доступа (Smart Lock).
  • Индустриальный контроль качества (дефектоскопия).
  • Умный дом и автоматизация.

Резюме

Grove Vision AI V2 — это решение "всё в одном", которое снимает нагрузку по обработке ИИ с основного микроконтроллера. Он делает внедрение компьютерного зрения доступным даже для начинающих разработчиков благодаря простому интерфейсу Grove и мощной, но энергоэффективной начинки.

Будем использовать модель YOLOv8 и вот почему

-2

YOLOv8 (You Only Look Once version 8) — это одна из самых популярных и производительных архитектур нейросетей для задач компьютерного зрения, разработанная компанией Ultralytics. Она была выпущена в начале 2023 года и быстро стала стандартом де-факто в индустрии благодаря балансу между скоростью и точностью.

Вот ключевые сведения о моделях YOLOv8, структурированные по категориям:

1. Архитектурные новшества

В отличие от предыдущих версий (например, YOLOv5), YOLOv8 претерпела значительные изменения в структуре:

  • Anchor-Free (Безъякорный подход): Это самое важное изменение. Предыдущие версии использовали предопределенные «якоря» (anchor boxes) для определения размеров объектов. YOLOv8 от них отказалась, что упрощает архитектуру и улучшает способность модели находить объекты необычных форм и размеров.
  • Модуль C2f: В «шее» (neck) и «спине» (backbone) сети используется новый модуль C2f (Cross Stage Partial with 2 convolutions), который заменил C3 в YOLOv5. Он обеспечивает лучшую градиентную информацию и более богатые признаки при меньших потерях производительности.
  • Decoupled Head (Разделенная голова): Архитектура «головы» (где происходит финальное предсказание) разделена на две независимые ветви: одну для классификации (какой это объект) и другую для регрессии bounding box (где он находится). Это улучшает точность.

2. Поддерживаемые задачи

YOLOv8 — это универсальная модель, обученная на одном фреймворке для выполнения пяти различных задач:

  1. Object Detection (Детекция): Обнаружение объектов и рисование прямоугольных рамок.
  2. Instance Segmentation (Сегментация): Обнаружение объектов с точным выделением их контуров (маски).
  3. Image Classification (Классификация): Определение того, что находится на изображении целиком.
  4. Pose Estimation (Оценка позы): Нахождение ключевых точек на теле человека (суставы, конечности).
  5. Oriented Object Detection (OBB): Детекция вращающихся объектов (важно для аэрофотосъемки, текста и т.д.).

3. Модели разных масштабов

Как и предыдущие версии, YOLOv8 доступна в 5 размерах, чтобы пользователь мог выбрать лучший баланс между скоростью и точностью под свое оборудование (от CPU до мощных GPU):

  • YOLOv8n (Nano): Самая быстрая и легкая. Идеальна для мобильных устройств и Edge AI.
  • YOLOv8s (Small): Немного тяжелее и точнее.
  • YOLOv8m (Medium): Золотая середина для использования на обычных GPU.
  • YOLOv8l (Large): Высокая точность для мощных серверов.
  • YOLOv8x (Extra Large): Максимальная точность, требует очень ресурсов.

4. Обучение и оптимизация (Loss Functions)

В YOLOv8 полностью переработана функция потерь:

  • Task Aligned Assigner: Новый метод назначения положительных образцов во время обучения, который лучше согласовывает классификацию и локализацию.
  • Loss Functions:Для классификации используется BCE Loss (Binary Cross Entropy).
    Для боксов используется
    CIoU Loss + DFL (Distribution Focal Loss). DFL помогает лучше предсказывать координаты, особенно если объекты расположены близко друг к другу или имеют размытые границы.

5. Экосистема и использование

YOLOv8 славится своей удобностью для разработчиков:

  • Единый Python API: Простой и интуитивный интерфейс (from ultralytics import YOLO).
  • Поддержка CLI: Возможность обучать и тестировать модели прямо из командной строки.
  • Экспорт моделей: Легкая конвертация в различные форматы для деплоя: ONNX, OpenVINO, TensorRT, CoreML, TorchScript, TFLite.
  • Ultralytics HUB: Облачная платформа для обучения моделей, мониторинга метрик и деплоя без написания кода.

6. Сравнение с конкурентами

На момент релиза и по сей день YOLOv8 превосходит многие другие модели (включая YOLOv5 и YOLOv7) по метрике mAP (mean Average Precision) при сопоставимой или более высокой скорости (FPS).

Резюме: зачем выбирают YOLOv8?

  1. Точность: Одна из самых высоких среди моделей реального времени.
  2. Удобство: Очень проста в установке и запуске (pip install ultralytics).
  3. Гибкость: Одна модель решает задачи от детекции до оценки позы.
  4. Сообщество: Огромное количество tutorials, готовых датасетов и предобученных весов (COCO, VOC и др.).

Примечание: В 2024 году вышли обновленные версии (YOLOv9, YOLOv10, YOLO11), которые предлагают небольшие приросты в эффективности или архитектуре, но YOLOv8 остается самой стабильной и широко внедренной версией в производство.

Данные для обучения

Источник:

universe.roboflow.com

-3

-4

-5

Установка инструментов для YOLOv8

Установка YOLOv8:

>>pip install ultralytics

Детали по инструменту: https://pypi.org/project/ultralytics/

Проверка версии:

>>yolo -v

-6

Подготовка

Откройте консоль от имени администратора, разархивируйте папку с датасетом для обучения и перейдите в консоли в разархивированную папку.

В моем случае при обучении используется видеокарта NVIDIA GeForce GTX 1050 Ti, 4096MiB. Для ее использования в системе должна быть установлена система CUDA: https://developer.nvidia.com/cuda-downloads

Проверка CUDA:
>>nvcc --version

Также понадобится инструментарий cuDNN (NVIDIA® CUDA® Deep Neural Network library): https://developer.nvidia.com/cudnn

Потребуется PyTorch с поддержкой GPU:

>>pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

Обучение

yolo detect train data=data.yaml model=yolov8n.pt epochs=100 imgsz=640 batch=16 workers=8

  • model=yolov8n.pt: Берем легчайшую базу. Т.е. обучаем на предобученной модели.
  • imgsz=640 : Хотим сравнить с оригинальной моделью.
  • batch=16: Стандартный размер, можно увеличить если при обучении используется не вся память GPU.
  • epochs=100: Стандартное количество.
  • workers=8: Достаточно чтобы нагрузить GPU

Результат обучения:

-7

Результирующий фал *.pt будет по пути runs\detect\train*\weights.

Оценка качества модели

На сотой эпохе метрика mAP50 = 0.369 (36.9%): Это значит, что в 36.9% случаев модель правильно находит объект и перекрывает его рамкой хотя бы на 50%.

Итоговый результат: mAP50 = 36.9%, mAP50-95 = 24.3%

Это хорошо или плохо?

Для сравнения: Официальная предобученная модель YOLOv8n на полном датасете COCO показывает mAP50-95 около 37-40%.
Мы обучились на
кусочном датасете (7000 картинок против 118,000 в оригинале) и получили 24.3%.
Вердикт: Это отличный результат для кастомного обучения на урезанном датасете. Модель работает.

Анализ по классам (Кто хорошо, а кто плохо)

Модель отлично справляется с крупными объектами и плохо с мелкими, это видно из результирующих логов.

-8

✅ Отлично справляется (Крупные объекты):

  • Giraffe (Жираф): 82.1% (mAP50)
  • Elephant (Слон): 83.0%
  • Bus (Автобус): 58.4%
  • Person (Человек): 65.9%
  • Cat (Кот): 69.9%
  • Почему: Они занимают много места на картинке 640px, легко различимы.

❌ Плохо справляется (Мелкие/Тонкие объекты):

  • Spoon (Ложка): 6.5%
  • Orange (Апельсин): 11.2%
  • Apple (Яблоко): 9.7%
  • Fork (Вилка): 13.9%
  • Почему: Они слишком маленькие даже для 640px или сливаются с фоном. Нашего датасета (7000 фото) недостаточно, чтобы научить nano-модель таким тонким деталям.

⚠️ Не хватило данных:

  • Hair drier (Фен): 0% (Всего 5 изображений в валидации — модель просто не выучила).
  • Toaster (Тостер): 2.3% (Всего 2 изображения).

Вывод по сравнению с оригиналом

Мы хотели сравнить свое обучение с оригиналом.

  • Оригинальная YOLOv8n: Обучена на 118к картинок, разрешение 640.
  • Наша модель: Обучена на 7к картинок, разрешение 640.

Наша модель уступает оригиналу в точности (24% vs 37%), но она специализирована на нашем наборе данных. Если в нашем датасете есть специфические условия освещения или углы съемки, наша модель может работать на них лучше оригинала.


Обучение под Grove Vision AI V2

yolo train detect model=yolov8n.pt data=data.yaml imgsz=192 batch=128 epochs=100 workers=8

Для того чтобы использовать файл модели на Grove Vision AI V2, результирующий файл после обучения *.pt нужно конвертировать в *.tflite

yolo export model="runs\detect\train31\weights\best.pt" format=tflite imgsz=192 int8

После экспорта в корне вы найдете папку yolov8n_saved_model и нужный файл это yolov8n_full_integer_quant.tflite.

Оптимизация графа модели

Установка инструмента:

>>pip3 install ethos-u-vela

После установки в корте папки нужно создать файл vela_config.ini с содержимым:

; file: my_vela_cfg.ini ; -----------------------------------------------------------------------------
; Vela configuration file ; -----------------------------------------------------------------------------
; System Configuration

; My_Sys_Cfg
[System_Config.My_Sys_Cfg]
core_clock=400e6
axi0_port=Sram
axi1_port=OffChipFlash
Sram_clock_scale=1.0
Sram_burst_length=32
Sram_read_latency=16
Sram_write_latency=16
Dram_clock_scale=0.75
Dram_burst_length=128
Dram_read_latency=500
Dram_write_latency=250
OnChipFlash_clock_scale=0.25
OffChipFlash_clock_scale=0.015625
OffChipFlash_burst_length=32
OffChipFlash_read_latency=64
OffChipFlash_write_latency=64
; -----------------------------------------------------------------------------
; Memory Mode
; My_Mem_Mode_Parent
[Memory_Mode.My_Mem_Mode_Parent]
const_mem_area=Axi1
arena_mem_area=Axi0
cache_mem_area=Axi0

Команда на оптимизацию:

vela --accelerator-config ethos-u55-64 \
--config vela_config.ini \
--system-config My_Sys_Cfg \
--memory-mode My_Mem_Mode_Parent \
--output-dir "папка размещения результата
" \
"
путь до файла tflite который требуется оптимизировать"

Установка модели на Grove Vision AI V2

Один из вариантов установки модели на железо, это использование официального онлайн конфигуратора: https://sensecraft.seeed.cc/ai/device/local/36

-9

Купить

Seeed Grove Vision AI Module V2 (1шт) купить в Москве по низкой цене с доставкой | Хобби и отдых | Авито