Spisu treści:
- Krok 1: Wykrywanie twarzy w wideo w czasie rzeczywistym
- Krok 2: Trenuj swoje przykładowe obrazy
- Krok 3: Rozpoznawanie twarzy
Wideo: Wykrywanie, szkolenie i rozpoznawanie twarzy Opencv: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
OpenCV to biblioteka wizyjna o otwartym kodzie źródłowym, która jest bardzo popularna do wykonywania podstawowych zadań przetwarzania obrazu, takich jak rozmycie, mieszanie obrazów, poprawianie jakości obrazu i wideo, progowanie itp. Oprócz przetwarzania obrazu zapewnia różne wstępnie przeszkolone głębokie uczenie modele, które można bezpośrednio wykorzystać do rozwiązywania prostych zadań.
do instalacji opencv użyj tego linku
www.instructables.com/id/Opencv-and-Python…
Krok 1: Wykrywanie twarzy w wideo w czasie rzeczywistym
możesz wyszukać w google wiele programów do wykrywania twarzy, a wykryte twarze należy zapisać w folderze w celu dalszego przetwarzania obrazu, takich jak szkolenie i etykietowanie. zbierzemy 30 próbek
importuj cv2
importuj numer jako np
import systemu importu systemu
kamera = cv2. VideoCapture(0)
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml") #dodaj ścieżkę do pliku harcascade
name = raw_input("Jak ma na imię? ")
#wszystkie pliki zostaną zapisane w folderze Users/prasad/Documents/images
dirName = "/Użytkownicy/prasad/Dokumenty/obrazy/" + nazwa
print(dirName) if nie os.path.exists(dirName): os.makedirs(dirName) print("Utworzono katalog") else: print("Nazwa już istnieje") sys.exit()
liczba = 1
#zbierzemy 30 próbek
while count 30: break # frame = frame.array gray = cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale(gray, 1.5, 5) for (x, y, w, h) in face: roiGray = gray[y:y+h, x:x+w] fileName = dirName + "/" + nazwa + str(liczba) + ".jpg" cv2.imwrite(fileName, roiGray) cv2.imshow("face", roiGray) cv2.rectangle(ramka, (x, y), (x+w, y+h), (0, 255, 0), 2) liczba += 1 cv2.imshow('ramka', ramka) klucz = cv2.waitKey(1)
jeśli klucz == 27:
przerwa
#kamera.zwolnienie()
cv2.zniszczWszystkieOkna()
Krok 2: Trenuj swoje przykładowe obrazy
Po zakończeniu wykrywania twarzy możemy przejść do treningu obrazów
import osimport numpy jako np z PIL import Image import cv2 import pickle #import serial
#ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1)
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml")
aparat rozpoznawania = cv2.face. LBPFaceRecognizer_create()
baseDir = os.path.dirname(os.path.abspath(_file_))
#trening obrazów w folderze obrazów
imageDir = os.path.join(baseDir, "obrazy")
obecnyId = 1
labelIds = {} yLabels = xTrain = #ser.write("Szkolenie…..".encode())
dla roota, katalogów, plików w os.walk(imageDir):
print(root, dirs, files) dla pliku w plikach: print(file) if file.endswith("png") lub file.endswith("jpg"): path = os.path.join(root, file) label = os.path.basename(root) print(etykieta)
jeśli nie etykieta w labelIds:
identyfikatoretykiety[etykieta] = identyfikator bieżący print(identyfikatoretykiety) identyfikator bieżący += 1
id_ = identyfikatory etykiet[etykieta]
pilImage = Image.open(path).convert("L") imageArray = np.array(pilImage, "uint8") faces = faceCascade.detectMultiScale(imageArray, scaleFactor=1,1, minNeighbors=5)
dla (x, y, w, h) w ścianach:
roi = imageArray[y:y+h, x:x+w] xTrain.append(roi) yLabels.append(id_)
z open("etykiety", "wb") jako f:
pickle.dump(identyfikatory etykiet, f) f.close()
rozpoznanie.train(xTrain, np.array(yLabels))
rozpoznanie.save("trainer.yml") print(labelIds)
Krok 3: Rozpoznawanie twarzy
po zakończeniu treningu możesz uruchomić poniższy kod, aby zaczął rozpoznawać Twoje wytrenowane twarze
import osos.environ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO jako GPIO od czasu import sleep
z open('etykiety', 'rb') jako f:
dicti = pickle.load(f) f.close()
kamera = cv2. VideoCapture(0)
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml")
aparat rozpoznawania = cv2.face. LBPFaceRecognizer_create()cognizer.read("trainer.yml")
czcionka = cv2. FONT_HERSHEY_SIMPLEX
ostatni=''
#for frame w 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) for (x, y, w, h) w twarzach: roiGray = szary[y:y+h, x:x+w]
id_, konf = rozpoznawanie.predict(roiGray)
dla nazwy wartość w dicti.items():
if value == id_: print(name) cv2.putText(ramka, nazwa, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name!=last: last= nazwa jeśli conf <= 70: cv2.rectangle(ramka, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('ramka', ramka)
klucz = cv2.waitKey(1)
jeśli klucz == 27:
przerwać cv2.destroyAllWindows()
Zalecana:
Rozpoznawanie i identyfikacja twarzy - Arduino Face ID przy użyciu OpenCV Python i Arduino.: 6 kroków
Rozpoznawanie i identyfikacja twarzy | Arduino Face ID przy użyciu OpenCV Python i Arduino.: Rozpoznawanie twarzy AKA face ID jest obecnie jedną z najważniejszych funkcji w telefonach komórkowych. Tak więc miałem pytanie „czy mogę mieć identyfikator twarzy dla mojego projektu Arduino” a odpowiedź brzmi tak… Moja podróż zaczęła się następująco: Krok 1: Dostęp do nas
Rozpoznawanie twarzy CAM ESP32 z obsługą MQTT - AI-myśliciel: 4 kroki
Rozpoznawanie twarzy CAM ESP32 z obsługą MQTT | AI-Thinker: Witam! Chciałem udostępnić mój kod do projektu, w którym potrzebowałem mieć ESP CAM z rozpoznawaniem twarzy, który mógłby wysyłać dane do MQTT. No cóż… po może 7 godzinach przeszukiwania wielu przykładów kodu i szukania tego, co jest, mam skończenie
Rozpoznawanie twarzy Opencv: 4 kroki
Rozpoznawanie twarzy Opencv: Rozpoznawanie twarzy jest obecnie dość powszechną rzeczą w wielu aplikacjach, takich jak smartfony, wiele gadżetów elektronicznych. Ten rodzaj technologii obejmuje wiele algorytmów i narzędzi itp., które wykorzystują wbudowane wbudowane platformy SOC, takie jak Raspberry
Wykrywanie twarzy + rozpoznawanie: 8 kroków (ze zdjęciami)
Wykrywanie twarzy + rozpoznawanie: Jest to prosty przykład uruchamiania wykrywania i rozpoznawania twarzy za pomocą OpenCV z kamery. UWAGA: ZROBIŁEM TEN PROJEKT NA KONKURS CZUJNIKÓW I UŻYŁEM KAMERY JAKO CZUJNIKA DO ŚLEDZENIA I ROZPOZNAWANIA TWARZY. Tak więc nasz celW tej sesji 1. Zainstaluj Anacondę
Wykrywanie twarzy i oczu za pomocą Raspberry Pi Zero i Opencv: 3 kroki
Wykrywanie twarzy i oczu za pomocą Raspberry Pi Zero i Opencv: W tej instrukcji pokażę, jak wykrywać twarz i oczy za pomocą raspberry pi i opencv. To jest moja pierwsza instrukcja na opencv. Śledziłem wiele samouczków, aby skonfigurować otwarte cv w malinowym, ale za każdym razem napotykałem pewne błędy. W każdym razie ja