Как заставить Hugin думать вместо тебя.

топ 100 блогов iv_an_ru09.08.2024 В некогда известном уинстоновском сборнике "The Psychology of Computer Vision", 1975, есть поучительная статья D. Waltz "Understanding line drawings of scenes with shadows". Когда мы заглядываем в коробку с детскими кубиками или лего, мы видим грани и рёбра деталей, и в состоянии восстановить частичный порядок этих предметов в пространстве --- какие грани и рёбра принадлежат каким деталям, какие детали опираются друг на друга, как детали заслоняют друг друга, и мы можем это делать, даже если все детали одного цвета и одной текстуры, только лишь анализируя комбинации граней и рёбер. Анализ задачи показал, что в таком виде она очень сложна, для N кубиков запросто может потребоваться логически проанализировать под 3^N вариантов, то есть для 10 деталек 60000 вариантов. Выходит, человек не должен быть в состоянии распознать такую сцену ни за какое разумное время, что противоречит наблюдениям экспериментатора над самим собой.

В статье делается вывод, что на самом-то деле человек решает куда более сложную (формально) задачу --- проанализировать сочетания не только граней и рёбер, а граней, рёбер, теней и краёв теней. Добавление теней кратно усложняет каждый шаг распознавания сцены, зато число вариантов растёт, ЕМНИП, как 1.03^N, то есть для 10 деталек в среднем 1.34 варианта. Тени добавляют множество "естественных ограничений" на возможный ответ, почти всегда устраняя возможные двусмысленности.

D. Waltz продемонстрировал важное умение "усложнить" задачу в нужной пропорции, умение из задачи о сферических лошадях в вакууме получить задачу, подчиняющуюся естественным ограничениям нашего мира, чтобы оказалась возможной шерлокхолмсовская дедукция: когда в силу тех или иных ограничений будут отбрасываться вариант за вариантом, тот вариант, который всё-таки "уцелеет", и будет верным. Добавляя в задачу естественные ограничения, ты её себе усложняешь, но одновременно добавляешь себе и инструменты для дедукции, квалификация решающего заключается в том, чтобы добавлять то, что приносит больше пользы от инструментов, чем проблем от ограничений.

(Дополнительное соображение --- решая задачу о сферических лошадях, можно получить ответ, неприменимый на практике, и тогда какие-то дополнительные свойства лошадей все равно придётся вводить, после чего решать заново. Почему бы не полениться, и не внести эти свойства сразу?)

-----8<-----

Hugin (бесплатная программа для сшивки панорам), панорама скал, сфотографированных местами сквозь кроны деревьев, стоящих рядом со мной. Чтобы сшить панормаму, надо на каждой паре перекрывающихся снимков найти попарные соответствия между "ключевыми точками". Например, макушка белого камня на одной фотке и макушка белого камня на другой фотке это один и тот же неподвижный камень, по нему можно ориентироваться, он годится на роль ключевой точки. А вот голова идущего человека как ориентир уже не подходит, и волна на озере тоже, и край облака, и колышущийся листик. Чем больше ключевых точек, тем лучше, и для большой панорамы их надо расставить сотни. К счастью, есть решатель, который расставляет их автоматически, и при этом умеет не ставить точки в облаках (но запросто поставит их на листики и автомашины). Вместо сотен "ручных" точек он может сделать несколько тысяч "кандидатов в ключевые точки", которые потом можно относительно быстро отфильтровать. Есть полуавтоматические способы, как быстро избавиться от части "плохих" точек, но все равно ручной работы предостаточно.

Хулиганский рецепт --- снять все кадры панорамы с брекетингом по экспозиции, то есть каждый кадр сделать трижды, один раз нормально, второй темнее первого, третий светлее первого. И заставить Hugin делать HDR (high dynamic range) панораму. Пусть он сначала сведёт "стопки"-тройки кадров в HDR-картинки (это всё тот же маханизм ключевых точек), а потом сшивает эти HDR-картинки в панораму. Неважно, что у меня нет специального "голливудского" оборудования, которое могло бы показать мне HDR-панораму во всех её замечательных контрастных цветах, у меня есть программка, которая пересчитает часть этих цветов в то убогое, что сможет показать мой дисплей, и получится примерно то же качество, как если бы я сделал панораму безо всякого брекетинга и промежуточного HDR.

Зачем такие сложности? А я лучше использую естественные ограничения камеры, чтобы дать Hugin-у данные для дедукции. Для сферической камеры в вакууме проблемы с мешающими листиками не было бы, она бы одновременно сделала все снимки, и ни один листик за это мгновение не шелохнулся бы. Но камера у меня реальная, снимающая с заметными интервалами между кадрами, потому что я в роли штатива требую времени на поворот, да и камера сработает не мгновенно. Алгоритм же остался тем же, что для идеальной, и листики стали проблемой. С брекетингом я делаю камеру "ещё более реальной", теперь листики успевают пошевелиться ещё и между кадрами внутри одной "стопки". Когда Hugin собирает стопку, он "видит", что у него в некоторых местах картинки какая-то ерунда, контрольные точки не строятся вовсе или строятся, но потом отбрасываются, как слишком выбивающиеся из остальных. Он в итоге отбраковывает те же самые шевелящиеся листики, которые будут шевелиться и между кадрами.

Итог хулиганства: из тысячи с хвостиком контрольных точек панорамы вручную пришлось проверить и удалить не сотню-другую, а _одну_. Программулине, конечно, пришлось нелегко ---- достаточно толстый ящик сшивал эту панораму минут 15--20, промежуточная картинка получилась в четверть гигабайта размером. Но это куда лучше, чем если бы 20--30 минут работал драгоценный любимый я.

Оставить комментарий

Предыдущие записи блогера :
Архив записей в блогах:
У вас есть такие киоски в городе ?! Когда-то, ещё в советское время пользующиеся большой популярностью у народа. В них всегда можно было купить свежий номер газеты. Вот с популярными журналами: "Юность", "Советский экран", "Наука и жизнь" было уже сложнее. Разбирали быстро и их ...
Новость http://webcache.googleusercontent.com/search?sourceid=navclient-ff&ie=UTF-8&q=cache:http://www.lifesports.ru/news/46403   Кто-нибудь действительно видел это? В Москву направляется большая группа уроженцев кавказских республик принявших вызов националистов. События произошедшие ...
Хунте, чтобы удержаться, необходимо хоть как-то контролировать бандитов, и хунта старается изо всех сил... В Харькове , например, т. н. "самообороне" велено ...
После вчерашних дебатов стало понятно, какой сложный выбор должна в воскресенье сделать Украина. Вор или дилетант, дилетант или вор — вот ведь в чем вопрос. Впрочем, сама Украина вряд ли задумывается о таких сложных материях. Понятно, что публичная политика — это всегда шоу. Ибо ...
Поход Алексея Панина в кафе снова закончился в отделении полиции — на этот раз актера задержали за дебош в Благовещенске. За короткие гастроли он успел устроить скандал сразу в двух городах Приамурья, и это уже третий подобный инцидент с участием артиста только за эту осень: ...