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

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

Вот самые популярные библиотеки и инструменты, используемые в настоящее время в сообществе компьютерного зрения:

1) Обработка изображений

Обработка изображений - это применение математических операций к изображениям или видео.

OpenCV
Самая популярная и хорошо документированная библиотека для обработки изображений общего назначения. Выпущено по лицензии BSD и, следовательно, бесплатно как для академического, так и для коммерческого использования. Он имеет интерфейсы C ++, C, Python и Java и поддерживает Windows, Linux, Mac OS, iOS и Android.

BoofCV
Библиотека Java с открытым исходным кодом для приложений компьютерного зрения и робототехники в реальном времени. Написано с нуля для простоты использования и высокой производительности. Его функциональные возможности охватывают широкий спектр объектов, включая оптимизированные процедуры обработки изображений на низком уровне, калибровку камеры, обнаружение / отслеживание функций, определение структуры по движению и распознавание. Он был выпущен под лицензией Apache 2.0 как для академического, так и для коммерческого использования.

NASA Vision Workbench
Библиотека общего назначения для обработки изображений и компьютерного зрения, разработанная отделом автономных систем и робототехники (ASR) Отдела интеллектуальных систем исследовательского центра NASA Ames Research Center. VW был публично выпущен в соответствии с условиями [Соглашения НАСА о программном обеспечении с открытым исходным кодом] [nosa]. Vision Workbench был реализован на языке программирования C ++.

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

2) OCR

Оптическое распознавание символов - это преобразование изображений в текст.

Tesseract
Выпущенный под лицензией Apache 2.0, Tesseract поддерживает Unicode (UTF-8) и может распознавать более 100 языков из коробки. Его можно обучить распознаванию других языков. .

3) Инструменты машинного обучения

Машинное обучение - это анализ данных и извлечение из них информации на основе прикладных алгоритмов.

DLib
Современный инструментарий C ++, содержащий алгоритмы машинного обучения и инструменты для создания сложного программного обеспечения на C ++ для решения реальных проблем.

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

4) Инструменты глубокого обучения

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

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

Theano
Библиотека Python, позволяющая эффективно определять, оптимизировать и оценивать математические выражения, включающие многомерные массивы.

Caffe
Фреймворк глубокого обучения, созданный с учетом экспрессии, скорости и модульности. Он разработан Berkeley Vision and Learning Center (BVLC) и участниками сообщества. выпущен под лицензией BSD 2-Clause.

Torch
Научно-вычислительная платформа с широкой поддержкой алгоритмов машинного обучения, которая ставит графические процессоры на первое место. Он прост в использовании и эффективен благодаря простому и быстрому языку сценариев LuaJIT и базовой реализации C / CUDA.

Keras
Библиотека нейронных сетей высокого уровня, написанная на Python и способная работать поверх TensorFlow или Theano. Он был разработан с упором на возможность быстрого экспериментирования.

5) сегментация

Сегментация - это разделение цифрового изображения на несколько сегментов, чтобы помочь в анализе и идентификации объектов на изображении.

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

6) Многовидовая геометрия

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

OpenMVG
Библиотека для специалистов по компьютерному зрению, специально предназначенная для сообщества Multiple View Geometry, выпущенная под Mozilla Public License Version 2.0.

7) Визуальная одометрия

Визуальная одометрия - это определение положения и ориентации объектов путем анализа изображений с камеры.

LIBVISO
Очень быстрая кроссплатформенная (Linux, Windows) библиотека C ++ с оболочками MATLAB для вычисления движения с 6 степенями свободы движущейся моно / стереокамеры.

8) Реконструкция сцены

Реконструкция сцены - это вычисление 3D-модели сцены.

VisualSFM
Приложение с графическим интерфейсом пользователя для трехмерной реконструкции с использованием структуры из движения (SFM), написанное на C ++.

MeshLab
Система с открытым исходным кодом для обработки и редактирования трехмерных треугольных сеток. Он предоставляет набор инструментов для редактирования, очистки, лечения, проверки, рендеринга, текстурирования и преобразования сеток. Он предлагает функции для обработки необработанных данных, созданных инструментами / устройствами 3D-оцифровки, и для подготовки моделей для 3D-печати.

Bundler
Система построения структуры из движения (SfM) для неупорядоченных коллекций изображений (например, изображений из Интернета), написанных на C и C ++. , распространяется под лицензией GNU General Public License

9) Отслеживание видео

Видеонаблюдение - это процесс обнаружения движущегося объекта (ов) с помощью видеопотока камеры.

OpenTL
Универсальная библиотека для безмаркерного отслеживания, которая предоставляет удобный интерфейс прикладного программирования (API) высокого уровня для самого широкого спектра методов и приложений. Реализовано на C ++ и обеспечивает возможности многопоточности и ускорения на GPU для повышения эффективности в реальном времени.

10) стабилизация видео

Стабилизация видео - это процесс устранения нежелательного дрожания и дрожания из видеопотока.

Vid.stab
Библиотека стабилизации видео, которую можно подключить с помощью Ffmpeg и Transcode. Разработано под GPL