1. Настройка окружения: Raspberry Pi 4 и подключение модуля AI Camera
Введение в курс: Машинное зрение на граничных устройствах
Добро пожаловать на курс «Машинное зрение на Raspberry Pi AI Camera и YOLOv8». Мы начинаем увлекательное путешествие в мир Edge AI — искусственного интеллекта, работающего непосредственно на устройстве, без необходимости отправлять данные в облако. Это критически важно для задач, требующих мгновенной реакции, конфиденциальности и работы при нестабильном интернете.
В этом курсе мы пройдем путь от «железа» до создания собственной системы детекции и сегментации объектов. Наша главная цель — научиться использовать возможности сенсора Sony IMX500, который лежит в основе Raspberry Pi AI Camera. Этот сенсор уникален тем, что имеет встроенный нейропроцессор (NPU), позволяющий обрабатывать изображения еще до того, как они попадут в оперативную память вашего Raspberry Pi.
В этой первой статье мы сосредоточимся на фундаменте: правильной сборке аппаратной части и настройке программного окружения.
Аппаратное обеспечение: Что нам понадобится
Для успешного прохождения курса вам потребуется следующий набор оборудования. Убедитесь, что все компоненты готовы к работе.
1. Raspberry Pi 4 Model B
Это «мозг» нашей системы. Хотя Raspberry Pi 5 уже существует, «четверка» остается золотым стандартом для многих индустриальных проектов благодаря своей стабильности, широкой поддержке сообщества и достаточному количеству линий CSI (Camera Serial Interface) для подключения камер.Рекомендуемые характеристики: * ОЗУ: Минимум 4 ГБ (желательно 8 ГБ для комфортной компиляции и обучения моделей, если вы решите делать это на самом устройстве). * Охлаждение: Обязательно используйте активное охлаждение (вентилятор) или массивный радиатор. Обработка видеопотока и работа с нейросетями существенно нагревают процессор.
2. Raspberry Pi AI Camera
Главный герой нашего курса. Это не просто камера, это интеллектуальный сенсор.Ключевые особенности: * Сенсор: Sony IMX500. * Разрешение: 12.3 мегапикселя. * Встроенный ускоритель: CNN-акселератор, способный выполнять инференс (вывод) нейросетей прямо на матрице.
!Комплект оборудования: одноплатный компьютер и модуль ИИ-камеры
3. Периферия
* Карта памяти: MicroSD объемом от 32 ГБ (класс A1 или A2 для быстрой работы с файлами). * Блок питания: Официальный USB-C блок питания (5.1V, 3A). Качественное питание критически важно для стабильной работы NPU камеры. * Шлейф: Стандартный 15-pin на 22-pin (если используется RPi Zero) или стандартный 15-pin на 15-pin для RPi 4. Обычно идет в комплекте с камерой.Подключение камеры к Raspberry Pi
Процесс подключения требует аккуратности. Интерфейс CSI (Camera Serial Interface) обеспечивает высокую пропускную способность, необходимую для передачи видеоданных.
!Схема подключения шлейфа камеры к порту CSI
Установка операционной системы
Для работы с AI Camera настоятельно рекомендуется использовать последнюю версию Raspberry Pi OS (Bookworm). Старые версии (Bullseye или Buster) могут не иметь необходимых драйверов ядра для IMX500.
Шаги установки:
После загрузки Raspberry Pi выполните обновление системы:
Настройка программного окружения
В современных версиях Raspberry Pi OS (начиная с Bookworm) политика управления пакетами Python изменилась (PEP 668). Теперь нельзя просто так устанавливать пакеты через pip в системное окружение. Мы будем использовать виртуальные окружения.
1. Создание виртуального окружения
Создадим папку для проекта и виртуальное окружение:Активируем окружение (эту команду нужно вводить каждый раз при открытии нового терминала для работы с проектом):
2. Установка библиотек для работы с камерой
Raspberry Pi AI Camera работает на базе стекаlibcamera и rpicam-apps. Убедимся, что необходимые утилиты установлены:3. Установка YOLOv8
Мы будем использовать библиотекуultralytics, которая предоставляет удобный интерфейс для работы с моделями YOLO (You Only Look Once). Это state-of-the-art алгоритм для детекции объектов в реальном времени.В активированном виртуальном окружении выполните:
Также установим PyTorch (обычно подтягивается автоматически, но лучше проверить):
Немного теории: Почему важен интерфейс CSI?
Почему мы не используем USB-камеры? Дело в пропускной способности и задержках. Давайте рассчитаем объем данных, который генерирует камера при передаче несжатого видеопотока, чтобы понять нагрузку на шину.
Формула расчета битрейта () для несжатого видео:
Где: * — битрейт (бит в секунду). * — ширина кадра в пикселях (например, 1920). * — высота кадра в пикселях (например, 1080). * — глубина цвета (бит на пиксель). Для стандартного RGB это 24 бита (8 бит 3 канала). * — частота кадров (FPS, например, 30).
Подставим значения для Full HD потока:
Где: * — количество пикселей в одном кадре. * — количество бит информации на один пиксель. * — количество кадров в секунду. * — итоговая скорость потока данных.
USB 2.0 имеет предел 480 Мбит/с, что явно недостаточно для несжатого видео. USB 3.0 справляется, но создает большую нагрузку на CPU для обработки прерываний. Интерфейс CSI подключен напрямую к GPU/ISP процессора Broadcom на Raspberry Pi, что позволяет обрабатывать этот поток с минимальными задержками и почти нулевой нагрузкой на центральный процессор.
Проверка работоспособности
Перед тем как переходить к сложным задачам, проверим, видит ли система нашу камеру.
Вы должны увидеть в выводе упоминание imx500.
Эта команда включит камеру на 5 секунд.
Создайте файл test_yolo.py:
Запустите скрипт:
Если в папке появился файл result.jpg с обведенным автобусом — поздравляю! Ваше окружение настроено и готово к работе.
Заключение
Сегодня мы подготовили надежный плацдарм для дальнейшей работы. Мы собрали аппаратную часть, установили современную ОС и настроили Python-окружение. Мы также убедились, что библиотека YOLOv8 функционирует.
В следующей статье мы углубимся в процесс подготовки данных: как правильно собирать датасеты с помощью нашей новой камеры и как размечать сегментированные объекты для обучения собственной модели.