К содержимому
  1. Главная
  2. Документация
  3. Камеры для NVIDIA Jetson
  4. Быстрый старт с камерами Jetvariety на NVIDIA Jetson

Быстрый старт с камерами Jetvariety на NVIDIA Jetson

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

КраткоЭта страница — руководство по быстрому старту с камерами Arducam на NVIDIA Jetson Nano/Xavier NX/Orin Nano/Orin NX. Для других платформ NVIDIA Jetson смотрите соответствующие страницы: Быстрый старт с камерами Arducam на NVIDIA Jetson AGX Orin.

Подключение

Камера для NVIDIA Jetson Nano/Xavier NX

  • Найдите разъём камеры (CSI) — он на краю несущей платы, напротив контактов GPIO.
  • Осторожно потяните вверх пластиковые края фиксатора разъёма — так, чтобы не оторвать его.
  • Вставьте шлейф камеры контактами к радиатору. Не перегибайте шлейф и вставьте его до упора в разъём.
  • Удерживая шлейф, опустите пластиковый фиксатор на место.

Камера для NVIDIA Orin Nano/Orin NX

  • Найдите разъём камеры (CSI) — он на краю несущей платы, напротив контактов GPIO.
  • Осторожно потяните вверх пластиковые края фиксатора разъёма — так, чтобы не оторвать его.
  • Вставьте шлейф камеры контактами к радиатору. Не перегибайте шлейф и вставьте его до упора в разъём.
  • Удерживая шлейф, опустите пластиковый фиксатор на место.

Схема для NVIDIA Jetson Orin Nano

Шлейф FPC 15–22 контакта

Подключение к NVIDIA Jetson Orin Nano шлейфом 15–22 контакта

Шлейф FFC 22–22 контакта

Подключение к NVIDIA Jetson Orin Nano шлейфом 22–22 контакта

Схема для NVIDIA Jetson Orin NX

Шлейф FPC 15–22 контакта

Подключение к NVIDIA Jetson Orin NX шлейфом 15–22 контакта

Шлейф FFC 22–22 контакта

Подключение к NVIDIA Jetson Orin NX шлейфом 22–22 контакта

Программное обеспечение

Поддерживаемые платформы и версии JetPack/L4T

Какие платформы и версии JetPack поддерживаются на разных NVIDIA Jetson, смотрите на странице:

Поддерживаемые платформы и версии JetPack — камеры Arducam для NVIDIA Jetson

Установка драйвера

Для камер Arducam Jetvariety выполните следующие шаги.

Платы камер Jetvariety:

РазрешениеМодуль камеры
0,3 МпOV7251
2 МпOV2311
1 МпOV9281
2,3 МпAR0234
18 МпAR1820
21 МпIMX230
ПримечаниеПеред установкой драйвера Jetvariety проверьте, поддерживается ли ваша версия JetPack. Если её нет в списке, перепрошейте систему на поддерживаемую версию JetPack.

Шаг 1. Скачайте скрипт установки

cd ~
wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh

Шаг 2. Установите драйвер

chmod +x install_full.sh
./install_full.sh -m arducam

Работа с камерой в программе arducam_displayer

1. Проверка подключения камеры

Прежде чем продолжить, убедитесь, что драйвер камеры установлен.

Проверьте, определилась ли камера

ls /dev/video*

В списке должны быть новые видеоустройства /dev/videoX (X — от 0 до N).

Проверьте поддерживаемые форматы видео

Установите пакет v4l-utils:

sudo apt-get install v4l-utils

Посмотрите, какие форматы и разрешения поддерживает камера:

v4l2-ctl --list-formats-ext
Форматы и разрешения, которые поддерживает камера

2. Запуск камеры

Некоторые программы просмотра видео, например VLC, поддерживают только форматы вроде GRAY и YUV и могут не поддерживать формат Bayer. Для таких случаев Arducam предлагает демо-скрипт на Python: он показывает, как открыть камеру и вывести изображение через OpenCV. В демо-коде важно соблюсти три шага.

ПримечаниеВ официальный образ SD-карты от NVIDIA входит OpenCV 4.1.1 для Python.
  • Задайте параметр apiPreference в VideoCapture как CAP_V4L2.
  • Отключите преобразование в RGB.
  • Сдвиньте биты данных под реальную разрядность выхода камеры и при необходимости преобразуйте цвета.

Установите модуль v4l2 для Python

Для Python 3.x:

wget https://bootstrap.pypa.io/get-pip.py  
sudo python3 get-pip.py  
sudo pip3 install v4l2-fix  

Для Python 2.7:

wget https://bootstrap.pypa.io/get-pip.py  
sudo python get-pip.py  
sudo pip install v4l2  
СоветЕсли нужен pip и для Python 3.x, и для Python 2.7, сначала установите pip для Python 3, затем для Python 2.7 — иначе команду pip перезапишет pip3. Проверить, что версии pip верные, можно командами pip --version и pip3 --version.

Скачайте демо-код

git clone https://github.com/ArduCAM/MIPI_Camera.git  
cd MIPI_Camera/Jetson/Jetvariety/example  

Посмотрите справку по параметрам

ПримечаниеДля L4T 39.2.0 (JetPack 7.2.0) и более новых версий перед запуском arducam_displayer.py установите зависимости:
sudo python3 -m pip install --break-system-packages jetson-stats v4l2-fix
python arducam_displayer.py -d 0
Параметры демо-программы для просмотра

Запустите демо-программу

python arducam_displayer.py

3. Чтение регистров сенсора

Драйвер Arducam MIPI Camera для Jetson Nano позволяет обращаться к регистрам сенсора камеры и платы драйвера через ioctl. Пример использования — в файлах rw_sensor.c и rw_sensor.py.

Справка rw_sensor.py

Справка по параметрам rw_sensor.py

Примеры rw_sensor.py

Чтение одного регистра:

python rw_sensor.py -d 0 -r 0x3500

Чтение нескольких регистров:

python rw_sensor.py -d 0 -r 0x3500 0x3501 0x3502

Запись одного регистра:

python rw_sensor.py -d 0 -r 0x3500 -v 0x01

Запись нескольких регистров:

python rw_sensor.py -d 0 -r 0x3500 0x3501 -v 0x01 0x02

Работа с камерой через GStreamer

Через GStreamer можно работать с модулями камер из списка ниже.

РазрешениеМодуль камеры
2 МпOV2311
1 МпOV9281

1. Формат пикселей

v4l2-ctl --list-formats-ext
Форматы и разрешения, которые поддерживает камера

2. Просмотр изображения

Если вы подключаетесь по SSH, выполните export DISPLAY=:0.

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, format=GAY8, width=2560, height=800 ! videoconvert ! xvimagesink 
format — формат пикселей (Pixel format в выводе v4l2-ctl --list-formats-ext); в команде выше он записан как GAY8, правильно — GRAY8. width, height — разрешение (Size в выводе v4l2-ctl --list-formats-ext). ximagesink — вывод изображения на экран; если не работает, попробуйте ximagesink (xvimagesink), glimagesink, d3dvideosink (Windows).

3. Запись видео

gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,format=(string)GRAY8,width=(int)2560,height=(int)800' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420' ! omxh264enc ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 -e
format — формат пикселей (Pixel format в выводе v4l2-ctl --list-formats-ext). width, height — разрешение (Size в выводе v4l2-ctl --list-formats-ext).

4. Трансляция

4.1. Сервер трансляции

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=GRAY8,width=2560,height=800 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420' ! omxh264enc profile=high cabac-entropy-coding=true insert-sps-pps=true iframeinterval=60 ! 'video/x-h264, level=(string)4.2, stream-format=(string)byte-stream' ! tcpserversink host=0.0.0.0 port=5001 -v

4.2. Клиент трансляции

Выйдите из виртуального окружения, созданного в Anaconda, или установите пакет командой conda install gst-libav -c conda-forge.

gst-launch-1.0 -v tcpclientsrc host=0.0.0.0 port=5001 ! decodebin ! fpsdisplaysink sync=false text-overlay=false

или

gst-launch-1.0 -ve tcpclientsrc host=0.0.0.0 port=5001 ! decodebin ! autovideosink

autovideosink — вывод изображения на экран. Если не работает, попробуйте ximagesink (xvimagesink), glimagesink, d3dvideosink (Windows).

Просмотр в VLC

ВниманиеНекоторые камеры поддерживают захват изображения в VLC. Учтите, что VLC поддерживает не все форматы.

Подготовка

Сначала проверьте, поддерживает ли VLC форматы вашей камеры.

# input the command to check the camera formats
sudo apt-get install -y v4l-utils
v4l2-ctl --list-formats-ext

Запуск VLC

Откройте медиаплеер VLC.

Медиаплеер VLC

Вывод изображения

Нажмите Ctrl+C.

Окно выбора устройства захвата в VLC

В поле «Video device name» выберите «/dev/video0» и нажмите «Play».

Изображение с камеры в VLC

Настройка экспозиции, усиления и частоты кадров

Нажмите Ctrl+E и на вкладке «v4l2 control» настройте ползунки «Exposure», «Gain» и «Frame_rate».

Ползунки экспозиции, усиления и частоты кадров в VLC

Руководство для Arducam ISX031

Для модуля камеры Arducam ISX031 MIPI порядок работы немного отличается — см. ниже.

Камера

АртикулРазъёмОсобенностиОбъективУгол обзора (Д × Г × В)ФокусировкаЧувствительность к ИК
B062322 контакта, сверхуHDR, встроенный ISPM12127° × 97° × 76°Фиксированный фокусИК-фильтр 650 нм

Установка драйвера

(Поддерживаются только JetPack 6.2 / L4T 36.4.3 и более новые версии.)

Шаг 1. Скачайте скрипт установки

cd ~ && wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh

Шаг 2. Установите драйвер

chmod +x install_full.sh
./install_full.sh -m arducam_4lane

Когда появится запрос, как на рисунке ниже, нажмите y и Enter, чтобы перезагрузить устройство.

Запрос на перезагрузку после установки драйвера

Шаг 3. Установите v4l2

sudo apt-get install v4l-utils

Шаг 4. Установите OpenCV

sudo apt install nvidia-opencv-dev

Шаг 5. Проверьте разрешения

v4l2-ctl --list-formats-ext
Список разрешений камеры ISX031

Скачайте демо-программу

git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git

Запустите демо-программу

1920 × 1536 при 60 к/с:

cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 1920 -H 1536 -v 3
Изображение с камеры ISX031 при 1920 × 1536

Переключите разрешение на 1920 × 1080

1920 × 1080 при 60 к/с:

cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 1920 -H 1080 -v 3
Изображение с камеры ISX031 при 1920 × 1080

Сохраните снимок

В окне просмотра нажмите s, чтобы сохранить снимок, и q, чтобы закрыть окно.

Руководство для новой серии Arducam AR0234

Для новой серии Arducam AR0234 порядок работы немного отличается — см. ниже.

Камеры

АртикулРазъёмОсобенностиОбъективУгол обзораФокусировкаЧувствительность к ИК
B057722 контакта, сверхуЦветная, глобальный затворM12100° (Г) × 75° (В)Фиксированный фокусИК-фильтр 650 нм
B057922 контакта, сверхуЦветная, глобальный затворM12100° (Г) × 75° (В)Фиксированный фокусИК-фильтр 650 нм

Установка драйвера

(Поддерживаются только JetPack 6.2 / L4T 36.4.3 и более новые версии.)

Шаг 1. Скачайте скрипт установки

cd ~ && wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh

Шаг 2. Установите драйвер

chmod +x install_full.sh
./install_full.sh -m arducam_4lane

Когда появится запрос, как на рисунке ниже, нажмите y и Enter, чтобы перезагрузить устройство.

Запрос на перезагрузку после установки драйвера

Шаг 3. Установите v4l2

sudo apt-get install v4l-utils

Шаг 4. Установите OpenCV

sudo apt install nvidia-opencv-dev

Шаг 5. Проверьте разрешения

v4l2-ctl --list-formats-ext

Два модуля камер AR0234:

Список разрешений двух камер AR0234

Один модуль камеры AR0234:

Список разрешений одной камеры AR0234

Две камеры AR0234 — демонстрация

АртикулРазъёмОсобенностиОбъективУгол обзораФокусировкаЧувствительность к ИК
B057722 контакта, сверхуЦветная, глобальный затворM12100° (Г) × 75° (В)Фиксированный фокусИК-фильтр 650 нм

Скачайте демо-программу

git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git

Запустите демо-программу

Разрешение по умолчанию — 3840 × 1200.

cd ~/ArducamUVCPythonDemo && python3 arducam_demo.py -v 3
Изображение с двух камер AR0234 при 3840 × 1200

Переключите разрешение на 2560 × 720

python3 arducam_demo.py -W 2560 -H 720 -v 3
Изображение с двух камер AR0234 при 2560 × 720

Переключите разрешение на 1280 × 480

python3 arducam_demo.py -W 1280 -H 480 -v 3
Изображение с двух камер AR0234 при 1280 × 480

Сохраните снимок

В окне просмотра нажмите s, чтобы сохранить снимок, и q, чтобы закрыть окно.

Одна камера AR0234 — демонстрация

АртикулРазъёмОсобенностиОбъективУгол обзораФокусировкаЧувствительность к ИК
B057922 контакта, сверхуЦветная, глобальный затворM12100° (Г) × 75° (В)Фиксированный фокусИК-фильтр 650 нм

Скачайте демо-программу

git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git

Запустите демо-программу

Разрешение по умолчанию — 640 × 480.

cd ~/ArducamUVCPythonDemo && python3 arducam_demo.py -v 3
Изображение с камеры AR0234 при 640 × 480

Переключите разрешение на 1280 × 720

python3 arducam_demo.py -W 1280 -H 720 -v 3
Изображение с камеры AR0234 при 1280 × 720

Переключите разрешение на 1920 × 1200

python3 arducam_demo.py -W 1920 -H 1200 -v 3
Изображение с камеры AR0234 при 1920 × 1200

Сохраните снимок

В окне просмотра нажмите s, чтобы сохранить снимок, и q, чтобы закрыть окно.

Руководство для Arducam AR0822

Для серии Arducam AR0822 порядок работы немного отличается — см. ниже.

Камера

АртикулРазъёмОсобенностиОбъективУгол обзора (Д × Г × В)ФокусировкаЧувствительность к ИК
B058622 контакта, сверху4K HDRM12145° × 120° × 65°Фиксированный фокусИК-фильтр 650 нм

Установка драйвера

(Поддерживаются только JetPack 6.2 / L4T 36.4.3 и более новые версии.)

Шаг 1. Скачайте скрипт установки

cd ~ && wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh

Шаг 2. Установите драйвер

chmod +x install_full.sh
./install_full.sh -m arducam_4lane

Когда появится запрос, как на рисунке ниже, нажмите y и Enter, чтобы перезагрузить устройство.

Запрос на перезагрузку после установки драйвера

Шаг 3. Установите v4l2

sudo apt-get install v4l-utils

Шаг 4. Установите OpenCV

sudo apt install nvidia-opencv-dev

Шаг 5. Проверьте разрешения

v4l2-ctl --list-formats-ext
Список разрешений камеры AR0822

Скачайте демо-программу

git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git

Запустите демо-программу

3840 × 2160 при 15 к/с:

cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 3840 -H 2160 -v 3
Изображение с камеры AR0822 при 3840 × 2160

Переключите разрешение на 1920 × 1080

1920 × 1080 при 60 к/с:

cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 1920 -H 1080 -v 3
Изображение с камеры AR0822 при 1920 × 1080

Переключите разрешение на 1280 × 720

1280 × 720 при 60 к/с:

cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 1280 -H 720 -v 3
Изображение с камеры AR0822 при 1280 × 720

Переключите разрешение на 640 × 480

640 × 480 при 60 к/с:

cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 640 -H 480 -v 3
Изображение с камеры AR0822 при 640 × 480

Сохраните снимок

В окне просмотра нажмите s, чтобы сохранить снимок, и q, чтобы закрыть окно.

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

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