Обнаружение мордочек в реальном времени с помощью Python-OpenCV

Опубликовано: 10 Июня, 2021

Распознавание лиц - это технология распознавания лиц по изображению. Для этого мы используем Python OpenCV. Мы также можем использовать распознавание лиц в случае с животными. Если можно внимательно изучить репозиторий OpenCV, конкретнее каталог каскадов haar (где OpenCV хранит все свои предварительно обученные классификаторы haar для обнаружения различных объектов, частей тела и т. Д.), То есть два файла:

  • haarcascade_frontalcatface.xml
  • haarcascade_frontalcatface_extended.xml

Целью данной программы является обнаружение интересующего объекта (морда кошки) в режиме реального времени и отслеживание одного и того же объекта. Это простой пример того, как определить морду кошки в Python. Вы можете попробовать использовать обучающие образцы любого другого объекта по вашему выбору для обнаружения путем обучения классификатора на требуемых объектах.

Ниже представлена реализация.




# OpenCV program to detect cat face in real time
# import libraries of python OpenCV
# where its functionality resides
import cv2
# load the required trained XML classifiers
# data/haarcascades/haarcascade_frontalcatface.xml
# Trained XML classifiers describes some features of some
# object we want to detect a cascade function is trained
# from a lot of positive(faces) and negative(non-faces)
# images.
face_cascade = cv2.CascadeClassifier( 'haarcascade_frontalcatface.xml' )
# capture frames from a camera
cap = cv2.VideoCapture( 0 )
# loop runs if capturing has been initialized.
while 1 :
# reads frames from a camera
ret, img = cap.read()
# convert to gray scale of each frames
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Detects faces of different sizes in the input image
faces = face_cascade.detectMultiScale(gray, 1.3 , 5 )
for (x,y,w,h) in faces:
# To draw a rectangle in a face
cv2.rectangle(img,(x,y),(x + w,y + h),( 255 , 255 , 0 ), 2 )
roi_gray = gray[y:y + h, x:x + w]
roi_color = img[y:y + h, x:x + w]
# Display an image in a window
cv2.imshow( 'img' ,img)
# Wait for Esc key to stop
k = cv2.waitKey( 30 ) & 0xff
if k = = 27 :
break
# Close the window
cap.release()
# De-allocate any associated memory usage
cv2.destroyAllWindows()

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью Базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.