Математические расчёты, стоящие за феноменом роллинг-шаттера

Автор оригинала: JASON COLE
  • Перевод
image

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

Многие современные цифровые камеры используют КМОП-матрицу в качестве своего «чувствительного» устройства, также известную как активный датчик пикселей, который работает путем накопления электронного заряда при падении на него света. По истечении определенного времени – времени экспозиции – заряд построчно перемещается обратно в камеру для дальнейшей обработки. После этого камера сканирует изображение, построчно сохраняя ряды пикселей. Изображение будет искажено, если во время съемки присутствовало хоть какое-то движение. Для иллюстрации представьте съемку вращающегося пропеллера. В анимациях ниже красная линия соответствует текущему положению считывания, и пропеллер продолжает вращаться по мере считывания. Часть под красной линией – это полученное изображение.

Первый пропеллер совершает 1/10 оборота во время экспозиции:

image


Подписывайтесь на каналы:
@Ontol — самые интересные тексты/видео всех времен и народов, влияющие на картину мира
@META LEARNING — где я делюсь своими самыми полезными находками про образование и роль ИТ/игр в образовании (а так же мыслями на эту тему Антона Макаренко, Сеймура Пейперта, Пола Грэма, Джозефа Ликлайдера, Алана Кея)


Изображение немного исказилось, но ничего критичного. Теперь пропеллер будет двигаться в 10 раз быстрее, совершая полное вращение за время экспозиции:

image


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

image


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

image


Пропеллер с большими лопастями:

image


Колесо автомобиля:

image


Мы можем воспринимать эффект роллинг-шаттера как некое преобразование координат реального объекта из «объектного пространства» в «пространство изображения» искаженного объекта. Анимация ниже показывает, что происходит с Декартовой системой координат при увеличении числа оборотов. При малых оборотах деформация незначительна – число увеличивается до единицы, и каждая сторона системы координат последовательно перемещается в правую сторону изображения. Это довольно сложная трансформация для восприятия, но легкая в понимании.

image


Пусть изображение будет I(r,θ), реальный (вращающийся) объект будет f(r,θ), где (r,θ) — это 2D полярные координаты. Мы выбрали полярные координаты для этой задачи из-за вращательного движения объектов.

Объект вращается с угловой частотой ω, а шаттер перемещается по изображению со скоростью v по вертикали. В положении (r,θ) на картинке, дистанция, которую прошел шаттер с начала экспозиции, равна y=rsinθ, где прошедшее с этого момента время равно (rsinθ)/v. За это время объект повернулся на (ω/v)rsinθ) радианов. Итак, мы получаем

I(r,θ)=f(r,θ+(ω/v)rsinθ),

что и является требуемой трансформацией. Коэффициент ω/v пропорционален числу вращений за экспозицию и параметризует трансформацию.

Чтобы получить более глубокое представление об очевидных формах пропеллеров, мы можем рассмотреть объект, состоящий из P пропеллеров, где f является ненулевым только для

θ=2π/P,4π/P…2π=2pπ/P для 1<p<P.

Изображение I является ненулевым для θ+(ω/v)rsinθ=2pπ/P или

image

В Декартовой системе координат оно становится

image

и помогает нам в объяснении причины, по которой пропеллеры принимают S-образную форму – это просто функция арктангенса в пространстве изображения. Круто. Ниже я построил эту функцию с набором пяти лопастей пропеллера с несколько различными начальными сдвигами, вы можете увидеть это на воспроизведении. Они очень похожи на фигуры из анимаций выше.

image


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

image


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

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

Он считает, что мы можем подсчитать количество лопастей, вычитая «нижние» лопасти из «верхних», так мы получаем три лопасти на той картинке. Также мы знаем, что пропеллер прокручивается примерно дважды за время экспозиции, поэтому, если мы попытаемся «отменить» вращение с несколькими различными скоростями, то получим примерно это:

image


Я должен был понять, где находится центр пропеллера, поэтому нарисовал круг. Судя по всему, центр должен быть где-то рядом. К сожалению, одна лопасть отсутствует, но для изображения информации хватает.

Я нашел местечко, где все пересекается больше всего, поэтому, при этой скорости вращения (2.39 оборота за экспозицию), вот как выглядит исходное изображение и лопасти:

image


image


К сожалению, картинка не идеальна, но по крайней мере очень приближена к реальности.

Об авторе: Джейсон Коул – аспирант из Лондона, который горит математикой, физикой и визуализацией данных. Здесь его вебсайт. А статья была опубликована здесь.

Обсуждение на Hacker News

доп. видео









Подписывайтесь на каналы:
@Ontol — самые интересные тексты/видео всех времен и народов, влияющие на картину мира
@META ОБУЧЕНИЕ, где я делюсь своими самыми полезными находками про образование и роль ИТ/игр в образовании (а так же мыслями на эту тему Антона Макаренко, Сеймура Пейперта, Пола Грэма, Джозефа Ликлайдера, Алана Кея)


image

Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory:



Читать еще


SkillFactory
Онлайн-школа по программированию

Комментарии 48

      +1

      Пару раз в год эта тема обязательно всплывает. Ничего удивительного — красиво же, блин ))

      +13
      А в школе мы делали вот так:

      image
        +11
        Хз как вы, а я до сих пор так делаю
          +5
          Ха, а я и так, и вот эдак. Учительницу однажды чуть в ступор не ввёл.
          Сейчас карандашный тест и капель из карандаша вполне можно включить в тест да, карандаша.

          Кап!

          Спасибо за хороший перевод годного описания интересного эффекта.
            +3
            А что собственно за фокус?
              +1
              Реалистичная имитация звука падающей капли.
              Втыкается булавка в карандаш и при некоторой сноровке звук невозможно отличить от настоящего. На ютубе есть примеры =)
              Меня этому бабушка научила в детстве, а она таким развлекалась в своём детстве, так что трюк возможно ещё из позапрошлого века.
                –1
                твердый карандаш таинственным образом становится мягким и плавает
                  0
                  На фотке ссылка же;
            +2

            FTGJ, shutter — это затвор.
            Плюсую.

              0
              Спасибо!
              Отличная статья!
                0
                Кто-нибудь может объяснить, почему при съемке на пленку не было эффекта роллинг-шаттера? Обтюратор ведь крутится, кадр экспонируется не весь одномоментно.
                  +4
                  Смотря какой затвор. Если лепестковый, то кадр, фактически, экспонируется весь одномоментно. В течении открытия и закрытия затвора как-бы изменяется диафрагма.
                  А вот если шторка — то там были эффекты похожего плана :)

                  PS: Мой ответ про фото. Не сразу понял, что вопрос про видео. Видимо, в кинокамерах специально конструируют затвор таким образом, что бы не было таких эффектов.
                    +5
                    Потому что щель обтюратора гораздо шире чем строка пикселей у ПЗС матрицы.
                    Там, где у ПЗС получится застывший пропеллер самолета со странными искажениями, на пленке получится размазанная ерунда странной формы. Теоретически некое подобие ролинг-шаттера можно получить на зеркалках с ламельными затворами с очень короткими выдержками — порядка 1/10000 секунды, но все равно будет смаз.
                      +4
                      Был и на пленочной технике. Только большинство дешевых фотоаппаратов были с центральным затвором — там нет такого эффекта так же как и с обтюратором кинокамеры — они находится не в фокальной плоскости (не в фокусе) и меняют освещенность (почти) сразу всего кадра.
                      А вот для шторного (щелевого) затвора (тот самый роллер шаттер) который стоял в зеркалках типа Зенита — эффект был и в книгах по фотографии описывалось как его минимизировать.
                      В вики есть и старинное фото с этим эффектом: ru.wikipedia.org/wiki/Фокальный_затвор
                        0
                        del
                          0
                          Построчное сканирование матрицы — процесс довольно медленный. Вот тут автор намерял время сканирования в 1/16 секунды.
                          Механический затвор, ЕМНИП, проходит кадр за 1/300 секунды, сответственно, чтобы добиться наркоманских эффектов из поста, нужно фотографировать не пропеллер, а центрифугу
                          0
                          Как я понял, чтобы этого эффекта не было, необходим сенсор с глобальным затвором, когда считывается информация сразу со всего сенсора в огромный и быстрый буфер. Поэтому стоит как крыло от боинга.
                            +2
                            … И скорее всего как раз такие и используются в телескопах. Я имею ввиду телескопах больших, которые в обсерваториях.
                              +1

                              В некоторых CCD камерах, которые используются в качестве детекторов, затвор вообще не используется. Он может быть в положении "постоянно открыт". При этом, для ускорения считывания, реальная площадь матрицы будет в два раза больше чем используемая для экспозиции. У такой камеры NxM пикселей находятся в "тени", а другие NxM — за затвором. После экспозиции в течение заданного времени происходит быстрый перенос изображения из облученной зоны в темную, затем — опциональные keep-clean и прочие maintenance циклы, и экспозиция начинается заново, до того как предыдущее изображение считано через analog-digital converter. Получается минмум простоя, т.к. считывание и экспозиция происходят одновременно.


                              И да, очевидно монохроматическая камера низкого разрешения стоит как крыло от, если не боинга, то хотя бы Cessna.

                                +2
                                А смысл таких манипуляций? И такой потери полезной площади? Если экспозиция — десятки минут, а считывание — миллисекунды.
                                  0
                                  frame-at-once transfer на CCD использовали для ускорения считывания, более ни для чего.
                                    0

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


                                    Для ярких целей возможна ситуация, когда сатурация достигается очень быстро, и единственный способ — делать очень много сверхкоротких экспозиций, чтобы потом сложить изображения на этапе пост-обработки и улучшить сигнал/шум (SNR).

                                      +1
                                      Когда надо снять что-то яркое (например, ракетный выхлоп) ставят через светоделитель несколько камер, у каждой или своя выдержка, или нейтральный светофильтр.
                                        0

                                        Ну у меня есть пример, где навешан модулятор из полуволновой пластинки, анализатор из кальцита, два делителя, чувствительных к длине волны, и на всем этом висит три камеры. Ракетный выхлоп не снимаем, но из простейших примеров — диапазон экспозиции на 2.4м легко меняется в 240 раз — с 0.5 с до 2 мин в зависимости от объекта.
                                        0.5 с конечно все еще дольше чем считывание одного кадра, но на низких скоростях вертикального/горизонтального сдвига для минимизации артефактов считывание одного полного кадра может достигать 0.25 с, что уже сравнимо.

                                          0
                                          А можете ход лучей нарисовать? Просто у меня была задача по дифференциально-интеренференционному контрасту, и я её зафейлил, поскольку не сообразил как распихать камеры без глубокой кастомизации оптики.
                                            0

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

                                              +1
                                                0
                                                Спасибо, жаль, немного не то, что я хотел. Если вкратце описать задачу, то я хотел построить карту лучепреломлений для препарата под миксокопа при методе DIC (математически — производная в одном направлении, т.е. формирвоание изображения билинейное). Для этого описывают востановление по 3 снимкам, когда мы поляризатор и анализатор поворачиваем совместно на 120 градусов, а крутить сложно, дорого и слишком долго для прижизненной съёмки.
                                    +1
                                    А смысл? Куда там спешить…
                                    0
                                    Этот эффект обычно возникает на камерах с «электронным» затвором. К примеру, на телефонах. Зато компактность.

                                    В обычных фотоаппаратах с механическим затвором подобного эффекта нет. Так что как крыло от боинга оно не стоит.
                                      +1
                                      Есть, в т.ч. на плёнке, эффект не даром назван роллинг шаттер, по конструкции затвора.
                                        0
                                        Да, пожалуй с затвором-шторкой можно воспроизвести.
                                      0
                                      Где-то до 500*500 пикселей CCD и CMOS стоят поровну, а потом CMOS выгоднее, и чем больше сенсор, тем разница чувствительнее. Примерно то же с выдержками менее 1мс — CCD быстрее стоит оочень много.
                                        0
                                        Как я понял, чтобы этого эффекта не было, необходим сенсор с глобальным затвором, когда считывается информация сразу со всего сенсора в огромный и быстрый буфер. Поэтому стоит как крыло от боинга.
                                        Вероятно, Pyhesty, автор этой статьи, смог бы квалифицированно прокомментировать.
                                          0
                                          доброго дня, тут много написано, но если я правильно понимаю, вопрос был
                                          «почему в пленочных фотоаппаратах не было эффекта роллингшатра»
                                          на самом деле он был, в классических фотоаппаратах применялась шторка (первая и вторая), которая при коротких экспозиция могла двавать аналогичный эффект. Точно не помню время движения шторки, но оно достаточно длительное. Но либо скорость движения шторок была большой, либо минимальная экспозиция была довольно большой, либо делали мало фотографий в то время =) но я не видел этого эффекта на пленке =)
                                          что же касается сенсором с глобальным затвором, они несколько дороже, у них хуже характеристики и в бытовых камерах и на смартфонах не применяются.
                                          Иногда можно смириться с роллингшатром для научных применений, но нужно учитывать временные диаграммы выноса кадра с сенсора.

                                        +1
                                        image

                                        Симулятор: www.geogebra.org/m/HZQDVMtv
                                          0
                                          Есть моменты, когда он не прорисовывает некоторые линии.
                                          239-240, пропадает пятая лопасть

                                          +3
                                          Технически, скорость света является таким роллинг-шаттером для вращающихся галактик, которые мы наблюдаем под углом. Тут даже была статья про то, что спиральная форма галактик это иллюзия, вызванная таким эффектом. Автор там конечно сильно преувеличил скорость обращения галактического диска.
                                            0
                                            Можно ссылку на статью?
                                            0
                                            А вот если бы можно было наблюдать отдельный квазар — то вполне.
                                            0

                                            Вот интересно, как это всё вяжется с таким понятием, как экспозиция

                                              +2

                                              Плоскость вращения винта на фото не параллельна плоскости фотографии, поэтому не получилось восстановить винт полностью. Надо фотку перепроецировать, тогда должно получиться.

                                                0

                                                Такому эффекту подвержены только CMOS (КМОП) матрицы, в которых экспонирование идет построчно. CCD (ПЗС) таких эффектов не дают, там экспонирование кадра идет целиком. Раньше из-за распространенности ПЗС (в старых камерах) не было проблем с установкой перед пропеллером самолета, теперь через пропеллер так просто не поснимаешь :)

                                                  –4
                                                  Спасибо за очередную бесполезную статью! Хороший тайм-киллер.
                                                    0
                                                    Вот еще интересный пример, основанный на этом же эффекте

                                                      0
                                                      С восстановлением пропеллера будет одна сложность: исказится задний план.

                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                      Самое читаемое