Почти любой модуль камеры MIPI на Raspberry Pi (до 21 Мп)
Для начала
Камера — сложное устройство, которому для работы нужен драйвер. Обычно это означает закрытые решения конкретного производителя или вовсе отсутствие выбора. Arducam решает эту проблему для Arduino (камеры Arducam с SPI), Raspberry Pi (Arducam Pivariety), Jetson Nano (проект Jetvariety) и ПК (Arducam USB Camera Shield). Эта статья — о модулях камер MIPI от Arducam для Raspberry Pi.






Камера Raspberry Pi Camera Module V2: в чём проблема
14 мая 2013 года фонд Raspberry Pi выпустил первую плату камеры для Raspberry Pi — на сенсоре OV5647, 5 Мп. Через три года вышла камера V2 (IMX219, 8 Мп) с более высоким разрешением и качеством изображения. Вместе с версиями NoIR (без ИК-фильтра) это всего четыре официальных модуля камер.
Годами у Raspberry Pi не было широкой поддержки камер и драйверов, и пользователям оставалось всего два сенсора: OV5647 на 5 Мп и IMX219 на 8 Мп. Справедливости ради, у обоих неплохая обработка изображения и кодирование JPEG/H.264, и они закрывают большинство простых задач, где нужны приличный снимок или видеопоток. Но ограничение официальными модулями камер явно сузило возможности проектов на Raspberry Pi по характеристикам и функциям.
Какую камеру выбрать для Raspberry Pi
Многие проекты на Raspberry Pi связаны с камерами, и первый вопрос — как подключить камеру к плате. Технически есть как минимум три способа: камеры с SPI, USB-камеры и камеры MIPI.
Камера с SPI — универсальное решение Arducam: она работает на любой платформе с интерфейсами SPI и I2C. USB-камеры подключаются к порту USB и работают с Raspberry Pi как веб-камера — так же, как на любой другой платформе. Камеры MIPI работают на Raspberry Pi надёжнее и «роднее», потому что на плате есть быстрый разъём MIPI CSI-2. MIPI — Mobile Industry Processor Interface, а MIPI CSI-2 — один из самых распространённых интерфейсов для высокопроизводительных камер. Потенциал у него большой, но на Raspberry Pi он раскрыт не полностью.
Камеры с глобальным затвором и ночным видением для Raspberry Pi
Задачам машинного зрения — роботам, беспилотным автомобилям — бывают нужны камеры с глобальным затвором. Глобальный затвор не даёт искажений скользящего затвора при быстром движении объекта, поэтому он важен для обработки изображений: распознавания, обнаружения и отслеживания объектов. Скользящий затвор официальных камер Raspberry Pi даёт заметно смазанные снимки и в таких задачах проигрывает.
Для научных задач нужны сенсоры с высокой чувствительностью вне видимого диапазона, например в ИК- или УФ-диапазоне, и часто достаточно получать данные RAW.
В системе из нескольких камер, например в 3D-сканере, все камеры должны быть синхронизированы — обычно аппаратным сигналом запуска. А кому-то для фотосъёмки просто нужно разрешение выше, чем у нынешней камеры на 8 Мп.
Нынешние модули камер OV5647 на 5 Мп и IMX219 на 8 Мп стали обузой для всей экосистемы Raspberry Pi и ограничивают её возможности.
Камеры MIPI от Arducam: до 21 Мп и 4K — проблема решена
Пока фонд Raspberry Pi устраивает текущее положение дел, Arducam делает шаг вперёд, чтобы открыть дорогу более сложным применениям.
Инженеры Arducam несколько лет решали технические проблемы, и теперь Arducam выпустила недорогую производительную плату камеры для платформы Raspberry Pi. Она позволяет подключать большинство модулей камер MIPI напрямую к штатному порту камеры CSI на Raspberry Pi.
У модулей камер MIPI от Arducam разъём CSI на 22 контакта, как у Raspberry Pi Zero. С SDK и примерами Arducam их легко использовать на Raspberry Pi 4, Pi 3/3B+, Pi Zero и Raspberry Pi Compute Module. Теперь для фотоловушек, камер видеонаблюдения, видеотрансляций на Raspberry Pi, AR/VR, сканирования QR-кодов и других задач можно взять камеру получше.
Драйверы в пространстве пользователя поддерживают базовые функции — зеркалирование и переворот видео, ручную настройку экспозиции и усиления. Проще говоря, Arducam позволяет сочетать камеры промышленного уровня с недорогими процессорами, а это открывает дорогу множеству новых задач машинного зрения. Подробнее о характеристиках и возможностях камер MIPI от Arducam — в документации.
Ниже — неполный список модулей камер, добавленных для Raspberry Pi.
| Сенсор | OV7251 | OV9281 | OV2311 | IMX135 | IMX298 | AR1820 |
|---|---|---|---|---|---|---|
| Разрешение | 0,3 Мп, 640 × 480 | 1 Мп, 1280 × 800 | 2 Мп, 1600 × 1300 | 13 Мп, 4208 × 3120 | 16 Мп, 4656 × 3499 | 18 Мп, 4912 × 3684 |
| Частота кадров при полном разрешении | 100 к/с | 60 к/с (MIPI, 1 линия) | 60 к/с | 10 к/с | 10 к/с | 6,5 к/с |
| Цветной фильтр | монохромный | монохромный | монохромный | цветной, фильтр Байера | цветной, фильтр Байера | цветной, фильтр Байера |
| Тип затвора | глобальный | глобальный | глобальный | скользящий | скользящий | скользящий |
| Формат вывода | 8 бит, оттенки серого | 8 бит, оттенки серого | 8/10 бит, оттенки серого | RAW / YUV 4:2:0 | RAW / YUV 4:2:0 | RAW / YUV 4:2:0 |
| Поддержка V4L2 | по запросу (RFS)* | по запросу (RFS)* | по запросу (RFS)* | по запросу (RFS)* | по запросу (RFS)* | по запросу (RFS)* |
| Управление экспозицией | ручное / программное авто | ручное / программное авто | ручное / программное авто | ручное / программное авто | ручное / программное авто | ручное / программное авто |
| Управление усилением | ручное | ручное | ручное | ручное | ручное | ручное |
| Фокусировка | фиксированный фокус | фиксированный фокус | фиксированный фокус | программируемая | программируемая | фиксированный фокус |
| Зеркалирование/переворот | есть | есть | есть | есть | есть | есть |
| JPEG | есть | есть | есть | есть | есть | есть |
| Кодирование H.264 | есть | есть | есть | есть | есть | есть |
Видеодемонстрация
Демонстрация работы монохромной камеры MIPI формата VGA с глобальным затвором на сенсоре OV7251.
Первая версия демонстрации была сделана на старом драйвере V4L2. Демонстрация нового драйвера в пространстве пользователя — в видео на YouTube.
Камеры MIPI для Raspberry Pi
Чтобы узнать больше о камерах MIPI от Arducam для Raspberry Pi, напишите нам на quote@arducam-russia.ru.


