Анализ библиотек компьютерного зрения
Конференция: L Студенческая международная научно-практическая конференция «Молодежный научный форум»
Секция: Технические науки
L Студенческая международная научно-практическая конференция «Молодежный научный форум»
Анализ библиотек компьютерного зрения
В настоящее время активно развивающейся областью является компьютерное зрение. Компьютерное зрение - это технология, которая помогает компьютерам находить, отслеживать, классифицировать и идентифицировать объекты, извлекая данные из изображений и анализировать полученную информацию [7].
Одной из основных областей компьютерного зрения является область мобильных приложений, рынок которых с каждым днем растет. Многие приложения работают с изображениями, полученными при помощи камер мобильных устройств. Но зачастую пользователи сталкиваются с зашумленными изображениями, что усложняет задачу получения качественных изображений при дальнейшей работе. В связи с этим, одной из важнейших задач компьютерного зрения является восстановление, обработка изображений. Самым простым подходом к решению этой задачи является применение специализированных библиотек, в которых реализованы методы обработки и распознавания изображений. Существует множество библиотек компьютерного зрения для обработки изображений. В свободном доступе имеются следующие:
1 OpenCV
OpenCV обладает широким выбором целевой платформы (Windows, Linux, Android, MacOS, FreeBSD, OpenBSD, Android, Maemo, iOS) и языка реализации (С/C + +, Python, Java, Ruby, Matlab, Lua), также библиотека распространяется в свободном доступе, можно бесплатно использовать в образовательных целях, что является значимым преимуществом [4]. Базовая структура данной библиотеки состоит из модулей: cxcore (базовые структуры и алгоритмы), CV (модуль обработки изображений), Highdui (модуль для ввода/вывода изображений, создание интерфейса), Cvaux (пространственное зрение).
2 AForge.NET
AForge.NET используется при разработке различных приложений, в том числе и для проведения исследований в области компьютерного зрения и искусственного интеллекта. Библиотека содержит функции, связанные с реализацией обработки изображений, нейронных сетей и генетических алгоритмов, нечеткой логикой, робототехникой и т. Д [1].
3 Vuforia
Vuforia – библиотека разработки AR приложений. Расширенная или смешанная реальность (AR) – это прямой или косвенный взгляд на физическую среду реального мира, элементы которой дополняются сенсорным вводом, генерируемым компьютером, такими как звук, видео, графика или данные GPS. Данная платформа доступна для Android, iOS и Unity. В библиотеке Vuforia используется технология компьютерного зрения для того, чтобы распознавать, обрабатывать и отслеживать плоские изображения и простые 3D-объекты в режиме реального времени [5].
4 LTI-Lib
LTI-Lib - это объектно-ориентированная библиотека алгоритмов и структур данных, разработанная на C++. Библиотека активно применяется в области обработки изображений, робототехники, распознавание объектов и жестов и многое другое. LTI-Lib обеспечивает быстрые алгоритмы, за счет совместного использования и обслуживания кода. Для задачи обработки изображений в библиотеке реализованы такие методы, как: сегментация, линейные фильтры, всплески, управляемые фильтры [3].
5 VXL (Vision-something-Libraries)
VXL – библиотека, написанная на C ++ и предназначенная для исследования и реализации компьютерных видений. Данная библиотека включает в себя модули, охватывающие числовые алгоритмы, обработку изображений, координатные системы, геометрию камеры, стерео, видео манипуляцию, дизайн графического интерфейса, классификацию, надежную оценку, отслеживание объектов, топологию, манипулирование структурой, 3D-визуализация. Преимуществом данной библиотеки является то, что каждый базовый компонент может использоваться без ссылки на другие, поэтому можно компилировать и связывать по отдельности только те модули, которые необходимы [6].
В таблице 1 представлена сравнительная характеристика вышеперечисленных библиотек по таким показателям, как поддерживаемые платформы, языки программирования, тип лицензии и модуль обработки изображений.
Таблица 1.
Сравнительная характеристика библиотек компьютерного зрения
Библиотека |
Поддерживаемые платформы |
Языки программирования |
Тип лицензии |
Модуль обработки изображений |
OpenCV |
Windows, Linux, Android, MacOS, FreeBSD, OpenBSD, Android, Maemo, iOS |
С/C + +, Python, Java, Ruby, Matlab, Lua |
Свободная, библиотека с открытым исходным кодом |
opencv_imgproc |
AForge.NET |
Windows, Xamarin Android, Xamarin IOS
|
C# |
GNU Lesser General Public License |
AForge.Imaging AForge.Vision |
Vuforia |
iOS, Android, Unity |
C + +, Java, Objective-C, .Net |
Свободная + Commercial SDK option |
Image Targets |
VXL |
Windows, Linux |
ANSI/ISO C++ |
Свободная, в открытом доступе |
vil (imaging) |
LTI-Lib |
Windows, Linux |
C++ |
GNU Lesser General Public License |
ltiImage.h |
Для дальнейшего анализа для примера выбрана библиотека Aforge.net в программной среде Microsoft Visual Studio 2017, используя язык программирования C#. Данная библиотека выбрана исходя по типу лицензии, возможности использования языка C# и модуля обработки изображений. Библиотека AForge.NET предоставляет ряд фильтров, которые могут использоваться для сглаживания изображений и удаления шума. Различные сглаживающие фильтры имеют разные свойства, что делает их полезными для различных задач и устранения различных типов шума. Ниже приведено зашумленное изображение и результат применения медианного фильтра [2] (рис.1).
Рисунок 1. Результат применения медианного фильтра с помощью библиотеки AForge.NET, где: А – изображение до применения фильтра, Б – изображение после применения фильтра
Наглядно видно, что текст на изображении стал более читаемым. Следовательно, применение библиотек компьютерного зрения оправдано в задаче обработки изображений. Рассмотренные библиотеки содержат большое количество функций, которые охватывают многие области компьютерного зрения. В связи с тем, что наличие шумов и искажений на изображении может негативно отразиться на дальнейшей машинной обработке, данные библиотеки применяются в задаче предварительной обработки изображений.