OpenCV — это кроссплатформенная библиотека, с помощью которой мы можем разрабатывать приложения для компьютерного зрения в реальном времени. Основное внимание уделяется обработке изображений, захвату и анализу видео, включая такие функции, как обнаружение лиц и обнаружение объектов.
Давайте начнем главу с определения термина «компьютерное зрение».
Компьютерное зрение
Computer Vision может быть определена как дисциплина, которая объясняет, как реконструировать, прерывать и понимать трехмерную сцену из ее 2D-изображений с точки зрения свойств структуры, присутствующей в сцене. Он занимается моделированием и копированием человеческого зрения с использованием компьютерного программного и аппаратного обеспечения.
Computer Vision значительно перекрывает следующие поля:
-
Обработка изображений — фокусируется на манипулировании изображениями.
-
Распознавание образов — объясняет различные методы классификации образцов.
-
Фотограмметрия — это касается получения точных измерений из изображений.
Обработка изображений — фокусируется на манипулировании изображениями.
Распознавание образов — объясняет различные методы классификации образцов.
Фотограмметрия — это касается получения точных измерений из изображений.
Computer Vision Vs Обработка изображений
Обработка изображений связана с преобразованием изображения в изображение. Вход и выход обработки изображения оба изображения.
Компьютерное зрение — это построение явных, значимых описаний физических объектов по их изображению. Результатом компьютерного зрения является описание или интерпретация структур в трехмерной сцене.
Приложения компьютерного зрения
Здесь мы перечислили некоторые из основных областей, где интенсивно используется Computer Vision.
Применение робототехники
-
Локализация — определение местоположения робота автоматически
-
навигация
-
Избегание препятствий
-
Сборка (колышек, сварка, покраска)
-
Манипуляции (например, робот-манипулятор PUMA)
-
Human Robot Interaction (HRI) — Интеллектуальная робототехника для взаимодействия и обслуживания людей
Локализация — определение местоположения робота автоматически
навигация
Избегание препятствий
Сборка (колышек, сварка, покраска)
Манипуляции (например, робот-манипулятор PUMA)
Human Robot Interaction (HRI) — Интеллектуальная робототехника для взаимодействия и обслуживания людей
Применение в медицине
- Классификация и обнаружение (например, классификация повреждения или клеток и обнаружение опухоли)
- 2D / 3D сегментация
- 3D реконструкция человеческого органа (МРТ или УЗИ)
- Визуальная робототехника
Применение промышленной автоматизации
- Промышленный контроль (обнаружение дефектов)
- сборочный
- Считывание штрих-кода и этикетки на упаковке
- Сортировка объектов
- Понимание документа (например, OCR)
Приложение безопасности
-
Биометрия (радужная оболочка, отпечаток пальца, распознавание лица)
-
Наблюдение — обнаружение определенных подозрительных действий или поведения
Биометрия (радужная оболочка, отпечаток пальца, распознавание лица)
Наблюдение — обнаружение определенных подозрительных действий или поведения
Транспортное приложение
- Автономное транспортное средство
- Безопасность, например, мониторинг бдительности водителя
Особенности библиотеки OpenCV
Используя библиотеку OpenCV, вы можете —
-
Читать и писать изображения
-
Захват и сохранение видео
-
Обрабатывать изображения (фильтровать, преобразовывать)
-
Выполнить обнаружение функции
-
Обнаружение определенных объектов, таких как лица, глаза, автомобили, в видео или изображениях.
-
Проанализируйте видео, т.е. оцените движение в нем, вычтите фон и отследите объекты в нем.
Читать и писать изображения
Захват и сохранение видео
Обрабатывать изображения (фильтровать, преобразовывать)
Выполнить обнаружение функции
Обнаружение определенных объектов, таких как лица, глаза, автомобили, в видео или изображениях.
Проанализируйте видео, т.е. оцените движение в нем, вычтите фон и отследите объекты в нем.
OpenCV изначально разрабатывался на C ++. В дополнение к этому были предоставлены привязки Python и Java. OpenCV работает в различных операционных системах, таких как Windows, Linux, OSx, FreeBSD, Net BSD, Open BSD и т. Д.
В этом руководстве объясняются концепции OpenCV на примерах, использующих привязки Java.
Библиотечные модули OpenCV
Ниже приведены основные библиотечные модули библиотеки OpenCV.
Основная функциональность
Этот модуль охватывает основные структуры данных, такие как Scalar, Point, Range и т. Д., Которые используются для создания приложений OpenCV. В дополнение к этому, он также включает в себя многомерный массив Mat , который используется для хранения изображений. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.core .
Обработка изображения
Этот модуль охватывает различные операции обработки изображений, такие как фильтрация изображений, геометрические преобразования изображений, преобразование цветового пространства, гистограммы и т. Д. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.imgproc .
видео
Этот модуль охватывает такие понятия анализа видео, как оценка движения, вычитание фона и отслеживание объекта. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.video .
Видео ввод / вывод
Этот модуль объясняет захват видео и видеокодеки с использованием библиотеки OpenCV. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.videoio .
calib3d
Этот модуль включает в себя алгоритмы, касающиеся основных алгоритмов геометрии нескольких видов, калибровки одиночной и стереокамеры, оценки позы объекта, стерео соответствия и элементов трехмерной реконструкции. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.calib3d .
features2d
Этот модуль включает в себя концепции обнаружения и описания функций. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.features2d .
Objdetect
Этот модуль включает в себя обнаружение объектов и экземпляров предопределенных классов, таких как лица, глаза, кружки, люди, автомобили и т. Д. В библиотеку Java OpenCV этот модуль включен как пакет с именем org.opencv.objdetect .
Highgui
Это простой в использовании интерфейс с простыми возможностями пользовательского интерфейса. В библиотеке Java OpenCV функции этого модуля включены в два разных пакета, а именно org.opencv.imgcodecs и org.opencv.videoio .
Краткая история OpenCV
OpenCV изначально была исследовательской инициативой Intel для консультирования приложений, интенсивно использующих процессор. Он был официально запущен в 1999 году.