สารบัญ:

กริ่งประตูพร้อมระบบจดจำใบหน้า: 7 ขั้นตอน (พร้อมรูปภาพ)
กริ่งประตูพร้อมระบบจดจำใบหน้า: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: กริ่งประตูพร้อมระบบจดจำใบหน้า: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: กริ่งประตูพร้อมระบบจดจำใบหน้า: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DIY แจ้งเตือนผ่าน Line พร้อมระบบจดจำใบหน้า ผ่านมือถือ EP1 2024, กรกฎาคม
Anonim
กริ่งประตูพร้อมระบบจดจำใบหน้า
กริ่งประตูพร้อมระบบจดจำใบหน้า

แรงจูงใจ

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

ข้อมูลทั่วไป

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

ระดับความเชี่ยวชาญ

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

ขั้นตอนที่ 1: วัสดุ

วัสดุ
วัสดุ

รายการสินค้าที่มีข้อกำหนดขั้นต่ำ:

ผลิตภัณฑ์ ลิงค์ ความคิดเห็น
ราสเบอร์รี่ Pi 3b RPi ลิงก์แสดง RPi 4 เนื่องจากมีประสิทธิภาพที่ดีกว่าและราคาเกือบเท่ากับ RPi 3b
ไมโคร SD อเมซอน การ์ด micro SD ขนาด 16 GB หรือใหญ่กว่าจะใช้งานได้ แต่ตอนนี้การ์ดขนาด 16 GB ใน Amazon มีราคาค่อนข้างเท่ากับการ์ด 32 GB
กล้อง Raspberry Pi อเมซอน กล้อง v1 ถูกกว่า แต่ v2 ดีกว่าและจะรองรับนานกว่านี้
สายเคเบิลแบบยืดหยุ่น FPC 15 พิน อเมซอน ความยาวจริงขึ้นอยู่กับสถานการณ์ของการทำโครงการนี้ หากคุณต้องการสร้างต้นแบบ สายเคเบิลแบบยืดหยุ่นดั้งเดิมก็ใช้งานได้
พาวเวอร์ซัพพลาย 5v micro usb อดาฟรุต สิ่งนี้ไม่เคยทำให้ผิดหวัง! คุณภาพดี (ไม่ใช่ในรูป)
ปุ่มอาร์เคดพร้อมไฟ LED ในตัว อเมซอน เลือกขนาดที่คุณต้องการ แต่การออกแบบ CAD ใช้ปุ่มขนาด 60 มม.
ตัวต้านทาน อเมซอน คุณแค่ต้องการตัวต้านทาน 1k และ 100 โอห์มสองสามตัว ปกติ 1/4W ก็ใช้ได้ครับ
ตัวเก็บประจุ 0.1 ยูเอฟ อเมซอน จำเป็นต้องใช้ตัวเก็บประจุสามตัว (ไม่ใช่ในรูป)
สายจัมเปอร์ / สายริบบิ้น อเมซอน อเมซอน หากคุณต้องการประหยัดเงิน คุณสามารถใช้สายแพแบบเก่าของฟลอปปีไดรฟ์ (ดูรูป)
ท่อหด / เทปพันสายไฟ อเมซอน อเมซอน

เครื่องมือที่จำเป็น:

เครื่องมือ จำเป็น? ความคิดเห็น
หัวแร้ง ใช่
มัลติมิเตอร์ ใช่
เครื่องปอกสายไฟ ใช่ หรือจะใช้มีด/กรรไกรก็ได้
เครื่องตัดเลเซอร์ เลขที่
เครื่องพิมพ์ 3 มิติ เลขที่
ที่หนีบ เลขที่ มีประโยชน์ในการเก็บกล่องไว้ด้วยกันในระยะทดสอบ

หมายเหตุ:

เพื่อเพิ่มความสามารถในการเข้าถึงของโปรเจ็กต์ ฉันตัดสินใจพัฒนาโดยใช้ Raspberry Pi 3b แม้ว่าจะเพิ่มความสามารถในการเข้าถึง แต่ก็ลดความสามารถของแอปพลิเคชันลงเนื่องจาก RPi นั้นไม่เร็วนัก หากคุณกำลังมองหาคอมพิวเตอร์บอร์ดเดียวที่เร็วกว่า คุณอาจต้องการดู NVIDIA Jetson Nano

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

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

หมายเหตุ:

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

ขั้นตอนที่ 3: การสร้างปลอก

การสร้างปลอก
การสร้างปลอก
การสร้างปลอก
การสร้างปลอก
การสร้างปลอก
การสร้างปลอก
การสร้างปลอก
การสร้างปลอก

เคสกล้อง

เคสจำนวนมากสำหรับ picamera สามารถดาวน์โหลดได้ฟรีจากอินเทอร์เน็ต ดังนั้นฉันจึงเลือกที่จะไม่ประดิษฐ์วงล้อขึ้นมาใหม่และเลือกเคสพื้นฐานแต่ดูดีจากอินเทอร์เน็ต: thingiverse.com - เคส/กล่องใส่กล้อง Raspberry pi (ตะโกนออกไปที่นักออกแบบ VGer.)

ปลอกไฟจราจร

สำหรับช่องสัญญาณไฟจราจร ฉันออกแบบกล่องเล็กๆ ใน Autodesk Fusion 360 (ซึ่งสามารถดาวน์โหลดได้ฟรี ดูหมายเหตุ) ที่เหมาะกับฮาร์ดแวร์ทั้งหมด ในเอกสารแนบ คุณสามารถค้นหาไฟล์ที่ฉันส่งให้บริษัทตัดด้วยเลเซอร์ในพื้นที่ของฉัน ด้วยเหตุนี้ การออกแบบจึงใช้ความหนาของแผ่น 6 มม. อย่างไรก็ตาม หากคุณต้องการปรับเปลี่ยนสิ่งต่างๆ คุณสามารถเข้าถึงรูปแบบไฟล์ได้ทุกประเภทโดยใช้ลิงก์นี้ ตามที่แสดงในรูปภาพ คุณสามารถใช้กล่องกระดาษแข็งได้ หากคุณไม่มีเครื่องตัดเลเซอร์ ฉันใช้กล่องกระดาษแข็งในภาพเพื่อสร้างต้นแบบและใช้งานได้อย่างมีเสน่ห์

การประกอบค่อนข้างตรงไปตรงมา:

  1. ติดตั้งสวิตช์ Arcade
  2. ตรวจสอบให้แน่ใจว่าไม่มีสายไฟสำหรับกริ่งประตู
  3. ต่อสายแพกับ RPi
  4. ขัน RPi เข้ากับแผงด้านล่าง
  5. ต่อสายกริ่งประตูเข้ากับขั้วต่อสายไฟและติดตั้งเข้ากับแผงด้านล่างด้วย
  6. เชื่อมต่อ Picamera กับ RPi
  7. เจาะรูที่แผงด้านข้างด้านใดด้านหนึ่งสำหรับสายสวิตช์ออดและสายไฟ RPi

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

หมายเหตุ:

Autodesk Fusion 360 เปิดให้เล่นฟรีสำหรับมือสมัครเล่นแล้ว! หากคุณต้องการรับสำเนา โปรดไปที่ลิงก์นี้: autodesk.com - Fusion 360 For Hobbyists มีข้อกำหนดบางประการ ดังนั้นโปรดอ่านและนำไปใช้ นี่เป็นโครงการแรกของฉันกับ Fusion 360 และฉันไม่มีประสบการณ์มากนักในการใช้ซอฟต์แวร์ CAD แต่ฉันต้องบอกว่าฉันชอบซอฟต์แวร์นี้มาก และเครื่องมือเพิ่มเติมทั้งหมดที่มาพร้อมกับ Fusion 360

ขั้นตอนที่ 4: การกำหนดค่ากล้อง

การกำหนดค่ากล้อง
การกำหนดค่ากล้อง
การกำหนดค่ากล้อง
การกำหนดค่ากล้อง
การกำหนดค่ากล้อง
การกำหนดค่ากล้อง

ถือว่าคุณติดตั้ง Raspbian และทำงานในโหมด GUI หากคุณยังไม่ได้ติดตั้ง Raspbian คุณสามารถทำตามบทความนี้: raspberrypi.org - การติดตั้งอิมเมจระบบปฏิบัติการ หากคุณบูต Raspbian คุณจะเห็นเดสก์ท็อปตามที่แสดงในรูปภาพ

มากำหนดค่ากล้องบน RPi กันและดูว่าใช้งานได้หรือไม่! วิธีการที่อธิบายไว้ในที่นี้ส่งตรงจาก raspberrypi.org - เอกสารประกอบ อันดับแรก เรามาอัปเดตแพ็คเกจล่าสุด (รวมถึงเฟิร์มแวร์ของกล้องด้วย) โดยดำเนินการคำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล (ดูรูป):

sudo apt อัปเดต

sudo apt full-upgrade

ถัดไป ต้องเปิดใช้งานกล้องโดยใช้คำสั่งต่อไปนี้:

sudo raspi-config

ในเมนู ไปที่ 5. ตัวเลือกการเชื่อมต่อ -> กล้อง P1 เลือกที่จะเปิดใช้งานกล้องและรีบูต RPi โดยดำเนินการ:

รีบูต

ตอนนี้ควรกำหนดค่ากล้องอย่างเหมาะสม สามารถทดสอบได้โดยเปิดหน้าต่างเทอร์มินัลแล้วดำเนินการ:

raspistill -v -o /home/pi/test.jpg

รูปภาพถูกบันทึกไปที่: /home/pi

ขั้นตอนที่ 5: การตั้งค่า Docker

การตั้งค่า Docker
การตั้งค่า Docker
การตั้งค่า Docker
การตั้งค่า Docker
การตั้งค่า Docker
การตั้งค่า Docker
การตั้งค่า Docker
การตั้งค่า Docker

เพื่อหลีกเลี่ยงข้อผิดพลาดในการพึ่งพาและการติดตั้ง ฉันตัดสินใจสร้างอิมเมจ Docker แบบกำหนดเองสำหรับโปรเจ็กต์นี้ (ดู wikipedia.org - Docker) หากคุณไม่เคยใช้หรือเคยได้ยินเกี่ยวกับ Docker มาก่อน ไม่ต้องกังวล ฉันจะอธิบายวิธีใช้งานในโปรเจ็กต์นี้ทีละขั้นตอน อันที่จริงมันง่ายมาก! ในกรณีที่คุณต้องการรันโปรเจ็กต์นี้ในการติดตั้งในเครื่อง (แทนที่จะเป็นคอนเทนเนอร์ Docker) ฉันจะให้คำแนะนำแก่คุณ แต่ขอแนะนำอย่างยิ่งให้ใช้อิมเมจ Docker ท้ายที่สุด ฉันสร้างมันขึ้นมาเพื่อให้คุณเรียกใช้โครงการนี้ได้ง่าย!

Docker คืออะไร?

หมายเหตุ: ส่วนนี้ให้ข้อมูลพื้นฐานเกี่ยวกับ Docker ซึ่งสามารถข้ามได้หากคุณต้องการเรียกใช้โค้ด

โปรเจ็กต์นี้เป็นครั้งแรกที่ฉันใช้ Docker และมันยอดเยี่ยมมาก! บางทีคุณอาจเคยได้ยินเกี่ยวกับ virtualenv หรือ Anaconda สำหรับ Python? Docker ค่อนข้างคล้ายกันในแง่ที่ว่าคุณสามารถจัดการเวอร์ชันแพ็คเกจและเรียกใช้ Python เวอร์ชันต่างๆ บนระบบโฮสต์เดียวได้อย่างง่ายดายโดยใช้สภาพแวดล้อมที่แตกต่างกัน (หรือคอนเทนเนอร์ตามที่เรียกว่าใน Docker) แต่เมื่อเปรียบเทียบกับ virtualenv และ Anaconda แล้ว Docker นั้นมีประสิทธิภาพมากกว่าเนื่องจากไม่จำกัดเฉพาะแพ็คเกจ Python เท่านั้น ในคอนเทนเนอร์ Docker คุณสามารถติดตั้งและจัดการแพ็คเกจของระบบปฏิบัติการที่ต้องการได้ ตัวอย่างเช่น พิจารณาเว็บไซต์ที่คุณต้องการย้ายข้อมูลที่ใช้กรอบงานเว็บ Python (เช่น Django) ที่มีฐานข้อมูล (เช่น MySQL) หากไม่มีคอนเทนเนอร์ Docker คุณจะต้องติดตั้งแพ็คเกจทั้งหมดบนเซิร์ฟเวอร์ใหม่ ซึ่งเป็นกระบวนการที่มักเกิดข้อผิดพลาดและบั๊ก ในทางกลับกัน เมื่อเว็บไซต์ของคุณถูกสร้างขึ้นใน Docker การย้ายข้อมูลนั้นง่ายพอๆ กับการย้ายไฟล์รูปภาพ/ไฟล์ไปยังเซิร์ฟเวอร์ใหม่และเรียกใช้/พวกมัน อย่างที่คุณสามารถจินตนาการได้ Docker มีประโยชน์มากสำหรับโครงการบน Instructables เช่นกัน;)! หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ Docker ให้ไปที่เว็บไซต์ของพวกเขา: docker.org - Docker: Enterprise Container Platform มาเริ่มใช้งาน Docker กันเลย!

การติดตั้ง Docker

ติดตั้ง Docker โดยดำเนินการ:

curl -sSL https://get.docker.com | NS

ถัดไป ผู้ใช้จะถูกเพิ่มในกลุ่มผู้ใช้ 'นักเทียบท่า' ซึ่งให้สิทธิ์ในการเรียกใช้ Docker ทำได้โดย:

sudo usermod -aG นักเทียบท่า $USER

ตอนนี้ คุณควรจะสามารถเรียกใช้ Docker ได้แล้ว สิ่งนี้สามารถตรวจสอบได้โดยการรันอิมเมจ Hello-world:

นักเทียบท่าวิ่งสวัสดีโลก

สุดท้าย เรามาดึงอิมเมจ Docker ที่มีการขึ้นต่อกันทั้งหมดที่จำเป็นในการรันสคริปต์ Python ของออด ขั้นตอนนี้อาจใช้เวลาสักครู่เนื่องจากรูปภาพมีขนาดค่อนข้างใหญ่ (~1.5 GB) ดำเนินการ:

นักเทียบท่าดึง erientes/ออด

หมายเหตุ: Dockerfile สามารถพบได้ในที่เก็บออดบน Github ตอนนี้ ทุกอย่างพร้อมที่จะเรียกใช้สคริปต์ออดแล้ว ซึ่งจะกล่าวถึงในขั้นตอนต่อไป

การติดตั้งในพื้นที่

อีกครั้ง ฉันขอแนะนำอย่างยิ่งให้ใช้อิมเมจ Docker แทนการติดตั้งในเครื่อง แต่เพื่อให้บทช่วยสอนนี้สมบูรณ์ ตอนนี้ฉันจะอธิบายขั้นตอนบางอย่างที่ฉันทำสำหรับการติดตั้งในเครื่อง

เพื่อให้สามารถรันโค้ดได้ เวอร์ชัน python ควรเป็น >= 3.5 (ฉันใช้ python 3.5.3) และจำเป็นต้องติดตั้งแพ็คเกจต่อไปนี้:

  • face_recognition
  • picamera
  • งี่เง่า
  • หมอน
  • python-โทรเลข-bot
  • RPi. GPIO

ลิงก์นี้มีประโยชน์มาก: Github - ติดตั้ง dlib และ face_recognition บน Raspberry Pi อย่างไรก็ตาม มีข้อแม้บางประการที่นี่: 1) หมอนต้องมี Python 3.5 เป็นอย่างน้อย ซึ่งจะไม่ถูกติดตั้งตามวิธีนี้ 2) นอกจากนี้ ไม่ใช่ทุกแพ็คเกจที่จำเป็นในโครงการกริ่งประตูจะถูกติดตั้งโดยทำตามวิธีนี้ อย่างไรก็ตาม คุณควรจะสามารถติดตั้งได้โดยใช้ pip3

ขั้นตอนที่ 6: การเรียกใช้สคริปต์ออด

เรียกใช้สคริปต์ออด
เรียกใช้สคริปต์ออด
เรียกใช้สคริปต์ออด
เรียกใช้สคริปต์ออด
เรียกใช้สคริปต์ออด
เรียกใช้สคริปต์ออด

รับสคริปต์

สคริปต์สามารถดาวน์โหลดได้ด้วยตนเองจาก: github.com - Erientes/doorbell หรือหากคุณติดตั้ง Git ไว้ ให้ดำเนินการ:

โคลน git

สร้างนามแฝง

ตอนนี้ เพื่อทำให้ชีวิตของเราง่ายขึ้นอีกนิด มาสร้างนามแฝงเพื่อเรียกใช้สคริปต์กัน ดำเนินการ:

แผ่นพับ ~/.bashrc

เพิ่มบรรทัดต่อไปนี้และบันทึกไฟล์:

นามแฝง doorbell_run='docker run --privileged -v /home/pi/doorbell:/doorbell -w /doorbell -it erientes/doorbell python $1'

นามแฝง doorbell_login='docker run --privileged -v /home/pi/doorbell:/doorbell -w /doorbell -it erientes/doorbell bash'

สคริปต์ทดสอบ

หากต้องการทดสอบว่าทุกอย่างติดตั้งถูกต้องหรือไม่ ให้เปิดเทอร์มินัลใหม่และดำเนินการ:

doorbell_run Example/0_test_installation.py

ผลลัพธ์ควรเป็นข้อความในหน้าต่างเทอร์มินัลที่ระบุว่า 'การติดตั้งออดสำเร็จ!' ในการทดสอบว่าคอนเทนเนอร์ Docker สามารถเข้าถึงกล้องได้หรือไม่ ให้รัน:

doorbell_run Examples/1_test_camera.py

เมื่อเรียกใช้ 1_test_camera.py รูปภาพจะถูกถ่ายและบันทึกเป็น 'test.jpg' ซึ่งสามารถพบได้ใน /home/pi/doorbell สุดท้ายนี้ ไดรเวอร์ LED สามารถทดสอบได้โดยดำเนินการ:

doorbell_run Example/2_test_voicehat_drivers.py

เมื่อสคริปต์นี้ทำงาน ไฟ LED ในสวิตช์อาร์เคดควรตอบสนองเมื่อกดปุ่ม

เรียกใช้สคริปต์ออด

ในการรันสคริปต์ออด ก่อนอื่นต้องได้รับข้อมูลประจำตัวบอทของ Telegram ติดตั้ง Telegram บนโทรศัพท์ของคุณและไปที่ telegram.me - Botfather เริ่มการสนทนาและป้อน:

/newbot

กรอกชื่อและชื่อผู้ใช้สำหรับบอท หลังจากนั้น คุณจะได้รับโทเค็นการเข้าถึง คัดลอกค่านั้นไปยังไฟล์ 'credentials_telegram_template.py' ใน /home/pi/doorbell และบันทึกลงในไฟล์ใหม่ชื่อ 'credentials_telegram.py' สุดท้ายนี้ เริ่มต้นการสนทนากับบอทที่คุณเพิ่งสร้างขึ้นโดยคลิกที่ลิงก์ที่ Botfather มอบให้คุณ

สุดท้าย มาเรียกใช้ออดด้วยการจดจำใบหน้า:

doorbell_run main.py

หมายเหตุ:

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโค้ด ให้ตรวจสอบความคิดเห็นในสคริปต์ด้วยตนเอง หากคุณมีคำถามเกี่ยวกับรหัส โปรดติดต่อฉันผ่าน Github

ขั้นตอนที่ 7: การใช้กริ่งประตู

Image
Image
การใช้กริ่งประตู
การใช้กริ่งประตู
การใช้กริ่งประตู
การใช้กริ่งประตู

เรียกใช้สคริปต์ออดโดยดำเนินการ:

doorbell_run main.py หลังจากโหลดแพ็คเกจแล้ว สคริปต์จะไม่ทำงาน โดยทั่วไปมี 2 สิ่งที่สามารถเกิดขึ้นได้:

  1. มีคนกดกริ่งประตู
  2. มีคนถูกเพิ่มในรายการที่อนุญาตพิเศษ

มีคนกดกริ่ง

ในกรณีนี้ สคริปต์จะเริ่มถ่ายภาพจนกว่าจะถ่ายภาพที่ตรวจพบใบหน้า หลังจากตรวจพบ วิธีการบางอย่างจากแพ็คเกจ python 'face_recognition' จะถูกเรียกเพื่อคำนวณการเข้ารหัส 128 ใบหน้า ถัดไป การเข้ารหัสที่ได้รับจะถูกเปรียบเทียบกับการเข้ารหัสใน whitelist.csv และ blacklist.csv ผลลัพธ์ที่เป็นไปได้ส่งผลให้เกิดการตอบสนองต่อไปนี้:

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

มีคนถูกเพิ่มในบัญชีขาว

หากต้องการเพิ่มบุคคลลงในรายการที่อนุญาต ให้กดปุ่มสีเหลืองของสัญญาณไฟจราจรเมื่อกริ่งประตูอยู่ในสถานะไม่ได้ใช้งาน ขั้นแรกไฟสีเหลืองจะเปิดขึ้น หากไฟสีเขียวกะพริบ 3 ครั้ง ใบหน้าของบุคคลนั้นจะถูกเพิ่มในรายการที่อนุญาตพิเศษ หากไฟสีเขียวไม่กะพริบ 3 ครั้ง แสดงว่าพยายามไม่สำเร็จ ในกรณีนั้น ให้กดปุ่มสีเหลืองอีกครั้ง คุณสามารถตรวจสอบได้ง่ายๆ ว่าดำเนินการสำเร็จหรือไม่โดยกดกริ่งประตูและตรวจสอบว่าไฟเขียวผ่านหรือไม่

จะเพิ่มบุคคลในบัญชีดำได้อย่างไร?

เห็นได้ชัดว่าคนที่มีเจตนาไม่ดีจะไม่เดินผ่านมาเพื่อถ่ายรูปใบหน้าของพวกเขา ดังนั้น คุณสามารถเพิ่มรูปภาพของบุคคลที่มีชื่อเสียงซึ่ง (เช่น) ตำรวจได้เผยแพร่ไปยังโฟลเดอร์ img/blacklist ทุก ๆ ชั่วโมง โฟลเดอร์นี้จะถูกตรวจสอบหาภาพใหม่ หากมีรูปภาพใหม่ ระบบจะคำนวณการเข้ารหัสใบหน้าและเพิ่มใน blacklist.csv รูปภาพจะถูกเปลี่ยนชื่อและย้ายไปที่โฟลเดอร์ /img/blacklist/encoded

หมายเหตุ:

  • การใช้งานสคริปต์โดยลงชื่อเข้าใช้ RPi ช่วยเพิ่มการควบคุมและข้อมูล แต่การควบคุมและข้อมูลพื้นฐานสามารถรับได้โดยใช้การแสดงสัญญาณไฟจราจรเพียงอย่างเดียว
  • การจดจำใบหน้าถูกใช้งานโดยใช้แพ็คเกจหลาม 'face_recognition' แพ็คเกจนี้ใช้ Dlib ที่มีอัลกอริธึมการจดจำใบหน้าที่ล้ำสมัยซึ่งทำงานอย่างแม่นยำ 99.38% บน Labeled Faces ในเกณฑ์มาตรฐาน Wild (ที่มา: dlib.net - High Quality Face Recognition with Deep Metric Learning).
การประกวดเทคโนโลยีช่วยเหลือ
การประกวดเทคโนโลยีช่วยเหลือ
การประกวดเทคโนโลยีช่วยเหลือ
การประกวดเทคโนโลยีช่วยเหลือ

รางวัลที่ 1 ในการประกวด Assistive Tech

แนะนำ: