OpenCV — это популярная библиотека для компьютерного зрения. А компьютерное зрение — это целое направление в искусственном интеллекте, которое специализируется на распознавании и понимании видеоизображений и сцен. Компьютерное зрение имеет очень широкий круг применения: от поиска преступников на улице до идентификации лиц для разблокирования смартфона. Для того, чтобы компьютерное зрение было возможным, и существуют подобные библиотеки, как OpenCV, в которых собраны все необходимые для этого инструменты.
OpenCV может помочь осуществить не только поиск объектов по шаблону, но и множество других операций с графическими рисунками:
- импортировать и просматривать изображения;
- обрезать;
- изменять размер;
- поворачивать изображение;
- размывать или сглаживать;
- рисовать линии и прямоугольники;
- накладывать текст на изображение;
- распознавать лица;
- сохранять изображение.
При этом главным моментом, почему библиотека OpenCV пользуется популярностью, является поиск объектов на изображении по заданному шаблону. Само по себе обнаружение объектов является наиболее важным и глубоким элементом компьютерного зрения. Поэтому ему уделяется особое внимание. И если бы не существовало обнаружения объектов, то не было бы и самого машинного зрения. Ведь прежде чем осуществить с изображением какие-то действия, нужно определить и идентифицировать все находящиеся на нем объекты.
OpenCV — это поиск объектов по шаблону и не только
Данная библиотека рассчитана на язык программирования Python, но при этом она есть и для других языков. Установить ее можно на все популярные платформы:
- Windows;
- Linux;
- MacOS;
- и др.
Установить эту библиотеку на свой компьютер можно через Консоль. А использовать ее лучше с языком Питон. Чтобы ее установить, нужно ввести в Консоль следующее:
- для Windows: $ pip install opencv-python
- для Линукс: $ sudo apt-get install libopencv-dev python-opencv
- для МакОС: $ brew install opencv - - with-contrib - - with-python
Описанные команды подразумевают, что у вас уже установлен Python и вы будете использовать эту библиотеку именно для Питона.
OpenCV: основные действия с изображениями
Самое первое и простое действие — это просмотр изображения. Для того чтобы просмотреть изображение, оно должно быть загружено на компьютер. Просмотреть изображение можно при помощи следующего кода:
import cv2
images = cv2.imread("./указываем путь /к/вашему изображению.png")
cv2.imshow("Images", images)
cv2.waitKey(0)
cv2.destroyAllWindows()
Можно кадрировать изображение, для этого используют код:
import cv2
cropped = image[15:425, 425:1980]
viewImage(cropped, "Фотография после кадрирования")
Вот это выражение: «image[15:425, 425:1980]» показывает координаты кадрирования.
Можно «размыть» или «сгладить» графический рисунок. Для этого подойдет вот такой вот скрипт:
import cv2
blurred = cv2.GaussianBlur(image, (49, 49), 0)
viewImage(blurred, "Размываемая фотография")
В этом скрипте используется операция «Размывание по Гауссу», где нужно задать 2 параметра:
- оригинальное изображение;
- два нечетных и неотрицательных числа, которые указывают силу сглаживания: чем выше значение числа, тем больше сила;
- sigmaX и sigmaY, когда идентификатор обозначен 0-м, тогда эти параметры рассчитываются в автоматическом режиме.
Можно расположить текст на графическом рисунке. Для этого можно использовать вот такой вот скрипт:
import cv2
output = image.copy()
cv2.putText(output, "Текст на графическом рисунке", (2155, 4785),cv2.FONT_LIBERATION_SERIF, 14, (25, 95, 225), 35)
viewImage(output, "Графический рисунок, на котором наложен текст")
Данный код включает несколько важных параметров:
- оригинальный рисунок;
- текст, который нужно наложить;
- координаты начала текстового выражения;
- каким шрифтом изобразить текст;
- размер букв;
- цвет текста;
- толщина шрифта.
OpenCV: поиск объектов по шаблону
Данную функцию библиотеки OpenCV хочется выделить из-за ее важности. Самый распространенный метод распознавания объектов на графических рисунках — это цветовая сегментация, которая применяет всего 2 функции для распознавания контуров и оттенков:
- cv2.findContours;
- cv2.drawContours.
Она определяет контуры и цветовую схему изображенных объектов, потом сравнивает эти значения с объектами из библиотеки. Результатом будет выдан объект из библиотеки, с которым будет наибольший процент сходства у объекта на изображении. Чтобы «сходство» и результаты были точнее, нужно будет постоянно обучать программу.
Помимо этой функции, есть еще множество других алгоритмов и методов поиска объектов, это:
- R-CNN;
- Fast-RCNN;
- Faster-RCNN,
- RetinaNet;
- SSD;
- YOLO;
- и др.
В принципе невозможно в рамках одной статьи привести код по какому-либо из алгоритмов, чтобы показать, как осуществить поиск объектов на графическом рисунке. Потому что любой из этих алгоритмов требует глубокого знания фреймворков математического обучения и понимания того, что такое машинное обучение.
Выводы
OpenCV — это одна из лучших библиотек для компьютерного видения. С ее возможностями можно не только осуществлять поиск объектов по шаблону, но и выполнять более простые операции с графическими рисунками.
Для того чтобы воспользоваться функцией поиска объектов по шаблону, нужно глубже изучать OpenCV и в общем технологию машинного зрения. Цель нашей статьи — лишь слегка приоткрыть возможности библиотеки OpenCV и вдохновить вас на ее изучение, а возможно, на изучение машинного зрения.

Другое