Talaan ng mga Nilalaman:

Pagkilala sa Opencv sa Mukha: 4 na Hakbang
Pagkilala sa Opencv sa Mukha: 4 na Hakbang

Video: Pagkilala sa Opencv sa Mukha: 4 na Hakbang

Video: Pagkilala sa Opencv sa Mukha: 4 na Hakbang
Video: Young Woman's Impacted Rock-Hard Earwax Removal 2024, Nobyembre
Anonim
Pagkilala sa Opencv sa Mukha
Pagkilala sa Opencv sa Mukha

Ang pagkilala sa mukha ay karaniwang bagay ngayon sa isang araw, sa maraming mga application tulad ng mga smart phone, maraming mga elektronikong gadget. Ang ganitong uri ng teknolohiya ay nagsasangkot ng maraming mga algorithm at tool atbp. Na gumagamit ng ilang naka-embed na naka-embed na mga platform ng SOC tulad ng Raspberry Pi at open source computer vision mga aklatan tulad ng OpenCV, maaari ka na ngayong magdagdag ng pagkilala sa mukha sa iyong sariling mga application tulad ng, mga security system.

Sa proyektong ito, sasabihin ko sa iyo kung paano bumuo ng isang pagkilala sa mukha sa pamamagitan ng paggamit ng isang Raspberry Pi at ginamit namin ang arduino + Lcd upang maipakita ang pangalan ng tao..

Hakbang 1: Mga Bagay na Kailangan mo

Mga Bagay na Kailangan Mo
Mga Bagay na Kailangan Mo

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 lCD DISPLAY

4. RASPI-CAMERA / WEBcam (mas gusto ko ang webcam para sa mas mahusay na mga resulta)

Hakbang 2: Opencv-Intro at Pag-install

Opencv-Intro at Pag-install
Opencv-Intro at Pag-install

Ang OpenCV (open source computer vision library) ay isang napaka kapaki-pakinabang na silid-aklatan - nagbibigay ito ng maraming mga kapaki-pakinabang na tampok tulad ng pagkilala sa teksto, pagkilala sa mukha, pagtuklas ng bagay, ang paglikha ng mga malalim na mapa, at pag-aaral ng makina.

Ipapakita sa iyo ng artikulong ito kung paano i-install ang Opencv at iba pang mga aklatan sa Raspberry Pi na magagamit nang madaling gawin kapag nakita ang object at iba pang mga proyekto. Mula doon, matututunan natin kung paano magsagawa ng mga pagpapatakbo ng imahe at video sa pamamagitan ng pagpapatupad ng isang pagkilala sa bagay at proyekto sa pag-aaral ng makina. Partikular, magsusulat kami ng isang simpleng code upang matukoy ang mga mukha sa isang imahe.

Ano ang OpenCV?

Ang OpenCV ay isang bukas na mapagkukunan ng paningin ng computer at library ng software ng pag-aaral ng makina. Ang OpenCV ay pinakawalan sa ilalim ng isang lisensya ng BSD na ginagawang libre para sa parehong pang-akademiko at komersyal na paggamit. Mayroon itong mga interface ng C ++, Python, at Java at sinusuportahan ang Windows, Linux, Mac OS, iOS, at Android. Ang OpenCV ay idinisenyo para sa kahusayan sa computational at isang malakas na pagtuon sa mga real-time na application.

Paano Mag-install ng OpenCV sa isang Raspberry Pi?

Upang mai-install ang OpenCV, kailangan naming mai-install ang Python. Dahil ang Raspberry Pis ay na-preload na ng Python, maaari naming direktang mai-install ang OpenCV.

I-type ang mga utos sa ibaba upang matiyak na napapanahon ang iyong Raspberry Pi at i-update ang naka-install na mga pakete sa iyong Raspberry Pi sa pinakabagong mga bersyon.

sudo apt-get updatesudo apt-get upgrade

I-type ang mga sumusunod na utos sa terminal upang mai-install ang kinakailangang mga pakete para sa OpenCV sa iyong Raspberry Pi.

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

I-type ang sumusunod na utos upang mai-install ang OpenCV 3 para sa Python 3 sa iyong Raspberry Pi, sinabi sa amin ng pip3 na mai-install ang OpenCV para sa Python 3.

sudo pip3 i-install ang opencv-contrib-python libwebp6

Ngayon, dapat na mai-install ang OpenCV.

(kung may mga naganap na error: magagawa mo pa rin ito sa pamamagitan ng pagsunod sa ibaba ng link

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

Ngayon huwag magmadali kailangan nating suriin ito kung na-install ito nang maayos o hindi

Subukan ang iyong opencv sa pamamagitan ng:

1. Pumunta sa iyong terminal at typr "python"

2. pagkatapos i-type ang "import cv2".

3. pagkatapos ay i-type ang "cv2._ bersyon_".

pagkatapos i-install ang mga aklatan na ito

pip3 i-install ang python-numpy

pip3 i-install ang python-matplotlib

Test code upang makita ang mga mukha sa isang imahe:

import cv2

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

image = cv2.imread ('iyong pangalan ng file') #example cv2.imread ('home / pi / Desktop / filename.jpg')

makukuha mo ang output tulad ng isang parisukat na kahon na nabuo sa mga mukha ng mga tao na nasa larawan.

Hakbang 3: Pagtuklas at Pagkilala sa Mukha sa isang Real Time Video

import cv2

i-import ang numpy bilang np

import os

mag-import ng serial

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 ay maaaring magbago sa iyong kaso, nakasalalay sa arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

kinikilala = cv2.face.createLBPHFaceRecognizer ()

mga imahe =

mga label =

para sa filename sa os.listdir ('Dataset'):

im = cv2.imread ('Dataset /' + filename, 0)

mga imahe. mag-aplay (im)

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

#print filename

names_file = bukas ('labels.txt')

mga pangalan = names_file.read (). split ('\ n')

kinikilala.train (mga imahe, np.array (mga label))

print 'Tapos na sa Pagsasanay… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # iyong video device

lastRes = "count = 0

habang (1):

_, frame = cap.read ()

grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)

mukha = faceCascade.detectMultiScale (grey, 1.3, 5)

bilangin + = 1

para sa (x, y, w, h) sa mga mukha:

cv2.rectangle (frame, (x, y), (x + w, y + h), (255, 0, 0), 2)

kung bilangin> 20: res = names [recognition.predict (grey [y: y + h, x: x + w]) - 1]

kung res! = lastRes:

lastRes = res

print lastRes

ser.write (lastRes)

bilang = 0

pahinga

cv2.imshow ('frame', frame)

k = 0xFF & cv2.waitKey (10)

kung k == 27:

pahinga

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Hakbang 4: Pagpapatakbo ng Code

Pagpapatakbo ng Code
Pagpapatakbo ng Code

1. I-download ang mga file na naka-attach sa nakaraang hakbang

2. kopyahin ang iyong kulay-abo na mga larawan (6 na mga larawan / sample …..) sa iyong folder ng dataset

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (itinakda ang numero ng imahe para sa mas bukas na folder ng folder)

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

tulad ng nasa itaas maaari kang magdagdag ng mga label para sa kani-kanilang mga tao,

kaya kung ang pi ay nakakakita ng anumang mukha sa gitna ng 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, pagkatapos ito ay nai-label bilang Tom Cruise, kaya mangyaring maging maingat habang ina-upload ang mga larawan ……………….

at pagkatapos ay ikonekta ang iyong arduino sa iyong raspberry Pi at gumawa ng mga pagbabago sa main.py codeer = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. ilagay ang lahat ng na-download na mga file (main.py, folder ng dataset, haarcascade_frontalface_default.xml sa isang folder.)

3. Ngayon buksan ang Raspi-terminal patakbuhin ang iyong code sa pamamagitan ng "sudo python main.py"

Inirerekumendang: