СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ И ВОСПРОИЗВЕДЕНИЯ ТРЕХМЕРНОГО ВИДЕОИЗОБРАЖЕНИЯ
SYSTEM AND METHOD TO GENERATE AND REPRODUCE 3D VIDEO IMAGE

Изобретение относится к устройствам и способам обработки стереоизображений и видеопотоков и может найти применение, в частности, для получения в режиме реального времени трехмерной сцены от нескольких камер, для вычисления диспарантности между смежными видами и для формирования виртуальных видов для воспроизведения трехмерного изображения на авто-стереоскопических дисплеях.
Трехмерное телевидение берет свое начало с идеи восприятия глубины наблюдаемой сцены на телевизионном экране. Чтобы это реализовать, требуются несколько этапов обработки видеосигнала. Как правило, сюда включается этап формирования трехмерного образа, этап передачи изображения и этап воспроизведения.
Трехмерный образ может быть сформирован на основе реальных данных или генерироваться на основе компьютерной графики. Для первого случая были разработаны весьма сложные способы оценки стереодиспарантности. При этом разработчики таких систем были вынуждены принимать во внимание необходимость компромиссных решений между качеством и рабочими характеристиками потому, что вычисление плотной карты диспарантности зачастую требует большого количества итераций алгоритма. Для второго случая данные о глубине; легко выявляются, поскольку геометрия сцены полностью определена и, сохраняется в буфере глубины (z-буфере).
Из уроня техники известны спецификации различных трехмерных форматов. Причем наиболее популярными являются решения, основанные на передаче стереоэффекта посредством отдельных потоков для левого и правого глаза, а также изображения с по-пиксельной картой глубины. Первый подход удобен для захвата стереоскопического видеоизображения стереокамерой, в то время, как второй подход допускает формирование множества видов (ракурсов).
Для трехмерного формата разработаны различные способы сжатия, в том числе с помощью традиционных кодеков типа MPEG-2, MPEG-4, H.264. Другие способы включают пространственное прогнозирование p- и b-кадров наряду с обычным темпоральным прогнозированием.
После декодирования трехмерное изображение необходимо подготовить для визуализации на выбранном устройстве. Примером устройства визуализации трехмерного изображения служат автостереоскопические мониторы, которые используют линзово-растровый лист или оптические барьеры для пространственного разделения лучей. В любом случае, требуется специальная процедура, называемая смешиванием, чтобы подготовить смешанное изображение, которое составлено из множества виртуальных изображений, представляющих вид сцены с различных углов зрения (перспектив). С точки зрения конструкции трехмерный монитор отвечает за адекватное разделение световых лучей, соответствующих различным перспективам (углам зрения).
Американские патентные заявки 20040032980 [1] и 20030007681 [2] раскрывают систему и способ, приспособленные к декодированию видео, которое сопровождается информацией о глубине сцены. Задача такой системы заключается в стереопреобразовании одиночного двумерного видеокадра. Это подразумевает формирование пары стереоизображений при наличии видеокадра с соответствующей картой глубины. Такие способы [1] и [2] определяют содержание карты глубины и возможное применение системы, адаптирванной к DIBR (depth image based rendering - представление изображения на основе данных о глубине). Недостаток этого подхода заключается в том, что эти системы предназначены для генерации только одной стереопары, а не для синтеза множества видов (перспектив). Кроме того, способ вычисления карты глубины не раскрывается. Иными словами, карту глубины для каждого видеокадра необходимо вычислять до генерации стереоизображений.
Система трехмерного телевидения, описанная в американской патентной заявке 20050185711 [3], является самой близкой к заявляемому изобретению в том, что касается этапов формирования, передачи и воспроизведения стереоизображений. Эта патентная заявка выбрана в качестве прототипа заявляемого изобретения. Несмотря на то, что описанная система позволяет одновременный захват и кодировку нескольких стерео-видеопотоков, недостаток ее состоит в том, что эти видеопотоки должны быть особым образом де-мультиплексированы для конкретного устройства визуализации. В этом смысле система не является универсальной. Также визуализация виртуальных видов осуществляется усреднением входящих видеопотоков с помощью взвешенной суммы с постоянными коэффициентами, что порождает невысокое качество трехмерного изображения.
Таким образом, задача, на решение которой направлено заявляемое изобретение, заключается в создании системы для формирования и воспроизведения трехмерного видеопотока, работающей с устройствами визуализации, известными из уровня техники, и обеспечивающей достаточно высокое качество трехмерного изображения, т.е. системы, свободной от недостатков, присущих прототипу [3].
Технический результат достигается за счет разработки системы и способа для формирования в режиме реального времени трехмерной сцены от нескольких камер, вычисления диспарантности между смежными видами и генерации виртуальных видов (изображений) для трехмерного воспроизведения на авто-стереоскопических дисплеях.
Заявляемая система формирования и воспроизведения трехмерного видеоизображения состоит из:
- комплекса формирования, включающего в себя:
- более одного устройства генерации видеопотоков;
- средства для хранения и передачи видеопотоков по сети к модулям извлечения стереокадров и оценки диспарантности;
- модуль формирования, выполненный с возможностью извлечения стереокадров из множества видеопотоков;
- модуль предварительной обработки стереокадров, выполненный с возможностью выделения множества проекций трехмерной сцены из стереокадров и выполнения процедур компенсации линзовых искажений и выравнивания изображений с использованием эпиполярного ограничения;
- комплекса оценки диспарантности, включающего в себя;
- цветовой преобразователь, выполненный с возможностью преобразовывать изображения в визуально однородное цветовое пространство:
- первый модуль диспарантности, выполненный с возможностью приблизительной оценки диспарантности на множестве проекций трехмерной сцены;
- второй модуль диспарантности, выполненный с возможностью повторного уточнения приблизительной карты диспарантности;
- блок передачи, выполненный с возможностью упаковки карты диспарантности и проекций в трехмерные видеокадры и после факультативного сжатия передачи их в устройство трехмерного воспроизведения;
- комплекса синтеза изображений, включающего в себя:
- получающий блок, выполненный с возможностью получения и распаковки трехмерных видеокадров;
- блок синтеза, выполненный с возможностью формирования множества виртуальных видов наблюдаемой трехмерной сцены для воспроизведения на трехмерном дисплее;
- комплекса воспроизведения, включающего в себя:
- цифровой дисплей с оптической системой, выполненный с возможностью пространственного разделения множества виртуальных видов, таким образом, что каждым глазом наблюдается свой собственный вид воспроизводимой трехмерной сцены;
- мультиплексор, выполненный с возможностью подготовки мультиплексированного изображения в соответствии с характеристиками оптической системы трехмерного дисплея и множеством виртуальных видов.
Комплекс оценки и уточнения значений диспарантности для стереопары основан на выполнении последовательных итераций уточнения первичной оценки диспарантности. Такой способ предусматривает выполнение следующих операций:
- выполняют первичное вычисление диспарантности;
- проводят настройку параметров фильтра уточнения диспарантности в зависимости от номера итерации;
- оценивают размер ядра фильтра уточнения диспарантности в зависимости от номера итерации;
- выполняют уточнение карты диспарантности согласно параметрам и размерам ядра фильтра;
- вычисляют и оценивают критерии сходимости, при этом если они соблюдаются, то процесс фильтрования прекращают;
- выполняют пост-обработку карты диспарантности.
Реализуемый вышеописанной системой способ формирования виртуальных изображений из цветного изображения и соответствующей карты диспарантности/глубины при известных параметрах камеры заключается в выполнении следующих операций:
- формируют модели виртуальных камер;
- определяют функцию формирования виртуальных изображений;
- оценивают параметры функции формирования виртуальных изображений;
- формируют виртуальные изображения в соответствии с функцией формирования виртуальных изображений;
- устраняют имеющиеся дисокклюзии на сформированных виртуальных изображениях.
Таким образом, основные отличительные признаки заявляемого изобретения от прототипа состоят в том, что предлагаемые способ и система обеспечивают получение высококачественного изображения на основе точной карты глубины, сформированной из стереокадров. При этом разработаны методики оценки диспарнтности и синтеза изображений, которые эффективно выполняются параллельными модулями вычисления данных (например, FPGA и GPU). Это дает возможность использования системы в режиме реального времени.
Процедура получения и воспроизведения трехмерного видеоизображения включает в себя этап формирования стереоконтента, этап оценки диспарантности, этап синтеза виртуальных изображений этап воспроизведения трехмерного изображения. Этап формирования контента предусматривает использование нескольких видеокамер, обеспечивающих создание множества видеопотоков динамической сцены. Этап оценки диспарантности предусматривает использование вычислительных блоков для оценки диспарантности в реальном времени, используя полученные видеопотоки. Этап синтеза виртуальных изображений предусматривает использование вычислительных блоков для получения синтезированных виртуальных изображений в реальном времени на базе вычисленной диспарантности. Этап воспроизведения трехмерного изображения предусматривает использование вычислительных блоков и дисплея, способного отображать трехмерное изображение на основе нескольких виртуальных изображений, сгенерированных на предыдущем этапе.
Далее существо заявляемого технического решения поясняется в деталях с привлечением графических материалов.
Фиг.1. Принципиальная схема заявляемой системы с описанием основных этапов.
Фиг.2. Детализированная блок-схема заявляемой системы.
Фиг.3. Структура вычислительной системы, используемой для оценки диспарантности и синтеза изображения.
Фиг.4. Детализированная блок-схема вычислительной системы с параллельными каналами, используемой для оценки и уточнения диспарантности, согласно заявляемому изобретению.
Фиг.5. Алгоритм работы модуля предварительной обработки стереокадров.
Фиг.6. Примеры различной ориентации стереокадров.
Фиг.7. Способ уточнения карты диспарантности.
Фиг.8. Принцип фильтрования карты диспарантности на основе сравнения участков пикселей: 8.1 - сравнение двумерных блоков, 8.2 - сравнение одномерных горизонтальных блоков, 8.3 - сравнение одномерных вертикальных блоков.
Фиг.9. Оценка карты диспарантности и результаты уточнения карты.
Фиг.10. Структура вычислительной системы, используемой для получения множества виртуальных изображений.
Фиг.11. Способ получения виртуальных изображений.
Фиг.12. Пример размещения виртуальных видеокамер.
Фиг.13. Моделирование виртуальной видеокамеры: 13.1 - виртуальное изображение, усеченное параллельными плоскостями, 13.2 - плоскость виртуального изображения.
Фиг.14. Иллюстрация получения виртуального изображения с устранением дисокклюзий в новых изображениях.
Заявляемая система состоит из четырех основных комплексов, а именно:
комплекса 101 формирования стереоконтента, комплекса 102 оценки диспарантности, комплекса 103 синтеза изображений и комплекса 104 воспроизведения.
Комплекс 101 формирования стереоконтента включает в себя набор (множество) видеокамер 106, обеспечивающих генерацию множества видеопотоков динамической сцены 105. Число видеокамер в системе должно составлять не менее двух, что позволяет формировать видеокадры сцены, снятые с разных углов зрения, то есть создавать стереоэффект. В минимально допустимой комплектации система снабжается стереокамерой. Для хранения и передачи (пересылки) видеопотоков в комплекс 102 с целью последующей обработки предлагается использовать работающую в режиме реального времени устройство захвата видео 107, накопитель (память) 108 или сетевое устройство 100.
Полученные от комплекса 101 видеопотоки поступают через промежуточные устройства 107, 108 или 100 на вход комплекса 102, где из этих потоков формируется стереокадр 109, составленный, как правило, из нескольких изображений, полученных от конкретной видеокамеры. Комплекс 102 включает в себя также вычислительное устройство 1010, которое использует алгоритм 1011 оценки диспарантности в режиме реального времени на основе стереокадра 109. Для решения проблем, связанных с высокой вычислительной сложностью способа оценки карты диспарантности, целесообразно использовать дополнительные вычислительные модули, действующие совместно с вычислительным устройством 1010.
Комплекс 103 синтеза виртуальных изображений включает в себя вычислительный модуль 1012 (модуль синтеза представления), использующий алгоритм (способ) синтеза виртуальных изображений в режиме реального времени на основе стереокадра 109 и карты диспарантности, вычисленной с помощью алгоритма 1011. Комплекс 103 формирует определенное число виртуальных изображений 1013 в соответствии с параметрами виртуальных видеокамер.
Комплекс 104 трехмерного воспроизведения также включает в себя вычислительный модуль 1014, предназначенный для мультиплексирования изображений, и дисплей 1015 для трехмерного воспроизведения виртуальных изображений 1013, сформированых в комплексе 103. Трехмерный дисплей 1015 включает в себя ЖК-панель 1016, на которой воспроизводится мультиплексированное изображение. Оптическое устройство 1017 (линзово-растровый лист, параллакс-барьер и т.д.) отделяет мультиплексированное изображение в пространстве таким образом, что каждый глаз человека 1018 наблюдает соответствующее виртуальное изображение 1013 для нормального восприятия трехмерной сцены.
Фиг.2 показывает детализированную блок-схему системы, согласно заявляемому изобретению. Комплекс 201 формирования стереоконтента включает в себя модуль 208 видеозахвата, который извлекает стереокадры 209 из устройств, отвечающих за генерацию стереоконтента. Обычно, стереокадры 209 могут быть получены от набора 205 видеокамер. Кроме того, стереокадры 209 могут быть записаны и сохранены на устройстве памяти в формате видеофайлов 207. Модуль 208 видеозахвата, в случае записанного стереоконтента, распаковывает и анализирует видеофайл для извлечения стереокадра 209. Еще одним поставщиком контента является сетевое телевидение - IPTV 206, обеспечивающее передачу видеопотока через сеть. В этом случае, предназначение модуля 208 видеозахвата состоит в том, чтобы подсоединиться к хост-компьютеру и обеспечить получение видеопотока и извлечение стереокадра 209.
Полученный стереокадр 209 обычно состоит из двух или болеее снимков, полученных конкретной видеокамерой. Такие снимки могут группироваться в нисходящей форме 602 или форме 601 слева-направо (см. Фиг.6). Для дальнейшей обработки такие снимки следует разрезать и сформировать отдельные изображения, соответствующие каждому снимку. Эта процедура выполняется в модуле 210 предварительной обработки стереокадра. Кроме того, модуль 210 выполняет корректировку снимков и компенсацию линзовых искажений объектива. Получаемые на выходе комплекса 201 улучшенные изображения поступают затем на вход комплекса 202 оценки диспарантности.
Блок 211 цветового преобразования преобразует улучшенные изображения в перцепционно однородное цветовое пространство, такое как Lab, для более точного сравнения пикселей в модулях 212 и 213 оценки диспарантности. Выход блока 211 цветового преобразования подключен к модулю 212 начальной оценки диспарантности. Начальная оценка диспарантности осуществляется с помощью известных из уровня техники традиционных алгоритмов совмещения стереоизображений, а также на основе изображений с хаотическим шумом. Изображение с хаотическим шумом определяется как полутоновое изображение. Интенсивности пикселей в изображениях с хаотическим шумом произвольно выбираются из диапазона, включающего пиксели от минимальной интенсивности до максимальной интенсивности. Для восьми-битовых изображений диапазон интенсивностей составляет от 0 до 255.
Модуль 212 генерирует приблизительные карты диспарантности, которые затем уточняются в модуле 213 уточнения диспарантности согласно заявляемому изобретению. Модуль 212 начальной оценки диспарантности и модуль 213 уточнения диспарантности проводят стереосовмещение и уточнение с помощью вычислительного устройства с многочисленными блоками параллельного вычисления.
Уточненная высококачественная карта диспарантности 214 является продуктом модуля 213 уточнения диспарантности. Следует учитывать, что на этапе 202 оценки диспарантности могут быть сгенерированы несколько карт диспарантности для каждого изображения, извлеченного из стереокадра 209. Несколько карт диспарантности, совмещенные с соответствующими несколькими изображениями, обеспечивают более точный синтез виртуального изображения. Однако для простоты иллюстрируем случай с одной картой диспарантности.
Полученная карта 214 диспарантности вместе с соответствующим изображением из трехмерного видеокадра может быть записана в запоминающее устройство в качестве видеофайла для последующей передачи в устройство трехмерного воспроизведения через блок 215 передачи. Ясно, что передача может быть осуществлена и без факультативного сохранения в запоминающем устройстве. Блок 215 передачи компонует карту (карты) диспарантности и изображение (изображения) в трехмерные видеокадры и после факультативной компрессии передает их на устройство трехмерного воспроизведения. Такая передача может осуществляться путем соединения блока 215 передачи с модулем-приемником 217 в устройстве трехмерного воспроизведения. Такое соединение может осуществляться как по проводам, так и по радиоканалу.
В комплексе 203 синтеза изображения из изображений и карты диспарантности, извлеченных из трехмерного видеокадра, получают с помощью модуля 217 определенное число виртуальных изображений, соответствующее числу виртуальных камер. Следует учитывать, что число виртуальных изображений может быть больше, чем число изображений, полученных в трехмерный видеокадр. Число виртуальных изображений, которые будут генерироваться, зависит от количества видов, которые может воспроизвести трехмерный дисплей. Когда количество видов и параметры виртуальых камер опрделены, модуль 217 синтеза изображений генерирует необходимое число виртуальных изображений 218 в соответствии с заявляемым способом.
Комплект виртуальных изображений 218 подают на вход комплекса 204 трехмерного воспроизведения, который включает трехмерный дисплей 221 и блок 219 мультиплексирования изображения. Трехмерный дисплей 221 представляет собой обычный цифровой дисплей с оптической системой, такой как лентикулярный лист, параллакс-барьер и т.д. Такая оптическая система позволяет видеть только определенные пиксели в зависимости от положения наблюдателя. Таким образом, мультиплексор 219 изображений генерирует мультиплексированное изображение 220 в соответствии с оптической системой и множеством виртуальных изображений 218. Тогда мультиплексированное изображение 220 выводят на трехмерный дисплей 221, и оптическая система осуществляет демультиплексирование оптическими средствами.
Фиг.3 показывает структуру вычислительного устройства, используемого для оценки диспарантности и синтеза изображения. Такое устройство включает в себя блок 301 памяти данных, который используется для хранения изображений, карт диспарантности, видов, параметров камеры и промежуточных данных, необходимых для вычислений. Устройство 303 ввода/вывода выполняет роль коммуникатора с внешними устройствами, такими как драйвер памяти данных, сеть, камеры и трехмерный дисплей. Устройство 303 ввода/вывода передает и получает данные от блока 301 памяти данных.
Вычислительный блок 304 состоит из вычислительных модулей с массовым параллелизмом, каждый из которых может работать с различными данными параллельно в соответствии с инструкциями, записанными в программах в блоке 302 памяти программ. Блок 302 памяти программ хранит инструкции в соответствии с заявляемым способом для оценки диспарантности и синтеза изображений. Блок 302 памяти программ, вычислительный блок и устройство ввода/вывода соединены между собой общей шиной 305 данных.
Фиг.4 показывает детализированную блок-схему архитектуры параллельного вычисления, используемой для оценки диспарантности и уточнения карты диспарантности согласно варианту реализации заявляемого изобретения. Входные данные для оценки диспарантности состоят из уточненных изображений и карты 403 начальной диспарантности. Необходимы, по меньшей мере, два уточненных изображения для оценки диспарантности. Одно изображение является опорным изображением 401, а другое изображение является совмещаемым изображением 402. Карта 403 начальной диспарантности хранит значения диспарантности, уточненные на предыдущих этапах. Такая карта 403 начальной диспарантности уточняется в соответствии с заявляемым изобретением, и в результате получают уточненную карту 410 диспарантности.
Способ оценки диспарантности и уточнения согласно заявляемому изобретению разработан таким образом, что процесс уточнения карты диспарантности для одной строки может осуществляться независимо от процесса уточнения других строк. Такое важное свойство может быть использовано вычислительным устройством 406 с большим числом модулей, осуществляющих параллельные вычисления, для значительного ускорения процесса оценки диспарантности. Вычислительное устройство 406 работает в соответствии с программой 412 для оценки диспарантности и ее уточнения, которая записана в блоке 411 памяти программ. Программа 412 соответствует способу оценки диспарантности и ее уточнения, который детально описан ниже.
Модуль 404 расщепления изображения на строки делит входящие изображения 401, 402, 403 на множество строк, которые могут обрабатываться независимо, и хранит множества строк в буфере 405 памяти данных. Следует понимать, что множество строк может включать в себя либо горизонтальные строки изображения, либо вертикальные столбцы изображения. Количество строк зависит от размера изображения и равно ширине или высоте обрабатываемого изображения.
Вычислительное устройство 406 включает в себя несколько вычислительных модулей, каждый из которых обрабатывает назначенный ему набор из множества строк параллельно с другими модулями и генерирует соответствующую строку с уточненной диспарантностью. Строки с уточненной диспарантностью сохраняются в буфере 408 памяти данных. Модуль 409 совмещения строк генерирует уточненную карту 410 диспарантности из строк с уточненной диспарантностью, сохраняемых в буфере 408 памяти данных.
Следует учитывать, что число вычислительных модулей может быть не равно числу наборов данных. Чтобы решить эту проблему модуль 407 планирования вычислений согласует число строк, сгенерированных модулем 404 расщепления изображения на строки, с числом вычислительных модулей, которые незагружены и могут быть использованы для проведения вычислений. После того, как вычислительный модуль начинает обработку данных, он помечается как "занятый". После формирования строки с уточненной диспарантностью вычислительный модуль помечают как "свободный". Модуль 407 планирования вычислений управляет также модулем 409 совмещения строк, посылая управляющий сигнал, когда новые строки с уточненной диспарантностью становятся доступными.
На Фиг.5 приведена последовательность операций модуля 210 предварительной обработки стереокадра 501. Стереокадр 501 может иметь ориентацию «лево-право», как показано на Фиг.6, вид 601 или «верх-низ», как показано на виде 602. Модуль 502 ориентации стереокадра выполняет автоматическое определение типа ориентации по данным о ссотношении размера сторон кадра. Тогда, зная ориентацию стереокадра и число изображений, определяют координаты изображений 504, 505 в модуле 503 разделения стереокадра. Модуль 506 компенсации искажений объектива и модуль 507 уточнения выполняют стандартные процедуры, известные из уровня техники. Подобным образом формируются опорное изображение 509 и совмещаемое изображение 508, используемые для оценки диспарантности на последующих этапах.
Рассмотрим поэтапный процесс реализации способа оценки карты диспарантности и ее уточнения на паре стереоизображений (Фиг.7). Первый этап способа уточнения карты диспарантности состоит в адаптации силы фильтрации согласно номеру итерации (Этап 701). В предпочтительном варианте реализации заявляемого изобретения уравнение для адаптации силы фильтра в соответствии с номером итерации (функция σ(k)) имеет линейный вид и представляется как:
1
1
σ(k)=a·k·b,
где k - номер итерации,
1
1
α, b - линейные коэффициенты.
Допустима и иная форма функции σ(k), что не отражается на объеме охраны заявляемого изобретения.
Следующим этапом реализации способа является проведение оценки размера ядра фильтра (Этап 702). В предпочтительном варианте реализации заявляемого изобретения уравнение для оценки размера ядра фильтра в соответствии с номером (функция KS(k)) имеет линейный вид и выражается как:
2
2
KS(k)=a·k+b,
где k - номер итерации,
2
2
a, b - линейные коэффициенты.
Допустима также иная форма функции KS(k), что не отражается на объеме охраны заявляемого изобретения.
После вычисления силы фильтра и оценки размера ядра фильтра выполняют уточнение карты диспарантности для опорного изображения, используя информацию от совмещаемого изображения (Этап 703-Этап 704). В дальнейшем опорное изображение определяется как цветное изображение от стереопары, для которой проведена оценка диспарантности. А совмещаемое изображение определяется как другое цветное изображение стереопары.
Карта диспарантности на k-ой итерации представляется как
k
c
c
c
c
где d(x, y) обозначают карту диспарантности на k-ой итерации для текущего пикселя с координатами (x, y),
k-1
r
r
r
c
r
c
d(x, y) обозначают карту диспарантности на (k-1)-ой итерация для опорного пикселя с координатами (x=x+p, y=y+s),
γ
w обозначает вес опорного пикселя,
индекс p изменяется от  до  в направлении X,
индекс s изменяется от  до  в направлении Y,
нормирующий множитель вычисляют как .
В предпочтительном варианте реализации заявляемого изобретения размеры окна фильтра, а именно L и K, определены как L=K=KS(k), используя функцию оценки размера ядра фильтра, вычисленного на этапе 702. Однако независимое задание размеров L и K тоже допустимо. Это могло бы стать необходимым для устройств, которые используют для обработки построчную память. В таких случаях радиус ядра фильтра в вертикальном направлении ограничен числом строк, а радиус ядра фильтра в горизонтальном направлении может быть установлен произвольно на желаемое значение.
Для уменьшения вычислений фильтр диспарантности можно разделить на независимые операции в двух проходах. Первый проход - построчная обработка (Этап 703). Второй проход - обработка по столбцам (Этап 704).
rowk
c
c
где d(x, y) - результат построчной процедуры фильтрации,
k
с
с
d(х, у) - конечный результат фильтрации по столбцам,
нормирующий множитель для построчного фильтра вычисляют как
а нормирующий множитель для постолбцового фильтра вычисляют как
Фильтрация осуществляется в окне размером L×K. Все пиксели, которые принадлежат этой области, определяются как опорные пиксели. Пиксели в совмещаемом изображении, которые отображены векторами диспарантности из опорных пикселей, определены как совмещаемые пиксели (Фиг.8). Предложенный фильтр назначает более высокие веса для пикселей, которые более сходны с текущим пикселем. В предпочтительном варианте реализации заявляемого изобретения способ вычисления веса фильтра диспарантности использует сравнение окрестности пикселя, а не сравнение отдельных пикселей. Это делается с целью усиления критерия сходства пикселей.
В данном способе оценки и уточнения диспарантности вес отражает степень сходства (подобия) текущего пикселя с опорным пикселем, а также степень сходства опорного пикселя с совмещаемым пикселем. Соответственно, для определения сходства текущего пикселя с опорным пикселем проводят сравнение окрестности текущего пикселя с окрестностью опорного пикселя. Затем для определения сходства опорного пикселя с совмещаемым пикселем выполняют сравнение окрестности опорного пикселя с окрестностью совмещаемого пикселя (примеры сравнений показаны на Фиг.8 стрелками). В этом случае веса фильтра диспарантности вычисляют следующим образом
где C() обозначает функцию, используемую для сравнения окрестностей пикселя,
t
r
t
r
t
σ и σ - параметры регуляторов силы фильтра. В предпочтительном варианте реализации заявляемого изобретения они определены как σ=σ=σ(k), используя функцию адаптации силы фильтра, вычисленной на этапе 701. Однако независимая настройка σи σ допустима тоже, что позволяет дифференцирование штрафа для пикселей из опорных и совмещаемых изображений.
Чтобы повысить производительность способа с небольшими потерями в качестве, имеет смысл использовать сравнение только опорных пикселей вместо окрестностей пикселей. Это может рассматриваться как граничный случай способа, когда размеры окрестностей пикселя, а именно, M и N равны единице. Использование этого подхода для вычисления веса фильтра может в результате давать несколько зашумленную карту диспарантности. Поэтому требуется некоторая постобработка для устранения рассогласований в карте диспарантности. С этой целью выполняют этап постобработки диспарантности (Этап 707) для конечной оценки диспарантности.
Важным этапом способа уточнения диспарантности является вычисление и оценка критерия сходимости (Этап 705 - Этап 706). Во время каждой итерации с помощью способа уточнения диспарантности оценивают критерии сходимости для процесса фильтрации. В предпочтительном варианте реализации заявляемого изобретения описаны два способа оценки критерия сходимости:
- Используя анализ разности между смежными оценками карты диспарантности
- Используя жесткое пороговое значение номера итерации алгоритма.
dec1
Первый способ для проверки сходимости алгоритма заключается в вычислении остаточного изображения (разности) между смежными оценками карты диспарантности. Сумма остаточных пикселей не должна быть больше, чем порог T сходимости оценки диспарантности. Это формулируется следующим образом
,
k
k-1
где d и dэто оценки диспарантности на k-ой и (k-1)-ой итерации алгоритма.
dec2
Второй способ оценки критерия сходимости можно сформулировать как жесткое пороговое значение числа итераций. Если число итераций превышает порог T сходимости оценки диспарантности, то процесс фильтрации прекращают. Это формулируется следующим образом
dec2,
k≥T
где k - номер текущей итерации оценки диспарантности.
Первый критерий сходимости можно использовать для жесткой оценки результатов выполнения алгоритма. В то время, как использование второго критерия предпочтительно для устройств с минимальной конфигурацией, где простота устройства играет важную роль.
Конечный этап способа уточнения диспарантности заключается в выполнении постобработки диспарантности (Этап 707). В предпочтительном варианте реализации заявляемого изобретения используется медианный фильтр в качестве средства постобработки, что является простым и надежным решением для устранения импульсного шума, а также небольших искажений карты диспарантности.
Фиг.9 показывает результаты оценки диспарантности предложенного фильтра согласно изобретению. Левое изображение в стереопаре, для которой была выполнена оценка диспарантности, представлено на Фиг.9 (вид 9.1). На Фиг.9 (вид 9.2) представлен результат оценки диспарантности известного из уровня техники фильтра [4], а на Фиг.9 (вид 9.3) представлен результат оценки, диспарантности предложенного фильтра согласно изобретению. Из Фиг.9 (вид 9.2) и (вид 9.3) видно, что заявляемый способ дает лучший результат, особенно для однородных (гладких) участков изображения и участков с периодической структурой. В то же время, эффективность способа сопоставима с эффективностью известного фильтра [4].
Фиг.10 демонстрирует детализированную блок-схему системы параллельного вычисления, используемого для генерации множества изображений (видов) согласно данному варианту реализации заявляемого изобретения. Входные данные для генерации множества изображений формируются из опорного цветного изображения 1001, карты 1002 диспарантности и параметров камеры 1003. На выходе системы синтезируются N изображений 1010.
Способ генерации виртуальных изображений согласно заявляемому изобретению разработан таким образом, что любая строка из N виртуальных изображений может быть синтезирована независимо от других строк. Такое важное свойство может использоваться вычислительным устройством 1006 с большим числом модулей, осуществляющих параллельные вычисления для существенного ускорения синтеза виртуальных изображений. Вычислительное устройство 1006 работает в соответствии с программой 1012 для генерации множества изображений, которые записаны в блок 1011 памяти программ. Программа 1012 соответствует способу генерации виртуальных изображений, который детально описан далее.
Модуль 1004 расщепления изображения на строки разбивает входящие изображения 1001, 1002 на множества строк, которые могут обрабатываться независимо, при этом такие множества строк сохраняют в буфере 1005 памяти данных. Следует учитывать, что множество строк состоит из горизонтальных строк опорного изображения. Число К множеств строк зависит от размера изображений и может быть равным высоте опорного изображения. Для устройств с минимальной конфигурацией коэффициент К может быть меньше, чем высота опорного изображения. В таком случае, опорное изображение должно загружаться в блок 1005 памяти данных через отдельный загузчик данных.
Вычислительное устройство 1006 включает в себя несколько вычислительных модулей, каждый из которых обрабатывает назначенный ему набор из множества строк параллельно с другими модулями и генерирует соответствующую строку из N изображений. Во время обработки строк опорного изображения один вычислительный модуль вычислительного устройства 1006 генерирует N соответствующих строк виртуальных изображений. Иными словами, вычислительный модуль генерирует соответствующую строку виртуального изображения для каждого виртуального изображения. Таким образом, буфер 1008 памяти данных должен быть способен записать К·Width·N значений, где N - число виртуальных изображений, Width - ширина опорного изображения, K - число строк, доступных в буфере 1005 памяти данных. После того, как все строки из N виртуальных изображений будут сгенерированы, модуль 1009 совмещения строк сгенерирует N изображений 1010 из строк изображений, хранящихся в буфере 1008 памяти данных.
Следует учитывать, что число вычислительных модулей может не соответствовать числу наборов данных. Чтобы устранить эту проблему, модуль 1007 планирования вычислений приводит в соответствие число строк, сгенерированных модулем 1004 расщепления изображения на строки, с числом вычислительных модулей, свободных для использования при вычислениях. После того, как вычислительный модуль приступает к обработке данных, он отмечается как "занятый". Когда строка из N изображений сформирована, вычислительный модуль маркируется как "свободный". Модуль 1007 планирования вычислений также управляет модулем 1009 совмещения строк, посылая управляющий сигнал, когда новые строки множества изображений готовы.
Рассмотрим поэтапное функционирование способа генерации виртуальных изображений на базе опорного изображения, полученного от видеокамеры, и соответствующей карты диспарантности (Фиг.11). Для нормальной обработки способ требует наличия данных о параметрах видеокамеры, а именно, параметры проекции камеры, а также параметры ориентации камеры в пространстве, которые являются существенными для симуляции виртуальной камеры. Эти параметры могут быть заранее определены и занесены в ROM. Другой возможностью является передача этих параметров совместно с изображением и данными по диспарантности. Первый этап способа генерации виртуального изображения состоит в задании числа виртуальных изображений, которые должны быть сгенерированы (Этап 1101). Число изображений может быть строго определено и занесено в ROM. Это может быть востребовано в ситуации, когда заранее известны данные об устройстве воспроизведения, а также о числе изображений, которые должны быть сгенерированы. Однако это требует перепрограммирования ROM в соответствии с новым числом изображений при смене устройства воспроизведения. Можно также записать эти виртуальные изображения в RAM. В этом случае должны быть предоставлены данные о числе виртуальных изображений и о параметрах видеокамеры.
Из уровня техники известно, что проекционное преобразование реальной камеры описывается проекционной матрицей M, которая состоит из двух матриц, матрица проекции K и матрица ориентации камеры в пространстве [R|t]. Где K определяет проекционное правило, то есть, каким образом трехмерная точка реального мира отображается на плоскости изображения внутри камеры, в то время как матрица [R|t] ответственна за описание положения камеры относительно начала мировой системы координат. В дальнейшем определяем проекционную матрицу M камеры как
M=K·[R|t],
где K - матрица проекции,
[R|t] - матрица ориентации камеры в пространстве.
Матрица проекции K определяется как
,
x
y
где (f, f) - фокусное расстояние для моделирования прямоугольного фоточувствительного элемента,
0
0
(x, y) - основная точка, координата центра изображения.
Матрица ориентации камеры в пространстве [R|t] определяется как ,
где R - матрица вращения, описывающая ориентацию камеры по отношению к началу мировой системы координат;
t - вектор сдвига от начала мировых координат.
Поскольку цель заключается в генерации набора изображений для последовательного выведения на устройство воспроизведения потока изображений, имеется возможность упростить исходные данные, требуемые для нормальной обработки. Следующие параметры необходимы для успешной генерации множества изображений.
1. Матрица K, присущая видео камере.
2. Расстояние b между смежными виртуальными изображениями.
3. Число n изображений (ракурсов), расположенных на стороне реальной камеры (левая или правая сторона).
0
Конфигурация виртуальных и реальных камер показана на Фиг.12. Если n является числом изображений с одной стороны реальной видеокамеры, то общее число изображений можно выразить как N=2·n+1. Без потери общности можем условно закрепить начало мировой системы координат в центре реальной камеры (C на Фиг.12).
Тогда матрица вращения сведется к единичной матрице:
С другой стороны, подразумевается, что оптические центры всех виртуальных камер должны лежать на одной горизонтальной прямой. Поэтому вектор сдвига для камер, которые находятся по правую руку от реальной камеры, можно сформулировать как:
где i - это число виртуальных изображений, расположенных по правую руку от реальной камеры. Следовательно, вектор сдвига для камер, которые находится по левую руку от реальной камеры, можно сформулировать как:
где i - это число виртуальных изображений, расположенных по левую руку от реальной камеры. В результате, матрица [R|t] представляется как:
Следующий этап реализации способа, генерации виртуальных изображений заключается в моделировании виртуальных камер по числу изображений (Этап 1102). Главная цель моделирования виртуальных камер состоит в устанавлении соответствия между реальной камерой и виртуальной камерой. Это позволяет корректно подавать виртуальные изображения на любые устройства, которые поддерживают обычные проекционные уравнения. Моделирование виртуальной камеры заключается в построении проекционной матрицы P на основе матрицы K реальной камеры, а также в построении матрицы наблюдения V на основе матрицы [R|t] реальной камеры. Преимущество такого описания виртуальной камеры заключается в возможности совмещения в автоматическом режиме реального и синтезированного контентов.
Рассмотрим процесс построения матриц P и V в подробностях.
Матрицы P и V следует рассматривать как аналоги матриц K и [R|t]. Назначение матрицы P состоит в том, чтобы описать преобразование из трехмерного изображения в двумерное изображение. Другими словами, P описывает проективное преобразование трехмерного набора точек, содержавшегося в усеченном параллельными плоскостями изображении с виртуальной камеры в набор двумерных точек. Одно важное различие между матрицей P и матрицей [R|t] заключается в возможности сохранения не только двумерных координат, как в [R|t], но и сохранять z - координату трехмерной точки, таким образом, делая возможным интегрирование с синтезированным контентом или слияние различных реальных изображений.
где N и F - передний и задний планы конуса обзора виртуальной камеры. Конус обзора показан на Фиг.13 (вид 13.1).
L и R - координаты левой и правой границ плоскости виртуального изображения (Фиг.13 (13.2).
T и B - координаты верхней и нижней границы плоскости виртуального изображения (Фиг.13 (13.2).
Необходимо определить параметры матрицы P, соответствующие параметрам матрицы K. Для этого определяют уравнения:
,
,
где W - ширина плоскости изображения;
H - высота плоскости изображения.
Используя вышеупомянутые уравнения и устанавив соответствующие значения для N и F, можно вывести 1 проекционную матрицу P, соответствующую матрице K. Теперь можно вывести матрицу наблюдения V виртуальных изображений из матрицы [R|t] видеокамеры. Назначение матрицы наблюдения V совпадает с назначением матрицы [R|t] - то есть обе матрицы используются для описания места расположения камеры по отношению к нулевой точке мировой системы координат. Матрица V определяется следующим образом:
.
Отсюда выводится полное проекционное уравнение:
G=P·V,
где G - является полной проекционной матрицей виртуальной камеры.
N
N
После того, как соответствующая G-матрица будет выведена для каждой виртуальной камеры, можно запустить генерацию множества изображений в соответствии с функцией формирования виртуальных изображений (Этап 1104). Функция формирования виртуальных изображений предназначена для создания множественных виртульных видов (изображений), полученных из изображения, захваченного реальной камерой, и карты глубины (диспарантности), наряду с предварительно вычисленными проекционными матрицами G виртуальных камер. В дальнейшем G описывается как множество, содержащее матрицу G для каждой виртуальной камеры. Чтобы сгенерировать виртуальное изображение из реального изображения и соответсвуещей ему карты глубины, необходимо повторно спроецировать пиксель изображения назад в трехмерное пространство, и затем спроецировать реконструированные трехмерные точки в направлении виртуального вида, описанное его проекционной матрицей G (Фиг.14). Повторное проецирование пикселя в трехмерное пространство может быть сформулировано, как
где x - вектор, описывающий единообразные координаты пикселя (x, y, 1);
X - вектор, описывающий единообразные координаты (X, Y, Z, 1) трехмерную точку для пикселя x;
z - скаляр, представляющий значение глубины из карты глубины, соответствующей пикселю x;
+
+
M- псевдо инверсия проекционной матрицы M видеокамеры, так что MM=I;
x
C - вектор, представляющий координаты центра камеры. Учитывая предыдущие соображения о расположении виртуальных камер в пространстве, вектор описывается как (t, 0, 0, 1).
Для каждого пикселя в опорном изображении необходимо реконструировать трехмерную точку X, используя уравнение (1). После этого реконструированное облако точек должно быть спроецировано на плоскость проекции виртуальной камеры. Проекция из трехмерного пространства в двумерное выполняется следующим образом:
где G - матрица проекции виртуальной камеры, определенная ранее; X - вектор, описывающий трехмерную точку, соответствующую опорному цветному изображению;
v
v
v
Y - вектор, представляющий однородные координаты двумерной точки, спроецированной на плоскость виртуальной камеры. Наряду с двумерными координатами сохраняют z-координату трехмерной точки X. Вектор описывается следующим образом (x, y, z, 1).
Теперь, можно повторно сформулировать уравнения (1) и (2) для получения более компактной формулировки функции формирования виртуальных изображений. Для этого следует заменить вектор X в уравнении (2) на его определение из уравнения (1) и получить после открытия скобок следующее выражение
+
+
Теперь, можно разделить уравнение (3) на части, зависящие от входных данных (то есть значение глубины и координат изображения), и части, которые являются независимыми от данных и, следовательно, могут быть заранее вычислены на этапе оценки параметров функции формирования виртуальных изображений (Этап 1103). Независимые от данных параметры включают в себя скалярное произведение матриц G и С, которое определяется как вектор A (A=G·C). Второй параметр, который можно вычислить заранее, является скалярным произведением матриц G и М. Результирующая матрица В определяется как B=G·M. Теперь можно повторно сформулировать уравнение (3) следующим образом
1
1
N
N
Уравнение (4) представляет функцию формирования виртуальных изображений согласно описанному способу генерации виртуальных изображений. Используя уравнение (4), виртуальное изображение, связанное с конкретной виртуальной камерой, может быть легко вычислено путем переноса изображения и данных о глубине на координаты, представленные через х. Для всех виртуальных камер N матрицы A и B должны быть вычислены и занесены в память. Затем алгоритм для генерации виртуального изображения синтезирует виртуальные изображения согласно параметрам камеры, начиная с A и B, и кончая A и B.
Как только все необходимые виртуальные изображения будут синтезированы, способ генерации виртуальных изображений осуществляет обработку дисокклюзий (Этап 1105). Иллюстрация дисокклюзии приведена на Фиг.14. На этом чертеже области дисокклюзий представлены черным цветом. Дисокклюзия - это область на виртуальном изображении, которая становится видимой с виртуальной точки зрения, в противоположность опорному изображению, где эта область заслонена каким-то предметом. Поскольку для корректной обработки дисокклюзий требуется дополнительная информация, например, другое изображение сцены, зафиксированное с другой точки съемки, для заполнения появившихся "дыр". Однако, когда виртуальные изображения не разнесены далеко от опорного изображения, вполне приемлемые результаты дает интерполяция от граничных пикселей области дисокклюзии. В процессе генерации виртуальных изображений области дисокклюзии можно маркировать цифровым знаком для дальнейшей обработки.
Фильтр дисокклюзии формулируется как особый случай билатерального фильтра, когда веса фильтра вычисляются только для пикселей, которые лежат вне области дисокклюзии. Результат суммирования весов приписывают пикселям, которые лежат в области дисокклюзии. Такой вид фильтра распространяет информацию из определенных областей изображения на неопределенные области изображения (disocclusions). Фильтр может применяться многократно с возрастающим радиусом для итерационного заполнения в области дисокклюзии. Фильтр дисокклюзии для пикселя I (x, y) в прямоугольном окне с размером K в горизонтальном направлении и размер L в вертикальном направлении формулируется как
где I(x+i, y+j) - исходный пиксель изображения;
∈
I(x, y) отфильтрованный пиксель;
W(x+i, y+j) вес пикселя I(x+i, y+j). Вес W сформулирован следующим образом
pq
pq
1
2
ΔJ
∈
где ΔС - расстояние между точками p(x, y) и q(x+i, y+j) в цветовом пространстве, вычисленное как эвклидово расстояние;  - эвклидово расстояние между точками p и q области изображения, c и c - некоторые предопределенные значения, относящиеся к эффекту сглаживания и уточнения. Согласно уравнению (6), если интенсивность исходного пикселя отмечена как дисокклюзия I(x+i,y+j)=mark, то соответствующий вес принимает нулевое значение. Из этого следует, что пиксели дисокклюзии не будут участвовать в процессе фильтрования, определенном уравнением (5) и уточненное изображение I(x, y) будет формироваться только с помощью достоверных пикселей, взвешенных по цветовому сходству и пространственному расстоянию.
Для областей дисокклюзии с большими размерами можно применить фильтр дисокклюзии согласно уравнению (5) несколько раз с переменным размером ядра фильтра. Переменный размер ядра для фильтра дисокклюзии DKS (k), который адаптивен к номеру к итерации, определяется как
d
d
DKS(k)=a·k+b,
где k - число итераций,
d
d
a, b - линейные коэффициенты.
Допустимо также применение другого вида функции DKS(k). Но это не влияет на объем охраны по заявляемому изобретению.
∈
Другое улучшение фильтра дисокклюзии включает возможность неявного использования рекурсии, когда необходим только один буфер для ввода множества I, и вывода множества I. В этом случае результат фильтрации пикселя I (x-1, y-1) дисокклюзии можно использовать для фильтрации следующего пикселя I (x, y) дисокклюзии. Это может значительно сократить число итераций.
Третье улучшение фильтра дисокклюзии состоит в отдельном вычислении фильтра, когда обрабатывают строки изображения, а затем столбцы. Отделяемый фильтр определяется как
row
где I (x, y) означает результат фильтрации, выполненной построчно;
∈
sep
I (x, y) - конечный результат фильтрации, выполненной по столбцам изображения.
ССЫЛКИ
[1] US patent application № 2004/0032980 P.V.Harman "Image Conversion and Encoding Techniques".
[2] US patent application № 2003/0007681 R.G.Baker "Image Conversion and Encoding Techniques".
[3] US patent application № 2005/0185711, H.Pfister, W.Matusik "3D television system and method".
[4] WO patent application № 2008/041167, F.Boughorbel, "Method and Filter for Recovery of Disparities in a Video Stream".