Компьютерное зрение в настоящее время является одной из самых развивающихся областей в отрасли и привлекает большое внимание, поскольку оно постепенно интегрируется в реальные приложения, такие как социальные сети, мобильные приложения и беспилотные автомобили.
Хотя есть еще открытые исследовательские проблемы, которые необходимо решить в этой области, но многие инструменты с открытым исходным кодом доступны для разработки исследовательских или промышленных приложений. Некоторые области, такие как обработка изображений, имеют очень зрелые стабильные библиотеки, такие как 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