Intruder/gäst varningssystemet (6 / 10 steg)
Steg 6: Tåg bilder med hjälp av OpenCV bibliotekets funktioner
Från det sista steget får vi en matris med tre delar nämligen, bilder, etiketter och människor.
Nu, i det här steget vi kommer använda bilder och etiketter som parametrar för att utbilda en faceRecognizer modell. I princip, denna modell är en OpenCV funktion och vi ber denna funktion för att komma ihåg & lära dig att göra en gemensam relation mellan bilder och etiketter. Så, efter träning, vi kan be funktionen för att förutsäga etiketten genom att ge en bild som indata och det kommer tillbaka en förutsedd etikett.
Denna del av koden tar en ingång:
1. sökväg-sökvägen till bildmappen.
Och returnerar två utgångar:
1. eigen_model-den utbildade modellen efter att ha analyserat alla bilder returneras.
2. människor-en matris som innehåller namnen på våra vänner. (namnen på våra undermappar)
Denna kodsträng är den avgörande delen i vår hela kod. Denna del av koden kan ta en stund att slutföra om du har många bilder att träna. Jag har totalt 200 bilder och det tog nästan 7 sekunder på min Dell laptop med Intel 3rd generation i5-processor med 1,8 GHz fart kör Ubuntu.
Så vi har avslutat utbildning en modell med hjälp av OpenCV funktioner och vi kan gå vidare till nästa steg.
Koden
Obs:
Denna kod är en liten del av ifyllda koden och fungerar inte individuellt. Jag har använt det här för att förklara koden.
def train_model(path): < br > '''
Tar sökvägen till bilder och tåg en ansikte erkännande modell
Returer utbildade modell och människor
'''
[bilder, etiketter, människor] = get_images (sys.argv [1], (256, 256))
#print ([bilder, Etiketter])
Etiketter = np.asarray (etiketter, dtype = np.int32)
# inträffade eigen_model och utbildning
skriva ut ("initierar eigen FaceRecognizer och utbildning...")
sttime = time.clock()
eigen_model = cv2.createEigenFaceRecognizer()
eigen_model.Train (bilder, etiketter)
Print("\tSuccessfully completed Training in"+ Str(Time.Clock()-sttime) + "SEK!")
återkomst [eigen_model, människor]