?

Log in

No account? Create an account
dibr
 
[Most Recent Entries] [Calendar View] [Friends View]

Thursday, August 30th, 2007

Time Event
8:35p
Йа панорамко
     Поклейка панорамков типично состоит из следующих шагов. Грузим фотки в панорамочный софт, создаем контрольные точки. Выбираем на одном из кадриков "anchor point" - направление, в котором будет смотреть виртуальная оптическая ось виртуального объектива при сшивке - ведь панорама это не просто "склейка внахлёст" пары десятков кадриков, это довольно хитрое тригонометрическое преобразование, имеющее целью получить изображение "как если бы" оно было снято [широкоугольным] объективом, направленным в конкретную сторону. Выбирается проекция ("прямоугольная", фишай, циллиндрическая), жмётся капа "optimize".

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

     По результатам оптимизации создается preview, глядя на которое можно подправить что-то в параметрах, оптимизировать заново... и так до получения удовлетворения. Удовлетворившись превьюшкой - жмём Главную Капу, и ставим панораму на Окончательную Сшивку: это процесс небыстрый.

     Так вот, к чему я это всё.

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

     Так вот - в используемой мной связке hugin + smartblend единственным способом "поменять точку зрения" является выбор новой anchor point и... перезапуск оптимизации. Хотя казалось бы - ведь оптимизация подбирает углы исходных кадриков, а они не меняются, и параметры преобразования при смене угла зрения можно получить простой арифметикой! Однако - вместо того чтобы по быстрому покрутить пару ручечек в реальном времени, приходится методом тыка подбирать anchor point и жать optimize - а оптимизация не так чтобы всегда работает быстро...

     Вот, собственно, и любопытно - а есть ли [вменяемый] софт, где подбор "точки зрения" можно проводить в реальном времени? Требования - "стандартный" подход к склейке (возможность ручного задания точек, задание вертикалей/горизонталей, настройка параметров оптимизации), возможность использования совместно со smartblend, непадучесть на больших панорамах (higin + smartblend у меня переваривают до 160-180 мпикс, дальше падают)?

     Есть чё Знает кто?...
10:01p
Перечитал тут Исаака Азимова. Ну, про роботов
     Так вот, ламеры они там были, в этой "Ю Эс Роботс энд мекэникл мэн корпорэйшн", хотя модемы у них неплохие были, признаю.

     Как мы помним, Первый Закон роботехники звучал так: "робот не может причинить вреда человеку, или допустить чтобы вред был причинен". Не может - и всё тут! И тут-то и начинается: роботы при первом же удобном случае начинают банально врать (ведь запрета на враньё в Азимовских законах роботехники нет), отмазывая от тюрьмы какого-нибудь преступника. И на этом, совершенно очевидном, глюке - построено больше половины рассказов о роботах, что свидетельствует о размахе проблемы: роботы не просто "могут врать", они врут часто, ибо считают что тем самым охраняют человека от вреда. Даже если вред этот по нашим меркам - необходим и желателен, ибо он предотвратит вред ещё больший.

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

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

     ..."Нулевым" законом делаем, что робот не может лгать и не может фантазировать ("говорить только правду и ничего кроме правды"). Робот, правда, может молчать - если по его мнению информация принесёт вред человеку - но это лучше, чем робот, напропалую врущий в попытке выгородить преступника.
     Неплохо бы ещё, раз уж от человека в судах требуют "всю правду", в тот же "нулевой" закон вписать требование сообщать всю информацию при предъявлении соответствующих полномочий - например, при вызове в суд в качестве свидетеля. И хотя любители privacy взвоют - но... не совершайте преступлений в присутствии робота. Вы ж не совершаете их в присутствии камер видеонаблюдения, правда?

     Первый закон, так уж и быть, оставим. Проблемы есть даже с ним (у Азимова они описаны), но лучше его не трогать. На всякий случай.

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

     Правда, есть один недостаток. Будь законы роботехники именно такими - Азимову пришлось бы писать на какую-то другую тему. Ибо тем для рассказов про роботов осталось бы куда меньше :-)

<< Previous Day 2007/08/30
[Calendar]
Next Day >>
My Website   About LiveJournal.com