Звонок бесплатный по РФ

26.02.2026
127

Расчет экспозиции для Global Shutter: как победить «смаз» на скорости

Expert Guide

Расчет экспозиции для Global Shutter: как победить «смаз» на скорости

Почему 120 FPS и микросекундная выдержка OG02B10 — это стандарт индустрии.

Главная проблема при съемке быстродвижущихся объектов — Motion Blur (размытие в движении). Даже если ваша камера выдает 120 кадров в секунду, без правильно настроенной экспозиции (выдержки) картинка превратится в кашу. В этой статье мы разберем, как камера OG02B10-3271V1 решает эту задачу.

Rolling Shutter (Обычные камеры)

Считывает кадр построчно. Итог: «эффект желе», наклонные линии и искажения формы объекта.

Global Shutter (Ваша OG02B10)

Экспонирует весь кадр одновременно. Итог: мгновенная «заморозка» кадра без геометрических искажений.

Формула «заморозки» движения

Чтобы получить четкий снимок, объект не должен смещаться более чем на 1 пиксель за время открытия затвора. Расчет прост:

Выдержка (сек) = 1 / (Скорость объекта в пикселях/сек)

Для камеры OG02B10 при съемке объекта, движущегося со скоростью 5 м/с, на расстоянии 2 метров, оптимальная выдержка составит около 500 микросекунд (0.0005 сек). Благодаря высокой чувствительности сенсора OmniPixel3-GS™, вы получите яркий кадр даже на такой короткой экспозиции.

Рекомендуемые настройки экспозиции

Сценарий Скорость объекта Режим выдержки
Лицо человека / Медленный робот до 1 м/с 1/500 — 1/1000 сек
Конвейерная лента (склад) 2-5 м/с 1/2000 — 1/5000 сек
Спортивный инвентарь / Дроны 10+ м/с 1/10000 сек и короче
Совет от Kit-Frame: При использовании сверхкоротких выдержек (менее 1/2000) освещенность падает. Используйте импульсные вспышки, синхронизированные через пин STRB (28) нашей камеры, чтобы получить идеально белый фон и четкий объект.

Используйте возможности Global Shutter на 100%

Заказать камеру OG02B10 для скоростной съемки

Deep Tech: Архитектура захвата и аппаратные прерывания

О чем обычно не пишут в даташитах «для всех»:

1. Джиттер затвора (Shutter Jitter) и Frame Latency:

В отличие от USB-камер, где задержка (latency) может плавать от 20 до 100 мс из-за стека ОС, MIPI-интерфейс OG02B10 работает через подсистему V4L2 (Video4Linux2) напрямую с DMA. Использование аппаратного триггера на 29 пине обеспечивает детерминированную задержку старта экспозиции в пределах единиц микросекунд. Это критично для баллистических вычислений и высокоскоростной робототехники.

2. Режим Slave Mode и внешнее тактирование:

Сенсор OG02B10 поддерживает полноценный Slave Mode. Это значит, что вы можете подать внешний мастер-клок (XCLK) для синхронизации нескольких камер на уровне пиксельной частоты. Это позволяет избежать "дрейфа фазы" при создании 360° панорам или VR-систем, где малейшее рассогласование во времени экспозиции левого и правого глаза вызывает дискомфорт (motion sickness).

3. Raw-данные без ISP-процессинга:

Большинство IT-шников привыкли работать с JPEG/H.264. Но для Machine Learning (ML) важны RAW10 данные. Модель 3271V1 передает чистые 10-битные значения с каждого пикселя без "улучшайзеров" и компрессии. Это дает нейросети в 4 раза больше информации в тенях по сравнению с 8-битными USB-камерами, что критично для распознавания объектов при плохом освещении.

* Примечание: Для реализации данных функций на Raspberry Pi требуется прямой доступ к регистрам I2C (через i2c-tools) для настройки PLL (Phase-Locked Loop) сенсора.

Программная реализация захвата (V4L2 + OpenCV Interface)

// Пример инициализации буферов DMA для захвата RAW10 данных с OG02B10

#include 


#include 


// Установка формата кадра напрямую в регистры драйвера
void setup_camera(int fd) {
struct v4l2_format fmt = {0};
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 1600;
fmt.fmt.pix.height = 1300;
// Используем 10-битный формат RAW (Bayer)
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SGBRG10; 
fmt.fmt.pix.field = V4L2_FIELD_NONE;
if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0) {
perror("Ошибка установки формата V4L2");
}
}
// Основной цикл захвата без конвертации (Zero-copy)
int main() {
cv::Mat raw_frame(1300, 1600, CV_16UC1); // Буфер для 10-бит данных
// Программный триггер (Software Trigger) через I2C возможен здесь
// ... захват кадра через VIDIOC_DQBUF ...
// Конвертация Bayer -> BGR только для визуализации
cv::Mat bgr_frame;
cv::cvtColor(raw_frame, bgr_frame, cv::COLOR_BayerGB2BGR);
cv::imshow("OG02B10 High-Speed Stream", bgr_frame);
cv::waitKey(1);
return 0;
}
Deep Tech Insight:

Использование V4L2_PIX_FMT_SGBRG10 позволяет передавать данные по 4 линиям MIPI со скоростью до 6.4 Гбит/с. Это исключает задержки, возникающие при использовании USB-протоколов, и дает возможность алгоритмам (например, на базе TensorRT) обрабатывать каждый кадр за <5 мс.

Сборка проекта (Makefile для Raspberry Pi / Jetson)

# Создайте файл с именем Makefile в папке с проектом и выполните команду 'make'

CXX = g++
CXXFLAGS = -O3 -Wall `pkg-config --cflags opencv4`
LIBS = `pkg-config --libs opencv4` -lpthread
all: capture_raw
capture_raw: main.cpp
$(CXX) $(CXXFLAGS) main.cpp -o capture_raw $(LIBS)
clean:
rm -f capture_raw
Как использовать:
  1. Установите зависимости: sudo apt install build-essential libopencv-dev
  2. Сохраните код C++ в файл main.cpp
  3. Выполните команду make в терминале
  4. Запустите бинарный файл: ./capture_raw

Low-Level Control: Регистры управления I2C (Sensor Address: 0x60)

Прямой доступ к регистрам позволяет изменять параметры экспозиции и ориентации кадра без перезагрузки драйвера ОС. Для изменения используйте утилиту i2cset .

Регистр (Hex) Функция Описание / Значения
0x3820 Flip / Mirror 0x00: Normal, 0x06: Вертикальный переворот, 0x01: Зеркало
0x3500 - 0x3502 Exposure (16-bit) Ручная настройка времени экспозиции (Integration Time)
0x350A - 0x350B Gain (10-bit) Настройка аналогового усиления (ISO) для условий низкой освещенности
0x0100 Stream Control 0x01: Запуск потока, 0x00: Режим ожидания (Standby)
0x3012 System Reset 0x80: Программный сброс всех настроек сенсора
Пример команды в Linux:
i2cset -y 1 0x60 0x38 0x20 0x06 i — мгновенный вертикальный переворот изображения.

Global Shutter vs Rolling Shutter

Посмотрите, как сенсор OG02B10 устраняет искажения при съемке быстро вращающихся объектов (замороженный кадр).

Rolling Shutter Distortion

❌ Rolling Shutter (Искажения)

OG02B10 Global Shutter Clean

✅ OG02B10 (Идеальный кадр)

Технология OmniPixel3-GS™ позволяет камере OG02B10 экспонировать все 2 миллиона пикселей одновременно, фиксируя геометрию объекта без "эффекта желе".

Калькулятор искажений затвора

Рассчитайте допустимую скорость объекта и время экспозиции для Global Shutter. Сравните разницу в «смазе» с обычным Rolling Shutter онлайн.

Похожие статьи
Написать отзыв
Внимание: HTML не поддерживается! Используйте обычный текст.