Автор оригинала: Team Python Pool.
Распознавание лиц С помощью OpenCV и Python
Распознавание лиц – это компьютерная технология, используемая в различных приложениях, которая идентифицирует человеческие лица на цифровых изображениях. Это также относится к психологическому процессу, с помощью которого люди находят лица в визуальной сцене и обращают на них внимание.
В этом посте мы узнаем, как выполнить распознавание лиц как в изображениях, так и в видеопотоках с помощью:
- OpenCV
- Питон
- Глубокое обучение/Машинное обучение
Как мы увидим, основанные на глубоком обучении лицевые встраивания, которые мы будем использовать здесь сегодня, являются высокоточными и способны выполняться в режиме реального времени.
Чтобы узнать больше о распознавании лиц с помощью Python и глубоком обучении, просто продолжайте читать!
OpenCV
OpenCV
Модуль href=”https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html”>OpenCV href=”https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html”> (Open source computer vision) – это href=”https://en.wikipedia.org/wiki/Library_(computing)”>библиотека программных функций в основном нацелена на работу в реальном времени href=”https://en.wikipedia.org/wiki/Computer_vision”>компьютерное зрение. С его помощью можно использовать несколько методов IoT и машинного обучения. Это одно из самых мощных средств компьютерного зрения. href=”https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html”>OpenCV href=”https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html”> (Open source computer vision) – это href=”https://en.wikipedia.org/wiki/Library_(computing)”>библиотека программных функций в основном нацелена на работу в реальном времени href=”https://en.wikipedia.org/wiki/Computer_vision”>компьютерное зрение. С его помощью можно использовать несколько методов IoT и машинного обучения. Это одно из самых мощных средств компьютерного зрения. href=”https://en.wikipedia.org/wiki/Library_(computing)”>библиотека программных функций в основном нацелена на работу в реальном времени href=”https://en.wikipedia.org/wiki/Computer_vision”>компьютерное зрение. С его помощью можно использовать несколько методов IoT и машинного обучения. Это одно из самых мощных средств компьютерного зрения. href=”https://en.wikipedia.org/wiki/Computer_vision”>компьютерное зрение. С его помощью можно использовать несколько методов IoT и машинного обучения. Это одно из самых мощных средств компьютерного зрения.
Это самая популярная библиотека для компьютерного зрения. Первоначально написанный на C/C++, он теперь предоставляет привязки для Python. Он использует алгоритмы машинного обучения для поиска лиц на изображении.
Во-первых, вам нужно установить OpenCV для вашего Python. Это делается с помощью установщика-pip в командной строке.
pip install opencv
Как только вы установите его на свой компьютер, он может быть импортирован в код Python командой-import cv2.
Ниже приведен код для распознавания лиц:
import cv2 # create a new cam object.VideoCapture(0) # initialize the face recognizer (default face haar cascade).CascadeClassifier("cascades/haarcascade_fontalface_default.xml") while True: # read the image from the cam _,.read() # converting to grayscale .cvtColor(image, cv2.COLOR_BGR2GRAY) # detect all the faces in the image .detectMultiScale(image_gray, 1.3, 5) # for every face, draw a blue rectangle for x, y, width, height in faces: cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0),) cv2.imshow("image", image) if cv2.waitKey(1)("q"): break cap.release() cv2.destroyAllWindows()
Распознавание лиц:
Каждый алгоритм машинного обучения принимает набор данных в качестве входных данных и учится на этих данных. Алгоритм просматривает данные и выявляет в них закономерности. Например, предположим, что мы хотим определить, чье лицо присутствует на данном изображении, есть несколько вещей, которые мы можем рассматривать как образец:
- Высота/ширина лица.
- Высота и ширина могут быть ненадежными, так как изображение может быть масштабировано до меньшего размера. Однако даже после масштабирования неизменными остаются соотношения – отношение высоты грани к ширине грани не изменится.
- Цвет лица.
- Ширина других частей лица, таких как губы, нос и т. д.
библиотека face_recognition в Python может выполнять большое количество задач:
- Найдите все лица на заданном изображении
- Находите и манипулируйте чертами лица на изображении
- Идентификация лиц на изображениях
- Распознавание лиц в реальном времени
После обнаружения лиц лица также могут быть распознаны, и имя объекта/человека может быть сообщено выше . Ниже приведены шаги, чтобы сделать это.
Понимание кода Python:
Теперь давайте пройдемся по коду, чтобы понять, как он работает:
# import the libraries import os import face_recognition
Это просто импорт. Мы будем использовать встроенную библиотеку ОС для чтения всех изображений в нашем корпусе, и мы будем использовать face_recognition для написания алгоритма.
# make a list of all the available images.listdir('images')
Этот простой код помогает нам определить путь всех изображений в корпусе. Как только эта строка будет выполнена, мы будем иметь:
images = ['img.jpg', 'img1.jpg', 'img2.jpg', 'img3.jpg', 'img4.jpg', 'img5.jpg', 'img6.jpg']
Теперь код ниже загружает изображение новой знаменитости:
# load your image.load_image_file('my_image.jpg')
Чтобы убедиться, что алгоритмы способны интерпретировать изображение, мы преобразуем его в вектор признаков:
# encoded the loaded image into a feature vector .face_encodings(image_to_be_matched)[0]
Остальная часть кода теперь довольно проста, которая импортирует и обрабатывает данные:
Вот мы и пришли:
Весь код дан здесь. Загрузите соответствующие изображения для работы над ним.
# import the libraries import os import face_recognition # make a list of all the available images.listdir('images') # load your image.load_image_file('my_image.jpg') # encoded the loaded image into a feature vector.face_encodings( image_to_be_matched)[0] # iterate over each image for image in images: # load the image .load_image_file("images/" + image) # encode the loaded image into a feature vector .face_encodings(current_image)[0] # match your image with the image and check if it matches .compare_faces( [image_to_be_matched_encoded], current_image_encoded) # check if it was a match if result[0]: print "Matched: " + image else: print "Not matched: " + image
Выход:
Ниже приведены некоторые из изображений, демонстрирующих эффективность и мощь метода распознавания лиц с использованием приведенного выше кода.
распознавание лиц
распознавание лиц
В Python Распознавание лиц-интересная проблема с большим количеством мощных вариантов использования, которые могут значительно помочь обществу в различных измерениях. Хотя коммерциализация таких методов всегда сопряжена с этическим риском, эту дискуссию мы отложим на другое время.
Должен Читать
Изучение функции numpy.ones в Python | np.ones8 Примеров реализации ОС.listdir() в PythonPython getpass Объяснен Примерами