Sisällysluettelo:
- Vaihe 1: BoM - Bill of Material
- Vaihe 2: OpenCV 3 -paketin asennus
- Vaihe 3: Kameran testaaminen
- Vaihe 4: Kasvontunnistus
- Vaihe 5: Tietojen kerääminen
- Vaihe 6: Valmentaja
- Vaihe 7: Tunnistin
- Vaihe 8: Johtopäätös
Video: Reaaliaikainen kasvojentunnistus: kokonaisvaltainen projekti: 8 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Viimeisessä OpenCV: tä tutkivassa opetusohjelmassamme opimme AUTOMATIC VISION OBJECT TRACKING. Nyt käytämme PiCam-kameraamme kasvojen tunnistamiseen reaaliajassa, kuten alla näet:
Tämä projekti tehtiin tämän upean "Open Source Computer Vision Library": n, OpenCV: n avulla. Tässä opetusohjelmassa keskitymme Raspberry Pi: hen (eli Raspbian OS: ksi) ja Pythoniin, mutta testasin koodin myös Macillani ja se toimii myös hyvin. OpenCV on suunniteltu laskennallista tehokkuutta varten ja keskittyy vahvasti reaaliaikaisiin sovelluksiin. Se on siis täydellinen reaaliaikaiseen kasvojentunnistukseen kameran avulla.
Jotta voimme luoda kokonaisen kasvojentunnistusprojektin, meidän on työskenneltävä kolmen hyvin erillisen vaiheen parissa:
- Kasvontunnistus ja tiedonkeruu
- Harjoittele tunnistinta
- Kasvojen tunnistus
Alla oleva lohkokaavio jatkaa näitä vaiheita:
Vaihe 1: BoM - Bill of Material
Pääosat:
- Raspberry Pi V3 - 32,00 dollaria
- 5 megapikselin 1080p -anturi OV5647 -minikameran videomoduuli - 13,00 dollaria
Vaihe 2: OpenCV 3 -paketin asennus
Käytän Raspberry Pi V3: ta, joka on päivitetty Raspbianin (Stretch) viimeiseen versioon, joten paras tapa asentaa OpenCV on seurata Adrian Rosebrockin kehittämää erinomaista opetusohjelmaa: Raspbian Stretch: Asenna OpenCV 3 + Python Raspberry Pi -laitteeseesi.
Kokeilin useita erilaisia oppaita OpenCV: n asentamiseen Pi: hen. Adrianin opetusohjelma on paras. Kehotan sinua tekemään samoin noudattamalla hänen ohjeita askel askeleelta.
Kun olet suorittanut Adrianin opetusohjelman, sinulla pitäisi olla OpenCV -virtuaalinen ympäristö valmiina suorittamaan kokeitamme Pi -laitteellasi.
Mennään virtuaaliseen ympäristöön ja varmistetaan, että OpenCV 3 on asennettu oikein.
Adrian suosittelee suorittamaan komennon "lähde" aina, kun avaat uuden päätelaitteen varmistaaksesi, että järjestelmämuuttujat on määritetty oikein.
lähde ~/.profiili
Seuraavaksi siirrytään virtuaaliseen ympäristöön:
workon cv
Jos näet kehotteen edeltävän tekstin (cv), olet cv -virtuaalisessa ympäristössä:
(cv) pi@vadelma: ~ $Adrian kiinnittää huomion siihen, että cv Python -virtuaalinen ympäristö on täysin riippumaton ja erotettu Raspbian Stretchin lataukseen sisältyvästä oletusversiosta Pythonista. Joten kaikki Python-paketit maailmanlaajuisessa sivustopakettien hakemistossa eivät ole cv-virtuaalisen ympäristön käytettävissä. Samoin kaikki cv-sivustopaketteihin asennetut Python-paketit eivät ole käytettävissä Pythonin maailmanlaajuiselle asennukselle
Kirjoita nyt Python -tulkkiisi:
python
ja vahvista, että käytössäsi on versio 3.5 (tai uudempi)
Tuo tulkin sisälle (">>>" tulee näkyviin) tuo OpenCV -kirjasto:
tuoda cv2
Jos virheilmoituksia ei näy, OpenCV on asennettu oikein PYTHON VIRTUAL YMPÄRISTÖÖN.
Voit myös tarkistaa asennetun OpenCV -version:
cv2._ -versio_
3.3.0 pitäisi ilmestyä (tai parempi versio, joka voidaan julkaista tulevaisuudessa). Yllä oleva terminaalin tulostusnäyttö näyttää edelliset vaiheet.
Vaihe 3: Kameran testaaminen
Kun OpenCV on asennettu RPi -laitteeseesi, testaamme sen varmistamiseksi, että kamera toimii oikein.
Oletan, että sinulla on PiCam jo asennettu Raspberry Pi -laitteeseesi.
Syötä alla oleva Python -koodi IDE -laitteeseesi:
tuo numpy np: nä
tuoda cv2 cap = cv2. VideoCapture (0) cap.set (3, 640) # set Leveys cap.set (4, 480) # set Korkeus taas (True): ret, frame = cap.read () frame = cv2. käännä (kehys, -1) # Käännä kamera pystysuunnassa harmaa = cv2.cvtColor (kehys, cv2. COLOR_BGR2GRAY) cv2.imshow ('kehys', kehys) cv2.imshow ('harmaa', harmaa) k = cv2.waitKey (30) & 0xff, jos k == 27: # sulje tauko painamalla ESC -näppäintä. Release () cv2.destroyAllWindows ()
Yllä oleva koodi kaappaa PiCamisi luoman videovirran näyttäen sekä BGR -värin että harmaan tilan.
Huomaa, että pyöritin kameraani pystysuunnassa kokoonpanotavan vuoksi. Jos se ei ole sinun tapauksesi, kommentoi tai poista "käännä" komentorivi.
Voit vaihtoehtoisesti ladata koodin GitHubista: simpleCamTest.py
Suorita suorittamalla komento:
python simpleCamTest.py
Lopeta ohjelma painamalla näppäimistön näppäintä [ESC].
Napsauta hiirtä videoikkunassa, ennen kuin painat [ESC]
Yllä oleva kuva näyttää tuloksen.
Jotkut valmistajat löysivät ongelmia yrittäessään avata kameraa (virheilmoitus "Väite epäonnistui"). Näin voi tapahtua, jos kameraa ei otettu käyttöön OpenCv -asennuksen aikana, joten kameran ohjaimet eivät asentuneet oikein. Korjaa komento seuraavasti:
sudo modprobe bcm2835-v4l2
Voit myös lisätä bcm2835-v4l2 /etc /modules-tiedoston viimeiselle riville, jotta ohjain latautuu käynnistyksen yhteydessä.
Jos haluat tietää enemmän OpenCV: stä, voit seurata opetusohjelmaa: loading -video-python-opencv-tutorial
Vaihe 4: Kasvontunnistus
Kasvojentunnistuksen perustehtävä on tietysti "Kasvontunnistus". Ennen kaikkea sinun on "kaapattava" kasvot (vaihe 1), jotta ne voidaan tunnistaa, verrattuna tulevaan otettuihin uusiin kasvoihin (vaihe 3).
Yleisin tapa tunnistaa kasvot (tai esineet) on käyttää "Haar Cascade -luokitusta"
Objektien tunnistus käyttämällä Haar-ominaisuuspohjaisia kaskadiluokittimia on tehokas kohteen havaitsemismenetelmä, jonka Paul Viola ja Michael Jones ehdottivat vuonna 2001 julkaisussaan "Rapid Object Detection using Boosted Cascade of Simple Features". Se on koneoppimiseen perustuva lähestymistapa, jossa kaskaditoiminto on koulutettu monista positiivisista ja negatiivisista kuvista. Sitä käytetään sitten muiden kuvien esineiden havaitsemiseen.
Täällä työskentelemme kasvojentunnistuksen kanssa. Aluksi algoritmi tarvitsee paljon positiivisia kuvia (kasvokuvia) ja negatiivisia kuvia (kuvia ilman kasvoja) luokittelijan kouluttamiseksi. Sitten meidän on poimittava siitä ominaisuuksia. Hyvä uutinen on, että OpenCV: n mukana tulee kouluttaja ja ilmaisin. Jos haluat kouluttaa oman luokittimesi mille tahansa esineelle, kuten autolle, lentokoneelle jne., Voit luoda OpenCV: n avulla sellaisen. Sen kaikki yksityiskohdat ovat täällä: Cascade Classifier Training.
Jos et halua luoda omaa luokittelijaasi, OpenCV sisältää jo monia esikoulutettuja kasvojen, silmien, hymyn jne. Luokittelijoita. Nämä XML-tiedostot voidaan ladata haarcascades-hakemistosta.
Teoria riittää, luodaan kasvotunnistin OpenCV: llä!
Lataa tiedosto: faceDetection.py GitHubista.
tuo numpy np: nä
tuoda cv2 faceCascade = cv2. CascadeClassifier ('Cascades/haarcascade_frontalface_default.xml') cap = cv2. VideoCapture (0) cap.set (3, 640) # set Width cap.set (4, 480) # set Height while True: ret, img = cap.read () img = cv2.flip (img, -1) grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) kasvot = faceCascade.detectMultiScale (harmaa, scaleFactor = 1,2, minNaapurit = 5, minSize = (20, 20)) (x, y, w, h) kasvoissa: cv2. suorakulmio (img, (x, y), (x+w, y+h), (255, 0, 0), 2) roi_gray = harmaa [y: y+h, x: x+w] roi_color = img [y: y+h, x: x+w] cv2.imshow ('video', img) k = cv2.waitKey (30) & 0xff, jos k == 27: # sulje tauko painamalla ESC -näppäintä. Release () cv2.destroyAllWindows ()
Usko tai älä, mutta yllä olevat muutamat koodirivit ovat kaikki mitä tarvitset kasvojen tunnistamiseen Pythonin ja OpenCV: n avulla.
Kun vertaat kameran viimeiseen testaukseen käytettyyn koodiin, huomaat, että siihen on lisätty muutamia osia. Huomaa alla oleva rivi:
faceCascade = cv2. CascadeClassifier ('Cascades/haarcascade_frontalface_default.xml')
Tämä on rivi, joka lataa "luokittelijan" (sen on oltava hakemistossa nimeltä "Cascades/", projektihakemistosi alla).
Sitten asetamme kameramme ja lataamme silmukan sisään syöttövideomme harmaasävytilassa (sama kuin ennen).
Nyt meidän on kutsuttava luokittelutoimintomme ja välitettävä sille joitakin erittäin tärkeitä parametreja, kuten skaalaustekijä, naapureiden lukumäärä ja havaittujen kasvojen vähimmäiskoko.
kasvot = faceCascade.detectMultiScale (harmaa, asteikko Tekijä = 1,2, min Naapurit = 5, minKoko = (20, 20))
Missä,
- harmaa on syötetty harmaasävykuva.
- scaleFactor on parametri, joka määrittää, kuinka paljon kuvan kokoa pienennetään kussakin kuva -asteikossa. Sitä käytetään mittakaavan pyramidin luomiseen.
- minNeighbors on parametri, joka määrittää, kuinka monta naapuria kullakin ehdokas suorakulmiolla pitäisi olla, jotta se säilyy. Suurempi luku antaa vähemmän vääriä positiivisia.
- minSize on pienin suorakulmion koko, jota pidetään kasvona.
Toiminto tunnistaa kuvasta kasvot. Seuraavaksi meidän on "merkittävä" kasvot kuvaan käyttämällä esimerkiksi sinistä suorakulmiota. Tämä tehdään tällä koodin osalla:
(x, y, w, h) kasvoille:
cv2.suorakulmio (img, (x, y), (x+w, y+h), (255, 0, 0), 2) roi_gray = harmaa [y: y+h, x: x+w] roi_color = img [y: y+h, x: x+w]
Jos kasvot löytyvät, se palauttaa havaittujen kasvojen sijainnit suorakulmioina, joissa on vasen yläkulma (x, y) ja jonka leveys on "w" ja korkeus = "h" ==> (x, y, w, h). Katso yllä oleva kuva.
Kun olemme saaneet nämä sijainnit, voimme luoda "ROI" (piirretty suorakulmio) kasvoille ja esittää tuloksen imshow () -funktiolla.
Suorita yllä oleva python -skripti python -ympäristössäsi Rpi -terminaalin avulla:
python faceDetection.py
Lopputulos:
Voit myös sisällyttää luokittelijoita "silmien havaitsemiseen" tai jopa "hymyn havaitsemiseen". Näissä tapauksissa sisällytät luokittelutoiminnon ja suorakulmion piirtämisen kasvosilmukan sisään, koska ei olisi järkeä havaita kasvojen ulkopuolista silmää tai hymyä.
Huomaa, että kun Pi: llä on useita luokittelijoita samalla koodilla, prosessi hidastuu, kun tämä havaintomenetelmä (HaarCascades) käyttää paljon laskentatehoa. Työpöydällä sen käyttäminen on helpompaa.
GitHubistani löydät muita esimerkkejä:
faceEyeDetection.py
faceSmileDetection.py
faceSmileEyeDetection.py
Ja yllä olevassa kuvassa näet tuloksen.
Voit myös seurata alla olevaa opetusohjelmaa ymmärtääksesi kasvojentunnistuksen paremmin:
Haar Cascade Object Detection Kasvot ja silmät OpenCV Python -opetusohjelma
Vaihe 5: Tietojen kerääminen
Ensinnäkin minun on kiitettävä Ramiz Rajaa hänen hienosta työstään kasvojen tunnistamisen alalla valokuvissa:
KASVON TUNNISTUS OPENCV: N JA PYTHONIN KANSSA: ALKUPERÄISEN OPAS
ja myös Anirban Kar, joka kehitti erittäin kattavan opetusohjelman videon avulla:
KASVOTUNNISTUS - 3 osaa
Suosittelen todella tutustumaan molempiin opetusohjelmiin.
Sanotaan näin, että aloitetaan projektimme ensimmäinen vaihe. Tässä tehtävämme alkaa viimeisestä vaiheesta (kasvojentunnistus), luomme yksinkertaisesti tietojoukon, johon tallennamme jokaiselle tunnukselle harmaiden valokuvien ryhmän kasvojen tunnistamiseen käytetyn osan kanssa.
Luo ensin hakemisto, jossa kehität projektiasi, esimerkiksi FacialRecognitionProject:
mkdir FacialRecognitionProject
Tässä hakemistossa meidän projektillemme luomiemme 3 python -komentosarjan lisäksi meidän on täytynyt tallentaa siihen kasvojen luokittelija. Voit ladata sen GitHubista: haarcascade_frontalface_default.xml
Luo seuraavaksi alihakemisto, johon tallennamme kasvonäytteemme ja annamme sille nimen "dataset":
mkdir -tietojoukko
Ja lataa koodi GitHubista: 01_face_dataset.py
tuoda cv2
import os cam = cv2. VideoCapture (0) cam.set (3, 640) # aseta videoleveys cam.set (4, 480) # aseta videon korkeus face_detector = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') # Jokaiselle henkilölle, syötä yksi numeerinen kasvotunnus face_id = input ('\ n anna käyttäjätunnus lopuksi paina ==>') print ("\ n [INFO] Kasvojen kaappauksen alustaminen. Katso kameraa ja odota…") # Alusta yksittäinen näytteenotto = 0 while (True): ret, img = cam.read () img = cv2.flip (img, -1) # käännä videokuva pystysuunnassa harmaa = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) kasvot = face_detector.detectMultiScale (harmaa, 1.3, 5) (x, y, w, h) kasvoissa: cv2. suorakulmio (img, (x, y), (x+w, y+h), (255, 0, 0), 2)) count + = 1 # Tallenna otettu kuva datasets -kansioon cv2.imwrite ("dataset/User." + str (face_id) + '.' + str (count) + ".jpg", harmaa [y: y + h, x: x+w]) cv2.imshow ('image', img) k = cv2.waitKey (100) & 0xff # Paina 'ESC' poistuaksesi videosta, jos k == 27: break elif count> = 30: # Ota 30 kasvonäytettä ja lopeta videotauko # Tee ab it of cleanup print ("\ n [INFO] Ohjelmasta poistaminen ja siivoustiedot") cam.release () cv2.destroyAllWindows ()
Koodi on hyvin samanlainen kuin koodi, jonka näimme kasvojentunnistuksessa. Lisäsimme "syöttökomennon" käyttäjätunnuksen tallentamiseen, jonka pitäisi olla kokonaisluku (1, 2, 3 jne.)
face_id = input ('\ n anna käyttäjätunnus lopuksi paina ==>')
Ja jokaisen kaapatun kehyksen osalta meidän on tallennettava se tiedostona "tietojoukko" -hakemistoon:
cv2.imwrite ("tietojoukko/käyttäjä." + str (face_id) + '.' + str (count) + ".jpg", harmaa [y: y + h, x: x + w])
Huomaa, että yllä olevan tiedoston tallentamiseksi sinun on tuotava kirjasto "os". Jokaisen tiedoston nimi noudattaa rakennetta:
User.face_id.count.jpg
Esimerkiksi käyttäjälle, jolla on face_id = 1, tietojoukon/ hakemiston neljäs mallitiedosto on seuraavanlainen:
Käyttäjä.1.4.jpg
kuten yllä olevassa Pi -valokuvastani näkyy. Koodillani otan 30 näytettä jokaisesta tunnuksesta. Voit muuttaa sen viimeisellä "elifillä". Näytteiden määrää käytetään katkaisemaan silmukka, josta kasvonäytteet otetaan.
Suorita Python -komentosarja ja kaappaa muutama tunnus. Sinun on suoritettava komentosarja aina, kun haluat koota uuden käyttäjän (tai vaihtaa valokuvia jo olemassa oleviin).
Vaihe 6: Valmentaja
Tässä toisessa vaiheessa meidän on otettava kaikki käyttäjätiedot tietojoukostamme ja "koulutettava" OpenCV Recognizer. Tämä tehdään suoraan tietyn OpenCV -toiminnon avulla. Tuloksena on.yml -tiedosto, joka tallennetaan "trainer/" -hakemistoon.
Aloitetaan siis alihakemiston luominen, johon tallennamme koulutetut tiedot:
mkdir kouluttaja
Lataa GitHubistani toinen python -komentosarja: 02_face_training.py
tuoda cv2
tuoda numpy np: nä PIL -tuonnista Kuvan tuonti os # Polku kasvokuvan tietokannan polulle = 'tietojoukko' tunnistin = cv2.face. LBPHFaceRecognizer_create () detector = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml"); # -toiminto kuvien ja tarratietojen saamiseksi: PIL_img = Image.open (imagePath).convert ('L') # muunna se harmaasävyiseksi img_numpy = np.array (PIL_img, 'uint8') id = int (os.path.split (imagePath) [-1]. jakaa (".") [1]) kasvot = ilmaisin.detectMultiScale (img_numpy) (x, y, w, h) kasvoille: faceSamples.append (img_numpy [y: y+h, x: x+w]) ids.append (id) return faceSamples, ids print ("\ n [INFO] Harjoittele kasvoja. Se kestää muutaman sekunnin. Odota…") kasvot, ids = getImagesAndLabels (polku) tunnistin.train (kasvot, np.array (ids)) # Tallenna malli trainer/trainer.yml -tunnistimeen.write ('trainer/trainer.yml') # tunnistin.save () toimi Macissa, mutta ei Pi -laitteessa # Tulosta koulutettujen kasvojen määrä ja lopeta ohjelman tulostus ("\ n [INFO] {0} kasvot koulutettu. Ohjelmasta poistuminen.format (len (np.unique (ids)))))
Varmista, onko PIL -kirjasto asennettu Rpi -laitteeseesi. Jos ei, suorita seuraava komento terminaalissa:
pip asenna tyyny
Käytämme tunnistimena LBPH (LOCAL BINARY PATTERNS HISTOGRAMS) -kasvontunnistinta, joka sisältyy OpenCV -pakettiin. Teemme tämän seuraavalla rivillä:
tunnistin = cv2.face. LBPHFaceRecognizer_create ()
Funktio "getImagesAndLabels (polku)" ottaa kaikki kuvat hakemistosta: "dataset/" ja palauttaa kaksi taulukkoa: "Ids" ja "kasvot". Kun nämä taulukot syötetään, "koulutat tunnistimemme":
tunnistaja.juna (kasvot, tunnukset)
Tämän seurauksena tiedosto nimeltä "trainer.yml" tallennetaan aiemmin luomaamme kouluttajahakemistoon.
Se siitä! Sisällysin viimeisen tulostuslausuman, jossa näytin vahvistusta varten, kouluttamiemme Käyttäjien kasvojen lukumäärän.
Joka kerta, kun suoritat vaiheen 1, myös vaihe 2 on suoritettava
Vaihe 7: Tunnistin
Nyt olemme saavuttaneet projektimme viimeisen vaiheen. Täällä otamme tuoreet kasvot kamerallemme ja jos tämän henkilön kasvot on kuvattu ja koulutettu aiemmin, tunnistimemme tekee "ennusteen", joka palauttaa tunnuksensa ja indeksin, joka osoittaa, kuinka luottavainen tunnistin on tässä ottelussa.
Lataamme kolmannen vaiheen python -komentosarjan GitHubista: 03_face_recognition.py.
tuoda cv2
tuoda numpy np: nä tuoda os -tunnistin = cv2.face. LBPHFaceRecognizer_create () tunnistaja.luku ('trainer/trainer.yml') cascadePath = "haarcascade_frontalface_default.xml" faceCascade = cv2. CascadeClassifier (cascadePath); font = cv2. FONT_HERSHEY_SIMPLEX #iniciate id counter id = 0 # tunnuksiin liittyvät nimet: example ==> Marcelo: id = 1, etc names = ['Ei mitään', 'Marcelo', 'Paula', 'Ilza', 'Z ',' W '] # Alusta ja aloita reaaliaikainen videokuvaus cam = cv2. VideoCapture (0) cam.set (3, 640) # aseta video leveä cam.set (4, 480) # aseta videon korkeus # Määritä minimi ikkunan koko tunnistetaan kasvona minW = 0,1*cam.get (3) minH = 0,1*cam.get (4) kun taas True: ret, img = cam.read () img = cv2.flip (img, -1) # Käännä pystysuunnassa harmaa = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) kasvot = faceCascade.detectMultiScale (harmaa, scaleFactor = 1,2, minNeighbors = 5, minSize = (int (minW), int (minH)),) (x, y, w, h) kasvoissa: cv2.suorakulmio (img, (x, y), (x+w, y+h), (0, 255, 0), 2) id, varmuus = tunnistin.predict (harmaa [y: y+h, x: x+w]) # Tarkista onko luottamus pienempi 100 ==> "0" vastaa täydellisesti, jos (luottamus <100): id = names [id] varmuus = "{0}% ".format (pyöreä (100 - luottamus)) else: id =" unknown "trust =" {0}%". format (round (100 - conf idence)) cv2.putText (img, str (id), (x+5, y-5), fontti, 1, (255, 255, 255), 2) cv2.putText (img, str (luottamus), (x+5, y+h-5), fontti, 1, (255, 255, 0), 1) cv2.imshow ('kamera', img) k = cv2.waitKey (10) & 0xff # Paina 'ESC' videosta poistumiseen, jos k == 27: break # Tee vähän puhdistustulostusta ("\ n [INFO] Poistutaan ohjelmasta ja puhdistustöistä") cam.release () cv2.destroyAllWindows ()
Lisäämme tähän uuden taulukon, joten näytämme "nimet" numeroitujen tunnusten sijaan:
names = ['Ei mitään', 'Marcelo', 'Paula', 'Ilza', 'Z', 'W']
Joten esimerkiksi: Marcelo tekee käyttäjän, jonka tunnus on = 1; Paula: id = 2 jne.
Seuraavaksi tunnistamme kasvot, samoin kuin ennen haasCascade -luokittelijan kanssa. Kun meillä on havaitut kasvot, voimme kutsua yllä olevan koodin tärkeimmän funktion:
tunnus, luottamus = tunnistin. ennustus (harmaa osa kasvoista)
Tunnistaja.predict () ottaa parametriksi analysoitavan kasvojen osan ja palauttaa todennäköisen omistajansa, ilmoittaen sen tunnuksen ja kuinka paljon luottamusta tunnistin on tämän ottelun suhteen.
Huomaa, että luottamusindeksi palauttaa "nolla", jos sitä pidetään täydellisenä osumana
Ja lopuksi, jos tunnistin voisi ennustaa kasvot, laitamme kuvan päälle tekstin, jolla on todennäköinen tunnus ja kuinka suuri on "todennäköisyys" prosentteina siitä, että ottelu on oikea ("todennäköisyys" = 100 - luottamusindeksi). Jos ei, kasvoille laitetaan "tuntematon" -merkki.
Alla gif, jossa tulos:
Yllä olevassa kuvassa näytän joitain tämän projektin kanssa tehtyjä testejä, joissa olen myös käyttänyt valokuvia varmistaakseni, toimiiko tunnistin.
Vaihe 8: Johtopäätös
Kuten aina, toivon, että tämä projekti voi auttaa muita löytämään tiensä elektroniikan jännittävään maailmaan!
Lisätietoja ja lopullisen koodin löydät GitHub-varastostani: OpenCV-Face-Recognition
Lisää projekteja löydät blogistani: MJRoBot.org
Alla välähdys tulevasta opetusohjelmasta, jossa tutkimme "automaattista kasvojentunnistusta ja muita kasvojentunnistusmenetelmiä":
Terveisiä etelästä maailmasta!
Nähdään seuraavassa ohjeessani!
Kiitos, Marcelo
Suositeltava:
MATLAB Helppo kasvojentunnistus: 4 vaihetta
MATLAB Helppo kasvojentunnistus: Tämän ohjeen päätavoite on näyttää kuinka helppoa kuvankäsittely tulee olemaan. miten sen voi tehdä
Opencv -kasvojentunnistus, koulutus ja tunnistus: 3 vaihetta
Opencv -kasvojentunnistus, -koulutus ja -tunnistus: OpenCV on avoimen lähdekoodin tietokonenäkökirjasto, joka on erittäin suosittu perustoimintojen, kuten sumennuksen, kuvien sekoittamisen, kuvan parantamisen sekä videon laadun, kynnyksen jne., Suorittamiseen. se todistaa
ESP32 CAM -kasvojentunnistus MQTT -tuella - AI-ajattelija: 4 vaihetta
ESP32 CAM -kasvojentunnistus MQTT -tuella | AI-ajattelija: Hei! Halusin jakaa projektikoodin, jos tarvitsen ESP CAM -laitteen, jossa on kasvojentunnistus, joka voisi lähettää tietoja MQTT: lle. Niin hyvin .. ehkä 7 tunnin etsimisen jälkeen useiden koodiesimerkkien läpi ja etsimällä mitä on, minulla on viimeistely
Reaaliaikainen kasvojentunnistus RaspberryPi-4: 6: ssa vaiheessa (kuvilla)
Reaaliaikainen kasvojentunnistus RaspberryPi-4: ssä: Tässä Instructable-ohjelmassa aiomme suorittaa reaaliaikaisen kasvojentunnistuksen Raspberry Pi 4: llä Shunya O/S: n kanssa Shunyaface-kirjaston avulla. Voit saavuttaa RaspberryPi-4: n tunnistuskehyksen nopeuden 15–17 noudattamalla tätä opetusohjelmaa
Opencv -kasvojentunnistus: 4 vaihetta
Opencv -kasvojentunnistus: Kasvojentunnistus on nykyään melko yleinen asia monissa sovelluksissa, kuten älypuhelimissa, monissa elektronisissa laitteissa. Tällainen tekniikka sisältää paljon algoritmeja ja työkaluja jne., Joka käyttää joitain upotettuja upotettuja SOC -alustoja, kuten Vadelma