![Arcfelismerés+felismerés: 8 lépés (képekkel) Arcfelismerés+felismerés: 8 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-619-124-j.webp)
Tartalomjegyzék:
- 1. lépés: Az Anaconda telepítése
- 2. lépés: Töltse le a nyílt CV csomagot
- 3. lépés: Állítsa be a környezeti változókat
- 4. lépés: Tesztelje a megerősítéshez
- 5. lépés: Készítsen kódot az arcfelismeréshez
- 6. lépés: Készítsen kódot az adatkészlet létrehozásához
- 7. lépés: Készítsen kódot a felismerő betanításához
- 8. lépés: Készítsen kódot az arcok és az eredmény felismeréséhez
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48
![Image Image](https://i.howwhatproduce.com/images/001/image-619-126-j.webp)
![](https://i.ytimg.com/vi/-V0ZdS_GSX4/hqdefault.jpg)
![Arcfelismerés+felismerés Arcfelismerés+felismerés](https://i.howwhatproduce.com/images/001/image-619-127-j.webp)
Ez egy egyszerű példa az arcfelismerés és -felismerés futtatására az OpenCV segítségével a kamerából. MEGJEGYZÉS: EZT A PROJEKTET AZ ÉRZÉKELŐ VERSENYRE KÉSZÜLTEM, ÉS ÉRZÉKELŐKÉNT HASZNÁLTAM A KAMERÁT A PÁLYÁZÁSI ÉS FELISMERÉSI FELÜLETEKRE. Tehát a célunk Ebben a munkamenetben 1. Telepítse az Anaconda -t. 2. Nyissa meg a Nyílt CV -csomagot. 3. Állítsa be a környezeti változókat. Készítsen kódot az arcfelismeréshez 6. Készítsen kódot adatkészlet létrehozásához 7. Készítsen kódot a felismerő betanításához 8. Készítsen kódot az arcok és az eredmény felismeréséhez.
1. lépés: Az Anaconda telepítése
![Telepítse az Anaconda programot Telepítse az Anaconda programot](https://i.howwhatproduce.com/images/001/image-619-128-j.webp)
Az Anaconda lényegében egy szépen csomagolt Python IDE, amelyet rengeteg hasznos csomaggal szállítanak, mint például a NumPy, a Pandas, az IPython Notebook stb. Úgy tűnik, mindenhol ajánlott a tudományos közösségben. Nézze meg az Anaconda telepítését.
2. lépés: Töltse le a nyílt CV csomagot
Először is, menjen a hivatalos OpenCV webhelyre a teljes OpenCV csomag letöltéséhez. Válasszon egy tetszőleges verziót (2.x vagy 3.x). Python 2.x és OpenCV 2.x rendszereket használok - főleg azért, mert az OpenCV -Python oktatóanyagok így vannak beállítva/alapulva.
Esetemben kicsomagoltam a csomagot (lényegében egy mappát) egyenesen az F meghajtómra. (F: / opencv).
3. lépés: Állítsa be a környezeti változókat
![Állítsa be a környezeti változókat Állítsa be a környezeti változókat](https://i.howwhatproduce.com/images/001/image-619-130-j.webp)
Másolja és illessze be a cv2.pyd fájlt
Az Anaconda Site-package könyvtár (pl. F: / Program Files / Anaconda2 / Lib / site-csomagok az én esetemben) tartalmazza az Ön által importálható Python csomagokat. Célunk a cv2.pyd fájl másolása és beillesztése ebbe a könyvtárba (hogy az import cv2 -t használhassuk Python -kódjainkban.)
Ehhez másolja a cv2.pyd fájlt…
Ebből az OpenCV könyvtárból (a kezdő rész kissé eltérhet a gépen):
# Python 2.7 és 64 bites gép: F: / opencv / build / python / 2.7 / x64# Python 2.7 és 32 bites gép: F: / opencv / build / python / 2.7 / x84
Ehhez az Anaconda könyvtárhoz (a kezdő rész kissé eltérhet a gépen):
F: / Program Files / Anaconda2 / Lib / site-csomagok
E lépés végrehajtása után most már használhatjuk az import cv2 -t Python -kódban. DE, még egy kicsit többet kell tennünk, hogy az FFMPEG (videokodek) működőképes legyen (hogy lehetővé tegyük például a videók feldolgozását.)
Kattintson a jobb gombbal a "Sajátgép" (vagy "Ez a számítógép" Windows 8.1 alatt)-> bal egérgombbal kattintson a Tulajdonságok-> bal egérgombbal a "Speciális" fülre-> bal egérgombbal kattintson a "Környezeti változók …" gombra. Új felhasználói változó hozzáadása hogy az OpenCV-re mutassak (vagy x86 32 bites rendszerhez, vagy x64 64 bites rendszerhez.) Jelenleg 64 bites gépen vagyok.
32 bites OPENCV_DIRC: / opencv / build / x86 / vc12
64 bites OPENCV_DIRC: / opencv / build / x64 / vc12
%OPENCV_DIR %\ bin hozzáfűzése a felhasználói változó útvonalához.
Például a PATH felhasználói változóm így néz ki…
Előtt:
F: / Users / Johnny / Anaconda; C: / Users / Johnny / Anaconda / Scripts
Után:
F: / Users / Johnny / Anaconda; C: / Users / Johnny / Anaconda / Scripts;%OPENCV_DIR%\ bin
Ezzel végeztünk! Az FFMPEG használatra kész!
4. lépés: Tesztelje a megerősítéshez
![Teszt a megerősítéshez Teszt a megerősítéshez](https://i.howwhatproduce.com/images/001/image-619-131-j.webp)
![Teszt a megerősítéshez Teszt a megerősítéshez](https://i.howwhatproduce.com/images/001/image-619-132-j.webp)
Meg kell vizsgálnunk, hogy most meg tudjuk -e csinálni ezeket Anacondában (a Spyder IDE -n keresztül):
- OpenCV csomag importálása
- Az FFMPEG segédprogram használata (videók olvasásához/írásához/feldolgozásához)
1. teszt: Importálhatjuk az OpenCV -t?
Annak megállapítására, hogy az Anaconda immár képes importálni az OpenCV-Python csomagot (nevezetesen a cv2-t), adja ki ezeket az IPython konzolban:
import cv2
nyomtatás cv2._ verzió_
Ha a cv2 csomagot hibátlanul importálják, és a cv2 verziót kinyomtatják, akkor mindannyian jók vagyunk!
2. teszt: Használhatjuk az FFMPEG kodeket?
Helyezzen egy mintát
input_video.mp4
videofájlt egy könyvtárban. Szeretnénk kipróbálni, hogy képesek vagyunk -e:
- olvassa el ezt az.mp4 videofájlt, és
- írjon ki egy új videofájlt (lehet.avi vagy.mp4 stb.)
Ehhez szükségünk van egy teszt python kódra, nevezzük test.py. Helyezze ugyanabba a könyvtárba, mint a minta
input_video.mp4
fájlt.
Ez az, amit
teszt.py
így nézhet ki (Megjegyzés: köszönöm Pete és Warren megjegyzésmezőbeli javaslatait - lecseréltem az eredeti tesztkódomat az övére - kérjük, próbálja ki maga, és tudassa velünk, ha ez jobban működik):
import cv2
cap = cv2. VideoCapture ("input_video.mp4") print cap.isOpened () # True = a videó sikeres elolvasása. Hamis - nem sikerült elolvasni a videót. fourcc = cv2. VideoWriter_fourcc (*'XVID') out = cv2. VideoWriter ("output_video.avi", fourcc, 20.0, (640, 360)) print out.isOpened () # True = sikeresen írja ki a videót. Hamis - nem sikerült kiírni a videót. cap.release () out.release ()
Ez a teszt NAGYON FONTOS. Ha videofájlokat szeretne feldolgozni, akkor győződjön meg arról, hogy az Anaconda / Spyder IDE képes az FFMPEG (videokodek) használatára. Napokba telt, mire működésbe hoztam. De remélem, ez sokkal kevesebb időt vesz igénybe!:) Megjegyzés: még egy nagyon fontos tipp az Anaconda Spyder IDE használatakor. Győződjön meg róla, hogy ellenőrizze az aktuális munkakönyvtárat (CWD) !!!
5. lépés: Készítsen kódot az arcfelismeréshez
![Készítsen kódot az arcfelismeréshez Készítsen kódot az arcfelismeréshez](https://i.howwhatproduce.com/images/001/image-619-133-j.webp)
![Készítsen kódot az arcfelismeréshez Készítsen kódot az arcfelismeréshez](https://i.howwhatproduce.com/images/001/image-619-134-j.webp)
Cél
Ezen az ülésen
- Látni fogjuk az arcfelismerés alapjait a Haar Feature-alapú kaszkádosztályozók használatával
- Ugyanezt kiterjesztjük a szemfelismerésre stb
Haar-kaszkád észlelés az OpenCV-ben
Itt a felderítéssel fogunk foglalkozni. Az OpenCV már sok előre betanított osztályozót tartalmaz arcra, szemre, mosolyra stb. Ezeket az XML fájlokat az opencv/data/haarcascades/mappa tárolja. Hozzunk létre arc- és szemérzékelőt az OpenCV -vel. Először be kell töltenünk a szükséges XML -osztályozókat. Ezután töltse be bemeneti képünket (vagy videónkat) szürkeárnyalatos módban VAGY használhatjuk a kamerát (valós idejű arcfelismeréshez)
importálja a numpy -t np -ként
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/sources/data/haarcascade.xml ') cap = cv2. VideoCapture (0), míg 1: ret, img = cap.read () szürke = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) arcok = face_cascade.detectMultiScale (szürke, 1,5, 5) a (z) [x, y, w, h) arcokban: cv2.téglalap (img, (x, y), (x+w, y+h), (255, 0, 0), 2) roi_gray = szürke [y: y +h, x: x+w] roi_color = img [y: y+h, x: x+w] eyes = eye_cascade.detectMultiScale (roi_gray) for (ex, ey, ew, eh) in eyes: cv2.rectangle (roi_color, (ex, ey), (ex +ew, ey +eh), (0, 255, 0), 2) print "found" +str (len (arcok)) +"arc (ok)" cv2.imshow ('img', img) k = cv2.waitKey (30) & 0xff, ha k == 27: break cap.release () cv2.destroyAllWindows ()
6. lépés: Készítsen kódot az adatkészlet létrehozásához
![Készítsen kódot az adatkészlet létrehozásához Készítsen kódot az adatkészlet létrehozásához](https://i.howwhatproduce.com/images/001/image-619-135-j.webp)
![Készítsen kódot az adatkészlet létrehozásához Készítsen kódot az adatkészlet létrehozásához](https://i.howwhatproduce.com/images/001/image-619-136-j.webp)
Arcfelismerést végzünk, ezért szüksége lesz néhány arcképre! Létrehozhatja saját adatkészletét, vagy kezdheti az elérhető arcadatbázisok egyikével, a https://face-rec.org/databases/ naprakész áttekintést nyújt. Három érdekes adatbázis található (a leírás egyes részei a https://face-rec.org oldalról vannak idézve):
- AT&T Facedatabase
- Yale Facedatabase A
- B kiterjesztett Yale Facedatabase B
ITT a saját adatkészletemet használom…. Az alábbi kód segítségével:
importálja a numpy -t np -ként
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; míg 1: ret, img = cap.read () szürke = cv2.cvt Színes (img, cv2. COLOR_BGR2GRAY) arcok = face_cascade.detectMultiScale (szürke, 1,3, 5) az (x, y, w, h) esetén az arcokban: mintaN = mintaN+1; cv2.imwrite ("F:/Programfájlok/projektek/face_rec/arcokData/Felhasználó."+str (id)+"."+str (mintaN)+".jpg", szürke [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.waitKulcs (1), ha minta N> 20: break cap.release () cv2.destroyAllWindows ()
7. lépés: Készítsen kódot a felismerő betanításához
![Készítsen kódot a felismerő képzésére Készítsen kódot a felismerő képzésére](https://i.howwhatproduce.com/images/001/image-619-137-j.webp)
Hozza létre a függvényt az edzéskészlet előkészítéséhez
Most definiálunk egy függvényt
getImagesWithID (elérési út)
amely bemeneti argumentumként a képadatbázishoz vezető abszolút utat választja, és 2 -es listát ad vissza, az egyik tartalmazza az észlelt arcokat, a másik pedig az adott arc megfelelő címkéjét. Például, ha az arcok listájának az ötödik indexe az adatbázisban az ötödik egyedet képviseli, akkor a címkék listájának megfelelő i -edik helyének értéke 5.
Most alakítsa át a (6. lépésben létrehozott) adatkészlet -arcokat.yml fájlba az alábbi kód segítségével:
importál
importálja a numpy -t np -ként importálja a cv2 -t a PIL import képből # Arcfelismeréshez az LBPH arcfelismerő felismerőt = cv2.createLBPHFaceRecognizer (); path = "F:/Program Files/projektek/face_rec/arcokData" def getImagesWithID (elérési út): imagePaths = [os.path.join (path, f) for f in os.listdir (path)] # print image_path #getImagesWithID (path) arcok = IDs = imagePath -hez az imagePaths -ben: # Olvassa el a képet, és konvertálja szürkeárnyalatos arcokkáImg = Image.open (imagePath).convert ('L') faceNP = np.array (arcokImg, 'uint8') # Szerezze be a kép azonosítójának címkéjét = int (os.path.split (imagePath) [-1].split (".") [1]) # Az arc észlelése a képen arcok. Hozzá (faceNP) azonosítók (ID) cv2.imshow ("Arcok hozzáadása az átvitelhez", faceNP) cv2.waitKey (10) return np.array (azonosítók), arcok azonosítói, arcok = getImagesWithID (útvonal) felismerő.vonat (arcok, azonosítók) felismerő.save ("F:/Program Files/projektek/face_rec/faceREC/trainingdata.yml") cv2.destroyAllWindows ()
ezzel a kóddal az összes arc adathalmaz egyetlen.yml fájlba konvertálva…..útvonal helye ("F:/Program Files/projektek/face_rec/faceREC/trainingdata.yml")
8. lépés: Készítsen kódot az arcok és az eredmény felismeréséhez
Guyzz, ez az utolsó lépés, amelyben létre tudjuk hozni a kódot az arcok felismerésére a webkamerád segítségével. EZEN A LÉPÉSEN KÉT MŰKÖDÉS VAN, HOGY TELJESÍTMÉNYEK…. 1. a videó rögzítése a kameráról 2. hasonlítsa össze a.yml fájljával
importálja a numpy -t npimportként cv2 face_cascade = cv2. CascadeClassifier ('F:/Program Files/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') cap = cv2. VideoCapture (0) rec = cv2.createLBPHFaceRec; rec.load ("F:/Program Files/project/face_rec/faceREC/trainingdata.yml") id = 0 font = cv2.cv. InitFont (cv2.cv. CV_FONT_HERSHEY_COMPLEX_SMALL, 5, 1, 0, 4), míg 1: ret, img = cap.read () szürke = cv2.cvt Színes (img, cv2. COLOR_BGR2GRAY) arcok = face_cascade.detectMultiScale (szürke, 1,5, 5) az (x, y, w, h) esetén: cv2.rectangle (img, (x, y), (x+w, y+h), (255, 0, 0), 2) id, conf = rec.predict (szürke [y: y+h, x: x+w]) if (id == 2): id = "alok", ha id == 1: id = "alok", ha id == 3: id = "anjali", ha id == 4: id = "Gaurav", ha id = = 5: id = 'rahul', ha id == 6: id = "akshay" cv2.cv. PutText (cv2.cv.fromarray (img), str (id), (x, y+h), betűtípus, 255) cv2.imshow ('img', img) if cv2.waitKey (1) == ord ('q'): break cap.release ()
cv2.destroyAllWindows ()
és a végeredmény a szemed előtt lesz ……. letöltheted a zip fájlt is a link aljáról: Kattints ide a kódok letöltéséhez mint ez a tanulságos….. plzzz iratkozz fel és szavazz rám….. köszönöm barátok:)
Ajánlott:
DIY 37 LED Arduino rulett játék: 3 lépés (képekkel)
![DIY 37 LED Arduino rulett játék: 3 lépés (képekkel) DIY 37 LED Arduino rulett játék: 3 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-12-j.webp)
DIY 37 Leds Arduino Roulette Játék: A rulett egy kaszinójáték, amelyet a francia szóról neveztek el, jelentése kis kerék
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
![Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel) Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-1574-23-j.webp)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
Opencv arcfelismerés, képzés és felismerés: 3 lépés
![Opencv arcfelismerés, képzés és felismerés: 3 lépés Opencv arcfelismerés, képzés és felismerés: 3 lépés](https://i.howwhatproduce.com/images/006/image-16218-j.webp)
Opencv arcfelismerés, képzés és felismerés: Az OpenCV egy nyílt forráskódú számítógépes látáskönyvtár, amely nagyon népszerű olyan alapvető képfeldolgozási feladatok elvégzéséhez, mint az elmosódás, képkeverés, a kép javítása, valamint a videó minősége, küszöbértékek stb. A képfeldolgozás mellett bizonyít
Micro: bit MU Vision Sensor kezdőknek - Címkeértékek és számkártya felismerés: 6 lépés
![Micro: bit MU Vision Sensor kezdőknek - Címkeértékek és számkártya felismerés: 6 lépés Micro: bit MU Vision Sensor kezdőknek - Címkeértékek és számkártya felismerés: 6 lépés](https://i.howwhatproduce.com/images/006/image-16852-j.webp)
Micro: bit MU Vision Sensor kezdőknek - Címkeértékek és számkártya felismerés: Ez a második útmutatóm az MU látásérzékelőhöz. Ebben a projektben a micro: bitet programozzuk a különböző számkártyák felismerésére a címke értékei segítségével
A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel)
![A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel) A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel)](https://i.howwhatproduce.com/images/006/image-15346-7-j.webp)
A számítógép szétszerelése egyszerű lépésekkel és képekkel: Ez az utasítás a számítógép szétszereléséről szól. A legtöbb alapvető alkatrész moduláris és könnyen eltávolítható. Fontos azonban, hogy szervezett legyen ezzel kapcsolatban. Ez segít elkerülni az alkatrészek elvesztését, és az újra összerakást is