สารบัญ:

Speaker-Aware Camara System (SPACS): 8 ขั้นตอน
Speaker-Aware Camara System (SPACS): 8 ขั้นตอน

วีดีโอ: Speaker-Aware Camara System (SPACS): 8 ขั้นตอน

วีดีโอ: Speaker-Aware Camara System (SPACS): 8 ขั้นตอน
วีดีโอ: How to Setup Dahua Audio AoC Camera - Configure Microphone CCTV Cameras Mic Over Coax (or Cat5 UTP) 2024, พฤศจิกายน
Anonim
Image
Image
ฮาร์ดแวร์ - การพิมพ์ 3 มิติ
ฮาร์ดแวร์ - การพิมพ์ 3 มิติ

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

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

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

เครื่องขยายเสียงไมโครโฟน Electret - MAX4466 X 2

www.adafruit.com/product/1063

ไมโครเซอร์โวมอเตอร์ X 1

www.adafruit.com/product/169

สมาร์ทโฟน Android X 1

ขั้นตอนที่ 2: ฮาร์ดแวร์ - การพิมพ์ 3 มิติ

ฮาร์ดแวร์ - การพิมพ์ 3 มิติ
ฮาร์ดแวร์ - การพิมพ์ 3 มิติ
ฮาร์ดแวร์ - การพิมพ์ 3 มิติ
ฮาร์ดแวร์ - การพิมพ์ 3 มิติ

เพื่อการนำไปใช้งานอย่างรวดเร็ว เราตัดสินใจพิมพ์ 3 มิติสำหรับกล่องที่เราต้องการ มีสององค์ประกอบหลักสำหรับเปลือกหุ้ม เครื่องเล่นแผ่นเสียงและที่วางสมาร์ทโฟน เราใช้เครื่องเล่นแผ่นเสียงจากลิงค์นี้ (https://www.thingiverse.com/thing:141287) ซึ่งมีเคส Arduino ที่ด้านล่างและโต๊ะหมุนที่สามารถเชื่อมต่อกับเซอร์โวมอเตอร์ได้ เราใช้ขาตั้งสมาร์ทโฟนจากลิงก์นี้ (https://www.thingiverse.com/thing:2673050) ซึ่งพับได้และปรับมุมได้เพื่อให้เราปรับเทียบมุมได้อย่างสะดวก รูปด้านล่างแสดงชิ้นส่วนที่พิมพ์ 3 มิติที่ประกอบเข้าด้วยกัน

ขั้นตอนที่ 3: ฮาร์ดแวร์ - ส่วนประกอบอิเล็กทรอนิกส์

ฮาร์ดแวร์ - ส่วนประกอบอิเล็กทรอนิกส์
ฮาร์ดแวร์ - ส่วนประกอบอิเล็กทรอนิกส์
ฮาร์ดแวร์ - ส่วนประกอบอิเล็กทรอนิกส์
ฮาร์ดแวร์ - ส่วนประกอบอิเล็กทรอนิกส์

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

ขั้นตอนที่ 4: ซอฟต์แวร์

ระบบของเราใช้ข้อมูลภาพจากการจดจำใบหน้าเป็นหลักในการติดตามผู้พูดเนื่องจากมีความแม่นยำมากขึ้น เพื่อให้ Feather ได้รับข้อมูลภาพจากแอพ Android เราใช้ Bluetooth Low Energy เป็นวิธีการสื่อสารหลัก

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

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

ซอฟต์แวร์ SPACS อยู่ที่

ขั้นตอนที่ 5: ซอฟต์แวร์ - เสียง

ซอฟต์แวร์ - เสียง
ซอฟต์แวร์ - เสียง

เสียง (YH)

ในการค้นหาแหล่งที่มาของเสียงที่เข้ามา อันดับแรก เราพยายามใช้ความแตกต่างของเวลาระหว่างไมโครโฟนสองตัว แต่มันไม่ถูกต้องเท่าที่เราคาดไว้เนื่องจากอัตราการสุ่มตัวอย่าง (~900Hz) ของ Arduino Leopard ซึ่งเราทดสอบสัญญาณเสียงนั้นช้าจนไม่สามารถรับความแตกต่างของเวลาระหว่างไมโครโฟนที่ห่างกัน 10 ซม.

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

  1. รับอินพุตจากไมโครโฟนสองตัวและลบออฟเซ็ตเพื่อรับแอมพลิจูดของสัญญาณ
  2. สะสมค่าสัมบูรณ์ของแอมพลิจูดต่อ MIC สำหรับ 500 ปิ๊กอัพ
  3. บันทึกส่วนต่างของค่าสะสมลงในคิวที่มี 5 ช่อง
  4. ส่งกลับผลรวมของคิวเป็นค่าความแตกต่างสุดท้าย
  5. เปรียบเทียบค่าสุดท้ายกับเกณฑ์เพื่อตัดสินใจว่าเสียงมาจากไหน

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

ขั้นตอนที่ 6: ซอฟต์แวร์ - การตรวจจับใบหน้าและการพูด

สำหรับการจดจำใบหน้า เราใช้ ML Kit สำหรับ Firebase ที่เผยแพร่โดย Google (https://firebase.google.com/docs/ml-kit) ML Kit จัดเตรียม API การตรวจจับใบหน้าที่ส่งคืนกล่องล้อมรอบของแต่ละใบหน้าและจุดสังเกต ซึ่งรวมถึงตา จมูก หู แก้ม และจุดต่างๆ ในปาก เมื่อตรวจพบใบหน้าแล้ว แอปจะติดตามการเคลื่อนไหวของปากเพื่อระบุว่าบุคคลนั้นกำลังพูดอยู่หรือไม่ เราใช้วิธีการที่อิงตามเกณฑ์ที่เรียบง่ายซึ่งให้ประสิทธิภาพที่เชื่อถือได้ เราใช้ประโยชน์จากความจริงที่ว่าการเคลื่อนไหวของปากมีขนาดใหญ่ขึ้นทั้งในแนวนอนและแนวตั้งเมื่อมีคนพูด เราคำนวณระยะทางแนวตั้งและแนวนอนของปากและคำนวณค่าเบี่ยงเบนมาตรฐานสำหรับแต่ละระยะทาง ระยะทางถูกปรับให้เข้ากับขนาดของใบหน้า ส่วนเบี่ยงเบนมาตรฐานที่ใหญ่กว่าหมายถึงการพูด วิธีการนี้มีข้อจำกัดว่าทุกกิจกรรมเกี่ยวข้องกับการเคลื่อนไหวของปาก รวมถึงการกิน การดื่ม หรือการหาว ก็สามารถรับรู้ได้ว่าเป็นการพูด แต่มีอัตราการติดลบเท็จต่ำ

ขั้นตอนที่ 7: ซอฟต์แวร์ - มอเตอร์หมุน

ซอฟต์แวร์ - มอเตอร์หมุน
ซอฟต์แวร์ - มอเตอร์หมุน

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

ขั้นตอนที่ 8: การปรับปรุงในอนาคต

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

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

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

แนะนำ: