С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?
Да-да, такие тоже бывают не только в компьютерной графике, но и в фотографии: попробуйте-ка это объяснить оперируя исключительно в терминах "тонкой линзы"! Размер изображения предмета в таких системах (почти) не зависит от того на каком расстоянии от объектива они находятся и это весьма удобно для измерения размеров. В этой статье мы поговорим о том как этого удается добиться, как в фотоаппаратах работает фазовый автофокус, что такое пленоптические камеры и о многих других интересных вещах
Конечно совсем обойтись без упоминания "тонкой линзы" нам не удастся :). Поэтому давайте совсем коротенько напомним что это за штука. "Тонкая линза" определяется
1) некоторой точкой ("центром линзы" / "lens center")
2) проходящей через эту точку плоскостью ("главная плоскость" / "principal plane") или (что эквивалентно) прямой линией перпендикулярной этой плоскости ("ось линзы" / "lens axis", "principal axis")
3) числом которое называется "фокусным расстоянием" ("focal length") и связанной с этим числом парой точек находящихся на оси линзы и удаленных от ее центра на соответствующее расстояние: "передняя фокальная точка" и соответственно "задняя" (principal foci, front / back focal points):
"Тонкая линза" влияет на лучи света проходящие через нее по трем простым правилам
Линза переводит пучок прямых проходящих через одну точку в пучок прямых тоже проходящих через одну точку
Лучи проходящие через центр линзы никогда не меняются
Если лучи (или их продолжения) проходят через фокальную точку то при прохождении главной плоскости они переходят в лучи параллельные оси линзы
Этих правил достаточно для того чтобы описать то как тонкая линза формирует изображение для любой точки. Мы просто проводим один луч из интересующей нас точки через центр линзы а второй через фокальную точку и их пересечение согласно правилу (1) даст точку через которую пройдут любые другие лучи - я думаю что многие еще помнят как занимались этим в школе. Из геометрии можно вывести и алгебраические соотношения:
Для объекта в плоскости параллельной главной плоскости линза строит изображение тоже в плоскости параллельной главной
Если фокусное расстояние линзы f, расстояние от главной плоскости до плоскости объекта равно v а расстояние до плоскости изображения b как на рисунке выше то
Что известно как формула тонкой линзы aka thin lens equation. Линейные размеры изображения при этом пропорцинальны линейным размерам самого объекта, но меньше (или больше) оригинала в раз.
Дальше это все весьма естественным образом можно обобщить. Например важный частный случай с пучком параллельных прямых можно рассматривать как точку находящуюся на бесконечности, в этом случае v или b равны ∞ а обратные к ним величины и соответственно обращаются в ноль. Кроме того v и b можно (и нужно) рассматривать как знаковые величины где отрицательное значение говорит о том что точка пересечения лучей находится на "неправильной" стороне линзы. Например если то
"Неправильность" тут состоит в том что если мы заменим вымышленные математические линии на реальные лучи света, то поместив лист бумаги на "правильную" сторону мы получим на нем светящуюся точку, а на "неправильной" - нет, т.к. там находятся не сами лучи света а лишь их вымышленное продолжение. Поэтому хотя кажется что b и v удобнее было бы задать в общей системе координат (коль уж мы все равно взялись за знаковые числа), в "канонической" форме они соответствуют движению в разные стороны (увеличение b соответствует движению "вправо" на нашей картинке а увеличение v - движению "влево"). Зато получение отрицательного значения в такой формулировке сразу говорит о том что изображение получается "мнимым".
Наконец отрицательным может быть и значение фокусного расстояния, f. Если положительные значения соответствуют "выпуклой" линзе, то отрицательные - "вогнутой". Как нетрудно понять из формулы тонкой линзы, вогнутая линза может формировать только мнимые изображения. В фотографии объектив с таким фокусным расстоянием будет не применим
Дальше в школе обычно говорит что реальные объективы можно приближенно описывать приближением тонкой линзы и на этом программа заканчивается. Посмотрим как ее положения можно применить на практике. Например если мы фотографируем объективом с фокусным расстоянием f=50мм человека на расстоянии v=2 метра то изображение будет сформировано объективом на расстоянии d=51.28 мм от главной плоскости линзы. Если человек скажем был ростом 1.8 метра, то его изображение будет в (2000/51.28) раз меньше и составит 46.15мм - слишком много чтобы вписаться в размеры кадра 35-мм фотопленки (36x24мм). Но если человек отойдет чуть подальше, то с расстояния в v=4 метра его изображение будет сформировано на расстоянии d=50.63мм и будет уменьшено в (4000/50.63) раз, то есть составит 22.78 мм - почти ровно вдвое меньше и как раз достаточно чтобы уместиться и в вертикальном и в горизонтальном положении кадра. Для того чтобы сфокусироваться на отошедшем подальше человеке нам понадобится переместить объектив всего на 0.65 мм относительно пленки.
Все логично и просто, не правда ли? И совершенно непонятно как отсюда может получиться ортографическая проекция.
До сих пор в нашем "школьном" мире все объекты которые мы рассматривали были плоскими и располагались в плоскостях параллельных главной плоскости линзы. Но в реальности, конечно, объекты имеют объем и их изображения которые формирует линза, соответственно, являются конечно не плоскими. Пока объекты достаточно сильно удалены от фотоаппарата, как мы могли наблюдать выше, линза довольно сильно "сплющивает их" - исходный отрезок по дальности от 2 до 4 метров из фотографии в примере выше линза 50-мм "сплюснула" в отрезочек от 18.5 до 18.75 мм. Но по мере приближения линзы к объекту съемки изображения объектов быстро набирают "объем". И если точка точно попавшая на плоскость сенсора изображения так и запечатлевается сенсором как точка, то точка оказавшаяся на некотором расстоянии от фокусной плоскости просто освещает его с некоторого удаления. Нетрудно предположить что изображением подобной точки-вне-фокуса окажется диск ("кружок нерезкости" / "circle of confusion")
Однако каковы будут размеры этого диска? Из картинки приведенной выше следует что они будут определяться диаметром самой линзы. Чем линза больше - тем больше будет получаться кружок нерезкости.
В пределе для неограниченно большой линзы кружок нерезкости тоже получится неограниченно большим и никакого изображения кроме идеально попавшего в плоскость сенсора мы просто не увидим. Таким образом мы впервые сталкиваемся с тем что одной лишь идеальной линзы для формирования изображения недостаточно.
Но что же происходит? Оказывается что происходящее удобно описывать в терминах отсечения лишнего света. Если у нашей линзы кружок нерезкости "слишком большой" то у него надо просто "обрезать лишнее". Например поставив перед нашей линзой перегородку с отверстием
Эта перегородка называется в камере "диафрагмой" (diaphragm) а отверстие в ней - "апертурой" (aperture) и они крайне важна для формирования изображения. Диафрагма в объективе есть всегда - например у линз конечного диаметра диафрагмой, если в оптическую схему не было добавлено ничего другого будет выступать оправа линзы. Более того - если у нас есть диафрагма то мы можем полностью убрать линзу и все равно получать изображение. Да-да, я говорю про старинную конструкцию известную как камера-обскура (pinhole camera)
Надо сказать что в компьютерной графике и вообще при упрощенном моделировании камер в системах технического зрения де-факто практически всегда используется именно модель камеры-обскуры а не тонкой линзы. По очевидным причинам "фокусного расстояния" в камере-обскуре нет, но его полным (и обычно синонимичным) эквивалентом выступает расстояние от центра диафрагмы до задней стенки подобного "фотоаппарата" (плоскости изображения, image plane). Центр подобной камеры находится в центре диафрагмы а осью выступает прямая перпендикулярная плоскости изображения
Заметим что это если мы определим ободок тонкой линзы как диафрагму, то центр такой диафрагмы совпадет с центром тонкой линзы. А поместив сенсор на расстоянии фокусного расстояния мы получим фокусное расстояние совпадающим с расстоянием от этого центра до плоскости изображения. То есть в этом случае определения по сути равнозначны. Но что будет если мы их разделим?
Давайте вернемся к нашему примеру с 50-мм линзой снимающей двух человек стоящих на разном расстоянии. Зеленые стрелки - это то что мы фотографируем, а красные - их изображения, которые я немного преувеличил для наглядности. Красная стрелка от человека стоящего вдвое дальше вдвое меньше, все ожидаемо. Правда она не совсем лежит в плоскости сенсора, но это же не влияет особо ни на что, верно?
А теперь давайте поставим где-нибудь перед объективом диафрагму и построим ход лучей через нее
Для объекта который находился в фокусе ничего не поменялось, но что произошло с изображением объекта который не был в фокусе? Его проекция на плоскость сенсора оказалась значительно меньше самого изображения и составляет не 1/2 а лишь 1/3 от изображения большего объекта! Более того, если мы закрутим диафрагму до состояния точки и посмотрим на получившийся ход лучей, то нетрудно будет заметить что при наличии дифрагмы наш "объектив" для всех четырех показанных синих стрелок построит одну и ту же проекцию (красная стрелка). Просто в силу того что никакие другие лучи света кроме как проходящие через диафрагму не смогут достичь сенсора.
Другими словами центр перспективы у показанной камеры находится в центре диафрагмы а отнюдь не в центре линзы! Если бы мы попытались заменить ее камерой-обскурой, то располагать ее бы пришлось там где находится диафрагма, а не там где находится линза. Однако "задняя стенка" у подобной эквивалентной камеры-обскуры из-за наличия линзы оказалась бы совпадающей с расположением ближайшего к нам человека.
Конечно "заднего" человека мы бы, расположи подобным образом реальную камеру, не увидели, но в рамках чисто геометрических построений мы можем построить ход лучей сквозь эту стенку и получить его изображение (красная стрелка). Нетрудно видеть что мы снова получили тот же результат - ее высота составит примерно 1/3 от высоты зеленой стрелки. Если наша "мнимая" камера Вам не очень нравится, то (пренебрегая размерами кружка размытия) ее можно симметрично отразить относительно центра диафрагмы - на геометрию происходящего в камере-обскуре это не влияет:
Немного неожиданный результат, правда? В сжатой форме его можно выразить следующим образом: увеличение объектов находящихся не в фокусе может изменяться. В нашем примере изображение дальнего человека оказавшегося не в фокусе "уменьшилось" относительно размера его действительного изображения который построила камера. Если мы попытаемся перефокусировать камеру не меняя положения диафрагмы то размер дальнего человека по мере фокусировки будет увеличиваться. Но можно показать что одновременно с этим по мере расфокусировки будет увеличиваться и изображение близко расположенного человека, тогда как соотношение размеров (перспектива) будет оставаться одним и тем же - "ближний" всегда будет втрое больше "дальнего".
Интересный сюрприз, не правда ли? На самом деле он свойственен даже нашей "линзе в оправе" с которой мы начинали рассказ. На рисунке ниже показано как размытое изображение объекта не в фокусе камеры немного увеличивает свой размер при проекции на плоскость сенсора.
Другой вопрос что для съемки более-менее удаленных объектов правда это почти незаметно - изображения формируются настолько близко к плоскости сенсора что несмотря на проекцию "под углом" финальная разница все равно получается невелика. Однако если мы делаем какой-нибудь макрообъектив или хотим что-то померять на картинке с высокой точностью то пренебречь этим уже не получится.
Что же можно тут сделать? Давайте вернемся обратно к картинке с построением хода лучей через диафрагму
Наша диафрагма в этом примере находилась слева от линзы. Однако справа я нарисовал еще одну пару черточек через которую проходят наши лучи света - это изображение диафрагмы которое построила линза. Вместо того чтобы строить линии слева от линзы мы могли бы просто сразу провести их справа от линзы через это изображение и изображение объектов и получить тот же самый результат. Это изображение называют выходным зрачком объектива (exit pupil) и оно как мы видим играет важную роль в построении изображения.
А теперь внимательно следите за руками. Поскольку речь идет об изображении а не о реальном предмете, то мы его можем поместить где угодно. Например в нашем примере выше выходной зрачок находился за плоскостью изображения. Глядя на рисунок выше нетрудно сообразить, что если мы не хотим чтобы размеры изображения менялись при расфокусировке и проецировались на плоскость сенсора, так сказать "ортогонально", то выходной зрачок целесообразно удалить на как можно большее расстояние вправо. А в идеале - увести его на бесконечность, благо что для этого достаточно поместить диафрагму в фокус нашей линзы. "Изображение зрачка на бесконечности" при этом надо понимать в проективном смысле: это набор точек на бесконечности, каждая из которых соответствует набору направленных в определенном направлении паралелльных прямых. То есть для любой выбранной точки набор прямых соединяющих ее с этим изображением на бесконечности - это набор проходящих через нее прямых в определенном диапазоне углов, а проще говоря - конус. Поскольку изображение зрачка находится на бесконечности, то конусы для разных точек будут отличаться только сдвигом. Выглядит это вот так:
Центры кружков нерезкости проецируются параллельно оси линзы а кружки нерезкости определяются конусами одинакового диаметра с центрами в вершине генерирующей их точки изображения. Работающие по этому принципу объективы называются телецентрическими (telecentric) а точнее телецентричными по изображению (image-side telecentric). Помимо того что размеры изображения в таких объективах не изменяются при перефокусировке, лучи света в них падают на сенсор почти перпендикулярно что является существенным бонусом для современных цифровых сенсоров которые плохо улавливают свет падающий на них под углом.
Дополнение от AndreyWinter:
Поскольку телецентрические объективы встречаются реже чем хотелось бы (особенно в системах унаследованных еще от "пленки"), цифровые сенсоры часто делают со встроенными механизмами компенсации негативных эффектов для не-телецентрической оптике. Для этого на сенсоре перед светочуствительными пикселями располагают массив микролинз которые во-первых концентрируют падающий на пиксель в сравнительно небольшом объеме чувствительном к свету чтобы уменьшить потери на границах пикселей, а во-вторых ставятся с небольшим смещением таким образом чтобы эффективнее собирать свет падающий на сенсор под углом.
До сих пор мы рассматривали пример в котором диафрагма была слева от линзы (на стороне объекта) или как их еще называют объективы с вынесенной апертурой или вынесенным зрачком входа. Подобные изделия нередко используют для создания скрытых камер, потому что снаружи у них нет линзы - для стороннего наблюдателя она прячется за маленьким отверстием диафрагмы, ну а "дырочку" диафрагмы замаскировать обычно довольно просто.
Однако мы разумеется можем расположить диафрагму и справа от линзы. В этом случае все будет "работать" точно так же как и при расположении диафрагмы слева, только в ее роли окажется не сама диафрагма а ее изображение построенное объективом. Это изображение называют входным зрачком объектива (entry pupil) и центр этого изображения как мы уже разбирали выше является точкой центра перспективной проекции. И да - как Вы уже догадались, поскольку это изображение а не реальная диафрагма, то мы можем его свободно двигать туда-сюда и даже утащить на бесконечность, поместив диафрагму в фокус линзы со стороны изображения. Такой объектив называют телецентрическим со стороны объекта (object-side telecentric) и да - Вы угадали, при помещении точки перспективы на бесконечность объектив дает ортогональную проекцию.
Смотрите как интересно - линза у нас осталась той же самой, изображения красных стрелочек которые она строит у нас по-прежнему разные но их проекции на плоскость изображения из-за выбора диафрагмы теперь одинаковы с точностью до кружка нерезкости. Единственной проблемой у такого объектива является то что размеры изображений объектов по-прежнему меняются при его перефокусировке. Это неудобно и потому существуют полностью телецентрические (bi-telecentric, dual-telocentric, double-side telecentric) объективы в которых на бесконечность одновременно вынесены и входной и выходной зрачок.
Такую схему уже нельзя описать одной тонкой линзой - они принципиально состоят из передней и задней групп линз имеющих общую фокусную плоскость в которую и помещают диафрагму. Их еще называют афокальными системами (afocal lens system) поскольку такая группа линз не имеет обычных фокальных точек (номинально она имеет бесконечно большое фокусное расстояние). Подобные конструкции позволяют в техническом зрении получать например вот такие фотографии:
В этот момент читатель наверное задумается - если эти линзы обладают такими необыкновенными свойствами, то почему он никогда не встречал их в жизни? Причиной тому является то что фотографы называют виньетированием. Давайте возьмем наш "ортографический" объектив и посмотрим на конус лучей проходящих через диафрагму
Любые лучи вне этого конуса не пропустит диафрагма и это принципиально важный момент - без него наша линза просто не будет работать! Однако если мы сместим точку достаточно далеко от объектива, то часть лучей в конусе просто перестанет попадать в объектив
В силу закона сохранения энергии яркость изображения такой точки окажется меньше - ведь мы теряем часть света относительно случая когда точка была ближе к объективу и могла уловить его весь. То же самое случится если точка будет расположена далеко от оси объектива
Наконец если точка находится слишком далеко от оси, то ни один из лучей которые могут пройти диафрагму просто не попадет в объектив. Это не значит что свет от точки не попадет в объектив совсем, но диафрагма его отрежет полностью и никакого изображения точки мы получить принципиально не сможем
Таким образом у такого объектива можно выделить четыре зоны видимости. В первой - зеленой - объекты изображаются с одинаковой яркостью независимо от расстояния.
Во второй - желтой - яркость объекта падает с расстоянием от линзы и от центра изображения. В третьей - оранжевой - объект виден только через его пятно размытия на границе изображения. Наконец вне цветных зон точка не будет видна совсем. Легко видеть что размеры полезного поля зрения у подобного объектива определяются размером входной линзы. Если мы хотим фотографировать объекты размером в 1 метр - нам понадобится линза диаметром тоже в 1 метр.
Отчасти это ограничение можно обойти склеивая панораму (благо что для ортографической проекции это почти тривиально) но в общем случае виньетирование сильно мешает использованию любого объектива у которого входной зрачок находится сильно вне объектива поскольку лучи света должны одновременно проходить и через зрачок и через входную линзу объектива. А жаль - представляете сколько интересного можно было сделать если бы вместо того чтобы подходить поближе к объекту съемки (или наоборот подальше) можно было бы просто подвинуть точку перспективы переместив внутри объектива диафрагму?
На этот счет кстати существует распространенное заблуждение что перспектива съемки определяется фокусным расстоянием объектива. Это не так - фокусное расстояние влияет только на увеличение изображения и больше ни на чего. Обратите внимание на относительные размеры мусорного бака и кораблей на заднем плане - оно остается неизменным.
А вот что влияет на перспективу так это расстояние от входного зрачка линзы до предмета съемки. Другой вопрос что изменение увеличения изображения позволяет отойти подальше или наоборот подойти поближе к объекту съемки, сохранив при этом желаемые размеры объекта на изображении. И теоретически можно было бы добиваться того же эффекта, одновременно меняя фокусное расстояние и положение диафрагмы внутри объектива, но увы - размеры, вес и цена у подобной камеры получились бы неприличными.
Впрочем даже виньетированию в технике при желании можно найти интересное применение и примером тому выступает конфокальный микроскоп.
В конфокальном микроскопе входной зрачок небольшого размера целенаправленно помещают прямо в интересующую нас точку внутри объекта. В этом случае оказавшиеся внутри зрачка точки видны на изображении ярко, а удаленные от него - тускло и это позволяет получить четкое изображение тонкого среза внутри полупрозрачного объекта несмотря на "заслоняющие" интересующую нас плоскость слои материала выше и ниже.
Но вернемся обратно к нашим объективам. Если мы возьмем излучающую свет точку, то объектив собирает от нее ту часть излучаемого света которая проходит через входной зрачок. Чем дальше находится точка - тем больше должен быть входной зрачок чтобы собрать от нее то же количество света. Таким образом способность объектива собирать свет определяется соотношением где D - диаметр входного зрачка а z - расстояние до излучающей свет точки, а если быть более точным - то
где - это общее количество света излучаемого точкой вправо если считать что это излучение равномерно распределено по всем направлениям. Но поскольку для подавляющего большинства объективов и условий съемки то на практике можно считать просто
Однако когда объектив формирует изображение, то одно и то же количество собранного света он может либо собрать на небольшой поверхности, либо наоборот размазать по большой площади. Если наш объектив сформирует изображение в том же масштабе что и исходный объект, то его яркость будет соответстовать яркости исходного объекта уменьшенной соразмерно количеству собранного объективом от него света: . Но если у нас объектив увеличивает это изображение в M раз, то яркость окажется в раз меньше: . Ну а как считать увеличение для объекта находящегося в фокусе мы уже знаем: если от плоскости линзы до объекта расстояние равно (d) а фокусное расстояние объектива равно (f), то из формулы тонкой линзы увеличение . При этом для большинства объективов а для большинства условий съемки . Отсюда следует что приближенно можно считать что . Ну а яркость изображения соответственно приближенно получится . Безразмерное соотношение (диаметр входного зрачка к фокусному расстоянию линзы) называется относительным отверстием объектива (relative aperture). В оптике так же часто используется обратная величина которая называется диафрагменным числом (f-number) . Поскольку D = f/N то размер апертуры часто записывают именно в такой форме - например "f/4". Это удобная и важная характеристика, поскольку объективы с одинаковым диафрагменным числом при прочих равных формируют изображения с одинаковой яркостью. Стоит отметить однако что сделанные выше в расчетах упрощения неприменимы для макросъемки, плюс мы никак не учитывали то что определенное количество света теряется при прохождении объектива (поглощается или переотражается линзами или установленными на объектив светофильтрами). Поэтому светосила объектива (lens speed) в общем случае является несколько более сложным понятием и иногда геометрическую и эффективную светосилу объектива рассматривают отдельно, учитывая в "эффективной" светосиле эти дополнительные факторы.
До сих пор мы говорили лишь о "тонких" линзах. "Толстые" устроены немного сложнее - у них не одна а две главных плоскости (principal planes) - передняя (H) и задняя (H'). Их можно представить как если бы мы разрезали тонкую линзу пополам и разнесли получившиеся две половинки в пространстве; при этом лучи света попадая на одну главную плоскость неким волшебным образом игнорируя промежуток между плоскостями оказывались бы в той же точке на второй главной плоскости.
Если одна из линз кроме того помещена не в воздух а скажем в масло, то у них еще могут отличаться и фокусные расстояния (переднее и заднее). Это бывает важно в микроскопии, но мы не будем сейчас рассматривать подобные сценарии, а для линзы в воздухе фокусное расстояние от передней и задней главных плоскостей будет одинаковым. Кроме того как мы уже поняли из изложенного выше, важную роль играет так же расположение входного и выходного зрачков (плоскости E и X соответственно на рисунке ниже)
Подобно входному и выходному зрачкам, передняя и задняя главные плоскости могут располагаться в довольно странных местах, зачастую находясь вообще вне фотоаппарата. Например у объектива Zeiss Distagon 21 показанного выше задняя главная плоскость находится далеко за задней линзой объектива - подобная схема называется ретрофокусной (retrofocal). А у 135-мм объектива показанного ниже задняя плоскость наоборот находится перед передней линзой - такая схема называется телеобъективом (telephoto lens).
Подобное разнообразние связано с тем что как мы уже разбирали на примере тонкой линзы, расстояние от задней главной плоскости до объектива при съемке удаленных объектов должно быть примерно равно фокусному расстоянию объектива. Но если объектив съемный, то в пространстве между объективом и сенсором должен еще разместиться как минимум затвор, а у зеркальных фотоаппаратов - еще и зеркало. Для широкоугольных линз с маленьким фокусным расстоянием если бы главная плоскость оставалась внутри объектива, то все это просто не удалось бы туда впихнуть. Конструктивно обусловленное расстояние крепления объектива от фокальной плоскости называется рабочим отрезком объектива. У зеркалок оно больше, у незеркальных фотоаппаратов меньше. В общем случае задние линзы могут немного заходить "внутрь" этого расстояния, но не намного. Вот и приходится сооружать довольно сложную оптическую конструкцию чтобы разместить заднюю главную плоскость достаточно близко к сенсору, не размещая там никакие линзы
А у длиннофокусных объективов проблема обратная - при традиционном расположении задней главной плоскости они получаются слишком длинными.
Телеобъективы значительно короче и это настолько удобно для фотографов что сегодня "телевик" стал синонимом "длиннофокусного объектива" хотя строго говоря это лишь одна из возможных его реализаций. Которая не относится, к примеру, к зеркальным и зеркально-менисковым объективам которые конструктивно еще короче. У какого-нибудь объектива Максутова задняя главная плоскость объектива легко может висеть в воздухе на расстоянии более 30 см перед объективом.
Но давайте вернемся к прикладным вопросам формирования изображений объективом. Как мы уже знаем, построенные объективом точки которые не попали на плоскость изображения проецируются на нее путем проведения лучей через эту точку и выходной зрачок объектива
То есть если мы хотим понять как будет выглядеть точка находящаяся вне идеального фокуса нам надо построить пирамиду в основании которой будет выходной зрачок а в вершине точка построенная объективом, после чего посмотреть на пересечение получившегося конуса с плоскостью где находится сенсор изображения
Нетрудно понять что если диафрагма находится в плоскости параллельной плоскости сенсора то форма получившегося пятнышка всегда будет повторять форму отверстия в диафрагме. А если выходной зрачок находится достаточно далеко (например мы смотрим на современный image-space telecentric объектив у которого он вынесен на бесконечность), то размеры этого пятнышка будут пропорциональны расстоянию от точки до плоскости сенсора. Само пятнышко называют кружком нерезкости (circle of confusion) для изображения точки а его внешний вид - боке (bokeh).
Изображение в целом формируемое объективом на сенсоре можно рассматривать просто как сумму подобных пятнышек формируемых отдельными точками фотографируемой поверхности; в математике подобная операция называется сверткой. Такая модель называется linear optics и за пределами весьма узкоспециальных случаев типа работы с лазерами она позволяет описать формирование объективом практически любого изображения. Одним из существенных выводов этой теории является то что это преобразование можно обратить с помощью обратной операции - т.н. deconvolution, описание которой выходит за пределы данной статьи.
На основе этого наблюдения несколько компаний в свое время продвигали 3D камеры работавшие по принципу кодированной диафрагмы (coded aperture). Идея была довольно простой - давайте сделаем диафрагму не круглой, а в форме эдакого QR-кода, после чего спроецируем на объект сетку ярких точек а объектив специально сделаем с малой глубиной резкости. Точки на объекте окажутся размытыми, размытое изображение будет иметь форму нашего "QR кода", после чего мы можем все такие изображения задетектировать по шаблону и точно определить их положение и размеры. Размер даст нам расстояние точки от фокусной плоскости объектива, причем даже с учетом знака - если точка оказывается за фокусной плоскостью, то формируемый световой конус проецируется на сенсор в перевернутом виде что легко детектируется для несимметричной апертуры. Красиво, правда? А при достаточно хитрой обработке изображений можно обойтись даже без проектора. Для этого к картинке применяется операция deconvolution с разными возможными размерами маски и выбирается тот размер который дает наиболее четкое изображение. Хотя этот метод принципиально применим и к "обычным" линзам, кодированная апертура дает намного более точные результаты
Еще одним интересным применением кодированных апертур являются рентгеновские и гамма телескопы. В этих диапазонах невозможно применять линзы и даже зеркала работают крайне плохо. А вот диафрагма по прежнему работает. Простая pinhole-камера дает слишком тусклое изображение, а вот coded aperture можно сделать сколь угодно большой. Корректное изображение восстанавливается в таких системах цифровым путем обращения свертки. В качестве бесплатного бонуса идет возможность посчитать трехмерность получаемого изображения
Но давайте оставим пока эту тему и поедем дальше ). Итак наш кружок нерезкости - это изображение части входного отверстия апертуры. Давайте выберем внутри этого кружка другой кружок, поменьше. Как нетрудно понять, выбранная нами часть будет соответствовать какой-то части отверстия апертуры - грубо говоря, если мы заменим диафрагму с большим отверстием на диафрагму с отверстием поменьше, то от нашего большого кружка нерезкости останется только выбранный нами маленький кружок. Однако при этом соразмерно размерам диафрагмы уменьшится и входной зрачок камеры. Но ведь как мы уже обсуждали выше, центр перспективы изображения находится в центре входного зрачка. Из этого следует довольно неожиданный вывод - формируемое объективом изображение можно рассматривать как сумму изображений сделанных с немножко отличающихся точек взятых в пределах выходного зрачка.
Для объектива с не-точечным размером зрачка изображение есть сумма изображений сделанных со всех возможных ракурсов в пределах точек этого зрачка.
Фокусировка же объектива по сути сводится к тому какие сдвиги выбрать для каждого из этих индивидуальных изображений. А значит взяв пачку резких изображений снятых с немного разных ракурсов можно строить "размытое" фото путем их сложения, а фокусировку менять "программным" путем просто двигая картинки в пачке друг относительно друга. Подобные системы называются пленоптическими (light field camera)
Нам правда больше знакома пленоптика в формате камер Lytro которые выглядят значительно более конвенционально, с одной большой линзой на входе.
Концептуально они работают на основе того же принципа, но вместо того чтобы физически поставить на входе несколько камер (каждую со своей апертурой) они делят на несколько частей изображение выходного зрачка камеры. Чтобы понять как они это делают давайте попробуем применить наш подход с "делением апертуры на отдельные точки" к уже объективу с описанной выше image-side telecentric схемой. В этом случае каждая "точка" вынесенного на бесконечность зрачка - это пучок параллельных лучей. На рисунке ниже я изобразил две таких точки зрачка (красную и зеленую) и формируемые ими изображения одной и той же точки изображения на сенсоре
Критически важным наблюдением здесь является то что все "красные" лучи падают на сенсор под одним углом, а все "зеленые" - под другим. Это позволяет их разделить поставив перед сенсором линзу. Если фокусное расстояние линзы равно расстоянию до сенсора, то она будет фокусировать падающий на нее пучок параллельных лучей в одну точку, причем пучки приходящие с разных направлений будут попадат в разные точки:
Если мы возьмем массив одинаковых микролинз, за каждой из которых будет находиться группа из, к примеру, 3x3 пикселей, то каждый из пикселей будет "видеть" только "свою" часть апертуры: "зеленые" пиксели - только зеленые лучи, "красные" - только красные. Таким образом получится что с помощью микролинз мы виртуальным образом разделим единую входную апертуру на 9 частей как показано на рисунке ниже
Подобная система может быть гораздо компактнее набора из нескольких камер и в ней проще создать непрерывную апертуру, что мы и наблюдали на примере решения Lytro. Взамен там где раньше был один пиксель теперь приходится ставить микролинзу и массив из нескольких пикселей, желательно строго юстированные друг относительно друга. Но к сожалению реальные микролинзы не могут сфокусировать свет в идеальную точку а пиксели - захватывать свет по всей площади, из-за чего реальные апертуры получаются скорее такими
А подобная "дырчатость" к сожалению не безобидна: как мы уже знаем мы видим изображение диафрагмы в каждой нерезкой точке и фотографы очень не любят если это изображение ("боке") некрасиво. Добавьте к этому то что большинство сенсоров используют маску из светофильтров чтобы получать цветные изображения. Все это приходится компенсировать сложными вычислениями которые иногда оставляют заметные артефакты, так что пленоптическое изображение получается не только ниже по разрешению но несколько хуже по качеству. А попытка Lytro все это компенсировать взяв супер-большой сенсор и создав на его основе супер-мега-видеокамеру...
... уперлись в то что 755 Мпикс помноженные на 120-300 кадров в секунду давали совершенно чудовищный поток данных - около 400 гигабайт в секунду. И если мы планировали его дальнейшую обработку (а в этом вся суть вычислительной фотографии!) то его требовалось куда-то еще сохранить. В итоге тема как говорится пока "не взлетела". Однако поскольку все упирается только в стоимость и вычислительную сложность то возможно в будущем пленоптические камеры еще найдут свою нишу ибо предоставляемые ими возможности конечно невероятны. Это и возможность перефокусировки после съемки, и полный контроль над глубиной резкости в любых пределах, и управление боке, и отделение фона без применения хромакея, и съемка в 3D с любой стереобазой в широких пределах.
Впрочем хотя камеры Lytro - это неопределенное будущее, с частью используемых ими технологий я думаю сталкивался любой обладатель "зеркалки". Речь идет о системах фазового автофокуса. Они тоже работают по принципу разделения апертуры объектива на несколько меньших, разнесенных в пространстве частей, но устроены по другому.
Изображение в системе фазового автофокуса вначале проецируется линзой на пластину в которой прорезаны небольшие отверстия отсекающие область интереса в которой будет работать датчик автофокуса (visual field mask). А позади этой плоскости устанавливается, по сути, пара маленьких фотоаппаратов, "смотрящих" на эту пластину с обратной стороны. На рисунке я изобразил пару небольших линз, но на самом деле конструктивно возможны и другие варианты (в том числе с общей линзой). Главное - это то что каждый такой "фотоаппарат" имеет свою собственную диафрагму, отсекающую свет как показано на рисунке. Формируемое в таком "фотоаппарате" изображение номинально совпадает с тем которое было сформировано объективом на маске, однако в его формировании участвует только часть лучей прошедших через апертуру. Грубо говоря один сенсор автофокуса строит картинку через "зеленый" входной зрачок, а второй - через "красный":
Ну а дальше - вспоминаем про то что разные фрагменты апертуры имеют разную точку перспективы. Разделив апертуру на два небольших разнесенных фрагмента и сделав для каждого из них отдельную фотографию мы фактически формируем в пределах входного зрачка объектива небольшую стереопару. Если изображение идеально сфокусировано, то эта стереопара будет идеально совмещена. А если нет - то изображения будут смещены друг относительно друга, причем величина смещения будет пропорциональна величине расфокусировки и будет "знаковой" - при слишком близком фокусе смещение будет в одну сторону а при слишком далеком - в другую.
Таким образом фазовый автофокус не просто подтвеждает что объектив находится в фокусе, но и показывает в какую сторону и на какую величину надо сдвинуть фокус чтобы добиться точного попадания в случае если объектив расфокусирован. Благодаря этому фазовый метод - это одна из лучших систем автофокусировки не только по точности, но и по скорости. Положение датчиков автофокуса выбирают таким образом чтобы смещение происходило в интересующем нас направлении: обычно часть датчиков пытаются смещать изображение "вертикально", часть "горизонтально". Первые лучше реагируют на попавшие в их поле зрения контрастные горизонтальные линии, вторые лучше реагируют на вертикальные линии. Существуют так же "крестообразные" датчики которые сочетают в себе оба типа за счет установки не двух а сразу четырех "камер", покрывающих для выбранного региона и горизонтальное и вертикальное направление одновременно.
Конечно у фазового автофокуса есть и недостатки. Одним из самых заметных является то что располагать его надо в плоскости изображения, что бывает сделать отнюдь не просто. "Зеркалки" решают эту проблему использованием системы полупрозрачных зеркал и призм перенаправляющих свет на датчики аналогично тому как они формируют изображение в видоискателе. В таком виде фазовый автофокус является полностью независимой подсистемой и одинаково хорошо работает как с "цифровыми" камерами, так и со старой пленкой.
Однако на время собственно фотографирования всю эту конструкцию приходится на время складывать, ну а у "беззеркалок" нет и самого зеркала куда ее было бы можно пристроить. Поэтому в некоторых новых фото и видокамерах фазовый автофокус сейчас стали делать по принципу пленоптических камер, располагая на сенсоре по паре светочуствительных пикселей за одной микролинзой вместо традиционного одного.
Здесь нам стоит на минутку остановиться и обратить внимание на одно полезное свойство объектива которым мы сейчас воспользовались. У нас сейчас было использовано две диафрагмы - одна находилась собственно в объективе, а вторая - внутри датчика автофокуса. Очевидно что соответствующие им входные зрачки могли (и вероятно будут) находиться в разных местах. Но если центр перспективы находится в центре каждого зрачка а зрачков у нас несколько - то какая же тогда у объектива в этом случае будет формироваться перспектива? Аналогичным образом мы говорили что форма пятна нерезкости повторяет форму отверстия диафрагмы, но если диафрагм сразу несколько - то каким же будет это пятно? Ответ на эти вопросы до банальности прост: если диафрагм несколько, то в формировании изображения на сенсоре будут принимать только те лучи которые одновременно пройдут через все изображения входных / выходных зрачков для каждой из диафрагм. И если один из этих зрачков значительно меньше чем все остальные, то именно он и станет определяющим "горлышком" - любые лучи проходящие через этот узкий зрачок будут свободно проходить через значительно более широкие остальные зрачки, но не наоборот. Соответственно он и будет определять точку перспективы. Если зрачки диафрагм разнесены на разное расстояние от объекта, то как мы уже видели в примере с object-side telecentric объективом эти "более крупные" диафрагмы (оправа входной линзы в том примере) будут создавать эффект виньетирования, но для того же фазового автофокуса это не особо критично.
Конечно если "переборщить" с расположением нескольких зрачков небольшого размера то можно получить систему которая не будет пропускать свет вообще. Для классического фазового автофокуса такая ситуация возникает если ее попытаться использовать в объективе у которого входной зрачок слишком мал. Поэтому у всех систем фазового автофокуса есть минимальный размер входного зрачка (как правило F/5.6 или F/8) при котором они перестают работать. Хотя чисто технически можно сделать автофокус который будет работать и с меньшими зрачками у таких систем возникает проблема с тем что "стереобаза" между парами зрачков у фазовых сенсоров получается слишком маленькой для того чтобы наблюдать различия в положении изображений при расфокусировке (а сами эти изображения - слишком темными для сенсора). Поэтому у камер высокого класса часть датчиков фазового автофокуса напротив нередко рассчитана на зрачки от F/2.8 и выше. С дешевыми "темными" линзами они не будут работать вовсе, зато с дорогостоящими светосильными обеспечат более точную и более быструю фокусировку.
Еще одним интересным случаем где несколько "входных зрачков" начинают влиять друг на друга являются светосильные и/или широкоугольные камеры. Дело в том что подобная линза должна формировать изображения объектов которые находятся сбоку от объектива. А если мы смотрим на изображение зрачка сбоку то во-первых само это изображение может визуально "сплющиваться" а во-вторых его очень легко загородить какими-нибудь другими элементами конструкции объектива. Рисунок ниже иллюстрирует эту проблему для простейшего объектива из двух линз: лучи от объекта находящегося сбоку от оси ограничены диаметром входной и выходной линзы а не находящейся в центре диафрагмы
Если посмотреть на объектив на просвет сбоку то это можно легко увидеть визуально. Обратите внимание на форму светлого пятна - это и есть наш входной зрачок с учетом влияния на него оправы линз
В результате кружки нерезкости на краях изображения у светосильного объектива легко могут выглядеть вот так:
Поскольку этот эффект "сплющивает" кружок нерезкости по направлению от центра изображения, то такие объективы зачастую дают характерное ощущение "кругового вращения" нерезкой части фотографии вокруг центра изображения.
Изменяется конечно не только форма кружка нерезкости, но и яркость изображения которая для сфокусированных точек пропорциональна площади кружка нерезкости. При этом если мы закроем диафрагму посильнее, то изображение входного зрачка перестанет пересекаться с краями объектива и проблема виньетирования исчезнет:
А вот скажем у зеркально-менисковых объективов этот фокус уже не проходит - там центр объектива загораживает отражающий элемент из-за чего зрачок имеет форму кольца а не круга. Если в таком объективе поставить обычную круглую диафрагму и попытаться ее прикрыть, то она просто перекроет все поле зрения.
Поэтому регулируемой диафрагмы у таких объективов нет а кружок нерезкости всегда имеет характерную форму "бублика" из-за которого этот во многих отношениях весьма удачный оптический дизайн, увы, не любят фотографы
Вообще создание светосильных (и широкоугольных) объективов - это в целом отдельная сложная тема над которой создатели оптики бьются уже более двухсот лет и виньетирование там лишь одна (и притом скорее меньшая) из бед. Дело в том что идеальный объектив должен
фокусировать лучи в плоскости
фокусировать лучи проходящие через центр линзы и через ее края в одной и той же точке
фокусировать лучи входящие в объектив как вдоль оси камеры так и под углом к ней в той же точке
не искажать прямые линии
делать это одинаковым образом в диапазоне световых волн от красного до синего цвета
Нарушение правила 1 называют кривизной поля изображения, нарушение правила 2 сферической аберрацией, нарушение правила 3 - комой, нарушение правила 4 - дисторсией, нарушение правила 5 - хроматической аберрацией. Из них больше всего проблем доставляют проблемы 2 и 5 потому что (2) не позволяет добиться резкого изображения даже в центре изображения (тогда остальные влияют на резкость на краях) а (5) дает хорошо заметные артефакты в виде цветных каёмок. То каким образом создатели оптики боролись с этими проблемами (начав вдобавок с довольно ограниченных возможностей по созданию линз и постепенно расширяя их) довольно интересная история, но, увы, находящаяся далеко за пределами моих познаний чтобы я мог ее содержательно рассказать :). Покажу лишь пример дизайна современной оптики для камеры смартфона чтобы проиллюстрировать к чему сейчас это привело. Обратите внимание на мягко говоря небанальную форму линз:
Диафрагма у этого объектива находится перед передней линзой а виньетирование минимально (заметно только для синих лучей и даже для них невелико). Обратите внимание что оптический дизайн широкоугольной камеры учитывает даже толщину и расположение защитного стекла объектива и ИК-светофильтра перед сенсором
Но вернемся обратно к более простым вещам :). До сих пор мы обсуждали вещи которые для большинства читателей являются скорее чисто теоретическими умопостроениями, однако напоследок я бы хотел поговорить о довольно простых штуках которые некоторые из Вас могут попробовать сделать самостоятельно. И прежде всего речь пойдет о надеваемых на объектив светофильтрах. Как мы уже обсуждали выше, если апертур у объектива несколько, то изображение входного зрачка определяется светом который проходит через все апертуры сразу и если одна из апертур значительно меньше других, то именно она будет определять форму зрачка. А значит мы можем проверить нашу теорию на практике вырезав в черной бумаге небольшое отверстие какой-нибудь интересной формы и закрыв им переднюю линзу объектива
На выходе с таким фильтром можно сделать например такую фотографию
Обратите внимание что хотя мы никак не заботились о размещении нашей диафрагмы в какой-нибудь специальной точке объектива, формируемое изображение нашего импровизированного зрачка получается резким (с точностью до диффракционных эффектов) и если Вы внимательно читали статью, то теперь Вы знаете почему :)
Более интересным на практике мог бы стать аподизационный фильтр (apodization filter, APD). Аподизационный фильтр - это такая полупрозрачная диафрагма которая плавно меняет свою прозрачность от центра к краю. Соответственно и формируемый ею кружок нерезкости получается с плавным переходом от света к тени
К сожалению мне не встречались промышленные фильтры подобного рода которые можно было бы накрутить на обычный объектив и это, увы, не случайно - круглый зрачок "настоящей" диафрагмы у подавляющего большинства объективов просто будет вырезать из этой градиентной красоты кружок с более или менее резким переходом на границе. При этом этот переход еще и будет разным для точек в центре и на краях изображения - привет виньетированию которому мы уделили сегодня столько внимания. Чтобы подобная схема полноценно работала в объективе аподизационный элемент должен быть точно оптически совмещен с входным зрачком - ну или попросту заменять собой диафрагму. В последнем случае, правда, пользоваться линзой будет довольно неудобно. Поэтому эта конструкция сегодня встречается лишь в специализированных APD-объективах. Зато на выходе может получается что-то вроде вот этого:
Однако если у Вас вдруг где-то завалялся старый объектив с ручным изменением диафрагмы или есть возможность иным образом управлять диафрагмой во время съемки, то этот эффект можно воспроизвести просто изменяя диафрагму во время экспозиции кадра. На достаточно длинной выдержке изображение диафрагмы будет усреднено во времени и если Вы ее будете плавно изменять, то центр (который будет экспонироваться все время) получится ярче чем края (которые будут экспонироваться лишь часть времени).
На этой ноте - позвольте закончить, статья о том какие бывают объективы и как можно "играть" с ними и так получилась слишком большой. Как обычно критика, поправки и дополнения всячески приветствуются :)