К содержимому
  1. Главная
  2. Документация
  3. Камеры для Raspberry Pi
  4. libcamera и rpicam-apps

libcamera и rpicam-apps

Документация Arducam · перевод arducam-russia.ru

Введение

libcamera — новая программная библиотека для поддержки сложных систем камер непосредственно из операционной системы Linux. На Raspberry Pi она позволяет управлять камерой напрямую из открытого кода, работающего на процессорах ARM.

libcamera предоставляет приложениям API на C++: библиотека настраивает камеру, после чего приложение может запрашивать кадры. Буферы изображений находятся в системной памяти и передаются напрямую в кодировщики фото (например, JPEG) или видео (например, H.264). Вспомогательные функции — кодирование и вывод изображений на экран — в задачи самой libcamera не входят.

В Arducam добавили поддержку большего числа камер RPI и расширили libcamera: автофокус, внешний запуск, функции стробирования, автоматическая загрузка параметров калибровки камеры. Всё это доступно в решении Pivariety и модифицированной версии libcamera.

СоветВ Raspberry Pi OS Bookworm программы для съёмки переименованы: префикс libcamera- заменён на rpicam-. Пока старые имена работают через символические ссылки, но переходите на новые как можно скорее. В версиях Raspberry Pi OS до Bookworm по-прежнему используются имена libcamera-*.

Picamera2 не поддерживается:

  • в образах на основе Buster и более ранних выпусков;
  • в образах Raspberry Pi OS Legacy;
  • в образах Bullseye и новее, где снова включён устаревший стек камеры.

Подробнее о libcamera

Подробнее о libcamera для Raspberry Pi — в руководстве Raspberry Pi по ПО камер (раздел libcamera/rpicam).

libcamera — открытый проект сообщества Linux. Подробности — на официальном сайте libcamera.

Начало работы

Для штатных камер выберите страницу своей камеры:

Список плат штатных камер:

РазрешениеСенсор
5 МпOV5647
8 МпIMX219
12 МпIMX477
12 Мп477M
12 МпIMX708
12 МпIMX378
16 МпIMX519
64 Мп64MP Hawkeye
64 Мп64MP OV64A40
0,3 МпOV7251
1,58 МпIMX296
1 МпOV9281
2 МпOV2311
2 МпIMX290/IMX462/IMX327
ПримечаниеВ Raspberry Pi OS Bookworm программы libcamera-apps переименованы в rpicam-apps. Работают они одинаково.

rpicam-hello

rpicam-hello — аналог программы «hello world» для камеры. Она запускает камеру, показывает окно предпросмотра и больше ничего не делает. (В версиях Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-hello.) Пример:

rpicam-hello

Чтобы посмотреть все параметры, запустите программу с ключом --help:

rpicam-hello --help
Другие параметры и опции — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-hello.

rpicam-jpeg

rpicam-jpeg — простая программа для съёмки фото. В ней намеренно нет части дополнительных функций rpicam-still, которая старается полнее повторять raspistill. Поэтому её код заметно проще, а на практике она умеет многое из того же. (В версиях Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-jpeg.)

Чтобы снять JPEG в полном разрешении, выполните:

rpicam-jpeg -o test.jpg

Чтобы посмотреть все параметры, запустите программу с ключом --help:

rpicam-jpeg --help
Другие параметры и опции — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-jpeg.

rpicam-still

rpicam-still очень похожа на rpicam-jpeg, но поддерживает больше параметров устаревшей raspistill. (В версиях Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-still.) Один снимок делается так же:

rpicam-still -o test.jpg

Непрерывная автоматическая съёмка

Автоматическая серийная съёмка: 1 кадр в секунду в течение 5 секунд.

rpicam-still -t 5000 --datetime -n --timelapse 1000

Чтобы посмотреть все параметры, запустите программу с ключом --help:

rpicam-still --help
Другие параметры и опции — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-still.

Автофокус и ручная фокусировка

СоветДля камер с мотором фокусировки в Arducam добавили параметры автофокуса: однократный и непрерывный. У разных камер свои команды — выберите свою камеру в списке:

Камеры Arducam 16MP/64MP с автофокусом

Непрерывный автофокус

rpicam-still -t 0 

rpicam-still -t 0 --autofocus-mode continuous

Однократный автофокус

rpicam-still -t 0 --autofocus-mode auto

Ручная фокусировка

Установка libcamera-tools

Управление с клавиатуры

Клавиши управления фокусом (в окне журнала libcamera):

  • f + Enter — однократная автофокусировка;
  • a + Enter — увеличить позицию объектива (шаг — 1 единица);
  • d + Enter — уменьшить позицию объектива (шаг — 1 единица).

Порядок работы:

  1. Выполните команду, чтобы перейти в режим предпросмотра.
  2. Управляйте с клавиатуры в окне журнала libcamera.
  3. Вводите «a» или «d» и нажимайте Enter, чтобы сдвинуть фокус.
  4. Когда нужно, введите «f» и нажмите Enter для быстрой автофокусировки.
rpicam-still -t 0 --autofocus-mode manual -k 

Позиция объектива

rpicam-still -t 0 --autofocus-mode manual --lens-position 5

Автофокус перед съёмкой

rpicam-still -t 0 --autofocus-on-capture

Диапазон фокусировки

# Normal
rpicam-still -t 0 --autofocus-range normal

# Close Focus
rpicam-still -t 0 --autofocus-range macro

Модули камер OV5647/IMX219 и IMX477

ПримечаниеДля автофокуса камерам IMX219, OV5647 и IMX477 нужен специальный файл настроек (tuning file).

Подробности и порядок действий для этих модулей камер — в документах быстрого старта:

rpicam-vid

rpicam-vid — программа для записи видео. По умолчанию она использует аппаратный кодировщик H.264 Raspberry Pi, показывает окно предпросмотра и записывает закодированный поток в указанный выход. (В версиях Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-vid.) Например, чтобы записать в файл 10 секунд видео, выполните:

rpicam-vid -t 10000 -o test.h264

Для камер с мотором фокусировки в Arducam добавили параметры автофокуса: однократный и непрерывный.

Однократный автофокус:

rpicam-vid -t 0 --autofocus-mode auto

Автоматическая серийная съёмка: 1 кадр в секунду в течение 5 секунд.

rpicam-vid -t 5000 --datetime -n --timelapse 1000

Чтобы посмотреть все параметры, запустите программу с ключом --help:

rpicam-vid --help
Другие параметры и опции — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-vid.

rpicam-raw

rpicam-raw похожа на программу записи видео, но записывает сырые кадры Bayer прямо с сенсора. Окна предпросмотра у неё нет. (В версиях Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-raw.) Чтобы записать 2 секунды сырых кадров, выполните:

rpicam-raw -t 2000 -o test.raw

Чтобы посмотреть все параметры, запустите программу с ключом --help:

rpicam-raw --help
Другие параметры и опции — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-raw.

Запросить цену

Укажите количество — пришлём коммерческое предложение.