Архивы: по дате | по разделам | по авторам

Долой фотореализм!

Архив
автор : Александр Филонов   11.01.2005

Невероятный прогресс в аппаратном и, прежде всего, программном обеспечения для работы с разного рода графикой вроде бы должен со временем привести к полному отказу от аппаратных способов рендеринга контурных изображений.

Невероятный прогресс в аппаратном и, прежде всего, программном обеспечения для работы с разного рода графикой вроде бы должен со временем привести к полному отказу от аппаратных способов рендеринга контурных изображений. Однако на самом деле, простыми средствами можно порой добиться куда лучших результатов, как показали нам ученые из Mitsubishi Electric Research Labs (Ramesh Raskar, Kar-han Tan, Rogerio Feris, Jingyi Yu, Matthew Turk, Non-photorealistic Camera: Depth Edge Detection and Stylized Rendering using Multi-Flash Imaging.).

Многие из тех, кто занимался традиционной фотографией, знакомы с техническим приемом, который называется псевдорельефом: позитивное и негативное изображения складываются с небольшим сдвигом, в результате чего возникает специфическое изображение с четко выявленным контуром, напоминающее барельеф. Подобный фильтр есть, например, в «Фотошопе», хотя он и не обеспечивает такой же гибкости, как его, простите за тавтологию, аналоговый аналог. Однако и тот и другой демонстрируют одно и то же: получить контурное изображение из полутонового можно лишь при благоприятных условиях, малоконтрастные же и не слишком рельефные изображения для подобной обработки непригодны.

Конечно, когда есть трехмерная модель объекта, задача построения контурного изображения относительно несложна — во всяком случае, нынешние успехи компьютерной мультипликации (вспомним хотя бы Хрюна со Степаном) такое впечатление создают; фактически рендеринг проводится в реальном времени. Однако при работе с реальными объектами ситуация зачастую осложняется. В некоторых случаях можно воспользоваться трехмерным сканером, но лишь тогда, когда объект относительно прост; вдобавок этот подход требует относительно много времени на реализацию.

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

Разработчики методики нефотореалистического рендеринга (Non-Photorealistic Rendering, NPR) взялись построить стилизованные изображения, имитирующие визуальное восприятие контуров и формы объекта, а также выделить движущиеся части, одновременно устранив визуальные помехи в виде теней и текстур.

Предложенное решение оказалось на диво простым и оригинальным; фактически оно обращает на пользу главный недостаток встроенных вспышек: создание резких теней, обрамляющих любой рельефный объект (например, нос на лице портретируемого). В обычных условиях с этим явлением борются всеми силами, прибегая к встроенной вспышке лишь по незнанию или как к паллиативу. Правда, чтобы воспользоваться этими тенями полностью, понадобится комплект из четырех вспышек — сверху, снизу, справа и слева. Такое расположение источников позволяет выявить все границы, меньшее же количество (даже три блица) неизбежно приведет к утрате границ, параллельных «горизонтальной» оси вспышки. Самое приятное, что подобную конструкцию может изготовить любой, у кого руки приставлены как надо. Один из простейших вариантов — установка вспышек на специальном кронштейне на камеру с синхроконтактом для внешнего блица, подключенным через барабанный переключатель ко всем вспышкам. Систему можно заставить работать и автономно, но тут уж без паяльника не обойтись. Впрочем, если подобная система требуется вам для профессиональных нужд, повозиться все-таки стоит — при минимальной доработке она сможет обеспечить цейтраферную (Фотографирование одного и того же объекта через большие промежутки времени) съемку; представьте, как эффектно будет выглядеть мультяшный ролик распускающегося цветка. Кстати, в крайнем случае можно обойтись и одной вспышкой, закрепив ее на кронштейне, вращающемся вокруг оптической оси объектива с шагом 90°, а то и просто держа в руке.

Ну, и еще одна оговорка: программу обработки придется писать самостоятельно (или попросить кого-нибудь из знакомых). Стартовая версия «взлет-посадка» потребует буквально пару часов, а вот чтобы добиться такой же гладкой работы, как у авторов методики, придется повозиться.

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

Далее следует обработка для определения глубинных границ. Не вдаваясь в математические тонкости, можно все объяснить буквально на пальцах. По сути, идея весьма проста и остроумна: если некий объект освещен с разных сторон, то при сравнении пикселов разных изображений тени границ проявляются тем, что присутствуют лишь на одном из комбинируемых снимков, во всех же прочих областях перепады яркостей и спектральный состав пикселов будут варьироваться слабо. Резонное возражение, возникающее у вдумчивого читателя, что-де граница теоретически представляет собой бесконечно тонкую линию, а отброшенная тень даже в идеальном случае — полосу. На самом же деле, и тут никаких хитростей нет: фактически граница располагается с внутренней стороны области, то есть ближе к оптической оси объектива. Таким образом, алгоритм сводится к выделению областей тени по присутствию их только в одном из слоев изображения и устранению всех пикселов, находящихся дальше от оптической оси, чем заданное для ширины границы количество. Вот тут-то и всплывает важнейшее преимущество этого метода перед традиционным выделением границ по контрастам, принятым в вышеупомянутом «Фотошопе»: границы цветов и текстур здесь практически стираются. Работает такой алгоритм весьма надежно, кроме некоторых случаев, как-то: глубокие тени позади объекта, отсутствие фона, низкое альбедо (Отражательная способность. — Прим. ред) фона, отверстия и щели позади объекта или расположение объекта в тени, отброшенной каким-либо предметом переднего плана.

Более серьезной проблемой может стать значительный параллакс вспышки (удаленность от оптической оси объектива), вследствие чего объект небольших геометрических размеров, расположенный заметно ближе к объективу, чем к фону, «оторвется» от тени — между ним и тенью появится светлая полоса. Так, вместо повешенного на нитке шарика на результирующем контуре появится четыре отдельные дуги, расположенные крестообразно, в чем легко убедиться, построив элементарный чертежик из курса линейной оптики.

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

Тут тоже предстоит решить ряд проблем, в том числе направление «источника света» (вспомним, у нас их исходно было целых четыре), передача текстур и цветов, наложение бликов. Строго говоря, такое может потребоваться не всегда — например, в анимации зачастую прибегают к чистым цветам, градиентным заливкам и т. п. Желающих глубже разобраться в предмете отсылаю к оригиналу (www.merl.com/people/raskar/NprCamera); здесь же в двух словах поясню, что оригинальные цвета и текстуры следует брать из тех снимков подборки, где нет отброшенной из-за вспышки тени, а направление на источник света задается как градиентом освещения, так и толщиной контурных линий.

Какие же еще приложения может найти эта оригинальная методика, кроме разного рода художественных работ? Очень даже практические. К примеру, в медицине серия из четырех рентгеновских снимков помогает построить четкий контурный рисунок, в ряде случаев заменив более дорогое сканирующее оборудование. Кстати, чтобы увидеть на сделанном подобным образом снимке скрытый перелом, уже не понадобится опыт рентгенолога. Точно так же можно использовать эндоскоп, подключенный к компьютеру, обрабатывающему картинку в реальном времени (установив на устройстве систему из четырех микроскопических светодиодов, работающих как стробоскоп с «бегущим огнем»). Вообще говоря, использование этой методики с волнами других длин, кроме оптических, сулит довольно много приложений — скажем, в дефектоскопии для выявления трещин и раковин, в металлографии, в радиолокации. Не исчерпаны и возможности оптического диапазона: любопытно, что от этого метода может сильно выиграть картография; с его помощью можно проще получать чрезвычайно четкие контуры объектов на местности (особенно зданий), всего-навсего произведя аэрофотосъемку (или спутниковую съемку) четырехкратно, при разных положениях солнца. Вероятно, найдутся какие-то приложения и в ультрафиолетовом, и в инфракрасном диапазоне. Привлекательно выглядели бы и рыбацкие сонары, дающие отчетливую контурную картинку. Словом, вариантов хватает.

И хотя авторы предложили очень простой способ реализовать идею на базе заурядной «мыльницы» — разместив встроенные вспышки по углам камеры, — сейчас производители, получающие изрядные барыши от выпуска тривиальных камер, вряд ли станут вкладывать деньги в разработку новых процессоров и дизайна для такого, согласитесь, довольно изысканного решения на любителя (не в смысле фотолюбителя). Так что пока флаг в руки специалистам-технарям (скажем, тем же картографам) и Левшам-самоучкам, которых у нас, к счастью, пока хватает.

© ООО "Компьютерра-Онлайн", 1997-2021
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.