Регистрация / Вход
Прислать материал

Обработка изображений средствами видеокарты на языке C#

Фамилия
Крылов
Имя
Никита
Отчество
Андреевич
Номинация
Информационные технологии
Учебное заведение
ГБОУ "Школа №2107"
Руководитель
к.т.н., доц. Аристов А.О.
Название тезиса
Обработка изображений средствами видеокарты на языке C#
Тезис

Актуальность

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

Цель - создание наиболее производительных реализаций морфологических способов обработки изображения.

Задачи:

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

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

Особенность проекта

Особенность проекта заключается в применении видеокарты для обработки изображений. Метод позволяет добиться высокой производительности и возможности параллельной обработки двух видеопотоков.

Результат работы

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

Программа реализуется на статически типизированном, а с недавнего времени и кроссплатформенном, языке программирования C#. Для создания интерфейса используются Windows.Forms – стандартные средства разработки приложений под ОС Windows для .Net.

С помощью технологии NVIDIA CUDA производятся вычисления на видеокарте. Библиотека Alea GPU используется для компиляции C#-кода в CUDA-код.

В программе с нуля реализованы 4 способа морфологической обработки изображений: наращивание, эрозия, замыкание и размыкание. Замыкание позволяет убирать шумы на изображении, а размыкание - заполнять небольшие «дыры» изображения.

На рисунке ниже можно увидеть примеры работы программы (полноразмерный рисунок прикреплен)

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

Тест: 100 итераций дилатации

Размер изображения: 1 440 000 пикселей

  CPU GPU
Время обработки 13,39 секунд 1,22 секунд
Расчетное FPS 7 81

 

Как видно, использование видеокарты позволило добиться увеличения производительности в 11,5 раз.

На рисунке ниже можно увидеть скриншот программы и скриншот теста (полноразмерный рисунок прикреплен)

Перспективы развития

На основе этого проекта планируется создать программу по обработке видеопотока, а затем и систему стереозрения.