Агуулгын хүснэгт:
- Алхам 1: Танд хэрэгтэй зүйл
- Алхам 2: Opencv-Intro ба суулгах
- Алхам 3: Бодит цагийн видеогоор нүүр царайг илрүүлж таних
- Алхам 4: Кодыг ажиллуулах
Видео: Opencv нүүр таних: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Нүүр царай таних нь өнөө үед ухаалаг гар утас, электрон төхөөрөмж гэх мэт олон төрлийн хэрэглээнд түгээмэл хэрэглэгддэг зүйл юм. Энэ төрлийн технологи нь олон тооны алгоритм, багаж хэрэгслийг багтаасан байдаг. OpenCV гэх мэт номын сангууд, та одоо аюулгүй байдлын систем гэх мэт өөрийн аппликейшнд нүүр таних функцийг нэмж болно.
Энэхүү төсөлд би Raspberry Pi ашиглан нүүр таних аргыг хэрхэн бүтээх талаар танд хэлэх болно, мөн бид хүний нэрийг харуулахын тулд arduino+Lcd програмыг ашигласан болно.
Алхам 1: Танд хэрэгтэй зүйл
1. Raspberberry PI
2. ARDUINO UNO / NANO
3.16x2 lCD дэлгэцийн дэлгэц
4. RASPI-CAMERA / WEBcam (илүү сайн үр дүнд хүрэхийн тулд би вэбкамерыг илүүд үздэг)
Алхам 2: Opencv-Intro ба суулгах
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" ашиглан ажиллуулна уу.
Зөвлөмж болгож буй:
Abellcadabra (Нүүр таних хаалганы түгжээний систем): 9 алхам
Абеллкадабра (Нүүр таних хаалганы түгжээний систем): Хорио цээрийн дэглэм тогтоож байхдаа гэрийнхээ хаалганы нүүр таних төхөөрөмжийг ашиглан цагаа үрэх арга замыг олохыг хичээв. Би үүнийг Абеллкадабра гэж нэрлэсэн бөгөөд энэ нь зөвхөн хонх дардаг хаалганы хонхтой шидэт хэллэг болох Абракадабрагийн хослол юм. Хэхэ
Нууц тасалгаатай нүүр таних толь: 15 алхам (зурагтай)
Нууц тасалгаатай нүүрний таних толь: Өгүүллэг, кино гэх мэт зүйлд ашигладаг үргэлж бүтээлч нууц тасалгаанууд надад үргэлж сонирхолтой байдаг. Тиймээс, "Нууц тасалгаа" уралдааныг үзээд би энэ санааг өөрөө туршиж үзээд энгийн толь хийхээр шийдлээ
Нүүр таних хаалганы түгжээ: 8 алхам
Нүүр таних хаалганы түгжээ: Сар орчмын хугацаанд би нүүр таних хаалганы түгжээг танилцуулж байна! Би үүнийг аль болох цэвэрхэн харагдуулахыг хичээсэн ч 13 настай хүүхэд шиг л хийж чадна. Энэхүү нүүр таних хаалганы түгжээг тусгай зөөврийн цохиураар Raspberry Pi 4 ажиллуулдаг
Opencv Нүүр илрүүлэх, сургах, таних: 3 алхам
Opencv царай илрүүлэх, сургах, таних: OpenCV бол нээлттэй эхийн компьютерийн харааны номын сан бөгөөд зураг боловсруулахаас гадна бүдэгрүүлэх, дүрс холих, дүрс сайжруулах, видео чанар, босго гэх мэт үндсэн боловсруулалтын ажлыг гүйцэтгэхэд маш алдартай. үүнийг нотолж байна
Нүүр таних ба таних - OpenCV Python болон Arduino ашиглан Arduino Face ID: 6 алхам
Нүүр таних ба таних | OpenCV Python болон Arduino ашиглан Arduino Face ID: Нүүр царай таних нь орчин үеийн гар утасны хамгийн чухал онцлогуудын нэг юм. Тиймээс надад " Arduino төслийнхөө нүүр царайг таних боломжтой юу " хариулт нь тийм … Миний аялал дараах байдлаар эхэлсэн: Алхам 1: Бидэнд хандах