กลับไปหน้ารวมไฟล์
alexa-controlled-face-recognizing-arduino-door-bell-fdd939.md

ชื่อโปรเจกต์: กริ่งประตู Arduino จดจำใบหน้า ควบคุมโดย Alexa

„Alexa, who is at the door?“ - กล้อง Arduino จดจำใบหน้า โดยใช้ AWS Rekognition สำหรับคุณยายของฉัน

เคยอยากรู้ไหมว่าใครมากดกริ่งประตูบ้านของคุณ โดยการถาม Alexa?

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

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

วิดีโอสาธิต

(คุณยายแทบไม่พูดภาษาอังกฤษเลย ;-))

ในการสร้างโซลูชันนี้ เราใช้:

  • Arduino Uno พร้อม ethernet shield (สามารถย้ายไปยัง esp8266 เพื่อการเชื่อมต่อ Wi-Fi ได้อย่างง่ายดาย)
  • กล้อง (Arducam mini)
  • สวิตช์ที่เชื่อมต่อกับอินพุตหนึ่งของ Arduino
  • Amazon Web Services: Alexa Skills Kit, Lambda, API Gateway, S3, Rekognition

เราได้เขียน Arduino sketch ที่เมื่อสวิตช์ถูกกด จะทำการบันทึกภาพด้วย Arducam เนื่องจากข้อจำกัดด้านหน่วยความจำ ภาพจึงไม่ถูกบันทึกไว้ในเครื่อง แต่จะถูกอ่านจาก camera buffer เป็นส่วนๆ และส่งโดยตรงผ่าน http put request ไปยัง Amazon Web Services ซึ่ง Lambda function (ผ่าน AWS Api Gateway) จะประมวลผลภาพที่อัปโหลด จัดเก็บไว้ใน S3 และส่งต่อไปยัง AWS Rekognition หากใบหน้าเป็นที่รู้จัก ชื่อของบุคคลนั้นจะถูกส่งกลับมา หากคนแปลกหน้ากดกริ่ง ภาพจะไม่ถูกลบ แต่จะถูกเก็บไว้เพื่อติดแท็กในภายหลัง

การใช้อุปกรณ์ Alexa ใดๆ ของคุณ คุณสามารถใช้ smart cam skill ที่เราสร้างขึ้นได้

มีสอง intent:

- „...who rang the door?“: หากบุคคลนั้นเคยถูกติดแท็กมาก่อน Alexa จะพูดว่า เช่น „Peter rang the door“

- „...the person is Peter“: หากคนที่ไม่รู้จักมาก่อนกดกริ่ง สิ่งนี้จะเชื่อมโยงชื่อเข้ากับใบหน้า จากนั้น Alexa จะยืนยันการเชื่อมโยงและจดจำใบหน้า

ตัวอย่าง (บุคคลที่รู้จักกดกริ่ง)

  • มีคนกดกริ่ง
  • คุณยายถาม „Alexa, ask smart camera who rang the door“
  • Alexa ตอบ „Peter rang the door“

ตัวอย่าง (คนแปลกหน้ากดกริ่ง)

  • มีคนกดกริ่ง
  • คุณยายถาม „Alexa, ask smart camera who rang the door“
  • Alexa ตอบ „I did not recognize the person, please tell me who rang the door. For example say: Alexa, tell smart camera that the person ist Peter“
  • คุณยายจึงพูดว่า „Alexa, tell smart camera that the person is Thomas“
  • Alexa ตอบ „Thank you! I will remember that Thomas rang the door“
  • ครั้งต่อไป Alexa จะจดจำ Thomas ได้ (ช่วยคุณยายของฉันให้พ้นจากคนร้าย)

ตัวอย่าง (กล้องไม่สามารถจับภาพใบหน้าได้)

  • มีคนกดกริ่ง
  • คุณยายถาม „Alexa, ask smart camera who rang the door“
  • Alexa ตอบ „The camera could not detect any face“

    Voice User Interface (VUI Diagram)

    VUI DIagram

    การประกอบฮาร์ดแวร์

    การตั้งค่าฮาร์ดแวร์
    • เชื่อมต่อ Arduino Uno และ Ethernet Shield
    • เชื่อมต่อ Arducam ตามที่แสดงในภาพ
    • เชื่อมต่อ pushbutton, เชื่อมต่อ ethernet cable ของคุณ
    • ติดตั้ง Arduino IDE และเลือก "Arduino uno" เป็นประเภทบอร์ด
    • ปรับ IP Address ให้เข้ากับช่วง IP address ของคุณ และ hostname (ที่สำหรับส่งไฟล์ JPEG ไป) และอัปโหลด sketch

    Software Stack

    แผนภาพ Software / Architecture

    การตั้งค่า Software

    โปรเจกต์นี้ใช้ AWS services หลายอย่าง และสามารถดูคู่มือการตั้งค่าสำหรับโปรเจกต์ทั้งหมดได้ที่ Github:

    นอกจากนี้ โค้ดของโปรเจกต์ยังสามารถดูได้ที่ Github และมีเอกสารประกอบอย่างครบถ้วนเพื่อความสะดวกในการศึกษาของคุณ

    Alexa Skill

    เราได้ส่ง skill ของเราไปยัง Amazon แล้ว แต่ขณะนี้กำลังอยู่ระหว่างการรับรอง Skill ID คือ amzn1.ask.skill.fa2a11c4-2a92-4094-978c-05744757c63b ตั้งค่า skill ของคุณเองโดยใช้คู่มือการตั้งค่าด้านบนได้เลย!

    รายละเอียดทางเทคนิคเพิ่มเติม

    ระบบรักษาความปลอดภัยทางชีวภาพด้วย AI ขั้นสูง

    โปรเจกต์ระดับสูงนี้ผสานรวมระบบนิเวศเสียงของ Alexa เข้ากับระบบ Computer Vision ของ AWS (Amazon Web Services) เพื่อสร้างระบบรักษาความปลอดภัยภายในบ้านแห่งอนาคต

    • Image Capture: เมื่อมีคนกดกริ่งประตู Arduino จะสั่งให้ Camera module (ESP32-CAM หรือ Pi-link) ถ่ายภาพและอัปโหลดไปยัง AWS S3 bucket
    • Facial Recognition: AWS Lambda function จะสั่งให้ AWS Rekognition ระบุตัวผู้มาเยือนโดยเทียบกับ whitelist

    การแจ้งเตือนด้วยเสียง

    • Alexa Skill Integration: หากจดจำใบหน้าได้ Alexa จะประกาศว่า: "Hello, [Name] is at the door." หากไม่รู้จัก จะส่งการแจ้งเตือนไปยังโทรศัพท์ของผู้ใช้พร้อมรูปถ่ายของผู้มาเยือน ซึ่งเป็นการนำเสนอชั้นความปลอดภัยระดับมืออาชีพที่เสริมด้วย cloud

ข้อมูล Frontmatter ดั้งเดิม

title: "Alexa Controlled Face Recognizing Arduino Door Bell"
description: "„Alexa, who is at the door?“ - A face recognizing Arduino camera using AWS Rekognition for my grandmother"
author: "maxenzinger"
category: "Home & Automation"
tags:
  - "smart home"
  - "face recognition"
  - "facial recognition"
  - "machine learning"
views: 12154
likes: 10
price: 2450
difficulty: "Intermediate"
components:
  - "1x Arducam Mini OV2640"
  - "1x Arduino Ethernet Shield 2"
  - "1x standard pushbutton (normally open)"
  - "1x Arduino UNO"
  - "1x Amazon Echo"
tools: []
apps:
  - "1x AWS Rekognition"
  - "1x AWS S3"
  - "1x Alexa Skills Kit"
  - "1x AWS API Gateway"
  - "1x AWS Lambda"
downloadableFiles:
  - "https://github.com/ikk0/smartcam"
  - "https://projects.arduinocontent.cc/1f2340fe-a52a-444a-85d9-2ea2a112e2f8.ino"
  - "https://github.com/ikk0/smartcam"
  - "https://projects.arduinocontent.cc/1f2340fe-a52a-444a-85d9-2ea2a112e2f8.ino"
documentationLinks: []
passwordHash: "cd2a53d39c8718a317ae653157903b7456eea6358aa7a1fece9e04f410e0e739"
encryptedPayload: "U2FsdGVkX1+jp2BxKm5HcD+HedeMjReKijp7Nkf8jauPgxTSXmMlsDNyT9HGUiOP66Eq44lJMUbyBIe1DES33mwUL8Aoi1SYDy/WUK6rvkoJrlnKT7Ztz0bU049h3BXgU/fBNSLlLaQ/V6RYG9Sj6XWLGuulqmwfQWkZ7vWQ28KvLDmVpeFV3brayp65G7lv"
seoDescription: "Create an Alexa-controlled face recognizing Arduino Door Bell using AWS Rekognition for home security and visitor identification."
videoLinks:
  - "https://player.vimeo.com/video/257284726"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/alexa-controlled-face-recognizing-arduino-door-bell-fdd939_cover.jpg"
lang: "th"