สารบัญ:
- ขั้นตอนที่ 1: วัสดุ
- ขั้นตอนที่ 2: การเดินสายไฟ
- ขั้นตอนที่ 3: การสร้างปลอก
- ขั้นตอนที่ 4: การกำหนดค่ากล้อง
- ขั้นตอนที่ 5: การตั้งค่า Docker
- ขั้นตอนที่ 6: การเรียกใช้สคริปต์ออด
- ขั้นตอนที่ 7: การใช้กริ่งประตู
วีดีโอ: กริ่งประตูพร้อมระบบจดจำใบหน้า: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
แรงจูงใจ
เมื่อเร็ว ๆ นี้มีการโจรกรรมในประเทศของฉันซึ่งมุ่งเป้าไปที่ผู้สูงอายุในบ้านของพวกเขาเอง โดยปกติ ผู้อยู่อาศัยจะได้รับสิทธิ์ในการเข้าถึงเนื่องจากผู้เข้าชมโน้มน้าวพวกเขาว่าพวกเขาเป็นผู้ดูแล/พยาบาล มันเกินคำบรรยาย เรื่องราวเหล่านี้ทำให้ฉันรู้สึกโกรธและเศร้าเพียงใด บ้านควรเป็นที่หลบภัยแห่งแรกของคุณ และยิ่งกว่านั้นหากคุณอยู่ในตำแหน่งที่เปราะบางอยู่แล้วเมื่ออยู่ข้างนอก ด้วยเหตุนี้ฉันจึงเริ่มโครงการนี้
ข้อมูลทั่วไป
ระบบกริ่งประตูได้รับการออกแบบมาสำหรับผู้สูงอายุหรือผู้พิการทางสายตาเป็นหลัก และค่อนข้างตรงไปตรงมาในการทำงาน กล่าวโดยสรุป สวิตช์กริ่งประตูจะเรียกกล้องให้จับภาพวิดีโอ ถัดไป ระบบจะตรวจจับใบหน้าในภาพและจับคู่กับบัญชีขาวและบัญชีดำ ผู้โดยสารได้รับการตอบสนองด้วยภาพที่ชัดเจนโดยการแสดงสัญญาณไฟจราจรที่ชัดเจน ในที่นี้ ไฟสีเขียว เหลือง หรือแดงแสดงว่าบุคคลนั้นอยู่ในบัญชีขาว ซึ่งระบบไม่รู้จักหรืออยู่ในบัญชีดำตามลำดับ หากไฟสีเหลืองหรือสีแดงถูกกระตุ้น ภาพถ่ายจะถูกส่งโดยบอทโทรเลขเพื่อแจ้ง/เตือนญาติหรือผู้ดูแล
ระดับความเชี่ยวชาญ
โปรเจ็กต์นี้จัดทำขึ้นสำหรับผู้ที่ชื่นชอบการใช้คอมพิวเตอร์วิทัศน์และปัญญาประดิษฐ์โดยเฉพาะ คำแนะนำนี้เขียนขึ้นสำหรับผู้เริ่มเรียน ดังนั้นอย่ากังวลหากคุณไม่มีประสบการณ์! นอกจากนี้ โปรเจ็กต์ยังน่าสนใจสำหรับผู้ผลิตที่มีประสบการณ์มากขึ้นเช่นกัน เนื่องจากไปป์ไลน์ได้รับการจัดระเบียบในลักษณะที่คุณสามารถขยายได้ด้วยคอมพิวเตอร์วิทัศน์ของคุณเองและแนวคิดในการจดจำใบหน้าโดยไม่ต้องยุ่งยากมากนัก
ขั้นตอนที่ 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 มม. อย่างไรก็ตาม หากคุณต้องการปรับเปลี่ยนสิ่งต่างๆ คุณสามารถเข้าถึงรูปแบบไฟล์ได้ทุกประเภทโดยใช้ลิงก์นี้ ตามที่แสดงในรูปภาพ คุณสามารถใช้กล่องกระดาษแข็งได้ หากคุณไม่มีเครื่องตัดเลเซอร์ ฉันใช้กล่องกระดาษแข็งในภาพเพื่อสร้างต้นแบบและใช้งานได้อย่างมีเสน่ห์
การประกอบค่อนข้างตรงไปตรงมา:
- ติดตั้งสวิตช์ Arcade
- ตรวจสอบให้แน่ใจว่าไม่มีสายไฟสำหรับกริ่งประตู
- ต่อสายแพกับ RPi
- ขัน RPi เข้ากับแผงด้านล่าง
- ต่อสายกริ่งประตูเข้ากับขั้วต่อสายไฟและติดตั้งเข้ากับแผงด้านล่างด้วย
- เชื่อมต่อ Picamera กับ RPi
- เจาะรูที่แผงด้านข้างด้านใดด้านหนึ่งสำหรับสายสวิตช์ออดและสายไฟ 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 แบบกำหนดเองสำหรับโปรเจ็กต์นี้ (ดู 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: การใช้กริ่งประตู
เรียกใช้สคริปต์ออดโดยดำเนินการ:
doorbell_run main.py หลังจากโหลดแพ็คเกจแล้ว สคริปต์จะไม่ทำงาน โดยทั่วไปมี 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
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-