Д. С. Ватолин (к. ф.-м. н.), С. Б. Матюнин (студент), М. А. Смирнов (к. т. н.) ТЕМПОРАЛЬНЫЙ МЕТОД ФИЛЬТРАЦИИ КАРТ ГЛУБИНЫ 1 г. Москва, МГУ им. Ломоносова Аннотация В данной статье предлагается новый метод фильтрации карт глубины, сгенерированных автоматически из видеопоследовательностей с применением методов оптического потока, трехмерной реконструкции, а также анализа объектов сцен. Для повышения качества при обработке используется информация как из канала глубины, так и из исходного видео. Предложенный подход использует алгоритм компенсации движения для учета информации о перемещении объектов, однако построение алгоритма позволяет использовать данные оптического потока для повышения качества при больших затратах времени. Предложенный метод фильтрации может применяться в качестве предварительной обработки карт глубины для улучшения результатов построения многоракурсного или стерео 3D видео. Более высокое качество может быть получено при одновременном использовании темпоральной и пространственной фильтрации. В статье приведено сравнение с тестовыми данными Ground 1 Данная работа поддержана грантом РФФИ 10-01-00697-а. Truth по метрике на BI-PSNR видеопоследовательностей, наборе использующихся стандартных для сопоставления результатов алгоритмов построения карт глубины. Введение Карты глубины широко используются при производстве трехмерного видео. Их создание очень трудоемкий процесс, поэтому разрабатываются методы, максимально автоматизирующие их построение. Работы ведутся по нескольким основным направления. Так достаточно многообещающие результаты демонстрирует подход, основанный на построении карт глубины из видео по движению объектов [8]. Также для построения активно используется методы анализа пространственной структуры изображения, основанные на нейронных сетях и машинном обучении [3]. Отдельным, сравнительно простым, однако также содержащим большое количество нерешенных задач, направлением является построение карт глубины по стерео-видео, что обусловлено необходимостью менять параллакс видео как во время нелинейного монтажа в зависимости от параллакса соседних сцен, так и при подготовке видео для разных типов больших залов и домашних кинотеатров [9]. Так как задача однозначного точного восстановления глубины по видео без дополнительной информации является в общем случае неразрешимой, для автоматического построения локальных используются критериев, подходы, что основанные приводит к на появлению минимизации ошибок при формировании глубины. Такие карты глубины часто не подходит для создания трехмерных изображений в силу ошибок и нестабильности во времени. обработки Для с дальнейшего целью использования увеличения временной требуется и проведение пространственной стабильности результатов. В данной статье предлагается метод обработки карт глубины, использующий информацию о цвете и движении из исходной видеопоследовательности. Обзор существующих алгоритмов Обработка карт глубины часто применяется, чтобы уменьшить заметность ошибок построения карт глубины при визуализации. Так, для уменьшения заметности ошибок в областях открытия, применяются различные модификации гауссовского размытия. В [7] предлагается использовать ассиметричное сглаживание, степень влияния которого различна в горизонтальном и вертикальном направлениях, а также при фильтрации изменять размер ядра фильтра в зависимости от локальной глубины фильтруемой адаптивное к области. границам В [4] используется объектов. Для повышения сглаживание, качества при сглаживании учитывается направление границы. Наиболее заметны ошибки при построении карты глубины в областях наложений. В [2] предлагается метод фильтрации, адаптивный к областям наложений. Для этих методов характерно использование только данных с текущего кадра. Причем при фильтрации используется только часть информации о цвете исходного видео (например, только информация о наличии границы). Для уменьшения нестабильности во времени в картах глубины в [6] предлагается искать решение задачи минимизации энергии для нескольких последовательных кадров. В [5] предлагается использовать процедуру уточнения: для каждого кадра алгоритм последовательно улучшает с его помощью карту глубины для других кадров. Процедура уточнения сводится к задаче минимизации энергии. Подобные подходы дают хорошие результаты, однако в силу высокой вычислительной сложности требуют достаточно много времени на обработку всего видео. Предлагаемый метод Предлагаемый метод использует несколько соседних кадров исходной видеопоследовательности и уже построенную карту глубины для них. Фильтрация производится с учетом сходства пикселей исходного видео по яркости (цвету) и их пространственной близости. Посредством использования алгоритма компенсации движения, учитывается информация о движении объектов на видеопоследовательности. Предположим, I i (x) определяет интенсивность (или цвет) пикселя x кадра i исходной последовательности. Это либо вектор из трех компонент для цветного изображения, либо скаляр для изображения в градациях серого. Обозначим глубину пикселя x кадра i за Di (x) . Предположим, текущий кадр имеет номер n . Предложенный алгоритм состоит из четырех этапов: 1. Оценка движения (ОД) между текущим кадром I n и соседними кадрами I nd , где d = m,,1,1,, m , m – параметр алгоритма. Результатом этого этапа является поле векторов движения MVn d (x) . Считаем, что MVn ( x) 0 . 2. Вычисление метрики доверия MVn d (x) . Cn d ( x) [0,1]. Cn d (x) для найденных векторов Метрика доверия показывает, насколько хорошо найдены вектора движения. 3. Компенсация движения для карты глубины и кадров исходного видео. Обозначим DnMC скомпенсированную карту глубины и I nMC d d скомпенсированные исходные кадры. Будем считать, что I nMC I n и DnMC Dn . MC 4. Найденные I nMC d , Dn d и Cn d (x) используются для фильтрации. Оценка движения В данной использованием статье блочного описываются алгоритма результаты, оценки полученные движения, схожего с с описанным в [1]. В нем используются макроблоки размером 1616 , 8 8 и 4 4 с адаптивным критерием разбиения. Оценка движения производится с четвертьпиксельной точностью. Учитывается информация об интенсивности и цвете изображения. Для оценки качества найденного поля векторов для каждого блока вычисляется метрика доверия, аналогичная описанной в [10]. Фильтрация карты глубины Для фильтрации используется 2m+1 последовательных кадров. Сначала производится медианная фильтрация Dnmed = med i = n m ,,n m C >ThC |I mc I |<ThDiff DiMC . Медиана берется по точкам карты глубины текущего и соседних кадров, которые имеют метрику доверия больше заданного порога и достаточно малую межкадровую разность | I mc I |< Th Diff . Медианная фильтрация применяется для устранения резких разрывов во временной области. Далее применяется сглаживание глубины. В качестве входных данных для соседних кадров Dninput используется исходная глубина Dnd , а d для текущего – обработанная медианным фильтром Dnmed . Для предыдущих кадров можно использовать также уже обработанную глубину. В этом случае результат получается более сглаженным, однако теряются мелкие детали. Сглаживание представляет собой взвешенное усреднение по пространственной и временной области с учетом движения: nm D smooth n ( x) = (t , x, y ) D t = n m y ( x ) input t ( y) , nm (t , x, y ) t = n m y ( x ) где (t , x, y ) – весовая функция, Dtinput( p) – входная глубина, (x) – окрестность пикселя x . Размер (x) выбирается таким образом, чтобы достичь компромисса между силой сглаживания и производительностью. Весовая функция задается следующим образом: (t , x, y ) = f (| I tMC ( y ) I n ( y ) |) Ct ( y ) g ( x, y ), где функция f задает зависимость от межкадровой разницы; Ct ( y) – метрика доверия для пикселя y на кадре t ; g выражает зависимость веса от пространственного расстояния между пикселями. В простейшем варианте g тождественно равна константе. Были опробованы и другие виды зависимости веса от пространственного расстояния: линейная, степенная, экспоненциальная. Функция f имеет вид: i 3 x f ( x) = max 0, min 1, i , i 0 где i и – параметры алгоритма. Таким образом, мы усредняем значение карты глубины в окрестности каждого пикселя, учитывая ошибку компенсации движения для исходного видео, метрику доверия и пространственную близость соседних пикселей. Результаты Предложенный алгоритм был реализован на языке C. Исполняемый модуль представляет собой консольное приложение, на вход которому подается исходное видео и карта глубины. Результатом работы является обработанная карта глубины. Обработка проводится в один проход, что может быть удобно при аппаратной реализации алгоритма. Скорость работы – 7.6 кадра/с на видео с разрешением 448x372 на процессоре Intel Core2Duo T6670 2.20 ГГц. Для объективного сравнения видеопоследовательности «cones», использовались и «venus» стандартные «sawtooth»[11,12]. Сравнение с эталонной картой глубины проводилось с помощью метрики Brightness Independent PSNR [13]. Результаты сравнения приведены на рис. 1. Результаты представлены на работы для рис. Карта 2. субъективной глубины (рис. оценки 2б), алгоритма построенная автоматически по исходной видеопоследовательности (рис. 2а), была обработана предложенным алгоритмом. Обработка позволила восстановить некоторые детали, сгладить ошибки оценки глубины на краях объектов (см. рис. 2г). На тестовой видеопоследовательности «road» предложенный метод позволил добиться большей стабильности карты глубины по времени и восстановил детали (см. рис. 3). Исходная карта глубины (рис. 3б) не пригодна для создания стереопары, т. к. ее нестабильность по времени приводит к заметному при просмотре «дрожанию» объектов. Предложенный метод позволяет значительно улучшить стабильность: после обработки при переходе от кадра к кадру глубина объектов изменяется более плавно (рис. 3в). Рис. 1. Результаты объективного сравнения автоматически построенной карты глубины с эталонной картой глубины до и после применения предложенного метода фильтрации. Фильтрация позволила значительно повысить качество карты глубины. Сравнение произведено с помощью метрики Brightness Independent PSNR. а) Кадр исходной последовательности б) Эталонная карта глубины в) Карта глубины до фильтрации г) Карта глубины после фильтрации Рис. 2. Кадр последовательности «sawtooth» а) б) в) Рис. 3. Фрагменты трех последовательных кадров последовательности «road». а)исходное видео; б)карта глубины до обработки; в)карта глубины после обработки. Дальнейшая работа В текущем варианте алгоритма не используется обнаружение и обработка областей открытия. В этих областях оценка движения работает некорректно, что может приводить к появлению артефактов. Алгоритм можно улучшить за счет добавления в метрику доверия обработки областей открытия. Повысить качество фильтрации также можно, используя пространственное сглаживание как постобработку. Заключение Предложенный алгоритм позволяет значительно улучшить качество автоматически построенных карт глубины за счет использования как информации о цвете из исходного видео, так и о движении объектов. Он может быть использован для облегчения ручного труда при преобразовании обычных фильмов в 3D. При использовании алгоритма для постобработки возможно использование более простых и быстрых методов автоматической генерации карт глубины. Список литературы. [1] Simonyan, K., Grishin, S., Vatolin, D., Popov, D., Fast video superresolution via classification. Proceedings of 15th IEEE International Conference on Image Processing, p. 349-52, 2008. [2] Lee, S. B. and Ho, Y. S., Discontinuity-adaptive Depth Map Filtering for 3D View Generation. Proceedings of 2nd International ICST Conference on Immersive Telecommunications, p. 1-6, 2009. [3] Ashutosh Saxena, Sung H. Chung, Andrew Y. Ng. Learning Depth from Single Monocular Images. Advances in Neural Information Processing Systems 18, p. 1161-1168, MIT Press, 2006. . [4] W.-Y. Chen, Y.-L. Chang, S.-F. Lin, L.-F. Ding, L.-G. Chen, Efficient depth image based rendering with edge dependent depth filter and interpolation. Proceedings of IEEE International Conference on Multimedia and Expo (ICME), p. 1314-1317, 2005. [5] Zhang, G., Jia, J., Wong, T., Bao, H., Recovering Consistent Video Depth Maps via Bundle Optimization. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, p. 1-8, 2008. [6] Zhang, G., Jia, J., Wong, T., Bao, H., Consistent Depth Maps Recovery from a Video Sequence. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, 6, p. 974-988, 2009. [7] W. J. Tam, L. Zhang, Non-uniform smoothing of depth maps before image-based rendering, Proceedings of Three-Dimensional TV, Video and Display III (ITCOM'04), Vol. 5599, p. 173-183, 2004. [8] Kim, D., Sohn, K., Stereoscopic Video Generation Method using Motion Analysis. Proceedings of 3DTV Conference, p. 1-4, 2007. [9] Abhijit S. Ogale , Yiannis Aloimonos, Shape and the Stereo Correspondence Problem, International Journal of Computer Vision, v.65 n.3, p.147-162, 2005. [10] Simonyan, K., Grishin, S., Vatolin, D ., Confidence Measure for Block-Based Motion Vector Field. Proceedings of GraphiCon, p. 110-113, 2008. [11] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms. International Journal of Computer Vision, 47(1/2/3):7-42, April-June 2002. [12] D. Scharstein and R. Szeliski. High-accuracy stereo depth maps using structured light. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2003), volume 1, pages 195-202, Madison, WI, June 2003. [13] MSU Brightness Independent PSNR. http://compression.ru/video/quality_measure/metric_plugins/bi-psnr_en.htm