Mục lục:

Hệ thống Loa-Aware Camara (SPACS): 8 bước
Hệ thống Loa-Aware Camara (SPACS): 8 bước

Video: Hệ thống Loa-Aware Camara (SPACS): 8 bước

Video: Hệ thống Loa-Aware Camara (SPACS): 8 bước
Video: WEBINAR SURVEILLANCE SOLUTIONS: Bí quyết xây dựng hệ thống camera hiệu quả | Mstar Corp 2024, Tháng mười một
Anonim
Image
Image
Phần cứng - In 3D
Phần cứng - In 3D

Hãy tưởng tượng một cuộc gọi hội nghị trong đó nhiều diễn giả vây quanh một camera. Chúng ta thường gặp trường hợp góc nhìn hạn chế của máy ảnh thường không nhìn được vào người nói. Hạn chế phần cứng này làm giảm đáng kể trải nghiệm người dùng. Nếu máy ảnh có thể nhìn vào loa đang hoạt động, khán giả ở xa sẽ tham gia vào cuộc trò chuyện nhiều hơn trong cuộc gọi. Trong dự án này, chúng tôi đề xuất một hệ thống camera (nguyên mẫu) phát hiện và theo dõi người nói đang hoạt động bằng cách quay camera về phía người nói. Hệ thống sử dụng cả phương pháp tiếp cận dựa trên hình ảnh và âm thanh. Khi khuôn mặt được nhận diện từ máy ảnh, nó sẽ xác định người nói và tính toán góc để xoay. Khi không phát hiện được khuôn mặt ở góc hiện tại, hệ thống sẽ tìm kiếm người nói dựa trên hướng của tín hiệu âm thanh đến.

Bước 1: Vật liệu

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

Bộ khuếch đại micrô điện tử - MAX4466 X 2

www.adafruit.com/product/1063

Động cơ Servo Micro X 1

www.adafruit.com/product/169

Điện thoại thông minh Android X 1

Bước 2: Phần cứng - In 3D

Phần cứng - In 3D
Phần cứng - In 3D
Phần cứng - In 3D
Phần cứng - In 3D

Để thực hiện nhanh chóng, chúng tôi quyết định in 3D thùng loa mà chúng tôi cần. Có hai thành phần chính cho thùng loa; một bàn xoay và một giá đỡ điện thoại thông minh. Chúng tôi đã sử dụng bàn xoay từ liên kết này (https://www.thingiverse.com/thing:141287), nơi nó cung cấp hộp Arduino ở dưới cùng và một bàn xoay có thể được kết nối với động cơ servo. Chúng tôi đã sử dụng một giá đỡ điện thoại thông minh từ liên kết này (https://www.thingiverse.com/thing:2673050), có thể gập lại và điều chỉnh góc để cho phép chúng tôi hiệu chỉnh góc một cách thuận tiện. Hình dưới đây cho thấy các bộ phận in 3D được lắp ráp với nhau.

Bước 3: Phần cứng - Linh kiện điện tử

Phần cứng - Linh kiện điện tử
Phần cứng - Linh kiện điện tử
Phần cứng - Linh kiện điện tử
Phần cứng - Linh kiện điện tử

Có bốn thành phần có dây; Adafruit Feather, hai micrô và một động cơ. Đối với bao bì nhỏ gọn, chúng tôi hàn (các vòng tròn màu xám) các dây mà không sử dụng bảng mạch. Dưới đây mô tả sơ đồ mạch và hiện vật thực tế.

Bước 4: Phần mềm

Hệ thống của chúng tôi chủ yếu sử dụng thông tin trực quan từ nhận dạng khuôn mặt để theo dõi người nói vì nó chính xác hơn. Để Feather nhận được thông tin trực quan từ ứng dụng Android, chúng tôi sử dụng Bluetooth Low Energy làm phương thức giao tiếp chính.

Khi phát hiện bất kỳ khuôn mặt nào, ứng dụng sẽ tính toán góc mà động cơ cần xoay để tập trung loa vào tâm khung hình. Chúng tôi đã phân tích các tình huống có thể xảy ra và xử lý như sau:

  1. Nếu (các) khuôn mặt được phát hiện và đang nói, nó sẽ tính toán điểm giữa của người nói và trả về góc tương đối cho Feather.
  2. Nếu (các) khuôn mặt được phát hiện và không có khuôn mặt nào đang nói, nó cũng sẽ tính toán điểm giữa của các khuôn mặt và trả về góc tương ứng.
  3. Nếu bất kỳ khuôn mặt nào không được phát hiện, hệ thống sẽ thay đổi logic theo dõi người nói từ hình ảnh sang âm thanh.

Phần mềm SPACS được đặt tại

Bước 5: Phần mềm - Âm thanh

Phần mềm - Âm thanh
Phần mềm - Âm thanh

Âm thanh (YH)

Để xác định nguồn âm thanh đến, trước tiên chúng tôi cố gắng sử dụng chênh lệch thời gian giữa hai micrô. Nhưng nó không chính xác nhiều như chúng tôi mong đợi vì tốc độ lấy mẫu (~ 900Hz) của Arduino Leopard, nơi chúng tôi kiểm tra tín hiệu âm thanh, chậm đến mức không thể nhận ra chênh lệch thời gian giữa các micrô cách nhau 10cm.

Chúng tôi đã thay đổi kế hoạch sử dụng chênh lệch cường độ giữa hai tín hiệu âm thanh đầu vào. Kết quả là, chiếc lông vũ lấy hai tín hiệu âm thanh và xử lý chúng để phát hiện âm thanh phát ra từ đâu. Quá trình xử lý có thể được mô tả bằng các bước sau:

  1. Lấy đầu vào từ hai micrô và trừ đi phần bù để có được biên độ của tín hiệu.
  2. Tích lũy các giá trị tuyệt đối của biên độ trên mỗi MIC cho 500 xe bán tải.
  3. Lưu sự khác biệt của các giá trị tích lũy vào hàng đợi có 5 vị trí.
  4. Trả về tổng các hàng đợi dưới dạng giá trị chênh lệch cuối cùng.
  5. So sánh giá trị cuối cùng với các ngưỡng để quyết định nơi phát ra âm thanh.

Chúng tôi đã tìm ra ngưỡng bằng cách vẽ biểu đồ giá trị cuối cùng trong các trường hợp khác nhau, bao gồm cả âm thanh phát ra từ trái và phải. Ngoài các ngưỡng cho giá trị cuối cùng, chúng tôi cũng đặt một ngưỡng khác cho giá trị trung bình của các biên độ tích lũy trong bước 2 để lọc ra tiếng ồn.

Bước 6: Phần mềm - Phát hiện khuôn mặt và giọng nói

Để nhận dạng khuôn mặt, chúng tôi đã sử dụng ML Kit cho Firebase do Google phát hành (https://firebase.google.com/docs/ml-kit). ML Kit cung cấp API phát hiện khuôn mặt trả về hộp giới hạn của từng khuôn mặt và các điểm mốc của khuôn mặt, bao gồm mắt, mũi, tai, má và các điểm khác nhau trên miệng. Sau khi nhận diện được khuôn mặt, ứng dụng sẽ theo dõi chuyển động của miệng để xác định xem người đó có đang nói hay không. Chúng tôi sử dụng phương pháp đơn giản dựa trên ngưỡng mang lại hiệu suất đáng tin cậy. Chúng tôi đã tận dụng thực tế là chuyển động của miệng trở nên lớn hơn theo cả chiều ngang và chiều dọc khi một người nói. Chúng tôi tính toán khoảng cách theo chiều dọc và chiều ngang của miệng và tính độ lệch chuẩn cho mỗi khoảng cách. Khoảng cách được chuẩn hóa theo kích thước của khuôn mặt. Độ lệch chuẩn lớn hơn cho thấy khả năng nói. Cách tiếp cận này có hạn chế là mọi hoạt động liên quan đến cử động miệng, bao gồm ăn, uống hoặc ngáp, đều có thể được coi là nói. Tuy nhiên, nó có tỷ lệ âm tính giả thấp.

Bước 7: Phần mềm - Động cơ quay

Phần mềm - Động cơ quay
Phần mềm - Động cơ quay

Vòng quay của động cơ không đơn giản như chúng tôi mong đợi do việc kiểm soát tốc độ quay. Để điều khiển tốc độ, chúng ta khai báo một biến đếm toàn cục để cho phép động cơ chỉ quay khi biến đó đạt đến một giá trị nhất định. Chúng tôi cũng đã khai báo một biến toàn cục khác cho biết động cơ có đang chuyển động hay không để cho micrô biết để nó có thể tránh âm thanh phát ra từ chuyển động quay của động cơ.

Bước 8: Cải tiến trong tương lai

Một trong những hạn chế là động cơ trở nên chao đảo ở một số góc nhất định. Có vẻ như động cơ không đủ mạnh để vượt qua mô-men xoắn tạo ra khi quay smartphone. Nó có thể được giải quyết bằng cách sử dụng một động cơ mạnh hơn hoặc điều chỉnh vị trí của điện thoại thông minh về phía trung tâm của vòng quay để giảm mô-men xoắn.

Phát hiện hướng âm thanh dựa trên âm thanh có thể được cải thiện bằng một phương pháp phức tạp hơn. Chúng tôi muốn thử phương pháp tạo chùm âm thanh để xác định hướng của âm thanh tới. Chúng tôi đã thử với thời gian xuất hiện của các tín hiệu âm thanh. Tuy nhiên, tốc độ lấy mẫu của Feather bị giới hạn để phát hiện sự khác biệt về thời gian khi các micrô chỉ cách khoảng 10cm.

Phần cuối cùng còn thiếu của nguyên mẫu này là đánh giá khả năng sử dụng. Một cách đầy hứa hẹn để đánh giá là tích hợp hệ thống với nền tảng cuộc gọi điện video hiện có và quan sát phản hồi của người dùng. Những phản hồi đó sẽ giúp cải thiện hệ thống và thực hiện lần lặp tiếp theo của nguyên mẫu này.

Đề xuất: