4.8. Пакет программ PanoTools - III


После того, как мы убедились в том, что PanoTools позволяет получать весьма неплохие результаты по сшиванию панорамных изображений, возникает вопрос, нельзя ли как-нибудь облегчить свою работу, да и работу самой программы. Вспомним о том, что из всех параметров, которые подвергаются уточнению в процессе оптимизации, 4, по крайней мере теоретически, характеризуют свойства самого объектива и не должны зависить от условий получения исходных снимков. Речь идет о горизонтальном поле зрения объектива и 3-х параметрах a, b и c, которые по существу являются коффициентами полинома 3-й степени, аппроскимирующего кривую радиального смещения ('бочки-подушки') для данного конкретного объектива. Таким образом, если бы нам удалось каким-то образом получить значения этих 4-х параметров, то очевидно, что процесс получения панорамных изображений мог бы быть существенно упрощен. По крайней мере количество контрольных точек, расстановка которых является является наиболее трудоемкой процедурой в этом процессе, может стать значительно меньше.

Способ получения указанных выше параметров существует и носит название 'калибровка объектива'. Впервые он был описан австралийцем Питером Мерфи (Peter Murphy) в 1999 г. Подход оказался плодотворным и был впоследствии неоднократно использован другими фотографами для получения параметров их конкретных объективов и фотоаппаратов.

Мы также воспользуемся этим способом для получения поля зрения и параметров a, b, и с объектива Sigma 8 mm F4 EX в сочетании с цифровым аппаратом Canon Digital Rebel.

Получение искомых параметров осуществляется путем выполнения следующей последовательности действий:

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

Натура для решения задачи калибровки должна содержать объект (или объекты) с большим количеством потенциальных контрольных точек, таких как здание с множеством окон или стелаж с книгами. Для получения снимков необходимо использовать устойчивый штатив с панорамной головкой, пригодной для закрепления данного фотоаппарата. В нашем случае мы воспользуемся комбинацией, состоящей из штатива Manfrotto 3205, 3D головки Manfrotto 3025 в качестве горизонтирующей площадки и панорамной рамки Kaidan KiWi 900/950, к которой неожиданно удачно подошел цифровой Canon. Воспользуемся трещеткой на 18 положений, что даст нам возможность поворачивать аппарат с дискретностью в 20º. После тщательного нивелирования панорамной рамки с помощью 3D головки и установленных на рамке уровней и нивелирования самого аппарата в рамке с помощью установленного в 'горячий башмак' призматического уровня сделаем 3 последовательных снимка выбранной нами натуры (стелаж с книгами), поворачивая аппарата каждый раз на 2 положения трещетки, т.е. на 40º. Как мы уже знаем из статьи 'Объективы fish-eye' кружок изображения, создаваемый 8 мм объективом Sigma на матрице аппарата Canon Digital Rebel, выходит за границы матрицы по ее короткой стороне и полностью вписывается в контур матрицы по ее длинной стороне. Поэтому для получения искомых параметров эталонные снимки необходимо получать при портретной ориентации объектива. После форматирования снимков до границ кружка изображения (2048 х 3012 пикселей) увеличим размер холста каждого снимка до 3012 х 3012 пикселей. Эта операция позволяет смоделировать кадр, содержащий в себе полный кружок изображения, создаваемого круговым fish-eye'ем.

Пустой файл для решения нашей задачи будет выглядить следующим образом:

p f2 w4200 h3000 v260 u10 n"PSD_mask"

i f2 w3012 h3012 y0 p0 r0 v180 a0.01 b0.01 c0.01 n"n0.jpg"
i f2 w3012 h3012 y40 p1 r1 v=0 a=0 b=0 c=0 n"n1.jpg"
i f2 w3012 h3012 y80 p2 r2 v=0 a=0 b=0 c=0 n"n2.jpg"

v v0 a0 b0 c0 y1 p1 r1 y2 p2 r2

Обратимся к уже проверенной нами программе ControlPoint и приступим к расстановке контрольных точек. Делать это надо предельно тщательно, стараясь выбирать точки по всему (видимому) полю изображений. Причем помимо пар смежных снимков в расмотрение необходимо включить и пару n0-n2. После того, как контрольные точки расставлены, можно непосредственно из программы ControlPoint, нажав кнопку '!' на нижней панели программы, инициировать инициировать процесс оптимизации. Затем вызовите список контрольных точек и полученных в результате оптимизации параметров.

Просмотрите его и, если в нет явных отклонений от нормы (в первую очередь в самих оптимизируемых параметрах, а затем в расстояниях между ожидаемыми и реальными положениями контрольных точек), поздравьте себя с успехом. Желательно проделать этот эксперимент несколько раз со сменой натуры, углов поворота аппарата и т.п. В нашем случае было проделано 6 сеансов получения калибровочных снимков и оптимизации параметров, которые сведены в таблицу ниже.

Попробуем проанализировать полученные результаты. В первую очередь отметим их консистентность. Так, весьма мало отличаются друг от друга значения всех 6-ти значений поля зрения объектива. Небольшие их отклонения от ожидаемых 180º по всей видимости обусловлены неточностью форматирования исходных снимков. Значения параметров a и c лежат в пределах нескольких сотых, что вполне согласуется с данными других авторов. Параметр b, который представляет наибольший интерес в силу своего значительного влияния на характер кривой, характеризующий радиальное смещение (отрицательное b ведет к бочкообразным искажениям, положительное b - к подушкообразным), также достаточно стабилен во всей серии нашего эксперимента. Все это говорит о том, что в качестве постоянных параметров для нашей пары фотоаппарат-объектив можно принять их средние значения, полученные по 6-ти проведенным нами сеансов съемки-оптимизации:

поле зрения = 178.224º,
коффициент a = 0.010412,
коффициент b = -0.144489,
коффициент c = 0.018564 и
коффициент d = 1.115513.

Теперь возникает вопрос, а что делать с полученными оптимальными параметрами, как их использовать на практике? Существуют по крайней мере 2 способа применения этих параметров.

Первый из них заключается в том, что они включаются в 'пустой' скрипт, составляемый вами для получения панорамы. Причем в качестве искомых параметров остаются лишь углы y, p и r. В качестве примера попробуем сшить 3 снимка, полученных нами для калибровки объектива:

p f2 w4200 h3000 v260 u10 n"PSD_mask"

i f2 w3012 h3012 y0 p0 r0 v178.224 a0.010412 b-0.144489 c0.018564 n"n0.jpg"
i f2 w3012 h3012 y40 p1 r1 v=0 a=0 b=0 c=0 n"n1.jpg"
i f2 w3012 h3012 y80 p2 r2 v=0 a=0 b=0 c=0 n"n2.jpg"

v y1 p1 r1 y2 p2 r2


Важным преимуществом при таком подходе является то, что количество контрольных точек можно сократить до 2-х на каждую пару смежных снимков. Извлечение из оптимизированного скрипта с расстояниями между положениями контрольных точек приведено ниже.

# ====================================================================
# Control Points: Distance between desired and fitted Position (in Pixels)

# Control Point No 0: 1.4356
# Control Point No 1: 1.43753
# Control Point No 2: 0.64574
# Control Point No 3: 0.644996

Как видите эти расстояния в нашем примере составляют весьма незначительные величины. Использование полученного скрипта для сшивания панорамы также дало (коррекция тональностей не производилась) с виду неплохой результат:

При более тщательном просмотре в правой верхней части панорамы и в нижней ее части обнаружились геометрические нестыковки смежных изображений, характеризуемые величинами примерно в полтора-два пикселя, т.е. около 0,04-0,05%.

Таким образом получено практическое подтверждение правильности использованного нами подхода.

Второй способ больше предназначен для тех, кому не по душе постоянная расстановка (даже 2-х) контрольных точек, работа с масками и ручная тональная коррекция (к коим автор этого сайта относит и себя). Способ заключается в том, что вы продолжаете пользоваться привычной для вас программой (или программами) автоматического сшивания панорам, но делаете это после предварительной корректировки исходных изображений с помощью плагинов, входящих в состав Panorama Tools, и полученных в результате калибровки параметрами объектива.

Поясним эту процедуру на примере уже рассмотренных нами снимков. Пропустим эти снимки последовательно через фильтр-плагин Correct > Radial Shift, а затем через Remap, отметив в левой части столбца Fisheye hor., а в правой - PSphere:


Результатом работы плагинов будут следующие 3 скорректированных снимка в эквидистантной проекции:

Сформатируем их с целью удаления образовавшихся в результате перепроецирования белых 'ушей' по бокам каждого снимка. Теперь они готовы к сшиванию. Для получения панорамы воспользуемся программой PhotoVista. Заметим (и это важно), что режим коррекции перспективных искажений должен быть отменен (Disable warping). После тщательного изучения полученной панорамы с целью выявления геометрических погрешностей (нестыковок, фантомов и т.п.) с удовлетворением отметим, что результат может считаться более чем превосходным.

Кроме того программа прекрасно справилась с тональными несоответствиями снимков, на устранение которых в случае ручной корректировки ушла бы масса времени.

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

Подготовку снимков (Correct + Remap) для их использования с программой автоматического сшивания можно, также, в один шаг осуществить с помощью плагина Adjust. Но мы думаем, что читатель вполне сможет проделать это самостоятельно.

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



к оглавлению    предыдущая статья    следующая статья
Hosted by uCoz