Обнаружение мордочек в реальном времени с помощью Python-OpenCV
Распознавание лиц - это технология распознавания лиц по изображению. Для этого мы используем 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.