УДК 004.93

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

С. А. Макогон, Донецкий национальный технический университет, makogon_94@mail.ru

С. А. Зори, д.т.н., доцент, Донецкий национальный технический университет, ik.ivt.rec@gmail.com

Аннотация

Выполнен обзор и сравнение библиотек компьютерного зрения OpenCV, AForge.NET, LTI и VXL с точки зрения их использования в приложениях по распознаванию образов. Показано, что по совокупности характеристик (производительность, функциональные возможности, кроссплатформенность, наличие документации и сообщества) наиболее целесообразно использовать библиотеку OpenCV при разработке приложения для распознавания транзисторов.

Ключевые слова: компьютерное зрение, распознавание образов, библиотека, OpenCV, AForge.NET, LTI, VXL, документация.

Введение

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

В работе рассматриваются популярные библиотеки OpenCV, AForge.NET, LTI и VXL и анализируется возможность их применения при разработке системы распознавания и классификации транзисторов по символьной маркировке.

Библиотека OpenCV

OpenCV (Open Source Computer Vision Library) — открытая библиотека для компьютерного зрения и машинного обучения, ориентированная на приложения реального времени. Она содержит сотни оптимизированных алгоритмов для обработки изображений, анализа движений, построения 3D-моделей, распознавания объектов и решения других задач.

Библиотека написана на C/C++ и эффективно использует многоядерные процессоры, команды MMX и SSE. При необходимости возможно подключение Intel IPP для дополнительной оптимизации. OpenCV имеет привязки к C++, Python, Java, MATLAB и поддерживает основные настольные и мобильные платформы (Windows, Linux, macOS, Android).

Сравнение производительности библиотек OpenCV, OpenCV+IPP, VXL и LTI
Рисунок 1 — Сравнение производительности библиотек компьютерного зрения

Диаграмма демонстрирует преимущество OpenCV по быстродействию по сравнению с VXL и LTI, как в базовой конфигурации, так и с использованием дополнения IPP.

Общая структура проекта OpenCV
Рисунок 2 — Общая структура проекта OpenCV

Широкая функциональность, активное сообщество и обширная документация (в том числе на русском языке) делают OpenCV де-факто стандартом в области компьютерного зрения.

Библиотека AForge.NET

AForge.NET — фреймворк с открытым исходным кодом на языке C#, предназначенный для разработчиков в областях компьютерного зрения, искусственного интеллекта и робототехники. Он включает модули для обработки изображений, работы с видео, нейронных сетей, генетических алгоритмов, нечеткой логики и машинного обучения.

Структура фреймворка AForge.NET
Рисунок 3 — Структура фреймворка AForge.NET

Существенным плюсом AForge.NET является наличие хорошо структурированной HTML-документации и примеров, но фреймворк ориентирован в первую очередь на .NET-платформу и заметно уступает OpenCV по популярности и количеству пользователей. Кроме того, документация в основном доступна только на английском языке, что может усложнять освоение.

Библиотека VXL

VXL — набор модульных библиотек на C++, предназначенных для научных исследований и разработки технологий компьютерного зрения. Основные подсистемы включают:

  • VNL — численные алгоритмы и контейнеры (матрицы, векторы, оптимизаторы);
  • VIL — загрузка, сохранение и редактирование изображений;
  • VGL — геометрические операции в 1D/2D/3D-пространствах;
  • VSL, VBL, VUL — вспомогательные библиотеки ввода/вывода, шаблонов и утилит.
Иерархическая структура ядра VXL
Рисунок 4 — Иерархическое строение ядра VXL

Каждый компонент VXL может использоваться отдельно, что повышает гибкость при разработке. Библиотека активно применяется в научных проектах, однако требует хорошего знания C++ и английского языка, а также более сложна в освоении по сравнению с OpenCV.

Библиотека LTI

LTI-lib — объектно-ориентированная библиотека алгоритмов и структур данных на C++, ориентированная на задачи обработки изображений, компьютерного зрения и распознавания. Она разрабатывалась как часть исследовательских проектов в области робототехники, анализа жестов, речи и объектов.

Библиотека предоставляет кроссплатформенные компоненты (под Linux и Windows), в том числе для многопоточности, измерения времени и работы с последовательными портами. Распространяется по свободной лицензии (GNU LGPL), снабжена документацией, но также в основном англоязычной.

Система распознавания и классификации изображений транзисторов

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

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

Укрупненная структура системы распознавания транзисторов
Рисунок 5 — Укрупнённая структура системы распознавания и классификации изображений транзисторов

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

Выбор библиотеки и выводы

На основе анализа библиотек сделаны следующие выводы в пользу выбора OpenCV для разработки приложения по распознаванию транзисторов:

  1. Высокая производительность. Согласно результатам сравнительных тестов, OpenCV превосходит аналоги (VXL и LTI-lib) по быстродействию даже без использования IPP.
  2. Широкий функционал. В библиотеке реализовано множество алгоритмов обработки изображений, компьютерного зрения и машинного обучения, что позволяет обойтись без дополнительных внешних модулей.
  3. Документация и сообщество. Наличие русскоязычных материалов, большого числа учебников, статей и активного сообщества разработчиков облегчает обучение и сопровождение кода.
  4. Кроссплатформенность. Поддержка Windows, Linux, macOS, Android и широкого набора языков программирования делает OpenCV удобным выбором для многоплатформенных систем.

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

Литература

  1. OpenCV library [Электронный ресурс]. Режим доступа: https://opencv.org/.
  2. OpenCV vs VXL vs LTI: Performance Test — AIShack [Электронный ресурс]. Режим доступа: http://www.aishack.in/tutorials/opencv-vs-vxl-vs-lti-performance-test/.
  3. AForge.NET Framework [Электронный ресурс]. Режим доступа: http://www.aforgenet.com/framework/.
  4. Применение библиотеки AForge.NET и её расширения Accord.NET Framework при распознавании лиц в режиме реального времени // Молодой учёный. URL: https://moluch.ru/archive/154/43602/.
  5. VXL — C++ Libraries for Computer Vision [Электронный ресурс]. Режим доступа: http://vxl.sourceforge.net/.
  6. What is VXL? A collection of Computer Vision libraries [Электронный ресурс]. Режим доступа: https://slideplayer.com/slide/7433547.
  7. LTI-Lib [Электронный ресурс]. Режим доступа: http://ltilib.sourceforge.net/doc/homepage/index.shtml.
  8. LTI-Lib Documentation [Электронный ресурс]. Режим доступа: http://ltilib.sourceforge.net/doc/html/index.shtml.

Annotation

Makogon S.A., Zori S.A. Comparison of popular computer vision libraries for use in transistor recognition applications. The paper reviews and compares popular computer vision libraries (OpenCV, AForge.NET, LTI, VXL) in the context of their use in pattern recognition systems. Special attention is paid to the requirements of a client–server application for transistor recognition on mobile devices. Based on performance, functionality, documentation and cross-platform support, the authors conclude that OpenCV is the most appropriate choice for implementing the computer vision part of such an application.

Key words: computer vision, image recognition, library, OpenCV, AForge.NET, LTI, VXL, documentation.

Источник: Сравнение популярных библиотек компьютерного зрения для использования в приложении по распознаванию транзисторов / С.А. Макогон, С.А. Зори // ПИИВС-2018. – Донецк: ДонНТУ, 2018. – С. 67–71.