Обзор Raspberry Pi Camera Module 3 – HDR, автофокус, широкий угол и NoIR камера

За несколько дней до выпуска Raspberry Pi Camera Module 3 с поддержкой HDR и автофокуса, компания Raspberry Pi Trading предложила протестировать новые модули и предоставила три образца: стандартный модуль, Raspberry Pi Camera Module 3 Wide, а также NoIR версию без ИК-фильтра, предназначенную для съемки в условиях низкой освещенности.

Доставка посылки через DHL заняла целую неделю, но теперь появилась возможность протестировать новую Raspberry Pi Camera Module 3, в основном с использованием libcamera, а также Picamera2, уделяя особое внимание новым функциям, таким как HDR, автофокус и широкоугольный объектив. Также был проведен краткий тест Raspberry Pi Camera Module 3 NoIR, но без ИК-подсветки.

Raspberry Pi Camera Modules 3 Wide Noir

Raspberry Pi Camera Module 3 front back

Постоянные читатели знают, что ранее уже были созданы самодельные крепления для камеры из пустых бутылочек от жевательной резинки , и для этого обзора наклейки Lotte XYLITOL были заменены на наклейки CNXSoft.

Raspberry Pi Camera Module 3 review

Начало работы с Raspberry Pi Camera Module 3

При первом использовании камеры возникли некоторые проблемы из-за того, что поиск в интернете привел к устаревшей документации на сайте Raspberry Pi dot org, где рекомендуется включить камеру в настройках и raspi-config. Актуальная документация находится на Raspberry Pi dot com . Проблемы также возникли из-за того, что образ Raspberry Pi OS был загружен месяц назад, и при использовании приложения libcamera-hello для проверки обнаружения камеры выводилось сообщение «no camera is available». После обновления системы через apt все заработало корректно.

Хорошая новость заключается в том, что Raspberry Pi Camera Module 3 работает без дополнительной настройки. Достаточно установить последнюю версию Raspberry Pi OS или обновить существующую, а также убедиться, что используется актуальная документация.

Все три модуля были успешно обнаружены следующим образом:

  • Raspberry Pi Camera Module 3:
    $ libcamera-hello --list-camera
    Доступные камеры
    -----------------
    0 : imx708 [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a)
        Режимы: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (0, 0)/4608x2592 crop]
                                 2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                                 4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

    [Время форматирования: 0.0009 секунд]

  • Raspberry Pi Camera Module 3 Wide:
    pi@raspberrypi:~ $ libcamera-hello --list-camera
    Доступные камеры
    -----------------
    0 : imx708_wide [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a)
        Режимы: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (0, 0)/4608x2592 crop]
                                 2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                                 4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

    [Время форматирования: 0.0003 секунд]

  • Raspberry Pi Camera Module 3 NoIR:
    pi@raspberrypi:~ $ libcamera-hello --list-camera
    Доступные камеры
    -----------------
    0 : imx708_noir [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a)
        Режимы: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (0, 0)/4608x2592 crop]
                                 2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                                 4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

    [Время форматирования: 0.0003 секунд]

Каждый модуль имеет уникальный идентификатор, поэтому при разработке приложений, требующих определения типа камеры, проблем возникнуть не должно.

Во время тестирования с самодельным креплением возникли проблемы с модулем Camera Module 3 Wide: через некоторое время система выдавала ошибки или сообщала о недоступности камеры. Проверка соединения FPC-кабеля не помогла, и появилось предположение о повреждении модуля. Однако выяснилось, что камера была слегка смещена из разъема (она была извлечена для фото).

Raspberry Pi Camera Module 3 connector

После повторной установки и фиксации широкоугольный модуль заработал корректно.

Тестирование HDR и автофокуса с libcamera

Начнем с примеров фото, сделанных с помощью libcamera. Первое фото — без HDR, стандартный модуль:

libcamera-jpeg --rotation 180 --hdr 0 -o rpi-cm3-no-hdr.jpg

Raspberry Pi Camera Module 3 no hdr
Фото 4608 x 2592

Изображение пришлось повернуть на 180 градусов из-за способа крепления модуля. Для просмотра оригинала (конвертированного в WebP) можно кликнуть на фото.

Теперь то же самое с HDR:

libcamera-jpeg --rotation 180 --hdr 1 -o rpi-cm3-hdr.jpg

Raspberry Pi Camera Module 3 HDR

HDR фото с разрешением 2304 x 2196Фото было сделано за несколько часов до заката, и разница не столь значительна, но в HDR-версии лучше видны детали на левой стороне фона. Однако разрешение уменьшилось: с 4608 x 2592 до 2304 x 2196.

Camera Module 3 Sample 9cm no hdr

Пример крупного плана на расстоянии около 9 см от объективаCamera Module 3 (и NoIR) может фокусироваться от 10 см до бесконечности. Объект был размещен близко к камере. На небольшом HDMI-экране изображение выглядело четким, но из-за расстояния около 9 см логотип оказался слегка размытым. Фон размыт из-за фокусировки.

Для тестирования автофокуса при съемке видео использовалось приложение libcamera-vid. HDR был включен.

В условиях хорошего освещения автофокус работает достаточно быстро, даже с включенным HDR. Без HDR скорость автофокусировки немного выше.

Теперь переключимся на Raspberry Pi Camera Module 3 Wide, установленный в том же положении, что и первый модуль.

Raspberry Pi Camera Module 3 Wide Sample No HDR

Пример с широкоугольной камеройБлагодаря большему углу обзора HDR проявляется лучше, становятся видны детали под крышей беседки.

Raspberry Pi Camera Module 3 Wide Sample HDR

Широкоугольная камера – пример с HDRЛоготип Linux Tux/CNXSoft был размещен на том же расстоянии (~9 см от объектива). Благодаря большему углу обзора видно больше бутылки, а изображение четче, так как широкоугольный модуль может фокусироваться от 5 см до бесконечности.

Raspberry Pi Camera Module 3 Wide close up no hdr

Пример крупного плана на расстоянии около 9 см от объективаАвтофокус работает достаточно хорошо в следующем видео.

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

pi@raspberrypi:~ $ libcamera-vid --rotation 180 --hdr 1  -o rpi-cm3-wide-auto-focus-hdr-tux.h264 -t 20000
Made X/EGL preview window
[0:02:40.658604215] [1449]  INFO Camera camera_manager.cpp:299 libcamera v0.0.2+55-5df5b72c
[0:02:40.797061097] [1450]  INFO RPI raspberrypi.cpp:1425 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media4 and ISP device /dev/media2
[0:02:40.797718687] [1449]  INFO Camera camera.cpp:1026 configuring streams: (0) 640x480-YUV420
[0:02:40.797961668] [1450]  INFO RPI raspberrypi.cpp:805 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 2304x1296-SRGGB10_1X10 - Selected unicam format: 2304x1296-pRAA
Halting: reached timeout of 20000 milliseconds.
pi@raspberrypi:~ $ libcamera-vid --rotation 180 --hdr 0  -o rpi-cm3-wide-auto-focus-no-hdr-tux.h264 -t 20000
Made X/EGL preview window
[0:03:19.498184280] [1458]  INFO Camera camera_manager.cpp:299 libcamera v0.0.2+55-5df5b72c
[0:03:19.637463889] [1459]  INFO RPI raspberrypi.cpp:1425 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media4 and ISP device /dev/media2
[0:03:19.638200351] [1458]  INFO Camera camera.cpp:1026 configuring streams: (0) 640x480-YUV420
[0:03:19.638514628] [1459]  INFO RPI raspberrypi.cpp:805 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SRGGB10_1X10 - Selected unicam format: 1536x864-pRAA
Halting: reached timeout of 20000 milliseconds.

Вероятно, это связано с тем, что разрешение при HDR устанавливается на 2304×1296, а без HDR — на 1536×864. Была попытка принудительно установить разрешение 4608×2592 или 2304×1296 в режиме без HDR:

pi@raspberrypi:~ $ libcamera-vid --rotation 180 --hdr 0  -o rpi-cm3-wide-auto-focus-no-hdr-tuxk-.h264 -t 20000 --width 4608 --height 2592
Made X/EGL preview window
[0:06:48.468537458] [1497]  INFO Camera camera_manager.cpp:299 libcamera v0.0.2+55-5df5b72c
[0:06:48.605601452] [1498]  INFO RPI raspberrypi.cpp:1425 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media4 and ISP device /dev/media2
[0:06:48.606294581] [1497]  INFO Camera camera.cpp:1026 configuring streams: (0) 4608x2592-YUV420
[0:06:48.606555655] [1498]  INFO RPI raspberrypi.cpp:805 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 4608x2592-SRGGB10_1X10 - Selected unicam format: 4608x2592-pRAA
ERROR: *** failed to start output streaming ***

Видео записываются в разрешении 640×480:

pi@raspberrypi:~ $ mediainfo rpi-cm3-wide-auto-focus-hdr-tux.h264 
General
Complete name                            : rpi-cm3-wide-auto-focus-hdr-tux.h264
Format                                   : AVC
Format/Info                              : Advanced Video Codec
File size                                : 4.41 MiB
Overall bit rate mode                    : Constant

Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4
Format settings                          : CABAC / 1 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 1 frame
Format settings, GOP                     : M=1, N=60
Bit rate mode                            : Constant
Bit rate                                 : 10 000 kb/s
Width                                    : 640 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 4:3
Frame rate                               : 30.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 1.085


pi@raspberrypi:~ $ mediainfo rpi-cm3-wide-auto-focus-no-hdr-tux.h264 
General
Complete name                            : rpi-cm3-wide-auto-focus-no-hdr-tux.h264
Format                                   : AVC
Format/Info                              : Advanced Video Codec
File size                                : 5.57 MiB
Overall bit rate mode                    : Constant

Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4
Format settings                          : CABAC / 1 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 1 frame
Format settings, GOP                     : M=1, N=60
Bit rate mode                            : Constant
Bit rate                                 : 10 000 kb/s
Width                                    : 640 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 4:3
Frame rate                               : 30.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 1.085

NoIR камера должна демонстрировать лучшие результаты в темноте и ночью, особенно с ИК-подсветкой. Тестирование проводилось ночью с включенным светом.

Camera Module 3 NoIR no hdr

Пример с NoIR камеройОжидалось розоватое изображение, поэтому результат показался необычным. Переключение на стандартную камеру для данной сцены не дало существенных отличий.

RPI Camera 3 no hdr dark scene

Пример стандартной Raspberry Pi Camera 3 в темной сценеТакже была протестирована NoIR камера днем, чтобы убедиться в различии вывода. Как и ожидалось, цвета оказались блеклыми и розоватыми, хотя и не столь выраженными, как примеры с NoIR v2 камеры .

Raspberry Pi Camera Module 3 NoIR day hdr

NoIR камера (день) с HDR

Raspberry Pi Camera Module 3 NoIR no hdr
NoIR камера (день) без HDR

Автофокус в режиме HDR с NoIR камерой ночью не сработал.

Иногда подобные проблемы возникали и днем, что зависит от сцены и условий освещения. Аналогичные проблемы встречаются и с DSLR камерами, но там можно использовать тачскрин или ручную фокусировку. Для Camera Module 3 также возможно реализовать такие функции, но потребуется сенсорный дисплей, энкодер и соответствующее ПО.

Camera Module 3 и Picamera2

В завершение была протестирована Python библиотека Picamera2 , официально выпущенная в сентябре прошлого года. Поскольку она основана на libcamera, тестирование проводилось только со стандартным модулем, чтобы убедиться в корректной реализации новых функций.

Было использовано приложение Qt Picamera2, установленное следующим образом:

git clone https://github.com/raspberrypi/picamera2
python3 picamera2/apps/app_full.py

Приложение запустилось, и вывод камеры отображался как во вкладке Still Capture…

Qt Picamera2 App Still Capture

так и во вкладке Video.

Qt Picamera2 App Video

Окно предпросмотра небольшое из-за использования HDMI-дисплея с разрешением 1280 x 800. На Full HD дисплее результат был бы лучше. Также отображается сообщение «HDR unavailable: install opencv to try it».

Поскольку Picamera2 — это Python библиотека, была попытка установить OpenCV через pip:

pip install --upgrade pip setuptools wheel
pip install opencv-python

Установка заняла около 1,5 часов и завершилась ошибкой из-за отсутствующего файла:

FileNotFoundError: [Errno 2] No such file or directory: '_skbuild/linux-armv7l-3.9/cmake-install/python/cv2/config-3.py'
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for opencv-python
Failed to build opencv-python
ERROR: Could not build wheels for opencv-python, which is required to install pyproject.toml-based projects

После четырех часов попыток выяснилось, что OpenCV следует устанавливать через apt:

sudo apt install python3-opencv

Установка заняла 2-3 минуты, и опции HDR стали доступны, включая выбор количества HDR кадров и настройку гаммы.

Picamera2 HDR Raspberry Pi Camera 3

Приложение предлагает множество других настроек, включая тонкую настройку изображения, панорамирование/зум, AEC/AWB. Также была обнаружена возможность ручной регулировки фокуса с помощью ползунка. Однако при нажатии кнопки «Take photo» Raspberry Pi 4 завис на несколько секунд (индикатор Numlock не реагировал), после чего приложение Qt Picamera2 аварийно завершилось. Проверка ядра показала, что система исчерпала память:

[  362.162878] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=python3,pid=1401,uid=1000
[  362.162950] Out of memory: Killed process 1401 (python3) total-vm:1328976kB, anon-rss:662432kB, file-rss:0kB, shmem-rss:396kB, UID:1000 pgtables:2176kB oom_score_adj:0

Помимо использования Full HD дисплея, рекомендуется запускать Qt приложение на плате с большим объемом ОЗУ, так как тестирование проводилось на Raspberry Pi 4 с 1 ГБ памяти. С утилитами командной строки на основе libcamera подобных проблем не возникало.

Благодарим Raspberry Pi Trading за предоставленные для обзора модули Camera Module 3. Стандартные версии стоят $25, широкоугольные — $35. Их можно приобрести у официальных дистрибьюторов Raspberry Pi.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments