Баннер мобильный (1) Пройти тест

OpenCV

Глоссарий

27 марта 2023

Поделиться

Скопировано

Содержание

    OpenCV (Open Source Computer Vision Library) — это открытая библиотека для работы с алгоритмами компьютерного зрения, машинным обучением и обработкой изображений. Написана на C++, но существует также для Python, JavaScript, Ruby и других языков программирования. Работает на Windows, Linux и MacOS, iOS и Android.

    Логотип OpenCV

    Где используется 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 комментария

    Комментарии
    • Владимир

      нормально объяснили что такое opencv. Для машинного обучения питоном рекомендую использовать больше библиотеки TensorFlow или PyTorch

    • Дмитрий

      пользуюсь библиотекой opencv только потому, что есть документация на русском языке)