Talaan ng mga Nilalaman:
- Hakbang 1: I-install ang Anaconda
- Hakbang 2: I-download ang Buksan ang CV Package
- Hakbang 3: Itakda ang Mga variable ng Kapaligiran
- Hakbang 4: Pagsubok upang Kumpirmahin
- Hakbang 5: Gumawa ng Code para sa Pagtuklas ng Mukha
- Hakbang 6: Gumawa ng Code upang Lumikha ng Set ng Data
- Hakbang 7: Gumawa ng Code upang Sanayin ang Recognizer
- Hakbang 8: Gumawa ng Code upang Makilala ang Mga Mukha at Resulta
Video: Pagkilala sa Mukha + pagkilala: 8 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Ito ay isang simpleng halimbawa ng pagpapatakbo ng pagtuklas ng mukha at pagkilala sa OpenCV mula sa isang camera. TANDAAN: GINAWA KO ANG PROYEKTO NA ITO PARA SA SENSOR CONTEST AT GINAMIT KO ANG CAMERA KUNG SENSOR SA PAGSUSUNOD AT MAKAKIKITA NG mga Mukha. Kaya, Ang aming Layunin Sa sesyon na ito, 1. I-install ang Anaconda 2. I-download ang Buksan ang CV Package 3. Itakda ang Mga Variable sa Kapaligiran 4. Subukan upang kumpirmahin ang 5 Gumawa ng code para sa pagtuklas ng mukha 6. Gumawa ng code upang lumikha ng set ng data 7. Gumawa ng code upang sanayin ang tagakilala 8. Gumawa ng code upang makilala ang mga mukha at Resulta.
Hakbang 1: I-install ang Anaconda
Ang Anaconda ay mahalagang isang mahusay na nakabalot na Python IDE na naipadala ng tone-toneladang mga kapaki-pakinabang na pakete, tulad ng NumPy, Pandas, IPython Notebook, atbp. Mukhang inirerekumenda ito saanman sa pam-agham na pamayanan. Suriin ang Anaconda upang mai-install ito.
Hakbang 2: I-download ang Buksan ang CV Package
Una, pumunta sa opisyal na site ng OpenCV upang i-download ang kumpletong pakete ng OpenCV. Pumili ng isang bersyon na gusto mo (2.x o 3.x). Nasa Python 2.x at OpenCV 2.x ako - higit sa lahat dahil ganito ang pag-set up / batay sa mga OpenCV-Python Tutorials.
Sa aking kaso, nakuha ko ang package (mahalagang isang folder) diretso sa aking F drive. (F: / opencv).
Hakbang 3: Itakda ang Mga variable ng Kapaligiran
Kopyahin at I-paste ang cv2.pyd file
Ang direktoryo ng Anaconda Site-packages (hal. F: / Program Files / Anaconda2 / Lib / site-packages sa aking kaso) ay naglalaman ng mga Python packages na maaari mong mai-import. Ang aming layunin ay kopyahin at i-paste ang cv2.pyd file sa direktoryo na ito (upang magamit namin ang pag-import ng cv2 sa aming mga Python code.).
Upang magawa ito, kopyahin ang cv2.pyd file…
Mula sa direktoryo ng OpenCV na ito (ang panimulang bahagi ay maaaring bahagyang naiiba sa iyong machine):
# Python 2.7 at 64-bit machine: F: / opencv / build / python / 2.7 / x64 # Python 2.7 at 32-bit machine: F: / opencv / build / python / 2.7 / x84
Sa direktoryo ng Anaconda na ito (ang panimulang bahagi ay maaaring bahagyang naiiba sa iyong machine):
F: / Program Files / Anaconda2 / Lib / site-packages
Matapos maisagawa ang hakbang na ito magagawa na namin ngayon ang paggamit ng pag-import ng cv2 sa Python code. NGUNIT, kailangan pa nating gumawa ng kaunti pang trabaho upang makuha ang FFMPEG (video codec) (upang paganahin kaming magawa ang mga bagay tulad ng pagproseso ng mga video.)
Mag-right click sa "My Computer" (o "This PC" sa Windows 8.1) -> left-click Properties -> left-click na "Advanced" na tab -> left-click na "Mga Variable ng Kapaligiran …" na pindutan. Magdagdag ng isang bagong Variable ng User upang ituro ang OpenCV (alinman sa x86 para sa 32-bit na sistema o x64 para sa 64-bit na system.) Kasalukuyan akong nasa isang 64-bit na makina.
32-bitOPENCV_DIRC: / opencv / build / x86 / vc12
64-bitOPENCV_DIRC: / opencv / build / x64 / vc12
Idagdag ang% OPENCV_DIR% / bin sa Variable ng User na PATH.
Halimbawa, ganito ang aking variable ng gumagamit ng PATH …
Dati:
F: / Users / Johnny / Anaconda; C: / Users / Johnny / Anaconda / Scripts
Pagkatapos:
F: / Users / Johnny / Anaconda; C: / Users / Johnny / Anaconda / Scripts;% OPENCV_DIR% / bin
Ito na tayo tapos na! Handa nang magamit ang FFMPEG!
Hakbang 4: Pagsubok upang Kumpirmahin
Kailangan nating subukan kung magagawa na natin ang mga ito sa Anaconda (sa pamamagitan ng Spyder IDE):
- I-import ang pakete ng OpenCV
- Gamitin ang utility ng FFMPEG (upang mabasa / isulat / iproseso ang mga video)
Pagsubok 1: Maaari ba tayong mag-import ng OpenCV?
Upang kumpirmahin na ang Anaconda ay nakapag-import na ngayon ng OpenCV-Python package (namely, cv2), ilabas ang mga ito sa IPython Console:
import cv2
print cv2._ bersyon_
Kung ang pakete cv2 ay na-import ng ok na walang mga error, at ang bersyon ng cv2 ay nai-print, pagkatapos lahat tayo ay mabuti!
Pagsubok 2: Maaari ba nating magamit ang FFMPEG codec?
Maglagay ng isang sample
input_video.mp4
file ng video sa isang direktoryo. Nais naming subukan kung maaari naming:
- basahin ang.mp4 video file na ito, at
- sumulat ng isang bagong file ng video (maaaring.avi o.mp4 atbp.)
Upang magawa ito kailangan nating magkaroon ng isang test python code, tawagan itong test.py. Ilagay ito sa parehong direktoryo bilang sample
input_video.mp4
file
Ito ang ano
pagsubok.py
maaaring magmukhang (Tandaan: maraming salamat sa mga mungkahi nina Pete at Warren sa patlang ng puna - Pinalitan ko ang aking orihinal na test code sa kanya - mangyaring subukan ito mismo at ipaalam sa amin kung ito ay mas mahusay na gumagana):
import cv2
cap = cv2. VideoCapture ("input_video.mp4") print cap.isOpened () # True = matagumpay na nabasa ang video. Mali - nabigong basahin ang video. apat na = Mali - nabigong isulat ang video. cap.release () out.release ()
NAPAKA MAHALAGA ang pagsubok na ito. Kung nais mong iproseso ang mga file ng video, kakailanganin mong tiyakin na maaaring magamit ng Anaconda / Spyder IDE ang FFMPEG (video codec). Tumagal ako ng ilang araw upang maisagawa ito. Ngunit sana ay magugugol ka ng mas kaunting oras!:) Tandaan: isa pang pinakamahalagang tip kapag gumagamit ng Anaconda Spyder IDE. Tiyaking suriin mo ang Kasalukuyang Working Directory (CWD) !!!
Hakbang 5: Gumawa ng Code para sa Pagtuklas ng Mukha
Layunin
Sa sesyon na ito,
- Makikita natin ang mga pangunahing kaalaman sa pagtuklas ng mukha gamit ang Haar Feature-based Cascade Classifiers
- Kami ay magpapalawak ng pareho para sa pagtuklas ng mata atbp
Pagtuklas ng Haar-cascade sa OpenCV
Haharapin natin ang pagtuklas. Naglalaman na ang OpenCV ng maraming pre-sanay na mga uri para sa mukha, mata, ngiti atbp. Ang mga XML na file ay nakaimbak sa opencv / data / haarcascades / folder. Lumikha tayo ng detektor ng mukha at mata na may OpenCV. Una kailangan nating mai-load ang kinakailangang mga klasipikasyon ng XML. Pagkatapos i-load ang aming input na imahe (o video) sa grayscale mode O maaari kaming gumamit ng camera (para sa Real time face detection)
i-import ang numpy bilang np
import cv2 face_cascade = cv2. CascadeClassifier ('F: / Program Files / opencv / pinagmulan / data / haarcascades / haarcascade_frontalface_default.xml') eye_cascade = cv2. CascadeClassifier ('F: / Program Files / opencv / pinagmulan / data / haarcadeades / haarcadeades / haarcadeades.xml ') cap = cv2. VideoCapture (0) habang 1: ret, img = cap.read () grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) mga mukha = face_cascade.detectMultiScale (grey, 1.5, 5) para sa (x, y, w, h) sa mga mukha: cv2.rectangle (img, (x, y), (x + w, y + h), (255, 0, 0), 2) roi_gray = grey [y: y + h, x: x + w] roi_color = img [y: y + h, x: x + w] eyes = eye_cascade.detectMultiScale (roi_gray) para sa (hal, ey, ew, eh) sa mga mata: cv2.rectangle (roi_color, (ex, ey), (dating + ew, ey + eh), (0, 255, 0), 2) naka-print na "natagpuan" + str (len (mukha)) + "mukha (s)" cv2.imshow ('img', img) k = cv2.waitKey (30) & 0xff kung k == 27: break cap.release () cv2.destroyAllWindows ()
Hakbang 6: Gumawa ng Code upang Lumikha ng Set ng Data
Gumagawa kami ng pagkilala sa mukha, kaya kakailanganin mo ng ilang mga imahe ng mukha! Maaari kang lumikha ng iyong sariling dataset o magsimula sa isa sa mga magagamit na mga database ng mukha, ang https://face-rec.org/databases/ ay nagbibigay sa iyo ng isang napapanahong pangkalahatang-ideya. Tatlong mga kagiliw-giliw na database ang (mga bahagi ng paglalarawan ay naka-quote mula sa
- AT&T Facedatabase
- Yale Facedatabase A
- Pinalawak na Yale Facedatabase B
Dito ako gumagamit ng aking sariling dataset….sa tulong ng code na ibinibigay sa ibaba:
i-import ang numpy bilang np
import cv2 face_cascade = cv2. CascadeClassifier ('F: / Program Files / opencv / pinagmulan / data / haarcascades / haarcascade_frontalface_default.xml') cap = cv2. VideoCapture (0) id = raw_input ('enter user id') sampleN = 0; habang 1: ret, img = cap.read () grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) mga mukha = face_cascade.detectMultiScale (grey, 1.3, 5) para sa (x, y, w, h) sa mga mukha: sampleN = sampleN + 1; cv2.imwrite ("F: / Program Files / projects / face_rec / mukhaData / Gumagamit." + str (id) + "." + str (sampleN) + ".jpg", kulay-abo [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.waitKey (1) kung sampleN> 20: break cap.release () cv2.destroyAllWindows ()
Hakbang 7: Gumawa ng Code upang Sanayin ang Recognizer
Lumikha ng pagpapaandar upang maihanda ang hanay ng pagsasanay
Ngayon, tutukuyin namin ang isang pagpapaandar
getImagesWithID (landas)
dadalhin ang ganap na landas sa database ng imahe bilang input argument at ibabalik ang tuple ng 2 listahan, ang isa na naglalaman ng mga natukoy na mukha at ang iba pang naglalaman ng katumbas na label para sa mukha na iyon. Halimbawa, kung ang ith index sa listahan ng mga mukha ay kumakatawan sa ika-5 indibidwal sa database, kung gayon ang kaukulang ith lokasyon sa listahan ng mga label ay may halagang katumbas ng 5.
Ngayon i-convert ang mga mukha ng dataset (na nilikha sa hakbang 6) sa.yml file sa tulong ng code na ibinibigay sa ibaba:
import os
i-import ang numpy bilang np import cv2 mula sa PIL import Image # Para sa pagkilala sa mukha gagawin namin ang taga-kilalang LBPH Face Recognizer = cv2.createLBPHFaceRecognizer (); path = "F: / Program Files / projects / face_rec / mukhaData" def getImagesWithID (path): imagePaths = [os.path.join (path, f) para sa f in os.listdir (path)] # print image_path #getImagesWithID (path) mukha = ID = para sa imagePath sa imagePaths: # Basahin ang imahe at i-convert sa mga grayscale na mukhaImg = Image.open (imagePath).convert ('L') faceNP = np.array (mukhaImg, 'uint8') # Kunin ang label ng image ID = int (os.path.split (imagePath) [- 1].split (".") [1]) # Detect the face in the image mukha.append (faceNP) IDs.append (ID) cv2.imshow ("Pagdaragdag ng mga mukha para sa traning", faceNP) cv2.waitKey (10) ibalik ang np.array (IDs), mga mukha ng Ids, mukha = getImagesWithID (landas) na kinikilala.train (mukha, Ids) kinikilala. ("F: / Program Files / projects / face_rec / faceREC / trainingdata.yml") cv2.destroyAllWindows ()
sa pamamagitan ng paggamit ng code na ito ang lahat ng dataset ng mukha ay na-convert sa isang solong.yml file…..path lokasyon ay ("F: / Program Files / projects / face_rec / faceREC / trainingdata.yml")
Hakbang 8: Gumawa ng Code upang Makilala ang Mga Mukha at Resulta
Guyzz ito ang panghuling hakbang kung saan makakalikha kami ng code upang makilala ang mga mukha sa tulong ng iyong webcamIN HAKBANG ITO MAY DALAWANG OPERASYON NA GUMAGAWA …. 1. pagkuha ng video mula sa cam 2. ihambing ito sa iyong.yml file
i-import ang numpy bilang npimport cv2 face_cascade = cv2. CascadeClassifier ('F: / Program Files / opencv / pinagmulan / data / haarcascades / haarcascade_frontalface_default.xml') cap = cv2. VideoCapture (0) rec = cv2.createLBPHFaceRecognizer (); rec.load ("F: / Program Files / projects / face_rec / faceREC / trainingdata.yml") id = 0 font = cv2.cv. InitFont (cv2.cv. CV_FONT_HERSHEY_COMPLEX_SMALL, 5, 1, 0, 4) habang 1: ret, img = cap.read () grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) mga mukha = face_cascade.detectMultiScale (grey, 1.5, 5) para sa (x, y, w, h) sa mga mukha: cv2.rectangle (img, (x, y), (x + w, y + h), (255, 0, 0), 2) id, conf = rec.predict (grey [y: y + h, x: x + w]) if (id == 2): id = "alok" if id == 1: id = "alok" if id == 3: id = "anjali" if id == 4: id = "Gaurav" if id = = 5: id = 'rahul' kung id == 6: id = "akshay" cv2.cv. PutText (cv2.cv.fromarray (img), str (id), (x, y + h), font, 255) cv2.imshow ('img', img) kung cv2.waitKey (1) == ord ('q'): break cap.release ()
cv2.destroyAllWindows ()
at sa wakas ang resulta ay makikita sa harap ng iyong mga mata …… maaari mo ring i-download ang zip file mula sa ibaba ng link: Mag-click dito upang i-download ang mga codeSo, sa itinuturo na ito ginanap namin ang gawain ng pagtuklas ng mukha + pagkilala gamit ang OpenCV…..kung ikaw tulad ng itinuturo na ito…. plzzz subscribe me and vote for me…..thanks friends:)
Inirerekumendang:
Mirror sa Pagkilala sa Mukha Na May Lihim na Kompartimento: 15 Hakbang (na may Mga Larawan)
Mukha ng Pagkilala sa Salamin Sa Lihim na Kompartimento: Palagi akong naintriga ng mga malikhaing lihim na kompartamento na ginamit sa mga kwento, pelikula, at iba pa. Kaya, nang makita ko ang Lihim na Kompartamento ng Paligsahan nagpasya akong mag-eksperimento sa ideya mismo at gumawa ng isang ordinaryong salamin na naghahanap ng isang
Pagtuklas ng Opencv sa Mukha, Pagsasanay at Pagkilala: 3 Mga Hakbang
Ang Opencv Face Detection, Training and Recognition: Ang OpenCV ay isang open source computer vision library na napakapopular para sa pagsasagawa ng mga pangunahing gawain sa pagproseso ng imahe tulad ng pag-blur, pagsasama ng imahe, pagpapahusay ng imahe pati na rin ang kalidad ng video, threshold atbp Bilang karagdagan sa pagproseso ng imahe, ito ay
Pagkilala at Pagkakakilanlan sa Mukha - Arduino Face ID Gamit ang OpenCV Python at Arduino .: 6 Mga Hakbang
Pagkilala at Pagkakakilanlan sa Mukha | Arduino Face ID Gamit ang OpenCV Python at Arduino .: Pagkilala sa mukha ang AKA face ID ay isa sa pinakamahalagang tampok sa mga mobile phone sa kasalukuyan. Kaya, mayroon akong isang katanungan " maaari ba akong magkaroon ng isang face id para sa aking proyekto ng Arduino " at ang sagot ay oo … Nagsimula ang aking paglalakbay tulad ng sumusunod: Hakbang 1: Pag-access sa amin
Doorbell Na May Pagkilala sa Mukha: 7 Hakbang (na may Mga Larawan)
Doorbell With Face Recognition: Pagganyak Kamakailan lamang, nagkaroon ng isang alon ng mga nakawan sa aking bansa na naka-target sa mga matatandang tao sa kanilang sariling mga tahanan. Karaniwan, ang pag-access ay ibinibigay ng mga naninirahan mismo dahil kinukumbinsi sila ng mga bisita na sila ay mga tagapag-alaga / nars. Ito
Pagkilala sa Real-time na Mukha: isang End-to-end na Proyekto: 8 Hakbang (na may Mga Larawan)
Pagkilala sa Real-time na Mukha: isang End-to-end na Project: Sa aking huling tutorial na paggalugad sa OpenCV, natutunan namin ang AUTOMATIC VISION OBJECT TRACKING. Ngayon ay gagamitin namin ang aming PiCam upang makilala ang mga mukha nang real-time, tulad ng nakikita mo sa ibaba: Ang proyektong ito ay ginawa sa kamangha-manghang " Open Source Computer Vision Library & qu