Tartalomjegyzék:

Opencv arcfelismerés: 4 lépés
Opencv arcfelismerés: 4 lépés

Videó: Opencv arcfelismerés: 4 lépés

Videó: Opencv arcfelismerés: 4 lépés
Videó: 01. Курс фотограмметрии: Как работает алгоритм SIFT? 2024, Július
Anonim
Opencv arcfelismerés
Opencv arcfelismerés

Az arcfelismerés manapság meglehetősen gyakori dolog, sok olyan alkalmazásban, mint az okostelefonok, sok elektronikus eszköz. Ez a fajta technológia sok algoritmust és eszközt tartalmaz, stb. Az OpenCV -hez hasonló könyvtárakban mostantól arcfelismerést is hozzáadhat saját alkalmazásaihoz, például a biztonsági rendszerekhez.

Ebben a projektben elmondom, hogyan lehet felépíteni az arcfelismerést Raspberry Pi használatával, és az arduino+Lcd -t használtuk a személy nevének megjelenítésére.

1. lépés: A szükséges dolgok

A szükséges dolgok
A szükséges dolgok

1. MÁRKA PI

2. ARDUINO UNO / NANO

3,16x2 LCD kijelző

4. RASPI-CAMERA / WEBcam (jobb webkamerát preferálok a jobb eredmény érdekében)

2. lépés: Opencv-Intro és telepítés

Opencv-Intro és telepítés
Opencv-Intro és telepítés

Az OpenCV (nyílt forráskódú számítógépes látókönyvtár) nagyon hasznos könyvtár - számos hasznos funkciót kínál, például szövegfelismerést, arcfelismerést, objektumfelismerést, mélységi térképek készítését és gépi tanulást.

Ez a cikk bemutatja, hogyan telepítheti az Opencv -t és más könyvtárakat a Raspberry Pi -re, amelyek hasznosak lehetnek objektumfelismerés és egyéb projektek végrehajtásakor. Innentől megtanuljuk, hogyan kell kép- és videóműveleteket végrehajtani egy objektumfelismerő és gépi tanulási projekt végrehajtásával. Konkrétan egy egyszerű kódot írunk a képen lévő arcok észlelésére.

Mi az OpenCV?

Az OpenCV egy nyílt forráskódú számítógépes látás- és gépi tanulási szoftverkönyvtár. Az OpenCV -t BSD licenc alatt adják ki, így ingyenes mind tudományos, mind kereskedelmi használatra. C ++, Python és Java interfészekkel rendelkezik, és támogatja a Windows, Linux, Mac OS, iOS és Android rendszereket. Az OpenCV-t a számítási hatékonyság érdekében tervezték, és nagy hangsúlyt fektettek a valós idejű alkalmazásokra.

Hogyan telepíthetem az OpenCV -t egy Raspberry Pi -re?

Az OpenCV telepítéséhez telepítenünk kell a Python programot. Mivel a Raspberry Pis előre telepített Python -szal, közvetlenül telepíthetjük az OpenCV -t.

Gépelje be az alábbi parancsokat, hogy megbizonyosodjon arról, hogy a Raspberry Pi naprakész, és frissítse a Raspberry Pi telepített csomagjait a legújabb verzióra.

sudo apt-get updatesudo apt-get upgrade

Írja be a következő parancsokat a terminálba, hogy telepítse a szükséges csomagokat az OpenCV -hez a Raspberry Pi -re.

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

Írja be a következő parancsot az OpenCV 3 for Python 3 telepítéséhez a Raspberry Pi -re. A pip3 azt mondja, hogy az OpenCV telepítésre kerül a Python 3 számára.

sudo pip3 install opencv-contrib-python libwebp6

Most telepíteni kell az OpenCV -t.

(ha bármilyen hiba történt: akkor is megteheti az alábbi link segítségével

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

Most ne siessen, ellenőriznünk kell, hogy megfelelően lett -e telepítve

Teszteld az opencv -t:

1. menjen a terminálhoz, és írja be a "python" -t

2. akkor írja be az "import cv2" -t.

3. akkor írja be a "cv2._ version_" parancsot.

majd telepítse ezeket a könyvtárakat

pip3 install python-numpy

pip3 telepítse a python-matplotlib programot

Tesztkód arcok észleléséhez a képen:

import cv2

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

image = cv2.imread ('a fájl neve') #example cv2.imread ('home/pi/Desktop/filename.jpg')

a kimenetet úgy kapja meg, mint egy négyzet alakú dobozokat a képen látható emberek arcán.

3. lépés: Arc felismerése és felismerése valós idejű videóban

import cv2

importálja a numpy -t np -ként

importál

sorozat importálása

ser = soros. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 változhat az Ön esetében, az arduino -tól függ

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

felismerő = cv2.face.createLBPHFaceRecognizer ()

képek =

címkék =

fájlnévhez az os.listdir ('Dataset') fájlban:

im = cv2.imread ('Dataset/'+fájlnév, 0)

images.append (im)

labels.append (int (fájlnév.osztás ('.') [0] [0]))

#print fájlnév

names_file = open ('labels.txt')

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

elismerő.vonat (képek, np.tömb (címkék))

print 'Képzés kész… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # a videoeszköz

lastRes = '' count = 0

míg (1):

_, frame = cap.read ()

szürke = cv2.cvtColor (keret, cv2. COLOR_BGR2GRAY)

arcok = faceCascade.detectMultiScale (szürke, 1.3, 5)

szám+= 1

(x, y, w, h) esetén:

cv2.téglalap (keret, (x, y), (x+w, y+h), (255, 0, 0), 2)

ha szám> 20: res = nevek [felismerő.jóslás (szürke [y: y+h, x: x+w])-1]

ha res! = lastRes:

lastRes = res

nyomtatás lastRes

ser.write (lastRes)

szám = 0

szünet

cv2.imshow ('keret', keret)

k = 0xFF & cv2.waitKey (10)

ha k == 27:

szünet

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

4. lépés: A kód futtatása

A kód futtatása
A kód futtatása

1. Töltse le az előző lépésben csatolt fájlokat

2. másolja a szürke fényképeket (6 kép/ minta…..) az adatkészlet mappájába

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (adathalmaz képszáma a nyitottabb adathalmaz mappához)

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

3. Oroszlán-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

a fentiekhez hasonlóan hozzáadhatja a címkéket a megfelelő személyekhez,

tehát ha a pi bármilyen arcot észlel az 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 között, akkor Tom Cruise néven tüntették fel, ezért kérjük, legyen óvatos a fotók feltöltésekor ………………

majd csatlakoztassa az arduino -t a málna Pi -hez, és végezze el a változtatásokat a main.py kódoló = soros. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. írja be az összes letöltött fájlt (main.py, dataset mappa, haarcascade_frontalface_default.xml egy mappában.)

3. Most nyissa meg a Raspi-terminált, futtassa a kódot a "sudo python main.py" segítségével

Ajánlott: