Метод автоматизации составления профилей для модификации трехмерного векторного видео

УДК 004.7 ББК 32.973.2

Цыганов А. А.

МЕТОД АВТОМАТИЗАЦИИ СОСТАВЛЕНИЯ ПРОФИЛЕЙ ДЛЯ МОДИФИКАЦИИ ТРЕХМЕРНОГО ВЕКТОРНОГО ВИДЕО

Tsyganov A. A.

METHOD FOR AUTOMATING OF PROFILE CREATION FOR MODIFICATION OF THREE-DIMENSIONAL VECTOR VIDEO

Ключевые слова: трехмерное видео, графический процессор, компьютерное зрение, метрика, ключевые точки.

Key words: three-dimensional video, graphical processor unit, computer vision, metrics, key points.

Аннотация

В статье рассматривается метод определения параметров трехмерного векторного видео, основанный на сравнении изображений, полученных в результате визуализации потока при различных значениях исследуемых параметров. Оценивается эффективность метода, и рассматриваются перспективы его реализации с помощью средств графического процессора.

Abstract

The paper discusses a method of determining the parameters of three-dimensional vector video, based on comparison of images obtained from stream visualization at different values of the parameters studied. Evaluated the performance of the method and discussed the prospects for its GPU implementation.

Введение

При разработке системы воспроизведения трехмерного векторного видео важной задачей является поиск и модификация параметров шейдерных программ, являющихся частью визуализируемого видео потока [1, 2]. Шейдерные программы являются основным средством управления работой аппаратного графического конвейера, который используется большинством приложения для обработки трехмерных объектов.

Модификация трехмерного векторного потока позволяет достичь различных визуальных эффектов, качество которых зависит от точности операций, выполняемых с потоком. Критерием качества является визуальное восприятие результата человеком, оцениваемое на основе изображений, получаемых в результате визуализации [3].

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

Составление профилей может осуществляться как вручную, так и автоматически, на основе анализа шейдеров и результатов их работы. Так как количество шейдеров и их параметров в большинстве приложений достаточно велико, то ручное составление профилей крайне трудоемко и может занимать несколько часов. Это делает невозможным выполнение в реальном времени преобразования потока, получаемого из произвольного приложения.

Рисунок 1 - Формат профиля

1. Автоматизация составления профилей

Предлагается подход к автоматизации процесса составления профиля, основанный на сравнении изображений, получаемых в результате визуализации видео потока. В операции сравнения участвуют два изображения, первое из которых получается при визуализации с исходными параметрами шейдеров, второе является результатом визуализации после применения шейдеров с модифицированными параметрами. Путем сравнения этих изображений можно определить перемещение позиции визуализируемых объектов [4] и выяснить характер произошедших изменений.

Параметры видео потока разделяются на два множества: множество постоянных параметров, которые не требуют модификации, и множество параметров, потенциально требующих модификации. Во второе множество попадают те из параметров, в которых могут быть размещены матрицы трансформации визуализируемых объектов. Эти параметры определяются путем анализа дизассемблированного исходного кода шейдерных программ и поиска последовательностей команд работы с матрицами.

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

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

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

Визуализация описанного процесса осуществляется в компьютерном приложении для составления профилей, как это показано на рисунке 2.

Рисунок 2 - Программные инструменты для сравнения изображения

2. Метрики оценки изображений

Для определения разницы между изображениями был разработан набор метрик. Они оперирует двумя множествами точек изображения, соответствующих тем областям изображений, которые покрываются маской. Анализируя изменившиеся пиксели, алгоритм различает ситуации, в которых с изображением произошли какие-либо иные изменения .

Первая метрика основана на вычислении расстояния Бхаттачарья [5]. С его помощью определяется различие между двумя множествами, в качестве которых выступают цветовые гистограммы сравниваемых изображений. Особенности изображений, создаваемые посредством аппаратно-ускоряемой трехмерной компьютерной графики таковы, что они строятся из набора полигональных фигур. Такие объекты хорошо различимы на изображениях, и при изменении их позиции цветовая гистограмма в изменившихся участках изображениях может служить показателем качества произошедших изменений [6].

Расстояние Бхаттачарья вычисляется по формуле

ОвР-Ч = ~1п ВС ,

гдер и q - множества, между которыми вычисляется расстояние, а BC - это коэффициент Бхаттачарья, который определяется по формуле

ВС = хВХ р х ц х

Для расчета коэффициента Бхаттачарья интервал значений двух выборок делится на выбранное количество частей, после чего используется формула

ВкаНаскагуа = ”=1 а£

где a и Ь - выборки, п - число частей.

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

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

Конкретные значения метрики, соответствующие принимаемым алгоритмом решениям, зависят от экспериментальных данных, полученных при тестировании алгоритма на длительность работы и точность определения результата. Часть интервала метрики соответствует спорным случаям, решение которых осуществляется с помощью более ресурсоемкого алгоритма, описанного далее. Выбор размера этого интервала осуществляется исходя из результатов тестов, пример которых приведен на рисунке 3. Чем шире интервал, обрабатываемый более ресурсоемким алгоритмом, тем точнее результат, но и соответственно дольше время обработки.

£ПП

20,00%

40,00%

^ 9ПП ^ ^ ^— 60,00%

(j 200 1ПП 80,00% 1 пп пп°/

п . " ~ ~ — _

0 0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00 Интервал метрики 100,00%

Рисунок 3 - Зависимость параметров от ширины интервала метрики: пунктирная линия - точность, сплошная линия - длительность работы алгоритма

Для упомянутых спорных случаев применяется алгоритм SURF [7, 8]. Он позволяет отслеживать перемещение объектов и находить их соответствие на различных изображениях. Основной смысл метода заключается в выделении на изображении ключевых точек и небольших участков вокруг них [9]. Ключевой точкой считается такая точка, которая имеет признаки, существенно отличающие её от основной массы точек. Например, это могут быть края линий, небольшие круги, резкие перепады освещенности или углы. Вокруг точек выбираются малые участки, так как они мало подвержены перспективным и масштабным искажениям. Для растеризированных полигональных моделей количество таких участков на изображении относительно велико, что делает метод удобным для его использования совместно с изображениями, полученными в качестве визуализации трехмерных объектов.

Для обработки изображения используется его интегральное представление II [10], рассчитываемое с помощью выражения

U Х,у = ?=oj%I i,i ,

где I(ij) — яркость пикселя исходного изображения.

Использование интегрального представления позволяет быстро находить сумму значений в кой-либо прямоугольной области изображений по следующей формуле:

АВСЭ =11 А +11 С -II В -II Б ,

где A, B, C, D - координаты углов заданной области.

Метод SURF ищет особые точки с помощью матрицы Гессе H [11]:

a2 f a2 f

Яу2

H(f х,у ) = “

дхду

Детерминант этой матрицы равен detH =^_

дхду

д2ї

ду2

а2/

дх2 ду2 дхду

и достигает экстремума в точках максимального изменения градиента яркости и хорошо детектирует пятна, углы и края линий [12, 13].

Этот метод инвариантен к масштабу, поворотам в плоскости изображения, шумам, перекрыванию другими предметами, изменению яркости и контраста [14]. То есть, может быть использован в качестве подходящего решения для тех случаев, которые являются спорными с точки зрения первой метрики.

Для ключевых точек, найденных в двух сравниваемых изображениях, устанавливается соответствие, как показано на рисунке 4. При этом значением метрики становится отношение количества точек, для которых найдено соответствие к общему количеству точек. Экспериментально установлено, что при соотношении количества точек более 2/3 в абсолютном большинстве случаев на сравниваемых изображениях присутствует один и тот же объект. Потому для этой метрики используется статический порог, который практически не дает ложных срабатываний.

Рисунок 4 - Ключевые точки изображения

3. Реализация для графического процессора

Реализация описанного метода в виде приложения для графического процессора позволяет значительно ускорить обработку изображений. Исходный код этого приложения основан на коде открытой библиотеки OpenCV. Для использования ресурсов графического процессора алгоритм разделяется на два этапа: вычисление расстояния Бхаттачарья и поиск ключевых точек методом SURF. Вычисление двух описанных в методе метрик осуществляется независимо

При использовании средств графического процессора [15] конкретное ускорение работы алгоритма зависят от модели видео адаптера и других составляющих вычислительной системы. В проведенных испытаниях на видеокарте GeForce GTX 560 Ti удалось получить более чем пятикратное увеличение производительности по сравнению с вычислениями на процессоре общего назначения.

Заключение

Метод успешно используется в инструментарии программного комплекса Teleedge и позволяет ускорить составление профилей трехмерного видео для приложений. При создании профилей для таких программных продуктов, как StarCraft 2 и DeusEx 3, удалось

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Цыганов А. А. Воспроизведение трехмерного видео на различных

программно-аппаратных платформах // Вестник СамГТУ. Серия: “Технические науки”, Вып. 25. Самара: Изд-во СамГТУ, 2009. - С. 242 - 245.

2. Pipelines for Direct3D / Microsoft developer center. URL:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff569022(v=vs.85).aspx

3. Watson A. B. Digital video quality metric based on human vision / A. B. Watson,

J. Hu, J.F. III. McGowan // JournalofElectronic Imaging. - Vol.10, no.1. - 2001. - P. 20-29

4. Comaniciu D. Real-time tracking of rigid objects using mean shift / D. Comaniciu, V. Ramesh, P. Meer // IEEE Conf. Computer Vision and Pattern Recognition. -Hilton Head Island, South Carolina, 2000. - Vol. 2. - P. 142-149.

5. Lou Y. Multimodal deformable image registration via the bhattacharyya distance / Lou Y., Tannenbaum A. // IEEE Trans. on Image Process., 2011.

6. BaoFeng Zhang. Research on three image difference algorithm / BaoFeng Zhang, Jie Zhou, JunChao Zhu. // Image Analysis and Signal Processing. - Zhejiang, 2010. - P. 603606.

7. Herbert Bay. Speeded-Up Robust Features (SURF) / Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool // New York, NY, USA: Computer Vision and Image Understanding, 2008. - Vol. 110. - P. 346-359.

8. Herbert Bay. SURF: Speeded Up Robust Features / Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool // Graz, Austria: ECCV, 2006. - Vol. 1. - P. 404-417.

9. D. Lowe. Distinctive Image Features from Scale-Invariant Keypoints / IJCV. -Vol. 60(2). - 2004. - P. 91 - 110.

10. Crow. Summed-area tables for texture mapping / Crow, Franklin // SIGGRAPH '84: Proceedings of the 11th annual conference on Computer graphics and interactive techniques, 1984. - P. 207-212.

11. Neudecker. Matrix differential calculus with applications in statistics and econometrics / Neudecker, Heinz, Magnus, Jan R. // New York: John Wiley & Sons, 1988. -ISBN 978-0-471-91516-4. - P. 136.

12. Wei-yao Huang. The Precise Recognition of Moving Object in Complex Background / Wei-yao Huang, Zh-ijing Liu, Wen-juan Pan // The IEEE 3th International Conference on Natural Computation, 2007. - Vol. 2. - P. 246-252.

13. Lowe. Object recognition from local scale-invariant features / Lowe, David G. // Washington, DC, USA: Proceedings of the International Conference on Computer Vision, 1999. - Vol. 2. - P. 1150-1157.

14. Yanwei Pang. Fully affine invariant SURF for image matching / Yanwei Panga, Wei Lia, Yuan Yuanb, Jing Panc // Neurocomputing. - Vol. 85. - 2012 - P. 6-10.

15. Computer Vision on the GPU with OpenCV / NVIDIA developer zone. URL: http://developer.download.nvidia.com/GTC/PDF/1085_Fung.pdf