Skip to content

koorya/strip_photography

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 

Repository files navigation

Щелевая фотосъемка на эффекте rolling shutter

Вступление, идея

Пробегающие мимо неподвижной щели спортсмены. фотофиниш Изображение щели спроецировано на движущуюся фотопленку - в случае без электроники. Либо на линейную матрицу, которая достоточно быстро может выдавать сигнал.

Сканирующий затвор на современных дешевых CMOS матрицах камер дает такой занимательный паразитный эффект.
роллинг шаттер
Это происходит потому что изображение с матрицы снимается построчно, а не сразу со всей матрицы, как в случае с матриц с накоплением заряда.

Родилась идея использования этого эффекта для сканирования изображения щели. Для этого требуется изображение щели продублировать на все пиксели матрицы.
Таким образом, первые строчки пикселей и последние запечатлят одну и ту же щель, но в разные моменты времени. При разрешении 720 линий и частоте кадров 30 Гц на одну милисекунду будет приходится около 20 пикселей. Это означает, что изображение спортсмена со скоростью 36 км/ч займет аж целых 3 последовательных кадра. Один кадр, соответственно, он займет набрав запредельную скорость в 108 км/ч.

Для получения картинки нужно из видеопотока брать только полезные кадры, склеивая их в друг за другом в длинную картинку.

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

Проверка эффекта

Осветил usb камеру с помощью приложения стробоскоп на смартфоне. стробоскоп на андроид Частота мигания плавала, и полосы двигались. Здесь видно, что камера с движущимся затвором, иначе такой картинки не получилось бы. Уменьшать длительность импульса с в приложении было некуда.

Далее собрал стробоскоп на stm32, где уже позволительно выставлять какую угодно длительность импульса. Программировал в stm32 cube ide. Устройство не закончил, просто в режиме дебага руками задавал частоту таймера с шим.
Вебкамера + стробоскоп
Вебкамера + стробоскоп.

Оказалось, что при уменьшении длительности вспышки полоса на экране сужается до поры до времени, а потом скачком расширяется.
Для компенсации слабой яркости камера может включать автоподстройку экспозиции, которая исполнена методом под названием биннинг. Это суммирование значений с пикселей в одно.

Пробовал отключить автоподстройку экспозиции камеры через скайп. После этого другие приложения самостоятельно не включают ее обратно - это хорошо. Можно добиваться тонких линий.

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

Так же здесь видно, что сумма пауз между импульсами вверху и внизу меньше, чем посередине. Видимо, камера делает паузу между снятием кадров. Эта пауза составляет примерно 10% от всего периода. Выходит, 10% информации при использовании 1 матрицы будут неизбежно потеряны.
Но это не столь страшно, как могло показаться. Выше сказано, что спортсмен со скоростью 108 км/ч занимает целый кадр.

OpenCV, насколько я понял, может конфигурировать вебкамеру. Может захватывать видеопоток. Позднее буду захватывать видеопоток скриптами.

Сенсоры

Купил в DNS дополнительно камеру заднего вида от видеорегистратора за 300 рублей. В названии написано VGA. Но пока не ясно какой интерфейс там на самом деле.

При разборке выяснилось, хоть разъем на ней быль HDMI, а в названии фигурировало VGA, на плате распиновка USB, а контроллер гуглится как USB-камера
документация для контроллера
документация для матрицы
Хочется сказать, что судя по документации, этой матрицей достаточно просто управлять, получая на выходе VGA сигнал в формате RGB565 + PCLOCK. Т.к. выходных сигналов с данными 8 штук, а не 16, то требуется еще один внешний регистр для получения 16-битного значения пикселя, который можно напрямую резисторами преобразовать в аналоговый сигнал и подключить к VGA монитору.

Посмотрел внимательно на плату. Оказалось, что к контроллеру подключены всего 4 линии данных. При это на осциллографе эти данные выглядят как регулярные импульсы, на свет не реагирующие. Шина последовательных данных функционирует. Видны серии импульсов. Ни hsync ни vsync ни pclock на контроллер не распаяны. Не уверен, что сенсор именно тот, что в схеме. Для его работы требуется записывать параметры в регистры. список сенсоров камеры
Такие модули на шлейфе стоят 200 рубле на алиекспресс. Родилась идея синхронизировать сразу два модуля, установив их рядом и спроецировав одно и то же изображение. Потом потребуется каким-либо контроллером читать информацию с обоих модулей и конвертировать в общий видеопоток передаваемый по usb или ethernet.

Подключил ее к компьютеру по usb.
замера заднего вида usb
При получении изображения с нее приложением камера виндовс и другими камера выдает изображение буквально на мгновение, а затем выдает черный экран. При переподключении камеры в разъем ситуация повторяется. Пробовал так же подавать 12 вольт на линию 12 вольт. На плате через резистор эта линия заведена на GPIO контроллера. Пробовал снять микросхему памяти. Без нее драйвера установились заново, но изображения не получил совсем.

Оптика

Нашел несколько разных объективов.
Мне дали цилиндрическую линзу из оргстекла. цилиндрическая линза

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

Экспериментировал с цилиндрической линзой и маленьким объективом. установка на пластилине На лист фанеры при помощи пластилина расположил оптические приборы. Изображение на экране из бумаги, казалось, получил. Но при попытке выставить сенсор камеры, изображение было неразличимое.
Необходима оснастка для экспериментов, а так же крупный объектив с возможностью подстройки.

Приобрел пленочный фотоаппарат с полнокадровым объективом. Авито, 600 рублей.
фотоаппарат
оптическая схема объектива индустар-61

Стенд на мебельных направляющих. Укрывал все это одеялом, чтоб не ловить засветку. На большой выдержке даже получил растянутое изображение щели. Но при уменьшении выдершки ничего не было видно, т.к. линза слишком длиннофокусная и практически весь свет теряется.
Стенд на мебельных направляющих

Далее перешел на симуляции в блендере. Результатов пока нет. Будет вариант потом еще купить другой объектив, с еще большим размером кадра.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published