Intruder/gäst varningssystemet (4 / 10 steg)
Steg 4: Få och förbehandling bilder
I det här steget, vi kommer att samla bilder av några vänner och spara dem är ett visst format så som ut koden kan lära dem att lära sig att känna igen ansikten. Du kan se skärmdumpar påtecknat, hur du ordna insamlade bilder i mappar:
1. input_images-gör en mapp som heter "input_images" och lagra alla dina vänners bilder i mappen. Det finns ingen anledning att göra någon förbehandling här. Bara samla dina vänners bilder och spara alla bilder här.
2. output_images-gör en mapp som heter "output_images" och lämna den tom. Efter förbehandling koden, Beskär ansikten från bilder i "input_images" mappen och sparar automatiskt dem här. Du kan se kommenterade bilden: "output_images" med sparade bilder efter kör koden som anges i det här steget.
3. sorted_images - nu, vi behöver för att manuellt välja dina vänners bilder och spara dem i separata mappar med namn samma som dina vänner. Du kan se, jag har samlat bilder av 6 av mina vänner och lagrat dem i separata mappar.
Varför behöver vi manuellt välja och ordna ut vänners bilder? Jag kommer att besvara denna fråga i nästa steg.
Efter löpande den här koden, bör mappen "output_images" vara full av beskurna bilder. Så, nu gå vidare till sub steg 3 ovan där vi har till manuellt sätta alla vänners bilder i separata mappar.
Med denna sub-steg, har vi slutfört förbehandling & organisera våra data (bilder).
Koden
Spara denna som .py och köra den från kommandoraden. Jag antar att du har kunskaper om kodning i python, så jag inte förklarar hur du kör det här.
Obs: du behöver ha bilder sparas i "input_images" mappen innan du kör den här koden och pre utbildade XML-filen bifogas detta steg sparas med namn " haarcascade_frontalface_default.XML "i samma mapp som denna kod är i.
Jag har kortfattat kommenterat vad koden gör på varje del.
Du kan visa samma kod här .
Du kan alternativt ladda ner samma kod nedan som jag har kopplat det till detta steg.
'''< br > Surya Teja Cheedella
shine123surya [at] gmail [dot] com
BITS Pilani, Hyderabad Campus
Tar alla bilder i "input_path" och analyserar dem för alla ansikten.
Om face(s) är grunda, grödor och sparar dem på "output_path".
'''
importera cv2
importera cv2.cv som cv
importera listdir från os
Importera tid
def cropImage (img, box):
[p, q, r, s] = låda
# beskära och spara bilden med koordinaterna av markeringsramen
write_img_color = img [q: q + s, p:p+ r]
saveCropped (write_img_color, namn)
# spara den beskurna bilden på angiven plats
def saveCropped (img, namn):
CV2.imwrite (output_path + namn + ".jpg", img)
om __name__ == "__main__":
# sökvägar till input och output bilder
input_path = "input_images /"
output_path = "output_images /"
# belastning före utbildade frontalface cascade klassificerare
frontal_face = cv2. CascadeClassifier("haarcascade_frontalface_default.xml")
input_names = listdir ("/ home/suryateja/dokument/GitHub/FaceRecognizer /" + input_path)
skriva ut ("start att upptäcka ansikten i bilder och spara de beskurna bilderna på utdatafilen...")
sttime = time.clock()
Jag = 1
för namn i input_names:
Print(input_path+Name)
color_img = cv2.imread (input_path + namn)
# konverterar färgbilder till gråskalebild
gray_img = cv2.cvtColor (color_img, cv2. COLOR_BGR2GRAY)
# hitta begränsningsramar runt upptäckta ansikten i bilder
bBoxes = frontal_face.detectMultiScale (gray_img, scaleFactor = 1,3, minNeighbors = 5, minstorlek = (30, 30), flaggor = cv. CV_HAAR_SCALE_IMAGE)
#print(bBoxes)
för box i bBoxes:
#print(box)
# beskära och spara bilden på angiven plats
cropImage (color_img, box)
Jag + = 1
skriva ut ("Slutfört uppgiften i %.2f SEK." % (time.clock()-sttime))