Sisällysluettelo:

Opencv -kasvojentunnistus: 4 vaihetta
Opencv -kasvojentunnistus: 4 vaihetta

Video: Opencv -kasvojentunnistus: 4 vaihetta

Video: Opencv -kasvojentunnistus: 4 vaihetta
Video: Изучение Python OpenCV / Урок #4 – Функции трансформации изображений 2024, Marraskuu
Anonim
Opencv -kasvojentunnistus
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 sulautettuja SOC -alustoja, kuten Raspberry Pi ja avoimen lähdekoodin tietokonenäkö kirjastoissa, kuten OpenCV, voit nyt lisätä kasvojentunnistuksen omiin sovelluksiisi, kuten turvajärjestelmiin.

Tässä projektissa kerron sinulle, kuinka rakentaa kasvojentunnistus käyttämällä Raspberry Pi -laitetta, ja olemme käyttäneet arduino+Lcd: tä henkilön nimen näyttämiseen.

Vaihe 1: Tarvitsemasi asiat

Tarvitsemasi asiat
Tarvitsemasi asiat

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3,16 x 2 LCD -NÄYTTÖ

4. RASPI-CAMERA / WEBcam (mieluummin verkkokamera paremman tuloksen saavuttamiseksi)

Vaihe 2: Opencv-esittely ja asennus

Opencv-esittely ja asennus
Opencv-esittely ja asennus

OpenCV (avoimen lähdekoodin tietokonenäkökirjasto) on erittäin hyödyllinen kirjasto - se tarjoaa monia hyödyllisiä ominaisuuksia, kuten tekstintunnistuksen, kasvojentunnistuksen, kohteen tunnistamisen, syvyyskarttojen luomisen ja koneoppimisen.

Tässä artikkelissa kerrotaan, kuinka Opencv ja muut kirjastot asennetaan Raspberry Pi -laitteeseen, mikä on kätevää objektien havaitsemisessa ja muissa projekteissa. Sieltä opimme kuva- ja videotoimintojen suorittamisen suorittamalla objektien tunnistamis- ja koneoppimisprojektin. Erityisesti kirjoitamme yksinkertaisen koodin havaitaksesi kuvan kasvot.

Mikä on OpenCV?

OpenCV on avoimen lähdekoodin tietokonevisio- ja koneoppimisohjelmistokirjasto. OpenCV julkaistaan BSD -lisenssillä, joten se on ilmainen sekä akateemiseen että kaupalliseen käyttöön. Siinä on C ++, Python ja Java -rajapinnat ja se tukee Windows-, Linux-, Mac OS-, iOS- ja Android -käyttöjärjestelmiä. OpenCV on suunniteltu laskennalliseen tehokkuuteen ja keskittyy vahvasti reaaliaikaisiin sovelluksiin.

Kuinka asentaa OpenCV Raspberry Pi: hen?

Jotta voimme asentaa OpenCV: n, meidän on asennettava Python. Koska Vadelma Pis on esiladattu Pythonilla, voimme asentaa OpenCV: n suoraan.

Kirjoita alla olevat komennot varmistaaksesi, että Raspberry Pi on ajan tasalla ja päivittääksesi Raspberry Pi: n asennetut paketit uusimpaan versioon.

sudo apt-get updatesudo apt-get upgrade

Kirjoita seuraavat komennot päätelaitteeseen asentaaksesi tarvittavat paketit OpenCV: lle Raspberry Pi -laitteeseesi.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4

Kirjoita seuraava komento asentaaksesi OpenCV 3 for Python 3 Raspberry Pi -laitteeseesi, pip3 kertoo, että OpenCV asennetaan Python 3: lle.

sudo pip3 asenna opencv-contrib-python libwebp6

Nyt OpenCV on asennettava.

(jos tapahtui virheitä: voit silti tehdä sen alla olevan linkin kautta

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Älä nyt kiirehdi, meidän on tarkistettava, onko se asennettu oikein vai ei

Testaa opencv:

1. mene päätelaitteeseesi ja kirjoita "python"

2. kirjoita sitten "import cv2".

3. kirjoita sitten "cv2._ version_".

asenna sitten nämä kirjastot

pip3 asenna python-numpy

pip3 asenna python-matplotlib

Testikoodi kasvojen havaitsemiseksi kuvassa:

tuoda cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");

image = cv2.imread ('tiedostosi nimi') #example cv2.imread ('home/pi/Desktop/filename.jpg')

saat tuloksen kuin neliön muotoiset laatikot, jotka on muodostettu kuvassa olevien ihmisten kasvoille.

Vaihe 3: Kasvojen tunnistaminen ja tunnistaminen reaaliaikaisessa videossa

tuoda cv2

tuo numpy np: nä

tuonti

tuoda sarja

ser = sarja. sarja ('/dev/ttyACM0', 9600, aikakatkaisu = 1) #/dev/ttyACM0 saattaa muuttua tapauksessasi, riippuu arduinosta

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

tunnistin = cv2.face.createLBPHFaceRecognizer ()

kuvat =

tarrat =

tiedostonimelle os.listdir ('Dataset'):

im = cv2.imread ('Dataset/'+tiedostonimi, 0)

images.append (im)

labels.append (int (tiedostonimi.split ('.') [0] [0]))

#print tiedostonimi

names_file = open ('labels.txt')

names = names_file.read (). split ('\ n')

tunnistaja.juna (kuvat, np.sarja (tarrat))

print 'Koulutus valmis… ''

fontti = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # videolaitteesi

lastRes = '' count = 0

samalla (1):

_, frame = cap.read ()

harmaa = cv2.cvtColor (kehys, cv2. COLOR_BGR2GRAY)

kasvot = faceCascade.detectMultiScale (harmaa, 1,3, 5)

määrä+= 1

(x, y, w, h) kasvoille:

cv2.suorakulmio (kehys, (x, y), (x+w, y+h), (255, 0, 0), 2)

jos määrä> 20: res = nimet [tunnistin.ennustus (harmaa [y: y+h, x: x+w])-1]

jos res! = lastRes:

lastRes = res

tulosta lastRes

ser.write (lastRes)

määrä = 0

tauko

cv2.imshow ('kehys', kehys)

k = 0xFF & cv2.waitKey (10)

jos k == 27:

tauko

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Vaihe 4: Koodin suorittaminen

Koodin suorittaminen
Koodin suorittaminen

1. Lataa edellisessä vaiheessa liitetyt tiedostot

2. kopioi harmaat valokuvasi (6 kuvaa/ näytettä…..) tietojoukkokansioosi

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (tietojoukon kuvan numero avoimempaan tietojoukkokansioon)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Leo-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

kuten yllä, voit lisätä tarroja vastaaville henkilöille,

joten jos pi havaitsee kasvot joukosta 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, se on lueteltu Tom Cruisena, joten ole varovainen ladatessasi valokuvia ………………

ja liitä sitten arduino vadelma Pi -laitteeseesi ja tee muutokset main.py -kooderiin = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. kirjoita kaikki ladatut tiedostot (main.py, dataset -kansio, haarcascade_frontalface_default.xml yhdessä kansiossa.)

3. Nyt avaa Raspi-päätelaite ajaa koodisi "sudo python main.py"

Suositeltava: