Шаг №3 Расстановка точек соответствия.

Я не буду здесь описывать то, что вам надо делать.
Чтобы была понятна терминология: точку соотвествия одного элемента на одном и на другом снимке, я буду называть точкой соотвествия. (Хотя, их вроде бы две, одна на одном снимке, а другая на другом, тем не менее, это всего одна точка, просто она присутсвует на двух снимках)
Опять остановлюсь, на том, что мало где описано, на русском точно.

Alignment
Параметр Описание
t0Horiz + Vert.
Точка соотвествия, которая будет оптимизироваться по осям 0x и 0y. Самый часто используемый тип точки.
t1Vertical
Точка соотвествия, у которой будет неизменной "X" координата, она будет оптимизироваться с условием ее неизменности. "Y" координата значения не имеет. Используется при обозначении явно вертикальных линий, тех которые однозначно и точно, должны быть вертикальны. Стены домов, к примеру.
t2Horizontal
Точка соотвествия, в которой должна быть неизменной "Y" координата, она будет оптимизироваться с условием ее неизменности. "X" координата значения не имеет. Используется при обозначении явно горизонтальных линий, линия горизонта, к примеру.
t+Straight
Прямая линия. Точками обозначаете начало, к примеру и конец линии, которая должна быть прямой. Однако, следует знать, что через 2 точки можно провести прямую и любую кривую, которой будут принадлежать эти точки, поэтому, для однозначности на предполагаемой прямой линии, должно быть более одной точки.

Коротко о точках
Как расставлять точки соответствия.
Не стоит забывать, что оптимизатор, за редким исключением, работает при постоянно существующем дефиците точной информации. Потому, по возможности, старайтесь его этой информацией снабжать.
  • Старайтесь распределять точки соответсвия, по возможности по всей площади пересечения смежных изображений
    (Это поможет правильнее вычислить параметры "a", "b", "c" для дисторсии объектива.)
  • Уделяйте внимание границам общих частей, не бойтесь там ставить точки
  • Если используете горизонтальные, вертикальные или точки характеризующие прямые линии.
    Будьте предельно внимательны !
    Любая ошибка может привести к сильным промахам при вычислении параметров и общей невозможности сопоставить точно все изображения.
Следует отметить, что точки "t1","t2","t3", обозначают линии, поэтому они должны размещаться, желательно, в начале и в конце этой линии, чтобы достаточно четко дать понять оптимизатору, что от него хотят. К примеру, приблизительно четко описывают прямую линию 2 точки. Одна обозначает начало и конец, давая понять оптимизатору, что надо, но так как есть середина, которая может исказится так, что начало и конец будут удовлетворять заданным условиям, я рекомендую поставить еще одну точку, которая будет обозначать к примеру, начало или конец и середину предполагаемой линии.
Однако, поставив таким образом точку, оптимизатор считает ее другой линией, лежащей на предыдущей, чтобы он так не считал, необходимо объеденить эти точки в единое целое.
Для этого необходимо, сделать правый клик на одной из точек описывающих линию и в выпавшем окне выбрать номер линии, которой будет принадлежать эта точка соотвествия.
Иными словами, вы к одной точке, которая описывает прямую линию добавляете еще одну точку, в сумме они описывают прямую по ее началу, середине и окончанию, что весьма однозначно.
Теперь оптимизатор будет вычислять уже с учетом этих условий, что начало, середина и конец лежат на одной прямой. Причем, эти точки могут принадлежать как одному и тому-же снимку, так и разным, то есть не смежным снимкам. Я намеренно не акцентировал внимание на типе линии, прямой, горизонтальной или вертикальной. Рассуждения эти верны для всех трех типов, в одинаковой степени.
Теперь вы должны настроить точки соотвествия, используя полученные знания.

Шаг №4
   Оптимизация
Процесс, поначалу, настолько же непонятный, на сколько и увлекательный.
Окно четвертого шага разбито на блоки, в каждом блоке свой функциональный набор.
Название окнаОписание
Ref. Image/PointЗдесь вы указываете оптимизатору, от какого снимка он будет плясать.
То есть, все сдвиги, повороты искривления будут производится относительно этого снимка. Сам снимок сдвигам, поворотам подвергаться не будет. Также здесь, вы можете выбрать точку, которая будет центром будущей панорамы, относительно нее будут производится искривления, как самой Reference Image, то есть снимка, который вы выбрали как базовый, так и всех остальных, в частности здесь вы зададите линию горизонта, линия которая проходит сквозь виртуальный оптический центр панорамы...
Если на примере, то линия горизонта, на фотографии проходящая сквозь оптический центр фотографии - прямая линия. Смещенная вниз, она вогнута вниз, смещенная вверх - она выпукла вверх. Тоже самое и здесь, постарайтесь подобрать высоту точки, при которой ваша панорама будет смотреться наиболее привлектельно. Поэкспериментируйте.
Use Control Points From:Здесь вы указываете, какие точки соотвествия будут использованы при оптимизации. Нужно это в тех случаях, чтобы убрать из вычислений кадр, который имеет наибольшее количество точек с наибольшими расстояниями промаха. Удаление этого снимка из расчетов, может облегчить задачу вычисления настоящих параметров дисторсий объектива, используемого при съемке остальных кадров, если конечно, все кадры сняты одним и тем-же объективом.
Lens Parameters:
(All Images)
Это параметры описывающие дисторию объектива, которым делалась съемка всех кадров (All Images). Если объективы были разные, то на 2м шаге надо было снять галочку "link <Параметр>".
Yaw, Pitch, RollСмещения, повороты поизводимые над изображениями. Заметьте, что Reference Image, которую вы выбрали ранее, неотмечена галочками, то есть в процессе оптимизации она участвует только как пассивный участник, предоставляющий другим только свои точки сопоставления и подвергаемая преобразованиям, связанным только с компенсацией дисторсий.

Кнопки, которые имеются в программе, "Auto-Level", "Auto-Rotate", "Auto-Optimize" прямо не относятся к логике работы Panorama Tools, это скорее, более высокий уровень, так как они запрограммированы на автоматический подбор параметров, который может потребовать несколько запусков процесса оптимизации и затем, выбора из них наиболее оптимального, так как все это происходит в автоматическом режиме, то я не буду рассматривать автоматику, нажать на кнопку вы сможете сами, тут много ума не надо, в свою задачу я ставлю дать вам в руки понимание процессов, которые происходят, и осветить те моменты, которые опущены в документации или описаны не однозначно.

Остаётся "Manual Optimize" - Это кнопка, которую вы будете нажимать чаще всего. :-) Она запускает процесс оптимизации в соответсвии с теми настройками, которые вы установите. На низком уровне, PTAssembler создает скрипт, в который помещает всю информацию, которую вы ввели и настроили в предыдущих шагах и запускает процесс оптимизации, то есть подбора дисторсий, сдвигов и поворотов изображений относительно базового изображения, коротко, оптимизируется все, что отмечено галочками и остается нетронутым то, что галочками не отмечено.

Теперь... вернемся к задаче склеить панорамный снимок, мы уже увидели, что автоматика приводит к невеселым результатам. Автомат споткнулся, давайте рассмотрим, почему. Точки соответсвия он расставил правильно, хотя многое спорно, в основном почему именно здесь, а не более рядом. Отношу это на дело вкуса. Что у нас есть - кривой горизонт, давайте попробуем его поправить, идем на 4ый шаг и в Reference Image - настраиваем точку горизонта.

Постараемся добиться хотя бы прямоты горизонта, настраивая таким образом горизонт (красная линия) мы сообщаям оптимизатору, что изображение должно быть повернуто на -0.9 градуса, чтобы красная линия стала линией горизонта.
Теперь перепрыгнем на шаг №5, нажмем на кнопку "Auto Size Parameters" после этого, нажав на кнопку "Preview" посмотрим, что получилось... Если результат вас удовлетворяет, нажмите, на кнопку "Create" будет расчитана полноформатная панорама, посмотрите на нее внимательно, наверняка, вы увидите огрехи, которые, я надеюсь вам захочется исправить.
О значении, использованных в этой ветве моих рассуждений кнопок, я расскажу чуть позже.


Что-то получилось:
Однако, мы попрежнему имеем, кривизну в стыковке изображений на уровнях горизонта.
Опережая мысль о подборах параметров, могу сказать, что не получится в автоматическом режиме заставить оптимизатор расставить правильно изображения.

Почему-же, спросите вы ?
Я постараюсь ответить.
Что такое оптимизатор ?
Это программа, которой передаются размеры прямоугольника и координаты точек, которые надо друг с другом сопоставить, он не видит, он не понимает, у него нет распознавания образов... Представьте себе белый квадрат, с точками и второй, который смежный и вам искривляя его надо сопоставить точки друг с другом. Вот с этим и работает оптимизатор. Поэтому сделать свою работу он может только тогда, когда он знает, какие параметры ему надо крутить, а какие не надо, иначе он сопоставит... но конечный результат вам не понравится...

Фотограф снимавший эти кадры (я, то есть), был под впечатлением от того, что он видел, и настолько увлечен, что едва только выставил фотоаппарат на Manual (перед этим он сделал 5 снимков широкоугольником с приоритетом диафрагмы, и потому все кадры у него получились с разными балансом цветов, яркостью, с ними пришлось помучатся, подравнивая в RawShooter'е цвета и яркость.) и начал съемку, ему оказалось не просто удержаться от эмоций и потому, каждый снимок имеет свой угол поворота, высоту над горизонтом, но это еще можно компенсирвать, если есть четкие точки привязки к местности. Здесь-же мы не можем привязаться к точкам ниже линии горизонта, там вода, волны, они переменчивы. Единственная точка, вернее сказать полоса - это линия горизонта, мы знаем, что она должна быть ровной, далее, выше идут облака.. Облака, тоже изменяются, то есть точных данных у нас практически нет. При этом, изменения на снимках, то есть на уровне облаков, больше привязываться не к чему, существуют, они незначительные, и носят характер порядка близкого к изменениям, которые может вносить дисторсия объектива. Иными словами, ничего, кроме линии горизонта у нас нет. Каждый снимок имеет свой уникальный поворот, смещение... в общем, у нас нет практически ничего постоянного. Оптимизатор, просто не способен решить задачу, чтобы в визуальном пересчете, иметь корректную картину панорамы... Тем не менее, подсознательно я думаю, вы понимаете, что задача решаема.
Да, она решаема. Причем с точностью до доли пикселя, то есть в конечном итоге, панорама будет создана и все со всем сойдется идеально, настолько на сколько это может сойтись.

Разделяй и властвуй
Наша задача в полном объеме не имеет решения по описанным выше условиям. Поэтому ее надо решать по частям.
Теперь настало время применить то, что я рассказал ранее.

Этап первый: Объектив. Давайте дадим оптимизатору хоть какую-нибудь зацепку в этом болоте неизвестности.
По данным EXIF, мы знаем, что фокусное расстояние 33мм. Значит задача стоит в том, чтобы вычислить дисторсию объектива для параметров "a","b","c". Есть два пути, найти в интернете дисторсию для EF 28-135 IS USM для 33мм или вычислить ее самим.
Второй способ возможен, при помощи Panorama Tools, если снять заведомо ровную контрастную сетку потом в том-же PTAssembler'e выставить горизонтальные и вертикальные точки обозначающие линии и запустить оптимизатор, то возможно получить численные коэффициенты "a","b","c", сделав несколько снимков и обработав аналогичным образом, усреднив результаты, можно будет занести их себе в копилку знаний, однако я решил посмотреть не проделал ли эту работу кто-то по опытней, чем я.. Опыта в подобном у меня не было и поэтому я попробовал поискать, создав запрос на Google удалось найти ссылку на программу PTLens, в базе данных, которой есть необходимая для меня информация. Информация относится к 35мм, что очень близко к моим 33 миллиметрам.

"a" -0.009116
"b" --0.020624
"c" -0.000000

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

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


Этап второй точка один:
Перед нами откроется картина кривого горизонта. Его нам потребуется исправить, то есть сообщить оптимизатору на сколько надо повернуть изображение. Для этого мы воспользуемся типом точек соответствия "Horizontal Line (--t2)" и на левом краю левого снимка в низшей точке гоозонтальной линии, предельно точно, кликнем на линии горизонта, на правом снимке кликнем на последних правых точках линии горизонта, они самые высокие. Разница между высотами этих точек и расстояние между ними, дают однозначную картину ожидаемого поворота.
Тоже самое сделаем со второй, и с третьей, поставив точку соотвествия на самом нижнем и верхнем участке линии горизонта, где это возможно..
На четвертой, я поставил две точки одну на левом краю и в середине, и одну правее от средней позиции на кромке воды, которая сразу за островком. Здесь можно было обойтись и одной точкой, но я пробовал дать таким образом, информацию оптимизатору о дисторсии объектива, ведь эти две точки проходят по кривой линии, которая должна быть прямой, проходя через середину фотографии возможно вычислить дисторсию объектива на этом расстоянии от фокального центра.
На пятой фотографии делать ничего не будем. Потому что однозначно зацепиться там не за что, а ошибкой позиционирования точкой соответсвия вносить лишнюю погрешность - это самим себе мешать. Поэтому оставим этот снимок на иждивении остальных.


Этап второй точка два:
Следующим шагом будет настройка параметров оптимизатора, которые дадут ему информацию о том, как и где совмещать изображения. Для этого в левом окне выберем первый снимок, а во втором второй снимок. Отпозиционируемся на линии горизонта. Выберем опять "Horizontal Line (--t2)" и свяжем два горизонта друг с другом, дав оптимизатору два приказа.
Первый: На самом, предельно правом краю первой фотографии, установим точку, ответную ей точку, поставим на самом левом краю, второй фотографии.
То есть мы связали два края фотографии, дав явное указание оптимизатору, что эти две точки должны быть на одной горизонтальной прямой.
Второй: отпозиционируемся на середине первой фотографии и на середине второй фотографии, поставим там тоже точку соответсвия, одна в середине первой фотографии, а вторая в середине второй фотографии.
После этого оптимизатор знает, что

  1. Изображения надо повернуть на однозначно вычисляемый угол
    (вычисляется из t2 точек принадлежащих одной фотографии)
  2. Изображения надо сопоставить, чтобы горизонтальные точки совпали
    друг с другом (вычисляется из t2 точек принадлежащих краям двух фотографий)
  3. Линии горизонта, на которые у нас привязаны t2 точки, связаны между собой однозначно.
Тоже самое нужно проделать со всеми остальными фотографиями рассматривая их попарно, 1-2, мы с вами сделали сейчас, осталось тоже самое проделать с парами: 2-3, 3-4, 4-5.

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

Оптимизация... >>>>





Hosted by uCoz