Hướng dẫn khởi đầu mắt Robot tự động theo dõi khuân mặt

Mắt Robot tự động theo dõi khuân mặt

Mắt Robot tự động theo dõi khuân mặt

Bài viết này sẽ hướng dẫn bạn làm thế nào nhận dạng và bám theo chuyển động của gương mặt dùng Arduino và Webcam. Trên cơ sở tạo cảm hứng gợi ý các bạn có thể tích hợp trên Robot an ninh bằng các VĐK thông dụng để phát triển ứng dụng của mình.
Giới thiệu:
    Ứng dụng này bạn có cảm giác như Webcam nhìn ta và luôn hướng nó về phía mình rất thú vị. Để làm được hướng dẫn này bạn cần có kiến thức về điều khiển động cơ Servo, Lập trình C++ trên Visual Studio 10.
Kết quả hình ảnh cho The face recognition arduino  Kết quả hình ảnh cho The face recognition arduino
Video: https://youtu.be/ZaV_aVZL87o
 
Theo video trên, chúng ta thấy rằng Webcam tự bám theo chuyển động của Tấm ảnh. Thì nhìn chung, nguyên tắc hoạt động như sau:
- Đầu tiên webcam sẽ capture video về máy tính, ở đó ta cần 1 phần mềm nhận dạng gương mặt và cho ta biết hiện tại gương mặt đang ở vị trí nào. Khi gương mặt chuyển động thì vị trí của nó trên ảnh thay đổi từ đó ta dự đoán được hướng di chuyển của nó, lên hay xuống, trái hay phải và ta sẽ cố gắng điều khiển 2 động cơ servo sao cho gương mặt sẽ về đúng giữa video capture được.
OpenCV là gì: Đây là bộ thư viện nhận dạng qua camera với hàng trăm thuật toán, và tuyệt nhất nó là mã nguồn mở, bạn có thể dễ dàng đọc các dòng code của nó và nghiên cứu thuật toán. OpenCV được viết trên C++ nên bạn có thể dễ dàng viết trên đa nền tảng từ PC, Tablet hay IoT.
Hướng dẫn:

Máy tính cài sẵn Arduino IDE

- OpenCV 2.3

Microsoft Visual C++ 2010 Express SP1

Serial C++ Library for Win32 (by Thierry Schneider)

Mã nguồn hoạt động gồm có: cam_servo.ino và techbitarfacedetection.cpp trong mục đính kèm. Bạn tải về, dịch và nạp cam_servo.ino và arduino

Bạn tiến hành tải về và cài các phần mềm trên

 

Động cơ Servo: Tiến hành ráp và cố định đông cơ, Webcam như hình trên.

Dây vàng động cơ X nối với D9 Arduino
Dây vàng động cơ Y nối với D9 Arduino
Dây đỏ 2 động cơ nối với 5V
Dây vàng 2 động cơ nối với GND.

Cắm Webcam vào máy tính. Cắm Arduino vào máy tính, kiểm tra xem hiện tại Board Arduino đang ở Port nào ta sửa lại code techbitarFaceDetection.cpp cho đúng (dòng 45 arduino_com->connect("COM7", 57600, spNONE);

Tốc độ baud mặc định là 57600 cho cả máy tính và Arduino. Nếu bạn muốn đổi cần đổi cả 2.

 

Mã nguồn tham khảo:

 
 

Tiến hành dịch file ino và nạp vào Arduino và chạy file cpp trên máy tính. Nếu bạn đấu nối đúng hệ thống sẽ chạy, Nếu gặp vấn đề gì vui lòng comment bên dưới.

Tài liệu liên quan:

OpenCV Face Detection/Tracking Guides

Face Tracking with a Pan/Tilt Servo Bracket by zagGrad
https://www.sparkfun.com/tutorials/304

Arduino + Servo + openCV Tutorial [openFrameworks]
https://www.creativeapplications.net/tutorials/arduino-servo-opencv-tutorial-openframeworks


OpenCV & Microsoft Visual C++ Integration

OpenCV 2.3.1 and Visual Studio 2010
https://www.deveature.com/2011/11/24/opencv-2-3-1-and-visual-studio-2010/

Getting Started with OpenCV 2.3 in Microsoft Visual Studio 2010 in Windows
https://siddhantahuja.wordpress.com/2011/07/18/getting-started-with-opencv-2-3-in-microsoft-visual-studio-2010-in-windows-7-64-bit

OpenCV 2.1.0 with Visual Studio 2010
https://blog.aguskurniawan.net/post/OpenCV-210-with-Visual-Studio-2010.aspx

How to build applications with OpenCV inside the Microsoft Visual Studio
https://opencv.itseez.com/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html

Using OpenCV 2.3.1 with Visual Studio 2010 (tutorial)
https://www.anlak.com/using-opencv-2-3-1-with-visual-studio-2010-tutorial