Turinys:

„Opencv“veido atpažinimas: 4 žingsniai
„Opencv“veido atpažinimas: 4 žingsniai

Video: „Opencv“veido atpažinimas: 4 žingsniai

Video: „Opencv“veido atpažinimas: 4 žingsniai
Video: Computer Vision with Python! Grayscaling Images 2024, Lapkritis
Anonim
„Opencv“veido atpažinimas
„Opencv“veido atpažinimas

Veido atpažinimas šiandien yra gana įprastas dalykas daugelyje programų, tokių kaip išmanieji telefonai, daugelis elektroninių prietaisų. Ši technologija apima daugybę algoritmų ir įrankių ir pan., Kuri naudoja kai kurias įterptąsias SOC platformas, tokias kaip „Raspberry Pi“ir atvirojo kodo kompiuterinė vizija bibliotekose, tokiose kaip „OpenCV“, dabar galite pridėti veido atpažinimą prie savo programų, pvz., saugos sistemų.

Šiame projekte aš jums pasakysiu, kaip sukurti veido atpažinimą naudojant „Raspberry Pi“, o asmens vardui rodyti naudojome „arduino+Lcd“.

1 žingsnis: reikalingi dalykai

Daiktai, kurių jums reikia
Daiktai, kurių jums reikia

1. AVYNĖS PI

2. AARDUINO UNO / NANO

3,16 x 2 LCD ekranas

4. RASPI-CAMERA / WEBcam (norėčiau geresnių rezultatų, norėčiau internetinės kameros)

2 žingsnis: „Opencv-Intro“ir diegimas

„Opencv-Intro“ir diegimas
„Opencv-Intro“ir diegimas

„OpenCV“(atviro kodo kompiuterinės vizijos biblioteka) yra labai naudinga biblioteka - ji suteikia daug naudingų funkcijų, tokių kaip teksto atpažinimas, veido atpažinimas, objektų aptikimas, gylio žemėlapių kūrimas ir mašininis mokymasis.

Šis straipsnis parodys, kaip „Raspberry Pi“įdiegti „Opencv“ir kitas bibliotekas, kurios pravers atliekant objektų aptikimą ir kitus projektus. Iš ten mes mokysimės atlikti vaizdo ir vaizdo operacijas vykdydami objektų atpažinimo ir mašininio mokymosi projektą. Tiksliau, mes parašysime paprastą kodą, kad aptiktų veidus vaizde.

Kas yra OpenCV?

„OpenCV“yra atviro kodo kompiuterinės vizijos ir mašinų mokymosi programinės įrangos biblioteka. „OpenCV“yra išleista pagal BSD licenciją, todėl ji nemokama tiek akademiniam, tiek komerciniam naudojimui. Jis turi „C ++“, „Python“ir „Java“sąsajas ir palaiko „Windows“, „Linux“, „Mac OS“, „iOS“ir „Android“. „OpenCV“buvo sukurtas siekiant skaičiavimo efektyvumo ir daug dėmesio skiriant realaus laiko programoms.

Kaip įdiegti „OpenCV“„Raspberry Pi“?

Norėdami įdiegti „OpenCV“, turime įdiegti „Python“. Kadangi „Raspberry Pis“yra iš anksto įkelta su „Python“, galime tiesiogiai įdiegti „OpenCV“.

Įveskite toliau pateiktas komandas, kad įsitikintumėte, jog jūsų „Raspberry Pi“yra atnaujinta, ir atnaujinkite „Raspberry Pi“įdiegtus paketus į naujausias versijas.

sudo apt-get atnaujinimai sud apt-get atnaujinimas

Terminale įveskite šias komandas, kad „Raspberry Pi“įdiegtumėte reikiamus „OpenCV“paketus.

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

Įveskite šią komandą, kad „Raspberry Pi“įdiegtumėte „OpenCV 3“, skirtą „Python 3“, pip3 nurodo, kad „OpenCV“bus įdiegta „Python 3“.

sudo pip3 įdiegti opencv-contrib-python libwebp6

Dabar reikia įdiegti „OpenCV“.

(jei buvo kokių nors klaidų: vis tiek galite tai padaryti sekdami žemiau esančią nuorodą

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

Dabar neskubėkite, turime patikrinti, ar jis buvo tinkamai įdiegtas, ar ne

Išbandykite savo „opencv“:

1. eikite į savo terminalą ir įveskite „python“

2. tada įveskite „import cv2“.

3. tada įveskite „cv2._ version_“.

tada įdiekite šias bibliotekas

pip3 įdiegti python-numpy

pip3 įdiegti python-matplotlib

Bandomasis kodas veidams aptikti paveikslėlyje:

importuoti cv2

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

image = cv2.imread ('jūsų failo pavadinimas') #example cv2.imread ('home/pi/Desktop/filename.jpg')

gausite išvestį, tarsi kvadratinės dėžutės būtų suformuotos paveikslėlyje esančių žmonių veiduose.

3 veiksmas: veido aptikimas ir atpažinimas vaizdo įraše realiuoju laiku

importuoti cv2

importuoti numpy kaip np

importuoti

importuoti serialą

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 jūsų atveju gali keistis, priklauso nuo arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

atpažinimo priemonė = cv2.face.createLBPHFaceRecognizer ()

vaizdai =

etiketės =

failo pavadinimui os.listdir („Duomenų rinkinys“):

im = cv2.imread ('Duomenų rinkinys/'+failo pavadinimas, 0)

images.append (im)

labels.append (int (failo pavadinimas.split ('.') [0] [0]))

#print failo pavadinimas

names_file = atidaryti ('labels.txt')

vardai = vardų_failas. skaityti (). padalinti („\ n“)

atpažinimo įrenginys (vaizdai, np.masyvas (etiketės))

spausdinti „Mokymas atliktas… '

šriftas = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # jūsų vaizdo įrašo įrenginys

lastRes = "skaičius" = 0

tuo tarpu (1):

_, frame = cap.read ()

pilka = cv2.cvtColor (rėmelis, cv2. COLOR_BGR2GRAY)

veidai = faceCascade.detectMultiScale (pilka, 1.3, 5)

skaičius+= 1

(x, y, w, h) veiduose:

cv2. stačiakampis (rėmas, (x, y), (x+w, y+h), (255, 0, 0), 2)

jei skaičius> 20: res = vardai [atpažinimo priemonė.prediktas (pilka [y: y+h, x: x+w])-1]

jei res! = lastRes:

lastRes = res

spausdinti lastRes

ser.write (lastRes)

skaičius = 0

pertrauka

cv2.imshow ('kadras', kadras)

k = 0xFF ir cv2.lauktiKlaviatūra (10)

jei k == 27:

pertrauka

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

4 žingsnis: paleiskite kodą

Kodo vykdymas
Kodo vykdymas

1. Atsisiųskite ankstesniame žingsnyje pridėtus failus

2. nukopijuokite pilkas nuotraukas (6 vaizdus/ pavyzdžius …..) į savo duomenų rinkinio aplanką

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (duomenų rinkinio vaizdo numeris, skirtas atviresniam duomenų rinkinio aplankui)

2. Bradas Pittas-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Liūtas-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Geležinis žmogus4_1, 4_2, 4_3, 4_4, 4_5, 4_6

kaip ir aukščiau, galite pridėti etiketes atitinkamiems asmenims,

taigi, jei pi aptinka bet kurį veidą tarp 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, tada jis buvo įvardytas kaip Tomas Cruise'as, todėl būkite atsargūs įkeldami nuotraukas ………………

ir tada prijunkite „arduino“prie savo „Raspberry Pi“ir atlikite pakeitimus main.py codeer = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. įveskite visus atsisiųstus failus (main.py, duomenų rinkinio aplankas, haarcascade_frontalface_default.xml viename aplanke.)

3. Dabar atidarykite „Raspi“terminalą, paleiskite savo kodą naudodami „sudo python main.py“

Rekomenduojamas: