Найти в Дзене
Репетитор IT men

📷 Физика фотографии : откуда берутся артефакты и как это связано с HDR?

Просматривая летние фотографии, я заметил на них трек из изображений птицы. Сразу задался вопросами. В небе летела птица, но рядом с ней были еще 5 её изображений (2 прошлых и 3 будущих) А самоё четкое изображение — центральный кадр (видимо базовая экспозиция) . Это связано с тем, что телефон делает 6 фото с разной экспозицией, а затем автоматически объединяет в одной изображение? Иначе почему получается след из треков быстро движущихся объектов (птиц) ? По фото получается, что мы видим птицу в настоящем, прошлом и будущем 😊 Это классический артефакт, который возникает при съемке в режиме HDR (High Dynamic Range — высокий динамический диапазон). Тогда вопрос, как определить интервал времени между кадрами? Он всегда одинаковый в телефонах или нет? Это самый интересный вопрос. Ответ: интервал не является фиксированной константой для всех телефонов и даже для всех сцен. Он зависит от нескольких факторов: Для начала нам необходим определить размер 1 пикселя на матрице нашей камеры/телефо
Оглавление

Просматривая летние фотографии, я заметил на них трек из изображений птицы. Сразу задался вопросами. В небе летела птица, но рядом с ней были еще 5 её изображений (2 прошлых и 3 будущих) А самоё четкое изображение — центральный кадр (видимо базовая экспозиция) . Это связано с тем, что телефон делает 6 фото с разной экспозицией, а затем автоматически объединяет в одной изображение? Иначе почему получается след из треков быстро движущихся объектов (птиц) ?

Центральный кадр птицы тоже немного размыт, но самый четкий.
Центральный кадр птицы тоже немного размыт, но самый четкий.

По фото получается, что мы видим птицу в настоящем, прошлом и будущем 😊

Это классический артефакт, который возникает при съемке в режиме HDR (High Dynamic Range — высокий динамический диапазон).

Как работает HDR и почему появляются "призрачные" птицы?

  1. Что делает телефон: Чтобы справиться с высоким контрастом между ярким небом и темной землей (зданиями), телефон делает не одно, а несколько кадров подряд с разной выдержкой (один темный для неба, один нормальный, один светлый для теней). Чаще всего это 3 кадра, но в некоторых алгоритмах их может быть 5, 6, 7.
  2. Проблема движения: Если между этими кадрами в кадре что-то движется (птица, машина, человек), алгоритм совмещения не может идеально "уложить" эти объекты друг на друга. В результате он оставляет все их положения, создавая "шлейф" или "призрачное" изображение. В нашем случае — 2 прошлых положения и 3 будущих относительно основного кадра.

Тогда вопрос, как определить интервал времени между кадрами? Он всегда одинаковый в телефонах или нет?

Это самый интересный вопрос. Ответ: интервал не является фиксированной константой для всех телефонов и даже для всех сцен. Он зависит от нескольких факторов:

  1. Суммарная выдержка всех кадров: Алгоритм в первую очередь старается сделать так, чтобы суммарное время съемки (от первого до последнего кадра) было как можно короче. Это нужно, чтобы минимизировать треки от объектов и артефакты движения (как у вас с птицей).
  2. Условия освещения: В условиях яркого заката света достаточно, поэтому выдержка для каждого отдельного кадра будет очень короткой (например, 1/500 сек). Значит, телефон может уложиться в очень маленький общий интервал.
  3. Алгоритм производителя: Каждый бренд (Apple, Samsung, Google, Xiaomi и т.д.) использует собственные алгоритмы HDR. Одни могут делать кадры с практически нулевой задержкой, другие — с небольшой паузой.

Как определить расстояние до объекта по фото?

Для начала нам необходим определить размер 1 пикселя на матрице нашей камеры/телефона/фотоаппарата. Нужно знать физические размеры матрицы и размеры фото в пикселях. Я приведу пример для своего телефона Xiaomi 12X в 12МП-фото-режиме.

-3

Итак, размер пикселя на матрице получился 0.00181 мм.

Само изображение птицы занимает 22 пикселя. Значит размер птицы на матрице можно определить: 22 ⋅ 0.00181 мм = 0.03982 мм.

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

Алгоритм нахождения расстояние от предмета до камеры по фотографии
Алгоритм нахождения расстояние от предмета до камеры по фотографии

Расстояние до птицы [наш объектов, на котором видны артефакты] получилось 112 метров и это реалистично выглядит.

Как оценить временной интервал?

  1. Подсчитаем общее количество позиций птицы. У нас 1 реальная + 2 прошлых + 3 будущих = 6 позиций.
  2. Предполагаемая модель. Вероятно, что телефон делает серию из 5 или 6 кадров для HDR-склейки.
  3. Оценим скорость птицы. Это самая сложная часть. Скорость летящей птицы может варьироваться от 30 до 50 км/ч и выше. Возьмем для примера 40 км/ч ≈ 11 м/с. (тут вариантов мало, приходится брать наугад, потому что интересно определить временное расстояние между кадрами)
  4. Измерим смещение на фото:
    Определим приблизительное расстояние до птицы. Допустим, это 112 метров. Измерим на фото общее расстояние между первой и последней позицией птицы. Переведем его из пикселей в метры, зная примерный угол обзора камеры.
Смещение птицы за время съемки
Смещение птицы за время съемки

1. Определение угла обзора камеры с матрицей Sony IMX766

Для камеры с матрицей Sony IMX766 (1/1.56") и фокусным расстоянием F = 5.59 мм:
Горизонтальный угол обзора (α):
α = 2 × arctan( (ширина_матрицы / 2) / фокусное_расстояние )
α = 2 × arctan( (7.40 мм / 2) / 5.59 мм ) = 2 × arctan(3.70 / 5.59)
α = 2 × arctan(0.662) ≈ 2 × 33.5° ≈ 67°
Вертикальный угол обзора (β):
β = 2 × arctan( (высота_матрицы / 2) / фокусное_расстояние )
β = 2 × arctan( (5.55 мм / 2) / 5.59 мм ) ≈ 2 × arctan(0.496) ≈ 2 × 26.4° ≈ 53°

2. Исходные данные:

  • Смещение птицы: 120 пикселей
  • Расстояние до птицы: d = 112 м
  • Количество кадров: 7 (значит, интервалов между кадрами: 6)
  • Ширина фото: 4096 пикселей (для IMX766 в режиме 12.5 Мп)
  • Горизонтальный угол обзора: α = 67°
  • Предполагаемая скорость птицы: V = 11 м/с

3. Переводим смещение из пикселей в метры (для конкретной камеры

S_pixels = √[(X_последний - X_первый)² + (Y_последний - Y_первый)²]
S_метры = (S_pixels / W_photo) × (2 × d × tan(α/2))

где:
S_pixels - смещение в пикселях (из измерения)
W_photo - ширина фото в пикселях (обычно 4096 для 12Мп)
d - расстояние до птицы (из предыдущих расчетов)
α - горизонтальный угол обзора (67°)

Упрощенная формула для IMX766:

S_метры = S_pixels × (2 × d × tan(33.5°)) / 4096
S_метры = S_pixels × (2 × d × 0.662) / 4096
S_метры = S_pixels × d × 0.000323 = 120 × 112 × 0.000323 = 4.34 метра

4. Определяем общее время съемки серии кадров

Общее_время = S_метры / V = 4.34 / 11 ≈ 0.395 секунды

5. Рассчитываем интервал между кадрами

Δt = Общее_время / (N - 1) = 0.395 / 6 ≈ 0.066 секунды

Время между кадрами: ≈ 66 миллисекунд

Детальная проверка через угловое смещение:

1. Угловое разрешение камеры:
Угол_на_пиксель = α / W_photo = 67° / 4096 ≈ 0.01636°/пиксель

2. Угловое смещение птицы:
θ = S_pixels × Угол_на_пиксель = 120 × 0.01636° ≈ 1.963°

3. Линейное смещение:
S_метры = 2 × d × tan(θ/2) = 2 × 112 × tan(0.9815°)
S_метры = 224 × 0.01713 ≈ 3.84 метра

4. Общее время и интервал:
Общее_время = 3.84 / 11 ≈ 0.349 секунды
Δt = 0.349 / 6 ≈ 0.058 секунды (58 мс)

Итоговый вывод

Интервал между кадрами составляет примерно 58-66 миллисекунд. Это соответствует частоте съемки около 15-17 кадров в секунду для HDR-серии, что вполне реалистично для современных смартфонов в условиях хорошего освещения (закат).

Если вы знаете точную скорость птицы или ее вид (что позволит точнее оценить скорость), результат можно уточнить. Также стоит учитывать, что движение птицы могло быть не строго перпендикулярно оптической оси камеры.

Полученный интервал 60±6 мс хорошо объясняет, почему вы видите четкие отдельные изображения птицы - это достаточно короткий интервал, чтобы птица не успела сильно размазаться за время экспозиции каждого отдельного кадра, но достаточно длинный, чтобы создать заметное смещение между кадрами.

-6

Понравилась статья? Дайте обратную связь в комментариях. Напишите ваше мнение, идеи, мысли 😉

Если Вам нужен репетитор по физике, математике или информатике/программированию, Вы можете написать мне или в мою группу Репетитор IT mentor в VK

Библиотека с книгами для физиков, математиков и программистов
Репетитор IT mentor в VK
Репетитор IT mentor в telegram