สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: Opencv-Intro และการติดตั้ง
- ขั้นตอนที่ 3: การตรวจจับและจดจำใบหน้าในวิดีโอแบบเรียลไทม์
- ขั้นตอนที่ 4: เรียกใช้โค้ด
วีดีโอ: การจดจำใบหน้า Opencv: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
การจดจำใบหน้าเป็นเรื่องธรรมดาในทุกวันนี้ ในแอปพลิเคชั่นมากมาย เช่น สมาร์ทโฟน อุปกรณ์อิเล็กทรอนิกส์มากมาย เทคโนโลยีประเภทนี้เกี่ยวข้องกับอัลกอริธึมและเครื่องมือมากมาย ฯลฯ ซึ่งใช้แพลตฟอร์ม SOC แบบฝังตัว เช่น Raspberry Pi และคอมพิวเตอร์วิทัศน์โอเพ่นซอร์ส ไลบรารีเช่น OpenCV คุณสามารถเพิ่มการจดจำใบหน้าลงในแอปพลิเคชันของคุณเอง เช่น ระบบรักษาความปลอดภัยได้แล้ว
ในโครงการนี้ ฉันจะบอกคุณถึงวิธีสร้างการจดจำใบหน้าโดยใช้ Raspberry Pi และเราใช้ Arduino+Lcd เพื่อแสดงชื่อของบุคคลนั้น..
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
1.ราสเบอร์รี่ปี่
2. ARDUINO UNO / นาโน
3.16x2 lCD DISPLAY
4. RASPI-CAMERA / WEBcam (ฉันชอบเว็บแคมเพื่อผลลัพธ์ที่ดีกว่า)
ขั้นตอนที่ 2: Opencv-Intro และการติดตั้ง
OpenCV (ไลบรารีวิสัยทัศน์คอมพิวเตอร์โอเพนซอร์ส) เป็นไลบรารีที่มีประโยชน์มาก โดยมีคุณสมบัติที่มีประโยชน์มากมาย เช่น การจดจำข้อความ การจดจำใบหน้า การตรวจจับวัตถุ การสร้างแผนที่เชิงลึก และการเรียนรู้ของเครื่อง
บทความนี้จะแสดงวิธีการติดตั้ง Opencv และไลบรารีอื่นๆ บน Raspberry Pi ซึ่งจะมีประโยชน์เมื่อทำการตรวจจับวัตถุและโครงการอื่นๆ จากที่นั่น เราจะเรียนรู้วิธีดำเนินการกับรูปภาพและวิดีโอโดยดำเนินการโครงการจดจำวัตถุและแมชชีนเลิร์นนิง โดยเฉพาะอย่างยิ่ง เราจะเขียนโค้ดง่ายๆ เพื่อตรวจจับใบหน้าในรูปภาพ
OpenCV คืออะไร?
OpenCV คือวิสัยทัศน์คอมพิวเตอร์โอเพ่นซอร์สและไลบรารีซอฟต์แวร์การเรียนรู้ของเครื่อง OpenCV เผยแพร่ภายใต้ใบอนุญาต BSD ทำให้ใช้งานได้ฟรีทั้งด้านวิชาการและเชิงพาณิชย์ มีอินเตอร์เฟส C++, Python และ Java และรองรับ Windows, Linux, Mac OS, iOS และ Android OpenCV ได้รับการออกแบบมาเพื่อประสิทธิภาพในการคำนวณและเน้นการใช้งานแบบเรียลไทม์
จะติดตั้ง OpenCV บน Raspberry Pi ได้อย่างไร
ในการติดตั้ง OpenCV เราจำเป็นต้องติดตั้ง Python เนื่องจาก Raspberry Pis ถูกโหลดไว้ล่วงหน้าด้วย Python เราจึงสามารถติดตั้ง OpenCV ได้โดยตรง
พิมพ์คำสั่งด้านล่างเพื่อให้แน่ใจว่า Raspberry Pi ของคุณทันสมัยและอัปเดตแพ็คเกจที่ติดตั้งบน Raspberry Pi เป็นเวอร์ชันล่าสุด
sudo apt-get updatessudo apt-get upgrade
พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลเพื่อติดตั้งแพ็คเกจที่จำเป็นสำหรับ OpenCV บน Raspberry Pi ของคุณ
sudo apt ติดตั้ง libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqtcore
พิมพ์คำสั่งต่อไปนี้เพื่อติดตั้ง OpenCV 3 สำหรับ Python 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.จากนั้นพิมพ์ "import cv2"
3.จากนั้นพิมพ์ " cv2._version_"
จากนั้นติดตั้งไลบรารีเหล่านี้
pip3 ติดตั้ง python-numpy
pip3 ติดตั้ง python-matplotlib
รหัสทดสอบเพื่อตรวจจับใบหน้าในรูปภาพ:
นำเข้า cv2
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");
รูปภาพ = cv2.imread('ชื่อไฟล์ของคุณ') #example cv2.imread('home/pi/Desktop/filename.jpg')
คุณจะได้ผลลัพธ์เหมือนกล่องสี่เหลี่ยมถูกสร้างขึ้นบนใบหน้าของคนที่อยู่ในภาพ
ขั้นตอนที่ 3: การตรวจจับและจดจำใบหน้าในวิดีโอแบบเรียลไทม์
นำเข้า cv2
นำเข้า numpy เป็น np
นำเข้าระบบปฏิบัติการ
นำเข้าซีเรียล
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('ชุดข้อมูล/'+ชื่อไฟล์, 0)
images.append (im)
labels.append(int(filename.split('.')[0][0]))
#พิมพ์ชื่อไฟล์
names_file=open('labels.txt')
ชื่อ=names_file.read().split('\n')
Recognizer.train (ภาพ np.array (ป้ายกำกับ))
พิมพ์ ' อบรมเสร็จแล้ว… '
แบบอักษร = cv2. FONT_
HERSHEY_SIMPLEXcap=cv2. VideoCapture(1) # อุปกรณ์วิดีโอของคุณ
LastRes=''count=0
ในขณะที่(1):
_, frame=cap.read()
สีเทา=cv2.cvtColor(เฟรม cv2. COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale (สีเทา, 1.3, 5)
นับ+=1
สำหรับ (x, y, w, h) ในหน้า:
cv2.rectangle(เฟรม, (x, y), (x+w, y+h), (255, 0, 0), 2)
ถ้านับ>20: res=names[recognizer.predict(gray[y:y+h, x:x+w])-1]
ถ้า res!=lastRes:
LastRes=res
พิมพ์ล่าสุดRes
ser.write (lastRes)
นับ=0
หยุดพัก
cv2.imshow('เฟรม', เฟรม)
k = 0xFF & cv2.waitKey(10)
ถ้า k == 27:
หยุดพัก
หมวกปล่อย ()
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 แสดงว่าเป็น Tom Cruise ดังนั้นโปรดระมัดระวังในการอัปโหลดรูปภาพ…….
จากนั้นเชื่อมต่อ Arduino ของคุณกับ Raspberry Pi และทำการเปลี่ยนแปลงใน main.py codeser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) 3. ใส่ไฟล์ที่ดาวน์โหลดทั้งหมด (main.py, โฟลเดอร์ชุดข้อมูล, haarcascade_frontalface_default.xml ในโฟลเดอร์เดียว)
3. ตอนนี้เปิด Raspi-terminal ให้รันโค้ดของคุณโดย "sudo python main.py"
แนะนำ:
เครื่องสแกนโค้ด QR โดยใช้ OpenCV ใน Python: 7 ขั้นตอน
เครื่องสแกนรหัส QR การใช้ OpenCV ใน Python: ในโลกปัจจุบันนี้ เราเห็นรหัส QR และบาร์โค้ดถูกใช้เกือบทุกที่ตั้งแต่บรรจุภัณฑ์ของผลิตภัณฑ์ไปจนถึงการชำระเงินออนไลน์ และทุกวันนี้ เราเห็นรหัส QR แม้แต่ในร้านอาหารเพื่อดูเมนู ดังนั้นไม่ สงสัยว่าตอนนี้เป็นความคิดที่ยิ่งใหญ่ แต่เคยไหม
Rubik's Cube Blindfolded Solver แบบเรียลไทม์โดยใช้ Raspberry Pi และ OpenCV: 4 ขั้นตอน
Rubik's Cube Blindfolded Solver แบบเรียลไทม์โดยใช้ Raspberry Pi และ OpenCV: นี่เป็นเครื่องมือคิวบ์รูบิครุ่นที่ 2 ที่สร้างขึ้นสำหรับการแก้ผ้าปิดตา เวอร์ชันที่ 1 ได้รับการพัฒนาโดย javascript คุณสามารถเห็นโปรเจ็กต์ RubiksCubeBlindfolded1 ซึ่งต่างจากเวอร์ชันก่อนหน้า เวอร์ชันนี้ใช้ไลบรารี OpenCV เพื่อตรวจจับสีและเ
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 ขั้นตอน
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRIÇÃOO ใช้งานง่าย é ดาร์ autonomia para deficientes visuais se locomoverem em Ambientes ในร่ม como casas ou ศูนย์การค้า e aeroportos.A locomoço สภาพแวดล้อม j´ mapeados pode ou n&o s
การจดจำใบหน้า Smart Lock ด้วย LTE Pi HAT: 4 ขั้นตอน
การจดจำใบหน้า Smart Lock ด้วย LTE Pi HAT: การจดจำใบหน้ามีการใช้กันอย่างแพร่หลายมากขึ้นเรื่อย ๆ เราสามารถใช้เพื่อสร้างล็อคอัจฉริยะ
การตรวจจับใบหน้า+การจดจำใบหน้า: 8 ขั้นตอน (พร้อมรูปภาพ)
การตรวจจับใบหน้า+การจดจำใบหน้า: นี่เป็นตัวอย่างง่ายๆ ของการตรวจจับใบหน้าและการจดจำใบหน้าด้วย OpenCV จากกล้อง หมายเหตุ: ฉันทำโครงการนี้เพื่อประกวดเซ็นเซอร์ และฉันใช้กล้องเป็นเซ็นเซอร์เพื่อติดตามและจดจำใบหน้า ดังนั้นเป้าหมายของเราในเซสชันนี้ 1. ติดตั้งอนาคอนด้า