Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04
OpenCV - это библиотека компьютерного зрения с открытым исходным кодом, которая очень популярна для выполнения основных задач обработки изображений, таких как размытие, смешивание изображений, улучшение изображения, а также качество видео, установление пороговых значений и т. Д. В дополнение к обработке изображений она обеспечивает различное предварительно обученное глубокое обучение модели, которые можно напрямую использовать для решения простых задач.
для установки opencv используйте эту ссылку
www.instructables.com/id/Opencv-and-Python…
Шаг 1. Обнаружение лица в видео в реальном времени
вы можете искать в Google многие программы для распознавания лиц, и обнаруженные лица должны быть сохранены в папке для дальнейшей обработки изображений, таких как обучение и маркировка. собираемся собрать 30 образцов
импорт cv2
импортировать numpy как np
импорт ОС импорт систем
камера = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") # добавьте путь к вашему файлу Harcascade
name = raw_input ("Как его / ее имя?")
# все файлы будут сохранены в папке Users / prasad / Documents / images
dirName = "/ Users / prasad / Documents / images /" + имя
print (dirName), если не os.path.exists (dirName): os.makedirs (dirName) print («Каталог создан») else: print («Имя уже существует») sys.exit ()
count = 1
# собираемся собрать 30 образцов
в то время как счет 30: break # frame = frame.array gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gray, 1.5, 5) for (x, y, w, h) в лицах: roiGray = серый [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("face", roiGray) cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 255, 0), 2) count + = 1 cv2.imshow ('frame', frame) key = cv2.waitKey (1)
если ключ == 27:
перерыв
# camera.release ()
cv2.destroyAllWindows ()
Шаг 2. Обучение вашим образцам изображений
После того, как функция распознавания лиц была завершена, мы можем перейти к обучению изображений.
import osimport numpy as np from PIL import Image import cv2 import pickle #import serial
#ser = serial. Serial ('/ dev / ttyACM0', 9600, тайм-аут = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
распознаватель = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
# обучаем изображения в папке изображений
imageDir = os.path.join (baseDir, «изображения»)
currentId = 1
labelIds = {} yLabels = xTrain = # ser.write ("Обучение…..". encode ())
для root, dirs, файлов в os.walk (imageDir):
print (root, dirs, files) для файла в файлах: print (file) if file.endswith ("png") или file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (корень) print (метка)
если не метка в labelIds:
labelIds [label] = currentId print (labelIds) currentId + = 1
id_ = labelIds [метка]
pilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage, "uint8") faces = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
для (x, y, w, h) в гранях:
roi = imageArray [y: y + h, x: x + w] xTrain.append (roi) yLabels.append (id_)
с open ("labels", "wb") как f:
pickle.dump (labelIds, f) f.close ()
распознаватель.train (xTrain, np.array (yLabels))
распознаватель.save ("trainer.yml") print (labelIds)
Шаг 3: распознавание лиц
после завершения обучения вы можете запустить приведенный ниже код, чтобы он начал распознавать ваши обученные лица
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
с open ('labels', 'rb') как f:
dicti = pickle.load (f) f.close ()
камера = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
распознаватель = cv2.face. LBPHFaceRecognizer_create () распознаватель.read ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
последний = ''
# для кадра в camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
while True: ret, frame = camera.read () gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gray, scaleFactor = 1.5, minNeighbors = 5) для (x, y, w, h) в лицах: roiGray = серый [y: y + h, x: x + w]
id_, conf = распознаватель.predict (roiGray)
для имени значение в dicti.items ():
if value == id_: print (name) cv2.putText (frame, name, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name! = last: last = имя, если conf <= 70: cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow ('рамка', рамка)
ключ = cv2.waitKey (1)
если ключ == 27:
сломать cv2.destroyAllWindows ()
Рекомендуемые:
Распознавание лиц на Raspberry Pi 4B за 3 шага: 3 шага
Обнаружение лиц на Raspberry Pi 4B за 3 шага: в этом руководстве мы собираемся выполнить обнаружение лиц на Raspberry Pi 4 с помощью Shunya O / S, используя библиотеку Shunyaface. Shunyaface - это библиотека распознавания / обнаружения лиц. Проект направлен на достижение максимальной скорости обнаружения и распознавания с помощью
Распознавание и идентификация лиц - Идентификатор лица Arduino с использованием OpenCV Python и Arduino: 6 шагов
Распознавание и идентификация лиц | Идентификатор лица Arduino с использованием OpenCV Python и Arduino. Распознавание лиц AKA Face ID - одна из самых важных функций мобильных телефонов в настоящее время. Итак, у меня возник вопрос: «Могу ли я иметь идентификатор лица для моего проекта Arduino?» и ответ - да … Мой путь начался следующим образом: Шаг 1: Доступ к нам
Распознавание лиц ESP32 CAM с поддержкой MQTT - Мыслитель ИИ: 4 шага
Распознавание лиц ESP32 CAM с поддержкой MQTT | AI-Thinker: Здравствуйте! Я хотел поделиться своим кодом для проекта, где мне нужно было иметь ESP CAM с распознаванием лиц, который мог бы отправлять данные в MQTT. Так хорошо … после, может быть, 7 часов просмотра нескольких примеров кода и поиска того, что к чему, у меня все готово
Распознавание лиц OpenCV: 4 шага
Распознавание лиц Opencv: распознавание лиц - довольно распространенная вещь в наши дни, во многих приложениях, таких как смартфоны, многие электронные устройства. Этот вид технологии включает в себя множество алгоритмов и инструментов и т. Д., Которые используют некоторые встроенные встроенные платформы SOC, такие как Raspberry
Распознавание лиц + распознавание: 8 шагов (с изображениями)
Обнаружение лиц + распознавание: это простой пример запуска обнаружения и распознавания лиц с помощью OpenCV с камеры. ПРИМЕЧАНИЕ: Я СОЗДАЛ ДАННЫЙ ПРОЕКТ ДЛЯ КОНКУРСА СЕНСОРОВ И ИСПОЛЬЗОВАЛ КАМЕРУ В КАЧЕСТВЕ СЕНСОРА ДЛЯ ОТСЛЕЖИВАНИЯ И РАСПОЗНАВАНИЯ ЛИЦ. Итак, наша цель В этом сеансе: 1. Установить Anaconda