Цель этого курса – дать представление о приложениях машинного обучения к анализу изображений и видеоданных. Основной язык курса – Питон.
Одной из наиболее широко используемых библиотек для обработки изображений и их последующего анализа является OpenCV. Мы увидим, как открывать изображения; как просматривать их в окне OpenCV, в отдельном окне matplotlib и в тетрадке Jupyter; а также как сохранять изображения. Мы захватим отдельные кадры из видеофайла и с веб-камеры. Мы соберем с веб-камеры материал для самостоятельного задания 1. Презентация доступна по ссылке в заголовке. Задание 1 – последний слайд презентации (если подвести мышку к левому краю окна, появится список слайдов).
В папке e01-opencv-basics
есть:
e01.ipynb
Тетрадка Jupyter с примерамиsave_as_bw.py
Пример кода для сохранения ч/б изображенияvideo_capture.py
Пример кода для видеозахватаdetect_faces_haar.py
Пример кода для обнаружения лиц в видеопотоке
Задача нахождения лиц на изображении, то есть выделения областей, содержащих лицо человека, проще, чем задача распознавания лиц. Она успешно решается: все наверняка видели прямоугольники вокруг лиц в видоискателе фотоаппарата или на экране камеры смартфона. В этой работе мы применим для выделения лиц метод Виолы–Джонса, или каскадов Хаара.
Задания в конце тетрадки e02.ipynb
. Также в папке имеются преднастроенные хааровские каскады на случай, если их нет в вашей установке cv2
.
Первый метод, который мы применим к задаче распознавания лиц, это метод опорных векторов (SVM). Каждое лицо представляется просто как вектор из яркостей его пикселей, выписанных в ряд. Такой вектор получается слишком длинным, поэтому предварительно проводится понижение размерности при помощи метода главных компонент (PCA). Точность не сногсшибательная, но вполне интересная. Методы реализованы в пакете scikit-learn. Тетрадка e03.ipynb
содержит пример из документации этого пакета по распознаванию лиц политиков из набора данных LFW и предлагает адаптировать этот пример для наших изображений, подготовленных на предыдущих занятиях.