สารบัญ:
- ขั้นตอนที่ 1: เข้าถึงเว็บแคม
- ขั้นตอนที่ 2: การระบุใบหน้า
- ขั้นตอนที่ 3: การเก็บรวบรวมข้อมูล
- ขั้นตอนที่ 4: การฝึกอบรม
- ขั้นตอนที่ 5: การจดจำใบหน้า
- ขั้นตอนที่ 6: การเขียนโปรแกรม Arduino
วีดีโอ: การจดจำใบหน้าและการระบุตัวตน - Arduino Face ID โดยใช้ OpenCV Python และ Arduino: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
การจดจำใบหน้า 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 แบ่งปันสิ่งนี้หากคุณชอบ อุดหนุนกันต่อไป
ขอขอบคุณ.
แนะนำ:
การพล็อตข้อมูลสดของเซ็นเซอร์อุณหภูมิ (TMP006) โดยใช้ MSP432 LaunchPad และ Python: 9 ขั้นตอน
การพล็อตข้อมูลสดของเซ็นเซอร์อุณหภูมิ (TMP006) โดยใช้ MSP432 LaunchPad และ Python: TMP006 เป็นเซ็นเซอร์อุณหภูมิที่วัดอุณหภูมิของวัตถุโดยไม่จำเป็นต้องสัมผัสกับวัตถุ ในบทช่วยสอนนี้ เราจะพล็อตข้อมูลอุณหภูมิสดจาก BoosterPack (TI BOOSTXL-EDUMKII) โดยใช้ Python
การควบคุมการเคลื่อนไหวด้วย Raspberry Pi และ LIS3DHTR, มาตรความเร่ง 3 แกน, โดยใช้ Python: 6 ขั้นตอน
การควบคุมการเคลื่อนไหวด้วย Raspberry Pi และ LIS3DHTR, มาตรความเร่งแบบ 3 แกน, การใช้ Python: ความงามอยู่รอบตัวเรา แต่โดยปกติเราต้องเดินอยู่ในสวนถึงจะรู้ - Rumiในฐานะกลุ่มการศึกษาที่ดูเหมือนเราเป็น เราทุ่มเทพลังงานส่วนใหญ่ในการทำงานก่อนพีซีและโทรศัพท์มือถือของเรา เราจึงมักปล่อยให้สุขภาพของเรา
ศึกษาการวางแนวด้วย Raspberry Pi และ MXC6226XU โดยใช้ Python: 6 ขั้นตอน
ศึกษาการวางแนวด้วย Raspberry Pi และ MXC6226XU โดยใช้ Python: เสียงรบกวนเป็นเพียงส่วนหนึ่งของการทำงานของยานพาหนะ เสียงฮัมของมอเตอร์ในรถยนต์ที่ได้รับการปรับแต่งอย่างมากนั้นเป็นเสียงที่ไพเราะ ดอกยางส่งเสียงพึมพัมกับถนน ลมส่งเสียงหวีดหวิวเมื่อวิ่งไปรอบๆ กระจก เศษพลาสติก และชิ้นส่วนต่างๆ ในแผงหน้าปัดทำให้เกิดเ
การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow.: 4 ขั้นตอน
การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow: คำแนะนำนี้จะอธิบายวิธีติดตั้ง OpenCV, Tensorflow และเฟรมเวิร์กการเรียนรู้ของเครื่องสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Object Detection
Augmented Reality (AR) สำหรับ Dragonboard410c หรือ Dragonboard820c โดยใช้ OpenCV และ Python 3.5: 4 ขั้นตอน
Augmented Reality (AR) สำหรับ Dragonboard410c หรือ Dragonboard820c โดยใช้ OpenCV และ Python 3.5: คำแนะนำนี้จะอธิบายวิธีการติดตั้ง OpenCV, Python 3.5 และการพึ่งพาสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Augmented Reality