OpenCV (Open Source Computer Vision Library) — это открытая библиотека для работы с алгоритмами компьютерного зрения, машинным обучением и обработкой изображений. Написана на C++, но существует также для Python, JavaScript, Ruby и других языков программирования. Работает на Windows, Linux и MacOS, iOS и Android.
Где используется OpenCV
OpenCV может использоваться везде, где нужно компьютерное зрение. Эта отрасль IT работает с технологиями, которые позволяют устройству «увидеть», распознать и описать изображение. Компьютерное зрение дает точную информацию о том, что изображено на картинке, с описанием, характеристиками и размерами (с определенной степенью достоверности).
Также библиотека работает с машинным обучением — отраслью, которая обучает алгоритмы действовать тем или иным образом.
OpenCV применяется:
- в робототехнике — для ориентирования робота в пространстве, распознавания объектов и взаимодействия с ними;
- медицинских технологиях — для создания точных методов диагностики, например 3D-визуализации органа при МРТ;
- промышленных технологиях — для автоматизированного контроля качества, считывания этикеток, сортировки продуктов и пр.;
- безопасности — для создания «умных» камер видеонаблюдения, которые реагируют на подозрительные действия, для считывания и распознавания биометрии;
- мобильной фотографии — для создания бьюти-фильтров, изменяющих лицо приложений;
- на транспорте — для разработки автопилотов.
Функции OpenCV
Работа со структурами данных
Для хранения и работы с изображениями OpenCV использует векторы и скаляры, матрицы и диапазоны. Они позволяют проводить математические преобразования, ориентироваться по изображению и выполнять множество других действий.
Видоизменение изображений
С помощью OpenCV с картинкой можно работать как в графическом редакторе: обрезать, увеличивать или уменьшать, вращать. В основном программисты используют эту возможность для предварительной подготовки картинки перед ее расшифровкой — например, обрезают ненужные части.
Добавление эффектов
Картинку можно сделать в оттенках серого или полностью черно-белой. Это важно для алгоритмов распознавания, которые работают с обесцвеченными изображениями. Можно изменять цветовой тон, размывать, сглаживать или геометрически изменять картинку.
Рисование поверх изображения
На картинку можно нанести линии и геометрические фигуры, сделать подпись, например, чтобы выделить найденное программой лицо. Часто это используется в мобильных приложениях для камеры: квадрат вокруг лица человека во время съемки означает, что программа распознала его.
Распознавание объектов
Для распознавания элементов в OpenCV используются очертания объектов, сегментация по цветам, встроенные методы распознавания, которые можно настраивать в зависимости от объекта и чувствительности алгоритма.
Работа с видеороликами
Новые версии библиотеки поддерживают работу не только с картинками, но и с видео. Они могут считывать ролики с использованием кодеков, анализировать происходящее в них, отслеживать движения и элементы. Это полезно, например, при программировании движущегося робота или создании ПО для камеры видеонаблюдения.
Из чего состоит OpenCV
Сейчас структура OpenCV — это множественные модули для разных целей:
- хранения математических функций и вычислений, алгебры и структур данных;
- хранения моделей для машинного обучения;
- ввода и вывода картинок или видео, чтения и записи в файл;
- обработки изображения;
- распознавания примитивов;
- детектирования объектов — лиц, предметов и других;
- отслеживания и анализа движений на видео;
- обработки трехмерной информации;
- ускорения работы библиотеки;
- хранения устаревшего или еще не готового кода и других.
Каждый модуль узко специализирован. Их не нужно скачивать отдельно: в пакет установки включена вся основная функциональность библиотеки.
Преимущества OpenCV
Активное сообщество
OpenCV для Python, JavaScript, Ruby и других языков программирования используют по всему миру, в том числе в Google и Microsoft. Поэтому вокруг библиотеки существует активное сообщество. Это полезно и для новичков, и для экспертов. Документация по OpenCV представлена на нескольких языках, в том числе на русском. Скачать полный исходный код последней версии можно на этой странице.
Бесплатный доступ
OpenCV распространяется по бесплатной лицензии и для учебного, и для коммерческого использования. У библиотеки открытый исходный код, который может просмотреть любой программист. Это дает большую гибкость в работе с OpenCV и позволяет самостоятельно узнать, как реализована та или иная функция.
Обилие алгоритмов
OpenCV включает более 2500 инструментов и алгоритмов компьютерного зрения и машинного обучения. Этого достаточно для решения сложных задач по распознаванию и обработке изображений.
Высокая скорость
Библиотека работает быстрее масштабного и тяжелого ПО для математических вычислений, такого как Matlab. Поэтому ее можно использовать в ситуациях, когда требуется быстро обработать картинку.
Возможность работы в реальном времени
Благодаря высокой скорости и кроссплатформенности OpenCV подходит для работы с изображениями в режиме реального времени. Это открывает ряд возможностей: от создания ПО для бьюти-фильтров в социальных сетях до разработки систем, которые автоматически поднимают тревогу при подозрительных действиях на камерах.
Недостатки OpenCV
Сложность в освоении
Чтобы хорошо понимать все возможности OpenCV, нужно знать теории компьютерного зрения и машинного обучения. Поэтому порог входа в отрасль выше, чем в других популярных направлениях IT.
Отсутствие кодов обработки ошибок
Если возникла ошибка, в OpenCV бывает сложно понять, где именно. Поэтому при отладке программ у новичков могут быть проблемы.
Ориентированность на большие платформы
OpenCV работает на масштабных платформах. Если запустить ее на микроконтроллере, одноплатном компьютере, производительность будет невысокой.
Как установить OpenCV в Python
Для установки OpenCV необходимо установить актуальную версию Python, а затем в зависимости от ОС выполнить одну из команд.
Windows
$ pip install opencv-python
MacOS
$ brew install opencv3 --with-contrib --with-python3
Linux
$ sudo apt-get install libopencv-dev python-opencv
Чтобы проверить, была ли установка OpenCV успешной, нужно выполнить следующую команду в оболочке Python, командной строке либо терминале: import cv2
Если при импорте cv2 не появилось сообщения об ошибке, значит, библиотека установлена правильно.
2 комментария