Агуулгын хүснэгт:

Opencv нүүр таних: 4 алхам
Opencv нүүр таних: 4 алхам

Видео: Opencv нүүр таних: 4 алхам

Видео: Opencv нүүр таних: 4 алхам
Видео: OpenCV Face, Eye, Body detection Android App Test 2024, Долдугаар сарын
Anonim
Opencv нүүр таних
Opencv нүүр таних

Нүүр царай таних нь өнөө үед ухаалаг гар утас, электрон төхөөрөмж гэх мэт олон төрлийн хэрэглээнд түгээмэл хэрэглэгддэг зүйл юм. Энэ төрлийн технологи нь олон тооны алгоритм, багаж хэрэгслийг багтаасан байдаг. OpenCV гэх мэт номын сангууд, та одоо аюулгүй байдлын систем гэх мэт өөрийн аппликейшнд нүүр таних функцийг нэмж болно.

Энэхүү төсөлд би Raspberry Pi ашиглан нүүр таних аргыг хэрхэн бүтээх талаар танд хэлэх болно, мөн бид хүний нэрийг харуулахын тулд arduino+Lcd програмыг ашигласан болно.

Алхам 1: Танд хэрэгтэй зүйл

Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс

1. Raspberberry PI

2. ARDUINO UNO / NANO

3.16x2 lCD дэлгэцийн дэлгэц

4. RASPI-CAMERA / WEBcam (илүү сайн үр дүнд хүрэхийн тулд би вэбкамерыг илүүд үздэг)

Алхам 2: Opencv-Intro ба суулгах

Opencv-танилцуулга ба суурилуулалт
Opencv-танилцуулга ба суурилуулалт

OpenCV (нээлттэй эхийн компьютерийн харааны номын сан) нь маш хэрэгтэй номын сан бөгөөд текст таних, царай таних, объект илрүүлэх, гүнзгий газрын зураг үүсгэх, машин сурах зэрэг олон ашигтай шинж чанаруудыг өгдөг.

Энэ нийтлэлд Raspberry Pi дээр Opencv болон бусад номын санг хэрхэн суулгахыг харуулах болно. Тэндээс бид объект таних, машин сурах төслийг хэрэгжүүлснээр дүрс болон видео үйлдлийг хэрхэн гүйцэтгэх талаар сурах болно. Тодруулбал, бид зурган дээрх царайг илрүүлэх энгийн код бичих болно.

OpenCV гэж юу вэ?

OpenCV бол нээлттэй эх сурвалжтай компьютерийн алсын хараа, машин сургалтын програм хангамжийн номын сан юм. OpenCV нь BSD лицензийн дагуу гарсан бөгөөд үүнийг эрдэм шинжилгээний болон арилжааны зориулалтаар үнэгүй ашиглах боломжтой болгодог. Энэ нь C ++, Python, Java интерфэйстэй бөгөөд Windows, Linux, Mac OS, iOS, Android -ийг дэмждэг. OpenCV нь тооцооллын үр ашгийг дээшлүүлэх, бодит цагийн хэрэглээнд онцгой анхаарал хандуулахад зориулагдсан болно.

Raspberry Pi дээр OpenCV -ийг хэрхэн суулгах вэ?

OpenCV -ийг суулгахын тулд бид Python -ийг суулгасан байх ёстой. Raspberry Pis -ийг Python -ээр урьдчилан ачаалсан тул бид OpenCV -ийг шууд суулгаж болно.

Raspberry Pi -гээ шинэчилж байгаа эсэхийг шалгахын тулд доорх тушаалуудыг оруулна уу.

sudo apt-get updatesudo apt-get upgrade

Raspberry Pi дээрээ OpenCV -д шаардлагатай багцуудыг суулгахын тулд терминал дээр дараах тушаалуудыг бичнэ үү.

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

Python 3 -д зориулсан OpenCV 3 -ийг Raspberry Pi дээрээ суулгахын тулд дараах тушаалыг бичнэ үү, pip3 нь OpenCV -ийг Python 3 -д суулгах болно гэж хэлдэг.

sudo pip3 opencv-Contrib-python libwebp6 суулгана уу

Одоо OpenCV суулгасан байх ёстой.

(хэрэв ямар нэгэн алдаа гарсан бол та доорх линкээр орж үүнийг хийж болно

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

Одоо битгий яараарай, үүнийг зөв суулгасан эсэхийг шалгаарай

Өөрийн opencv -ийг дараах байдлаар туршиж үзээрэй

1. терминал руугаа ороод "python" бичнэ үү.

2. Дараа нь "импорт cv2" гэж бичнэ үү.

3. Дараа нь "cv2._ version_" гэж бичнэ үү.

Дараа нь эдгээр сангуудыг суулгаарай

pip3 python-numpy суулгана уу

pip3 python-matplotlib суулгана уу

Зурган дээрх царайг илрүүлэх тестийн код:

cv2 импортлох

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

image = cv2.imread ('таны файлын нэр') #жишээ cv2.imread ('home/pi/Desktop/filename.jpg')

Зурган дээрх хүмүүсийн нүүрэн дээр дөрвөлжин хайрцаг үүссэн шиг та гарцыг авах болно.

Алхам 3: Бодит цагийн видеогоор нүүр царайг илрүүлж таних

cv2 импортлох

np гэж numpy импортлох

импортлох os

цуваа импортлох

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 нь таны тохиолдолд өөрчлөгдөж магадгүй бөгөөд энэ нь arduino -аас хамаарна.

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

танигч = cv2.face.createLBPHFaceRecognizer ()

зураг =

шошго =

os.listdir ('Өгөгдлийн сан') дахь файлын нэрийн хувьд:

im = cv2.imread ('Dataset/'+файлын нэр, 0)

зураг. хавсаргах (im)

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

#файлын нэрийг хэвлэх

names_file = нээлттэй ('labels.txt')

нэр = names_file.read (). хуваах ('\ n')

танигч.трэйн (зураг, np.array (шошго))

хэвлэх 'Сургалт дууссан… '

фонт = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # таны видео төхөөрөмж

lastRes = "тоолох = 0

байхад (1):

_, frame = cap.read ()

саарал = cv2.cvtColor (хүрээ, cv2. COLOR_BGR2GRAY)

нүүр = faceCascade.detectMultiScale (саарал, 1.3, 5)

тоолох+= 1

(x, y, w, h) нүүрний хувьд:

cv2. тэгш өнцөгт (хүрээ, (x, y), (x+w, y+h), (255, 0, 0), 2)

хэрэв тоологдвол> 20: res = нэр [танигч.хугацаа (саарал [y: y+h, x: x+w])-1]

хэрэв res! = lastRes:

lastRes = res

lastRes -ийг хэвлэх

ser.write (lastRes)

тоолох = 0

завсарлага

cv2.imshow ('хүрээ', хүрээ)

k = 0xFF & cv2.waitKey (10)

хэрэв k == 27:

завсарлага

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Алхам 4: Кодыг ажиллуулах

Кодыг ажиллуулж байна
Кодыг ажиллуулж байна

1. Өмнөх алхамд хавсаргасан файлуудыг татаж аваарай

2. саарал зургуудаа (6 зураг/ дээж…..) өгөгдлийн сангийн фолдерт хуулж ав

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (илүү нээлттэй өгөгдлийн сангийн хавтасны зургийн дугаар)

2. Брэд Питт-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Арслан-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

Дээр дурдсан шиг та холбогдох хүмүүст зориулсан шошго нэмж болно

Тиймээс хэрэв pi нь 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 дундаас ямар нэгэн царай илрүүлсэн бол түүнийг Том Круз гэж нэрлэсэн тул зураг оруулахдаа болгоомжтой байгаарай. …………………

дараа нь arduino -г бөөрөлзгөнө Pi -тэй холбож, main.py codeer = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) -д өөрчлөлт оруулна уу., haarcascade_frontalface_default.xml нэг фолдер дотор.)

3. Raspi терминалыг нээгээд кодоо "sudo python main.py" ашиглан ажиллуулна уу.

Зөвлөмж болгож буй: