Съдържание:
- Стъпка 1: Откриване на лице във видео в реално време
- Стъпка 2: Обучете примерните си изображения
- Стъпка 3: Разпознаване на лица
Видео: Opencv разпознаване на лица, обучение и разпознаване: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
OpenCV е библиотека за компютърно виждане с отворен код, която е много популярна за изпълнение на основни задачи за обработка на изображения, като замъгляване, смесване на изображения, подобряване на изображението, както и качество на видеото, прагове и т.н. В допълнение към обработката на изображения, тя предоставя различни предварително обучени задълбочени знания модели, които могат да се използват директно за решаване на прости задачи.
за инсталиране на opencv използвайте тази връзка
www.instructables.com/id/Opencv-and-Python…
Стъпка 1: Откриване на лице във видео в реално време
можете да търсите в Google много програми за разпознаване на лица и откритите лица трябва да бъдат записани в папка за по -нататъшна обработка на изображения, като обучение и етикетиране. ще съберем 30 проби
импортиране на cv2
внос numpy като np
import os import sys
камера = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #добавете пътя си към файла harcascade
name = raw_input ("Как се казва той/тя?")
#всички файлове ще бъдат запазени в папката Users/prasad/Documents/images
dirName = "/Потребители/prasad/Документи/изображения/" + име
print (dirName) ако не os.path.exists (dirName): os.makedirs (dirName) print ("Директория създадена") else: print ("Име вече съществува") sys.exit ()
брой = 1
#ще съберем 30 проби
докато брой 30: прекъсване # рамка = рамка. масив сив = cv2.cvtColor (рамка, cv2. COLOR_BGR2GRAY) лица = faceCascade.detectMultiScale (сиво, 1.5, 5) за (x, y, w, h) в лица: roiGray = сиво [y: y + h, x: x + w] fileName = dirName + "/" + име + str (брой) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("лице", 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: Обучете примерните си изображения
След като разпознаването на лица приключи, можем да отидем за обучение на изображенията
импортиране освенport numpy като np от PIL импортиране на изображение импортиране на cv2 импортиране на туршия #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 (_ файл_))
#тренирайте изображенията в папката с изображения
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 (root) печат (етикет)
ако не е етикет в labelIds:
labelIds [label] = currentId печат (labelIds) currentId += 1
id_ = labelIds [етикет]
pilImage = Image.
за (x, y, w, h) в лица:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
с отворен ("етикети", "wb") като f:
pickle.dump (labelIds, f) f.close ()
разпознаващ влак (xTrain, np.array (yLabels))
Reconizer.save ("trainer.yml") печат (labelIds)
Стъпка 3: Разпознаване на лица
след като обучението приключи сега можете да стартирате кода по -долу, така че той да започне да разпознава вашите обучени лица
import osos.environ ['PYTHONINSPECT'] = 'on' импортиране на cv2 импортиране numpy като np импортиране на туршии #import RPi. GPIO като GPIO от времето импорт сън
с отворен ('етикети', 'rb') като f:
dicti = pickle.load (f) f.close ()
камера = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
разпознавач = cv2.face. LBPHFaceRecognizer_create () разпознаващ.прочит ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
последно ="
#за рамка в camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
докато True: ret, frame = camera.read () сиво = cv2.cvtColor (рамка, cv2. COLOR_BGR2GRAY) лица = faceCascade.detectMultiScale (сиво, scaleFactor = 1,5, minNeighbors = 5) за (x, y, w, h) в лица: roiGray = сиво [y: y+h, x: x+w]
id_, conf = разпознаващ.предсказване (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 (рамка, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('рамка', рамка)
ключ = cv2.waitKey (1)
ако ключ == 27:
break cv2.destroyAllWindows ()
Препоръчано:
Abellcadabra (Система за заключване на врата за разпознаване на лица): 9 стъпки
Abellcadabra (Система за заключване на вратите за разпознаване на лица): Поставяйки се по време на карантината, се опитах да намеря начин да убия времето, като изградих разпознаване на лица за вратата на къщата. Нарекох го Abellcadabra - което е комбинация между Abracadabra, вълшебна фраза с звънец на вратата, на която аз само звъня. LOL
IP камера с разпознаване на лица с помощта на платката ESP32-CAM: 5 стъпки
IP камера с разпознаване на лица с помощта на платката ESP32-CAM: Тази публикация е различна в сравнение с останалите и разглеждаме много интересната платка ESP32-CAM, която е изненадващо евтина (по-малко от 9 долара) и лесна за използване. Създаваме проста IP камера, която може да се използва за поточно предаване на видео на живо чрез 2
Разпознаване и разпознаване на лица - Arduino Face ID Използване на OpenCV Python и Arduino .: 6 стъпки
Разпознаване и разпознаване на лица | Arduino Face ID Използване на OpenCV Python и Arduino .: Разпознаване на лице AKA Face ID е една от най -важните функции на мобилните телефони в днешно време. И така, имах въпрос "мога ли да имам идентификационен номер на лицето за моя проект Arduino" и отговорът е да … Пътуването ми започна по следния начин: Стъпка 1: Достъп до нас
Звънец на вратата с разпознаване на лица: 7 стъпки (със снимки)
Звънец на вратата с разпознаване на лица: Мотивация Напоследък в страната ми имаше вълна от грабежи, насочени към възрастни хора в собствените им домове. Обикновено достъпът се предоставя от самите обитатели, тъй като посетителите ги убеждават, че са болногледачи/медицински сестри. То
Opencv разпознаване на лица: 4 стъпки
Opencv разпознаване на лица: Разпознаването на лица е доста често срещано нещо в днешно време, в много приложения като смартфони, много електронни джаджи. Този вид технология включва много алгоритми и инструменти и др., Които използват някои вградени вградени SOC платформи като Raspberry