Orodha ya maudhui:

Utambuzi wa Uso wa Opencv: Hatua 4
Utambuzi wa Uso wa Opencv: Hatua 4

Video: Utambuzi wa Uso wa Opencv: Hatua 4

Video: Utambuzi wa Uso wa Opencv: Hatua 4
Video: Computer Vision with Python! Grayscaling Images 2024, Novemba
Anonim
Utambuzi wa Uso wa Opencv
Utambuzi wa Uso wa Opencv

Utambuzi wa uso ni jambo la kawaida sasa kwa siku, katika matumizi mengi kama simu za rununu, vifaa vingi vya elektroniki. Aina hii ya teknolojia inajumuisha algorithms na zana nyingi. maktaba kama OpenCV, sasa unaweza kuongeza utambuzi wa uso kwa programu zako mwenyewe kama, mifumo ya usalama.

Katika mradi huu, nitakuambia jinsi ya kujenga utambuzi wa uso kwa kutumia Raspberry Pi na tumetumia arduino + Lcd kuonyesha jina la mtu huyo..

Hatua ya 1: Vitu Unavyohitaji

Vitu Unavyohitaji
Vitu Unavyohitaji

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 lCD INAONYESHA

4. RASPI-CAMERA / WEBcam (napendelea kamera ya wavuti kwa matokeo bora)

Hatua ya 2: Opencv-Intro na Usakinishaji

Opencv-Intro na Usakinishaji
Opencv-Intro na Usakinishaji

OpenCV (maktaba wazi ya maktaba ya kompyuta) ni maktaba muhimu sana - hutoa huduma nyingi muhimu kama utambuzi wa maandishi, utambuzi wa uso, kugundua kitu, uundaji wa ramani za kina, na ujifunzaji wa mashine.

Nakala hii itakuonyesha jinsi ya kusanikisha Opencv na maktaba zingine kwenye Raspberry Pi ambayo itasaidia wakati wa kugundua kitu na miradi mingine. Kutoka hapo, tutajifunza jinsi ya kufanya shughuli za picha na video kwa kutekeleza utambuzi wa kitu na mradi wa ujifunzaji wa mashine. Hasa, tutaandika nambari rahisi kugundua nyuso kwenye picha.

OpenCV ni nini?

OpenCV ni maono ya kompyuta ya chanzo wazi na maktaba ya programu ya kujifunza mashine. OpenCV hutolewa chini ya leseni ya BSD na kuifanya iwe bure kwa matumizi ya kielimu na kibiashara. Ina C ++, Python, na Java interface na inasaidia Windows, Linux, Mac OS, iOS, na Android. OpenCV iliundwa kwa ufanisi wa kihesabu na kuzingatia kwa nguvu matumizi ya wakati halisi.

Jinsi ya kufunga OpenCV kwenye Raspberry Pi?

Ili kufunga OpenCV, tunahitaji kuwa na Python iliyosanikishwa. Kwa kuwa Raspberry Pis imepakiwa na chatu, tunaweza kusanikisha OpenCV moja kwa moja.

Andika amri zilizo hapa chini ili uhakikishe kuwa Raspberry Pi yako imesasishwa na kusasisha vifurushi vilivyowekwa kwenye Raspberry Pi yako hadi matoleo ya hivi karibuni.

Sudo apt-kupata sasisho Sudo apt-kupata sasisho

Andika amri zifuatazo kwenye terminal ili kusakinisha vifurushi vinavyohitajika kwa OpenCV kwenye Raspberry Pi yako.

Sudo apt kufunga libatlas3-msingi libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4

Andika amri ifuatayo kusanidi OpenCV 3 ya Python 3 kwenye Raspberry Pi yako, pip3 inatuambia kuwa OpenCV itasanikishwa kwa Python 3.

sudo pip3 sakinisha opencv-contrib-python libwebp6

Sasa, OpenCV inapaswa kuwekwa.

(ikiwa makosa yoyote yalitokea: bado unaweza kuifanya kwa kufuata chini ya kiunga

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

Sasa usiwe na haraka tunahitaji kukiangalia ikiwa imewekwa vizuri au la

Jaribu opencv yako kwa:

1. nenda kwa terminal yako na chapa "chatu"

2. halafu andika "kuagiza cv2".

3. kisha andika "cv2._ toleo_".

kisha weka maktaba hizi

pip3 sakinisha python-numpy

pip3 sakinisha python-matplotlib

Nambari ya jaribio ili kugundua nyuso kwenye picha:

kuagiza cv2

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

image = cv2.imread ('jina lako la faili') # mfano cv2.imread ('home / pi / Desktop / filename.jpg')

utapata pato kama sanduku za mraba ziliundwa kwenye nyuso za watu ambao wako kwenye picha.

Hatua ya 3: Kugundua na Kutambua Uso katika Video ya Wakati Halisi

kuagiza cv2

kuagiza numpy kama np

kuagiza os

kuagiza serial

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 inaweza kubadilika katika kesi yako, inategemea arduino

cascadePath = "haarcascade_frontalface_default.xml"

usoCascade = cv2. CascadeClassifier (CascadePath)

kitambuzi = cv2.face.createLBPHFaceRecognizer ()

picha =

lebo =

kwa jina la faili katika os.listdir ('Dataset'):

im = cv2.imread ('Dataset /' + jina la faili, 0)

picha.tumia (im)

lebo.append (int (filename.split ('.') [0] [0]))

jina la faili la #print

names_file = open ('labels.txt')

majina = names_file.read (), mgawanyiko ('\ n')

treni ya kutambua (picha, np.raray (lebo))

chapa 'Mafunzo Yamefanywa… '

fonti = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # kifaa chako cha video

mwishoRes = "hesabu = 0

wakati (1):

_, fremu = cap.read ()

kijivu = cv2.cvt Rangi (fremu, cv2. COLOR_BGR2GRAY)

nyuso = usoCascade.detectMultiScale (kijivu, 1.3, 5)

hesabu + = 1

kwa (x, y, w, h) katika nyuso:

cv2. mstatili (fremu, (x, y), (x + w, y + h), (255, 0, 0), 2)

ikiwa hesabu> 20: res = majina [kitambuzi. utabiri (kijivu [y: y + h, x: x + w]) - 1]

ikiwa res! = mwishoRes:

mwishoRes = res

chapisha mwishoRes

andika (andika mwisho)

hesabu = 0

kuvunja

cv2.imshow ('fremu', fremu)

k = 0xFF & cv2.waitKey (10)

ikiwa k == 27:

kuvunja

cap. tafadhali ()

karibu

cv2.destroyAll Windows ()

Hatua ya 4: Kuendesha Msimbo

Kuendesha Kanuni
Kuendesha Kanuni

1. Pakua faili zilizoambatishwa katika hatua ya awali

Nakili picha zako za kijivu (picha 6 / sampuli…..) kwenye folda yako ya hifadhidata

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (data iliyowekwa na nambari ya picha kwa folda ya wazi zaidi ya hifadhidata)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Leo-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

kama ilivyo hapo juu unaweza kuongeza lebo kwa watu husika,

kwa hivyo ikiwa pi inagundua uso wowote kati ya 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, basi iliwezeshwa kama Tom Cruise, kwa hivyo tafadhali kuwa mwangalifu wakati unapakia picha ……………….

na kisha unganisha arduino yako kwenye Risiberi yako na ufanye mabadiliko kwenye main.py codeer = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. weka faili zote zilizopakuliwa (main.py, folda ya hifadhidata, haarcascade_frontalface_default.xml katika folda moja.)

3. Sasa fungua Raspi-terminal endesha nambari yako na "sudo python main.py"

Ilipendekeza: