Mündəricat:

Opencv Üz Tanıma: 4 addım
Opencv Üz Tanıma: 4 addım

Video: Opencv Üz Tanıma: 4 addım

Video: Opencv Üz Tanıma: 4 addım
Video: Python - OpenCV ile Yüz Tanıma 2024, Iyul
Anonim
Opencv Üz Tanıma
Opencv Üz Tanıma

Üz tanıma, indi ağıllı telefonlar, bir çox elektron gadget kimi bir çox tətbiqdə olduqca yaygın bir şeydir. Bu cür texnologiya bir çox alqoritm və aləti əhatə edir. OpenCV kimi kitabxanalar, indi təhlükəsizlik sistemləri kimi öz tətbiqlərinizə üz tanıma əlavə edə bilərsiniz.

Bu layihədə sizə Raspberry Pi istifadə edərək üz tanıma qurmağın yollarını izah edəcəyəm və şəxsin adını göstərmək üçün arduino+Lcd istifadə etdik.

Addım 1: Lazım olan şeylər

Ehtiyacınız olan şeylər
Ehtiyacınız olan şeylər

1. Raspberry PI

2. ARDUINO UNO / NANO

3.16x2 lCD EKRANI

4. RASPI-CAMERA / WEBcam (daha yaxşı nəticələr üçün veb kameraya üstünlük verirəm)

Addım 2: Opencv-Giriş və Quraşdırma

Opencv Giriş və Quraşdırma
Opencv Giriş və Quraşdırma

OpenCV (açıq mənbə kompüter görmə kitabxanası) çox faydalı bir kitabxanadır - mətn tanıma, üz tanıma, obyekt aşkarlama, dərinlik xəritələrinin yaradılması və maşın öyrənmə kimi bir çox faydalı xüsusiyyətləri təmin edir.

Bu məqalə, Raspberry Pi üzərində Opencv və digər kitabxanaların obyekt aşkarlama və digər proyektlər edərkən faydalı olacağını sizə göstərəcək. Oradan bir obyekt tanıma və maşın öyrənmə layihəsi həyata keçirərək görüntü və video əməliyyatlarının necə yerinə yetiriləcəyini öyrənəcəyik. Xüsusilə, bir şəkildəki üzləri aşkar etmək üçün sadə bir kod yazacağıq.

OpenCV nədir?

OpenCV, açıq mənbəli bir kompüter görmə və maşın öyrənmə proqram kitabxanasıdır. OpenCV, həm akademik, həm də kommersiya istifadəsi üçün pulsuz hala gətirən BSD lisenziyası ilə yayımlanır. C ++, Python və Java interfeyslərinə malikdir və Windows, Linux, Mac OS, iOS və Android -i dəstəkləyir. OpenCV, hesablama səmərəliliyi və real vaxt tətbiqlərinə güclü diqqət yetirmək üçün hazırlanmışdır.

Raspberry Pi -də OpenCV -ni necə quraşdırmaq olar?

OpenCV qurmaq üçün Python yüklü olmalıyıq. Raspberry Pis Python ilə əvvəlcədən yükləndiyindən birbaşa OpenCV quraşdıra bilərik.

Raspberry Pi -nin güncəl olduğundan əmin olmaq və Raspberry Pi -də quraşdırılmış paketləri ən son versiyalara yeniləmək üçün aşağıdakı əmrləri daxil edin.

sudo apt-get yeniləmələri və apt-get yeniləmələri

OpenCV üçün lazım olan paketləri Raspberry Pi -yə yükləmək üçün terminala aşağıdakı əmrləri daxil edin.

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

Raspberry Pi -də Python 3 üçün OpenCV 3 qurmaq üçün aşağıdakı əmri yazın, pip3 bizə OpenCV -nin Python 3 üçün quraşdırılacağını bildirir.

sudo pip3 quraşdırma opencv-Contrib-python libwebp6

İndi OpenCV quraşdırılmalıdır.

(hər hansı bir səhv baş verərsə: hələ də aşağıdakı linki izləyərək edə bilərsiniz

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

İndi tələsməyin, düzgün qurulub quraşdırılmadığını yoxlamalıyıq

Opencv -ni sınayın:

1. terminalınıza gedin və "python" yazın

2. sonra "import cv2" yazın.

3. sonra "cv2._ version_" yazın.

sonra bu kitabxanaları quraşdırın

pip3 python-numpy quraşdırın

pip3 python-matplotlib quraşdırın

Şəkildə üzləri aşkar etmək üçün test kodu:

idxal cv2

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

image = cv2.imread ('fayl adınız') #nümunə cv2.imread ('ev/pi/Masaüstü/filename.jpg')

Şəkildəki insanların üzündə kvadrat qutular əmələ gəlmiş kimi çıxışı alacaqsınız.

Addım 3: Real Videoda Üzün Algılanması və Tanınması

idxal cv2

np kimi numpy idxal edin

id id

idxal serialı

ser = serial. Serial ('/dev/ttyACM0', 9600, zaman aşımı = 1) #/dev/ttyACM0 sizin vəziyyətinizdə dəyişə bilər, arduinodan asılıdır

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

tanıyıcı = cv2.face.createLBPHFaceRecognizer ()

şəkillər =

etiketlər =

os.listdir ('Dataset') fayl adı üçün:

im = cv2.imread ('Dataset/'+fayl adı, 0)

şəkillər. əlavə et (im)

labels.append (int (fayl adı.split ('.') [0] [0]))

#fayl adını yazdırın

names_file = açıq ('labels.txt')

adlar = names_file.read (). split ('\ n')

tanıyıcı.train (şəkillər, np.array (etiketlər))

"Təlim bitdi" yazdırın… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # video cihazınız

lastRes = '' count = 0

isə (1):

_, çərçivə = cap.read ()

boz = cv2.cvtColor (çərçivə, cv2. COLOR_BGR2GRAY)

üzlər = faceCascade.detectMultiScale (boz, 1.3, 5)

say+= 1

üzlərdə (x, y, w, h) üçün:

cv2.dörtbucaq (çərçivə, (x, y), (x+w, y+h), (255, 0, 0), 2)

əgər say> 20: res = adlar [tanıyan.predikt (boz [y: y+h, x: x+w])-1]

əgər res! = lastRes:

lastRes = res

lastRes çap edin

ser.write (lastRes)

say = 0

fasilə

cv2.imshow ('çərçivə', çərçivə)

k = 0xFF & cv2.waitKey (10)

əgər k == 27:

fasilə

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Addım 4: Kodun işə salınması

Kodun işlədilməsi
Kodun işlədilməsi

1. Əvvəlki addımda əlavə edilmiş faylları yükləyin

2. boz şəkillərinizi (6 şəkil/ nümunə ….) məlumat qovluğunuza kopyalayın

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (daha açıq verilənlər bazası qovluğu üçün məlumat dəsti şəkil nömrəsi)

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

3. Aslan-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

yuxarıdakı kimi, müvafiq şəxslər üçün etiketlər əlavə edə bilərsiniz,

əgər pi 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 arasında hər hansı bir üz algılarsa, o zaman Tom Cruise olaraq etiketlənir, buna görə də şəkilləri yükləyərkən diqqətli olun ………………

və sonra arduino -nuzu moruq Pi -yə qoşun və main.py codeer = serial. Serial ('/dev/ttyACM0', 9600, zaman aşımı = 1) dəyişikliklər edin, haarcascade_frontalface_default.xml bir qovluqda.)

3. İndi "sudo python main.py" ilə kodunuzu işlədən Raspi terminalını açın.

Tövsiyə: