Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dibr ([info]dibr)
@ 2010-09-08 21:05:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
панорамы
     Авторы панорамного софта, по-моему, совсем охренели.

     >enblend --compression LZW -f31684x24665 -o pano1x.tif [файлики]
     enblend: info: loading next image: pano10000.tif 1/1
     enblend: info: loading next image: pano10001.tif 1/1

     enblend: excessive overlap detected; remove one of the images
     enblend: info: remove invalid output image "pano1x.tif"


     Мнээээ... ну, обнаружил ты, что картинки сильно перекрываются (как, кстати, советуют во всех учебниках по съемке панорам) - ну выкинь картинку и продолжи дальше! Нет, надо удалить всю проделанную работу и выйти.

     Дальше - больше:

     >enblend.exe --compression LZW -f31684x15001 -o pano-v-hugin.tif [файлики]
     [...]
     enblend: info: loading next image: pano-v-hugin0079.tif 1/1
     enblend: info: loading next image: pano-v-hugin0080.tif 1/1
     enblend: info: loading next image: pano-v-hugin0081.tif 1/1
     enblend: warning: failed to detect any seam
     enblend: mask is entirely black, but white image was not identified as redundant
     enblend: info: remove invalid output image "pano-v-hugin.tif"


     Перевожу: "я вашу картинку крутил-вертел, так и не понял что с ней делать. Удаляю всю проделанную работу и выхожу". Выкинуть картинку и продолжить (я посмотрел глазками - картинка просто легла "внутрь" уже сшитой области, касаясь или почти касаясь краёв) - нельзя конечно.

     Ок, продолжаем:

     >enblend --compression LZW -f12736x16265+5000+6000 -o bpano-elevator4.tif [файлики]
     enblend: warning: input images to small for coarse mask; switching to fine mask
     enblend: info: loading next image: bpano-elevator40000.tif 1/1
     [...]
     enblend: info: loading next image: bpano-elevator40014.tif 1/1

     enblend: out of memory
     enblend: bad allocation
     enblend: info: remove invalid output image "bpano-elevator4.tif"
     make: *** [bpano-elevator4.tif] Error 1


     Перевожу: "ой, а картинки-то у вас небольшие! Я для таких могу маску для сшивки в полном разрешении создавать, не в уменьшенном! [вжж, вжж, вжж] Хренакс! Нет памяти". При 2Гб физической и 18Гб виртуальной (при том что одному win32 приложению больше 3Гб один фиг не дадут).

     Ок, раз не может с fine mask, попробуем объяснить политику партии вручную:

     >enblend --coarse-mask --compression LZW -f12736x16265+5000+6000 -o bpano-elevator4.tif [файлики]
     enblend: warning: input images to small for coarse mask; switching to fine mask
     enblend: info: loading next image: bpano-elevator40000.tif 1/1
     [...]
     enblend: info: loading next image: bpano-elevator40014.tif 1/1

     enblend: out of memory
     enblend: bad allocation
     enblend: info: remove invalid output image "bpano-elevator4.tif"
     make: *** [bpano-elevator4.tif] Error 1


     Первожу: "да ты что, какой такой "--coarse-mask", я же вижу что у тебя совсем маленькая панорамка, всего каких-то 70 мпикс! Я тебе её с fine mask сошью! [вжж, вжжж, вжж] Хренакс - мало памяти".

     Вообще, для программы, которая спокойно способна собирать панораму 35 часов, "выйти без сохранения" не потому что всё стало совсем плохо, а потому что не удалось пристроить очередную картинку - как-то не комильфо. А уж игнорировать прямую просьбу делать coarse mask, а потом из-за этого падать - уже даже немножко наглость.

     При этом, например, на некоторых панорамах enblend сажает вот такие прекрасные артефакты. На большинстве не сажает, а на некоторых - сажает вот, и борись как хочешь.

     При этом штатный для hugin'а маппер nona создаёт такие tif'ы, что старый-добрый smartblend, выручавший во времена ptstitch.exe, съезжает крышей и создаёт вот такое (уменьшено). Значит, и на smartblend так просто не откатишься.

     Ну и вот как с таким работать, а?! А ещё в hugin'е негров линчуют последний доступный на сайте дистрибутив под винду во-первых от прошлой версии (и не обновлялся по-моему уже больше года), а в-вторых - "из коробки" вообще не работает, по причине некомплектности (хугинцы теоретиццки должны быть в курсе, практиццки - дистрибутив там всё тот же). И при попытке найти контрольные точки для более чем 40 кадриков падает autopano-sift-c, а более 100 файликов - весь hugin. Про проблему с кириллицей в именах файлов/каталогов им, опять же, известно примерно, эээ, уж два года как, сейчас проверил - проблема на месте, "просто не используйте кириллицу"...

     Плюнуть на всё, перестать жрать кактус, и перейти на пиратский APP (или как там его), что-ли? Или есть альтернативы? MS ICE не предлагать, это классная программа, но для совсем других слуаев :-)

     А вообще, конечно, hugin - прекрасная программа. Множество проекций (некоторые, вроде Panini, могут быть зело полезны), удобный интерфейс, хорошая управляемость процессом, возможность крутить-вертеть проекцию "в один клик" по превьюшке, GPU превью... ещё бы работала без заточки напильником и без странных заморочек - цены бы не было :-) И ещё бы не по 35 часов только на финальную сшивку, если можно...


(Читать комментарии) - (Добавить комментарий)


[info]ilya_314@lj
2010-09-08 15:55 (ссылка)
В autopano giga, кстати появились настройки, которые если я не ошибаюсь тебя интересовали, вот погляди:

Image

(Ответить) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 16:02 (ссылка)
Любопытно.
"Lens distortion" в hugin есть по-моему от рождения (как у наследника panotools), причём трёх видов по отдельности. И view angle оптимизировать умеет, кстати - полезно, если нужно "пришить" к панораме кадр, снятый с другим фокусным, или использовать кадр снятый широким углом как "опорный" для пришивки к нему длиннофокусных кадриков.
С "wrong links" (неправильными контрольными точками) я борюсь похожим образом (оптимизация, отбор по RMS, удаление неправильных, повтор оптимизации), но тут они это автоматизировали, а я стараюсь после отбора по RMS бегло проглядеть глазками, какие там именно точки неправильные-то :-)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 16:06 (ссылка)
Я тут имел ввиду отброс точек по порогу. Руками конечно тоже можно, там редактор контрольных точек есть.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 16:21 (ссылка)
Ну так да. Жмём F3 - имеем список точек. Кликаем на distance - они сортируются по ошибке. Выбираем сколько нужно сверху, можем при этом поглядеть глазками на точки (он показывает картинку для выбранной точки), жмём delete. В автопано это просто автоматизировали, в хугине - вручную, но "с удобствами". А там, кстати, можно делать что-нибудь типа запрета оптимизации по roll - иногда оказывается полезным?

В hugin оно тоже из exif, и когда все кадрики сняты с одним фокусным этого достаточно. Но вот если я хочу подцепить кадрик с другим фокусным - без _оптимизации_ его фокусного будет нехорошо: абсолютно точной цифра из exif не является, руками подобрать нереально...

Хотя использую не очень часто - только если заранее предполагаю проблемы с размещением кадриков, и снимаю "широкоугольный" кадрик для пришивания всего к нему...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 16:36 (ссылка)
Если честно, то у меня в подавляющем большинстве случаев все и так работает, поэтому про такие тонкости не могу сказать. У autopano есть wiki help:

http://www.autopano.net/wiki-en/action/view/Main_Page

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

http://www.autopano.net/forum/

(Ответить) (Уровень выше)


[info]ilya_314@lj
2010-09-08 16:39 (ссылка)
Еще они поддерживают import/export проектов panotools, может это будет тебе удобно, чтобы что-то снаружи покрутить другими тулузинами.

(Ответить) (Уровень выше)


[info]ilya_314@lj
2010-09-08 16:07 (ссылка)
Да, GPU ускорение для редактора там тоже имеется.

(Ответить) (Уровень выше)


[info]ilya_314@lj
2010-09-08 16:11 (ссылка)
Для smartblend-а есть пара параметров, пару раз я ими пользовался. Случай когда в кадрах волны на реке, они естественно выходят со сдвигом, вот есть smoothing выкрутить (по умолчанию он на минимуме), то там значительно более удобоваримый результат получается.

А так я в последнее время тащусь от content-aware инструментов photoshop cs5, в нем чистить сейчас на порядок проще. Рекомендую.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 16:23 (ссылка)
Проблема в том, что nona создаёт хитрые tif'ы - с информацией о сдвиге внутри. smartblend их читать не умеет, игнорирует сдвиг, результат как говорится налицо. Можно откатиться на ptstitch в качестве маппера, но тогда прощай интересные проекции, да и устарел он уже много лет как.

А фотошоп да - я же его скачал давно, а поставить торможу, всё на CS4 сижу...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 16:33 (ссылка)
Проекции APP/APG наверное стандатрные: spherical, cylinder, planar, mercator.

Про cs5 hint: у них там теперь рабочая область вся ускоряется через GPU, но как оказалось, что если это не вырубить, то на больших картинках даже на небольших областях content-aware фичи выдают нехватку RAM, причем у меня стоит максимум по использованию памяти, но ps 32-битный. После отключения такое бывает редко, видимо внутри все-же бывают утечки, а с gpu стабильно сразу глючит. Вот кстати причина ставить сразу 64-битный вариант.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 16:41 (ссылка)
В хугине их 19 штук :-) В основном это конечно вариации сферической и циллиндрической, но иногда вариации полезные: на экстремальных углах разные сферические по разному "передают объем" и "корёжат углы", а при съемке архитектуры - вообще сложно добиться приемлемого вида в "неплоской" проекции, а ихняя Panini и Architectural как раз заточены под "приятную визуально" передачу архитектуры при больших углах...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 16:49 (ссылка)
Тут все достаточно стандартно - вертикали можно задать, а в плоской еще и горизонталь, еще головой крутить. Вот кстати короткий ролик на эту тему.

http://www.autopano.net/wiki-en/action/view/How_to_straighten_a_panorama

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 16:54 (ссылка)
Тут всё то же самое есть (вертикали, горизонтали, направление оптической оси, крутить панораму). Речь о проекции - пусть кадрики по нужным углам мы уже разместили, как теперь это на плоскость проецировать :-) И вот тут возможны варианты...

Кстати, в hugin есть кнопка straighten panorama. Я не понимаю что она делает, но панораму действительно выравнивает :-) Для "длинных" панорам иногда бывает полезно (для "высоко-широких" - не требуется).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 17:06 (ссылка)
Понятно. В ICE для цилиндрическая распадается на горизонтальную и вертикальную, тут такого нет, надо повернуть и свести задачу к предудущей. А широкие иногда начинают идти волнами, наверное именно с этим пытаются как-то бороться.

Горизонтали в hugin-е не только для плоской проекции разрешены?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 17:25 (ссылка)
Не понял кто куда распадается и кого повернуть :-) В ICE с проекциями как-то вообще всё печально. В хугине, если что, "вертикальной цилиндрической" (вроде бы) нет, нужно будет повернуть и сшивать как горизонтальную.

Да, straighten борется именно с волнами (и "заворотами"). Любопытно то, что если сделать straighten, "выровненность" сохраняется после повторной оптимизации - не очень понятно как они этого добились :-)

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 17:32 (ссылка)
Я путано как-то написал. Цилиндрической проекции в ICE две - горизонтальная и вертикальная, в APP/APG одна, чтобы получить другую надо повернуть камеру.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2010-09-08 17:43 (ссылка)
А, в этом смысле.
В хугине как в APP, чтобы сделать вертикальную циллиндрическую панораму, её придётся повернуть и шить как горизонтальную.

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

Хантинг - эт хто? Оптимизатор у них работает загадочно: оптимизируется, похоже, не RMS в чистом виде, а как-то учитывается возможность "убежавших точек". Никаких подробностей мне не известно :-)
Поиск контрольных точек - SIFT (на изображениях находятся "ключевые точки", описываемые пусть длинным, но обычным числом (вектором?), затем ищутся совпадающие/близкие числа, результат фильтруется от ошибочных совпадений).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2010-09-08 18:05 (ссылка)
Хантингом называют процесс подбора начальных приближений в задачах оптимизации, в зависимости от природы задачи можно выбрать соответствующий подход.

Кстати я как-то пробовал программировать оптимизацию. Простой вариант когда есть просто много пар точек, никаких моделей дисторсии нет. Костя подсказал Downhill Simplex метод (http://en.wikipedia.org/wiki/Nelder-Mead_method) - он для случая больших размерностей подходит. Я пробовал оптимизировать пары контрольных точек располагая плоские картинки по парам точек, работало нормально.

(Ответить) (Уровень выше)


(Читать комментарии) -