สารบัญ:

การจดจำใบหน้าและการระบุตัวตน - Arduino Face ID โดยใช้ OpenCV Python และ Arduino: 6 ขั้นตอน
การจดจำใบหน้าและการระบุตัวตน - Arduino Face ID โดยใช้ OpenCV Python และ Arduino: 6 ขั้นตอน

วีดีโอ: การจดจำใบหน้าและการระบุตัวตน - Arduino Face ID โดยใช้ OpenCV Python และ Arduino: 6 ขั้นตอน

วีดีโอ: การจดจำใบหน้าและการระบุตัวตน - Arduino Face ID โดยใช้ OpenCV Python และ Arduino: 6 ขั้นตอน
วีดีโอ: Face Recognition and Identification | Arduino Face ID using openCV python and Arduino. 2024, พฤศจิกายน
Anonim
Image
Image

การจดจำใบหน้า AKA face ID เป็นหนึ่งในคุณสมบัติที่สำคัญที่สุดในโทรศัพท์มือถือในปัจจุบัน

ดังนั้นฉันจึงมีคำถาม "ฉันขอรหัสใบหน้าสำหรับโครงการ Arduino ของฉันได้ไหม" และคำตอบคือใช่…

การเดินทางของฉันเริ่มต้นดังนี้:

ขั้นตอนที่ 1: เข้าถึงเว็บแคม

ขั้นตอนที่ 2: การระบุใบหน้า

ขั้นตอนที่ 3: การเก็บรวบรวมข้อมูล

ขั้นตอนที่ 4: การฝึกอบรม

ขั้นตอนที่ 5: การจดจำใบหน้า

ขั้นตอนที่ 6: การเขียนโปรแกรม Arduino

ฉันจะอธิบายขั้นตอนทั้งหมดด้านล่าง ฉันหวังว่านี่จะช่วยคุณได้

ขั้นตอนที่ 1: เข้าถึงเว็บแคม

การเข้าถึงเว็บแคม
การเข้าถึงเว็บแคม

ขั้นตอนแรกสำหรับการจดจำใบหน้าคือการเข้าถึงกล้องหรือคอมพิวเตอร์วิทัศน์ เนื่องจากอินเดียอยู่ภายใต้การปิดล้อม วิธีแก้ปัญหาที่ถูกที่สุดที่ฉันพบคือการใช้เว็บแคมของคอมพิวเตอร์ซึ่งฉันเข้าถึงได้ด้วยโปรแกรมหลามโดยใช้โมดูล openCV

คุณอาจกำลังคิดว่า OpenCV คืออะไรใช่ไหม

OpenCV (Open Source Computer Vision Library) เป็นซอฟต์แวร์วิทัศน์คอมพิวเตอร์โอเพนซอร์สและไลบรารีซอฟต์แวร์การเรียนรู้ของเครื่อง OpenCV สร้างขึ้นเพื่อจัดเตรียมโครงสร้างพื้นฐานทั่วไปสำหรับแอปพลิเคชันการมองเห็นด้วยคอมพิวเตอร์ และเพื่อเร่งการใช้การรับรู้ของเครื่องในผลิตภัณฑ์เชิงพาณิชย์

หากติดตั้ง Opencv บนคอมพิวเตอร์ของคุณ คุณก็พร้อมใช้ ถ้าไม่ทำตามขั้นตอนนี้

เปิดพรอมต์คำสั่งแล้วพิมพ์ "pip install opencv"

คำเตือน: คุณอาจได้รับข้อผิดพลาดเนื่องจากไม่รู้จัก "'pip' เป็นคำสั่งภายในหรือภายนอก" ซึ่งคุณต้องเพิ่มเส้นทางของการติดตั้ง pip ของคุณไปยังตัวแปรระบบ PATH ของคุณ ผ่านโพสต์นี้อาจช่วยคุณได้

stackoverflow.com/questions/23708898/pip-i…

เมื่อติดตั้ง OpenCV เราก็พร้อมแล้ว… เพื่อตรวจสอบว่าได้ติดตั้งอย่างถูกต้องหรือไม่ ให้เปิดล่าม Python ของคุณและนำเข้าไลบรารี ดูภาพด้านบนที่ควรเป็นผลงานของคุณ

ดาวน์โหลดไฟล์หลาม "AccessTo_webcam.py" และเรียกใช้ ฉันได้ให้ความคิดเห็นที่จำเป็นทั้งหมดที่นั่น

ไปเลย ตอนนี้คุณสามารถเข้าถึงเว็บแคมได้แล้ว ทำได้ดี. ให้เราไปยังขั้นตอนที่ 2

ขั้นตอนที่ 2: การระบุใบหน้า

การระบุใบหน้า
การระบุใบหน้า

ด้วยความช่วยเหลือของโมดูล OpenCV เดียวกัน เราต้องระบุว่ามีใบหน้าในสตรีมวิดีโอหรือไม่

OpenCV จัดเตรียมวิธีการฝึกอบรมหรือแบบจำลองก่อนการฝึกอบรมที่เรียกว่า Cascade Classifier โมเดลที่ผ่านการฝึกอบรมล่วงหน้าจะอยู่ในโฟลเดอร์ข้อมูลในการติดตั้ง OpenCV ฉันให้ไฟล์นั้นเพียงแค่ดาวน์โหลดและวางไว้ในโฟลเดอร์โครงการของคุณ โฟลเดอร์ที่เก็บไฟล์ "AccessTo_webcam.py" หากคุณยังไม่ได้สร้างมันขึ้นมา

ดาวน์โหลด "haarcascade_frontalface_default" และวางไว้ในโฟลเดอร์โครงการหลัก

ดาวน์โหลด "Face_identification.py" และวางไว้ในโฟลเดอร์โครงการหลัก คำอธิบายทั้งหมดมีอยู่ในนั้น

ตอนนี้คุณสามารถระบุใบหน้าในสตรีมวิดีโอได้แล้ว ไปที่ขั้นตอนที่ 3 กันเลย

ขั้นตอนที่ 3: การเก็บรวบรวมข้อมูล

การเก็บรวบรวมข้อมูล
การเก็บรวบรวมข้อมูล

ในการจดจำใบหน้า เราต้องฝึกโปรแกรมหลาม ซึ่งเราต้องการข้อมูลบางอย่าง

การเก็บรวบรวมข้อมูลเป็นขั้นตอนที่ง่ายที่สุดในโครงการนี้ สร้างโฟลเดอร์ชื่อ "image_data" ในโฟลเดอร์โครงการหลักของคุณ ภายในโฟลเดอร์ "image_data" ให้สร้างโฟลเดอร์เพิ่มเติมที่มีชื่อของบุคคลนั้น ซึ่งเราจะเก็บข้อมูลไว้ ตัวอย่างเช่น:

ในโฟลเดอร์ "image_data" ฉันได้สร้างอีกสองโฟลเดอร์ชื่อ "HRK" และ "Yahiya" ดังแสดงในภาพด้านบน

ตอนนี้สร้างโฟลเดอร์ของคุณเองและตั้งชื่อมัน

เมื่อสร้างโฟลเดอร์แล้ว ให้เริ่มรวบรวมรูปภาพของบุคคลนั้น ฉันแนะนำให้รวบรวมเกือบ 20 ภาพต่อคน คุณยังสามารถเพิ่มรูปภาพได้อีก แต่โปรดสังเกตว่าข้อมูลที่รวบรวมสำหรับบุคคลทั้งหมดมีจำนวนรูปภาพเท่ากัน ช่วยให้มีความแม่นยำ

นั่นคือตอนนี้ ไปที่ขั้นตอนที่ 4

ขั้นตอนที่ 4: การฝึกอบรม

โดยสังเขป เราจะดูโฟลเดอร์และรูปภาพทั้งหมดที่มีอยู่ในโฟลเดอร์ "image_data" และสร้างพจนานุกรมที่ประกอบด้วย ID ป้ายกำกับและชื่อที่เกี่ยวข้อง พร้อมกันเราจะโหลดภาพเพื่อตรวจจับใบหน้าในแต่ละภาพที่เราเรียกว่า "พื้นที่ที่น่าสนใจ" และสร้างไฟล์ ".yml" ที่มีข้อมูลดังกล่าว

สมมติว่าคุณมีข้อมูลที่เก็บรวบรวมสำหรับบุคคล X และ Y

เราจะติดป้ายชื่อ X เป็น 1 ซึ่งจะเป็น ID ป้ายชื่อของเขาและชื่อจะเป็น X เอง เราโหลดรูปภาพเพื่อค้นหาใบหน้าของเขา เช่น ภูมิภาคที่สนใจและผนวกข้อมูลลงในรายการ

บุคคล Y จะปฏิบัติตามขั้นตอนที่คล้ายกัน และสุดท้าย เราจะสร้างไฟล์ ".yml"

ดาวน์โหลดไฟล์ "face_trainer.py" และวางไว้ในโฟลเดอร์โครงการหลัก คำอธิบายที่จำเป็นทั้งหมดมีอยู่ในไฟล์นั้นเอง

เมื่อคุณเรียกใช้โปรแกรมนี้ มันจะผ่านรูปภาพทั้งหมดและสร้างไฟล์สองไฟล์ชื่อ "labels.pickle" และ "trainner.yml" ตอนนี้คุณได้ฝึกโมเดลของคุณเองแล้ว ไปที่ขั้นตอนที่ 5 กันเลย

ขั้นตอนที่ 5: การจดจำใบหน้า

การจดจำใบหน้า
การจดจำใบหน้า

หากคุณทำตามขั้นตอนทั้งหมดอย่างถูกต้อง คุณอาจสร้างข้อมูลที่ได้รับการฝึกอบรมมาเอง ตอนนี้เราจะใช้ข้อมูลนั้นสำหรับการจดจำใบหน้า

โดยทั่วไป เราจะโหลดโมเดลที่ผ่านการฝึกอบรมของเราลงในไฟล์ python เข้าถึงเว็บแคมของเรา และระบุใบหน้าในสตรีมวิดีโอ และทำการเปรียบเทียบหรือคาดคะเนระหว่างใบหน้าปัจจุบันซึ่งระบุในสตรีมวิดีโอและโมเดลที่ได้รับการฝึกฝน ถ้าข้อมูลตรงกัน เราก็บอกว่าบุคคลนั้นรู้จักมันง่ายขนาดนั้น…

ดาวน์โหลด "face_recognise.py" และเรียกใช้ ข้อมูลที่จำเป็นทั้งหมดมีอยู่ในนั้น ตอนนี้ใบหน้าของคุณอาจถูกจดจำแล้ว หากความแม่นยำไม่ดีให้ลองอัปเดตข้อมูล หากคุณพร้อมแล้ว ไปต่อกันที่ขั้นตอนที่ 6/

ขั้นตอนที่ 6: การเขียนโปรแกรม Arduino

ขั้นตอนสุดท้ายและขั้นตอนสุดท้ายคือการเขียนโปรแกรม Arduino และเพื่อให้มีโหมดการสื่อสารระหว่าง python และ Arduino สำหรับการสื่อสาร ฉันใช้ "การสื่อสารแบบอนุกรม" ดูวิดีโอที่ฉันได้ลิงก์ไว้ด้านบนเพื่อค้นหาวิธีการทำงานของ Serial Communication และสร้างมันขึ้นมา คุณจะพบไฟล์ที่จำเป็นทั้งหมดในคำอธิบายวิดีโอ

ถ้าคุณได้ดูวิดีโอนี้แล้ว ให้ฉันอธิบายให้คุณฟังว่าฉันทำอะไรไปบ้าง เมื่อระบบจดจำใบหน้าของฉัน ID ป้ายกำกับที่ระบุคือ 2 เมื่อ ID ป้ายกำกับเป็น 2 ฉันจะส่ง '1' เป็นข้อมูลอนุกรมไปยัง Arduino ของฉัน ซึ่งจะเปิดวงจร LED ไล่ล่าของฉัน หาก ID ฉลากไม่ใช่ 2 ฉันจะส่ง '0' เป็นข้อมูลอนุกรมซึ่งจะปิดวงจร LED ไล่ล่าของฉัน

ดาวน์โหลดไฟล์ "ard_chaser.ino" เป็นโปรแกรมไล่ล่า LED อย่างง่ายที่ใช้การสื่อสารแบบอนุกรม

ดาวน์โหลด "face_recogniser1.py" พร้อมกันซึ่งจะสร้างการสื่อสารแบบอนุกรมระหว่าง Arduino และโปรแกรมหลาม

ไปเลย ฉันหวังว่าคุณจะได้เรียนรู้สิ่งใหม่ สมัครสมาชิกช่อง youtube ของฉันสำหรับสิ่งเพิ่มเติมที่เกี่ยวข้องกับ python และ Arduino แบ่งปันสิ่งนี้หากคุณชอบ อุดหนุนกันต่อไป

ขอขอบคุณ.

แนะนำ: