Съдържание:
- Стъпка 1: Инсталирайте Anaconda
- Стъпка 2: Изтеглете Open CV Package
- Стъпка 3: Задайте променливи на околната среда
- Стъпка 4: Тест за потвърждение
- Стъпка 5: Направете код за разпознаване на лица
- Стъпка 6: Направете код за създаване на набор от данни
- Стъпка 7: Направете код за обучение на разпознаващия
- Стъпка 8: Направете код, за да разпознаете лицата и резултата
![Разпознаване на лице+разпознаване: 8 стъпки (със снимки) Разпознаване на лице+разпознаване: 8 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-619-124-j.webp)
Видео: Разпознаване на лице+разпознаване: 8 стъпки (със снимки)
![Видео: Разпознаване на лице+разпознаване: 8 стъпки (със снимки) Видео: Разпознаване на лице+разпознаване: 8 стъпки (със снимки)](https://i.ytimg.com/vi/_FyGwryZ1a4/hqdefault.jpg)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
![Image Image](https://i.howwhatproduce.com/images/001/image-619-126-j.webp)
![](https://i.ytimg.com/vi/-V0ZdS_GSX4/hqdefault.jpg)
![Разпознаване на лице+разпознаване Разпознаване на лице+разпознаване](https://i.howwhatproduce.com/images/001/image-619-127-j.webp)
Това е прост пример за стартиране на разпознаване и разпознаване на лица с OpenCV от камера. ЗАБЕЛЕЖКА: НАПРАВИХ ТОЗИ ПРОЕКТ ЗА СЪДЪРЖАНИЕ НА СЕНЗОРИ И ИЗПОЛЗВАХ КАМЕРАТА КАТО СЕНЗОР ЗА ПРОСЛЕДВАНЕ И ПРИЗНАВАНЕ НА ЛИЦА. Така че, нашата цел В тази сесия, 1. Инсталирайте Anaconda 2. Изтеглете Open CV Package 3. Задайте променливи на околната среда 4. Тествайте, за да потвърдите 5 Направете код за разпознаване на лица 6. Направете код за създаване на набор от данни 7. Направете код за обучение на разпознаващия 8. Направете код за разпознаване на лица и резултат.
Стъпка 1: Инсталирайте Anaconda
![Инсталирайте Anaconda Инсталирайте Anaconda](https://i.howwhatproduce.com/images/001/image-619-128-j.webp)
Anaconda е по същество добре пакетирана Python IDE, която се доставя с много полезни пакети, като NumPy, Pandas, IPython Notebook и др. Изглежда, че се препоръчва навсякъде в научната общност. Проверете Anaconda, за да го инсталирате.
Стъпка 2: Изтеглете Open CV Package
![Изтеглете Open CV Package Изтеглете Open CV Package](https://i.howwhatproduce.com/images/001/image-619-129-j.webp)
Първо, отидете на официалния сайт на OpenCV, за да изтеглите пълния пакет OpenCV. Изберете версия, която харесвате (2.x или 3.x). Аз съм на Python 2.x и OpenCV 2.x - главно защото така се настройват/базират уроците на OpenCV -Python.
В моя случай аз извадих пакета (по същество папка) направо на моя F диск. (F: / opencv).
Стъпка 3: Задайте променливи на околната среда
![Задайте променливи на околната среда Задайте променливи на околната среда](https://i.howwhatproduce.com/images/001/image-619-130-j.webp)
Копирайте и поставете файла cv2.pyd
Директорията на Anaconda Site-packages (например F: / Program Files / Anaconda2 / Lib / site-пакети в моя случай) съдържа пакетите на Python, които можете да импортирате. Нашата цел е да копираме и поставим файла cv2.pyd в тази директория (така че да можем да използваме import cv2 в нашите кодове на Python.).
За да направите това, копирайте файла cv2.pyd …
От тази директория на OpenCV (началната част може да е малко по -различна на вашата машина):
# Python 2.7 и 64-битова машина: F: / opencv / build / python / 2.7 / x64# Python 2.7 и 32-битова машина: F: / opencv / build / python / 2.7 / x84
Към тази директория на Anaconda (началната част може да е малко по -различна на вашата машина):
F: / Program Files / Anaconda2 / Lib / site-пакети
След като извършим тази стъпка, сега ще можем да използваме import cv2 в кода на Python. НО, все още трябва да свършим малко повече работа, за да работи FFMPEG (видео кодек) (за да можем да правим неща като обработка на видеоклипове.)
Щракнете с десния бутон върху „Моят компютър“(или „Този компютър“в Windows 8.1)-> щракнете с левия бутон върху Свойства-> щракнете с левия бутон върху раздела „Разширени“-> щракнете с левия бутон върху „Променливи на околната среда …“. Добавете нова потребителска променлива за да посоча OpenCV (или x86 за 32-битова система или x64 за 64-битова система.) В момента съм на 64-битова машина.
32-битовOPENCV_DIRC: / opencv / build / x86 / vc12
64-битовOPENCV_DIRC: / opencv / build / x64 / vc12
Добавете %OPENCV_DIR %\ bin към потребителската променлива PATH.
Например моята потребителска променлива PATH изглежда така …
Преди:
F: / Users / Johnny / Anaconda; C: / Users / Johnny / Anaconda / Scripts
След:
F: / Users / Johnny / Anaconda; C: / Users / Johnny / Anaconda / Scripts;%OPENCV_DIR%\ bin
С това сме свършили! FFMPEG е готов за употреба!
Стъпка 4: Тест за потвърждение
![Тест за потвърждение Тест за потвърждение](https://i.howwhatproduce.com/images/001/image-619-131-j.webp)
![Тест за потвърждение Тест за потвърждение](https://i.howwhatproduce.com/images/001/image-619-132-j.webp)
Трябва да тестваме дали можем да направим това в Anaconda (чрез Spyder IDE):
- Импортиране на OpenCV пакет
- Използвайте помощната програма FFMPEG (за четене/писане/обработка на видеоклипове)
Тест 1: Можем ли да импортираме OpenCV?
За да убедим, че Anaconda вече може да импортира пакета OpenCV-Python (а именно cv2), издайте ги в конзолата IPython:
импортиране на cv2
печат cv2._ версия_
Ако пакетът cv2 е импортиран добре без грешки и версията cv2 е отпечатана, значи всички сме добре!
Тест 2: Можем ли да използваме кодека FFMPEG?
Поставете проба
input_video.mp4
видео файл в директория. Искаме да тестваме дали можем:
- прочетете този.mp4 видео файл и
- напишете нов видео файл (може да бъде.avi или.mp4 и т.н.)
За да направим това, трябва да имаме тестов код на python, наречете го test.py. Поставете го в същата директория като пробата
input_video.mp4
файл.
Ето какво
test.py
може да изглежда така (Забележка: много благодарение на предложенията на Пийт и Уорън в полето за коментари - замених първоначалния си тестов код с неговия - моля, тествайте го сами и ни уведомете, ако това работи по -добре):
импортиране на cv2
cap = cv2. VideoCapture ("input_video.mp4") print cap.isOpened () # True = прочетете видеоклипа успешно. Фалшиво - видеоклипът не се чете. fourcc = cv2. VideoWriter_fourcc (*'XVID') out = cv2. VideoWriter ("output_video.avi", fourcc, 20.0, (640, 360)) print out.isOpened () # True = запис на видеоклипа успешно. Неверно - не можете да запишете видеоклип. cap.release () out.release ()
Този тест е МНОГО ВАЖЕН. Ако искате да обработвате видео файлове, трябва да се уверите, че Anaconda / Spyder IDE може да използва FFMPEG (видео кодек). Отне ми дни, за да го задействам. Но се надявам, че ще ви отнеме много по -малко време!:) Забележка: още един много важен съвет при използване на Anaconda Spyder IDE. Уверете се, че сте проверили текущия работен указател (CWD) !!!
Стъпка 5: Направете код за разпознаване на лица
![Направете код за разпознаване на лица Направете код за разпознаване на лица](https://i.howwhatproduce.com/images/001/image-619-133-j.webp)
![Направете код за разпознаване на лица Направете код за разпознаване на лица](https://i.howwhatproduce.com/images/001/image-619-134-j.webp)
Цел
В тази сесия,
- Ще видим основите на разпознаването на лица с помощта на каскадни класификатори, базирани на Haar Feature
- Ще разширим същото за откриване на очи и др
Каскадно откриване на Haar в OpenCV
Тук ще се занимаем с откриването. OpenCV вече съдържа много предварително обучени класификатори за лице, очи, усмивки и др. Тези XML файлове се съхраняват в папка opencv/data/haarcascades/. Нека създадем детектор за лице и очи с OpenCV. Първо трябва да заредим необходимите XML класификатори. След това заредете нашето входно изображение (или видео) в режим на сиво или ИЛИ можем да използваме камера (за разпознаване на лица в реално време)
внос numpy като np
import cv2 face_cascade = cv2. CascadeClassifier ('F:/Program Files/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') eye_cascade = cv2. CascadeClassifier ('F:/Program Files/opencv /cascade_data.xml ') капачка = cv2. VideoCapture (0) докато 1: ret, img = cap.read () сиво = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) лица = face_cascade.detectMultiScale (сиво, 1.5, 5) за (x, y, w, h) в лица: cv2.rectangle (img, (x, y), (x+w, y+h), (255, 0, 0), 2) roi_gray = сив [y: y +h, x: x+w] roi_color = img [y: y+h, x: x+w] очи = eye_cascade.detectMultiScale (roi_gray) за (ex, ey, ew, eh) в очите: cv2.rectangle (roi_color, (ex, ey), (ex +ew, ey +eh), (0, 255, 0), 2) отпечатайте "намерено" +str (len (лица)) +"лице (и)" cv2.imshow ('img', img) k = cv2.waitKey (30) & 0xff if k == 27: break cap.release () cv2.destroyAllWindows ()
Стъпка 6: Направете код за създаване на набор от данни
![Направете код за създаване на набор от данни Направете код за създаване на набор от данни](https://i.howwhatproduce.com/images/001/image-619-135-j.webp)
![Направете код за създаване на набор от данни Направете код за създаване на набор от данни](https://i.howwhatproduce.com/images/001/image-619-136-j.webp)
Ние правим разпознаване на лица, така че ще ви трябват някои изображения на лица! Можете или да създадете свой собствен набор от данни, или да започнете с една от наличните бази данни за лица, https://face-rec.org/databases/ ви дава актуален преглед. Три интересни бази данни са (части от описанието са цитирани от
- База данни на AT&T Facedata
- Yale Facedatabase A
- Разширена база данни на Yale Facedata B
ТУК използвам собствения си набор от данни….с помощта на кода, даден по -долу:
внос numpy като np
import cv2 face_cascade = cv2. CascadeClassifier ('F:/Program Files/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') cap = cv2. VideoCapture (0) id = raw_input ('enter user id') sampleN = 0; докато 1: ret, img = cap.read () сиво = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) лица = face_cascade.detectMultiScale (сиво, 1.3, 5) за (x, y, w, h) в лица: sampleN = пробаN+1; cv2.imwrite ("F:/Program Files/projects/face_rec/faceData/User."+str (id)+"."+str (sampleN)+".jpg", сиво [y: y+h, x: x+w]) cv2.rectangle (img, (x, y), (x+w, y+h), (255, 0, 0), 2) cv2.waitKey (100) cv2.imshow ('img', img) cv2.waitKey (1) if sampleN> 20: break cap.release () cv2.destroyAllWindows ()
Стъпка 7: Направете код за обучение на разпознаващия
![Направете код за обучение на разпознаващия Направете код за обучение на разпознаващия](https://i.howwhatproduce.com/images/001/image-619-137-j.webp)
Създайте функцията за подготовка на тренировъчния комплект
Сега ще определим функция
getImagesWithID (път)
който приема абсолютния път към базата данни с изображения като входен аргумент и връща кортеж от 2 списъка, единият съдържащ откритите лица, а другият, съдържащ съответния етикет за това лице. Например, ако i -тият индекс в списъка с лица представлява 5 -то лице в базата данни, съответното i -то място в списъка с етикети има стойност равна на 5.
Сега преобразувайте лицата на набора от данни (който е създаден в стъпка 6) в.yml файл с помощта на кода, даден по -долу:
внос os
import numpy as np import cv2 from PIL import Image # За разпознаване на лица ще използваме разпознавателя за разпознаване на лица LBPH = cv2.createLBPHFaceRecognizer (); path = "F:/Program Files/projects/face_rec/faceData" def getImagesWithID (path): imagePaths = [os.path.join (path, f) for f in os.listdir (path)] # print image_path #getImagesWithID (пътека) лица = Идентификатори = за imagePath в imagePaths: # Прочетете изображението и го преобразувайте в лица в сиви тоновеImg = Image.open (imagePath).convert ('L') faceNP = np.array (faceImg, 'uint8') # Вземете етикета на изображението ID = int (os.path.split (imagePath) [-1].split (".") [1]) # Открийте лицето в изображението lica.append (faceNP) IDs.append (ID) cv2.imshow ("Добавяне на лица за обучение", faceNP) cv2.waitKey (10) връщане np.array (IDs), лица Ids, фасони = getImagesWithID (пътека) разпознаващ.train (лица, Ids) prepoznat.save ("F:/Програмни файлове/проекти/face_rec/faceREC/trainingdata.yml") cv2.destroyAllWindows ()
с помощта на този код целият набор от данни за лица, преобразуван в един.yml файл ….. местоположението на пътя е ("F:/Program Files/projects/face_rec/faceREC/trainingdata.yml")
Стъпка 8: Направете код, за да разпознаете лицата и резултата
Гайз, това е последната стъпка, в която можем да създадем кода за разпознаване на лица с помощта на вашата уеб камера В ТАЗИ СТЪПКА ИМА ДВЕ ОПЕРАЦИИ, КОИТО ЩЕ ИЗПЪЛНЯТ…. 1. заснемане на видео от камера 2. сравнете го с вашия.yml файл
импортирайте numpy като npimport cv2 face_cascade = cv2. CascadeClassifier ('F:/Program Files/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') cap = cv2. VideoCapture (0) rec = cv2.createLBPHere rec.load ("F:/Program Files/projects/face_rec/faceREC/trainingdata.yml") id = 0 font = cv2.cv. InitFont (cv2.cv. CV_FONT_HERSHEY_COMPLEX_SMALL, 5, 1, 0, 4), докато 1: ret, img = cap.read () сиво = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) лица = face_cascade.detectMultiScale (сиво, 1.5, 5) за (x, y, w, h) в лица: cv2.rectangle (img, (x, y), (x+w, y+h), (255, 0, 0), 2) id, conf = rec.predict (сиво [y: y+h, x: x+w]) if (id == 2): id = "alok" if id == 1: id = "alok" if id == 3: id = "anjali" if id == 4: id = "Gaurav" if id = = 5: id = 'rahul' if id == 6: id = "akshay" cv2.cv. PutText (cv2.cv.fromarray (img), str (id), (x, y+h), шрифт, 255) cv2.imshow ('img', img) if cv2.waitKey (1) == ord ('q'): break cap.release ()
cv2.destroyAllWindows ()
и най -накрая резултатът ще дойде пред очите ви ……. можете също да изтеглите zip файла отдолу на връзката: Щракнете тук, за да изтеглите кодовете Така че в тази инструкция изпълнихме задачата за разпознаване на лица+разпознаване с помощта на OpenCV …..ако като тази инструкция ….. plzzz се абонирайте за мен и гласувайте за мен ….. благодаря приятели:)
Препоръчано:
Огледало за разпознаване на лице със секретно отделение: 15 стъпки (със снимки)
![Огледало за разпознаване на лице със секретно отделение: 15 стъпки (със снимки) Огледало за разпознаване на лице със секретно отделение: 15 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-2001-5-j.webp)
Огледало за разпознаване на лица с тайно отделение: Винаги съм бил заинтригуван от вечно творческите тайни отделения, използвани в истории, филми и други подобни. Така че, когато видях конкурса за тайни отделения, реших сам да експериментирам с идеята и да направя обикновено изглеждащо огледало, което отваря
MATLAB Лесно разпознаване на лице: 4 стъпки
![MATLAB Лесно разпознаване на лице: 4 стъпки MATLAB Лесно разпознаване на лице: 4 стъпки](https://i.howwhatproduce.com/images/002/image-3173-3-j.webp)
MATLAB Лесно разпознаване на лица: Основната цел на тези инструкции е да покаже колко лесно ще бъде обработката на изображението. С помощта на MATLAB Откриването и проследяването на лица е важно и активно поле за изследване, затова ще обясня как може да се направи с ум
Заключване на вратата за разпознаване на лице: 8 стъпки
![Заключване на вратата за разпознаване на лице: 8 стъпки Заключване на вратата за разпознаване на лице: 8 стъпки](https://i.howwhatproduce.com/images/005/image-14438-j.webp)
Заключване на врата за разпознаване на лице: Представям около месец заключване на вратата за разпознаване на лица! Опитах се да изглежда възможно най-спретнато, но мога да направя само на 13-годишно дете. Това заключване на вратата за разпознаване на лице се управлява от Raspberry Pi 4, със специална преносима бат
Opencv разпознаване на лица, обучение и разпознаване: 3 стъпки
![Opencv разпознаване на лица, обучение и разпознаване: 3 стъпки Opencv разпознаване на лица, обучение и разпознаване: 3 стъпки](https://i.howwhatproduce.com/images/006/image-16218-j.webp)
Откриване, обучение и разпознаване на лица с Opencv: OpenCV е библиотека за компютърно зрение с отворен код, която е много популярна за изпълнение на основни задачи по обработка на изображения, като замъгляване, смесване на изображения, подобряване на изображението, както и качество на видеото, праг и т.н. В допълнение към обработката на изображения, доказва се
Разпознаване на лице на практика: 21 стъпки
![Разпознаване на лице на практика: 21 стъпки Разпознаване на лице на практика: 21 стъпки](https://i.howwhatproduce.com/images/009/image-24906-j.webp)
Разпознаване на лица на практика: Това е тема, от която съм толкова очарован, че ме кара да губя сън: Компютърно зрение, откриване на обекти и хора чрез предварително обучен модел