Trong bài viết này mình xin giới thiệu mã nguồn nhận diện khuôn mặt từ hình ảnh webcam được chia sẽ từ https://thigiacmaytinh.com/ . Đây là webside rất hữu ích hỗ trợ phát triển ứng dụng của bạn.
Nguồn: https://thigiacmaytinh.com/
Chương trình có sử dụng module FaceComp để nhận diện khuôn mặt từ hình ảnh webcam.
1. Nguyên lý hoạt động
Mỗi người sẽ nhìn vào webcam, máy tính sẽ nhận diện tự động hoặc thủ công là người này đã từng xuất hiện chưa. Nếu chưa xuất hiện trong khoảng thời gian cho phép thì máy sẽ phát gạo.
Sau khi chụp nếu thỏa mãn điều kiện phát gạo thì phần mềm xuất tín hiệu qua mạch Arduino Nano, mạch này điều khiển relay cho dòng điện chạy qua. Trong phần mềm đã có code tự động detect board mạch và điều khiển tín hiệu sang board.
2. Chuẩn bị
- Visual Studio 2015 trở lên
- C++ redistributable 2015 x64
- Download source code: tại đây
- Arduino Nano và cáp Nano USB
- Relay SSR-40-DA 3~32VDC FOTEH
3. Build phần mềm
Sau khi build thành công thì giao diện phần mềm như hình bên dưới
Khi hoạt động chương trình sẽ có luồng xử lý như sau:
- Chụp ảnh từ webcam và save ảnh jpg vào folder temp
- Trích xuất đặc trưng khuôn mặt (landmark) và save thành file *.bin cùng tên với ảnh
- So sánh đặc trưng với các ảnh trong folder images
- Nếu chưa có người trong thư viện thì cấp mã số mới
- Nếu đã có thì tính số ngày và cập nhật lại giờ
- Move file ảnh & file landmark .bin vào folder tương ứng với mã số của người đó
Nếu bạn build không thành công có thể vào folder bin/Rice_ATM-x64/ chạy chương trình Rice_ATM.exe chúng tôi build sẵn.
Chương trình sử dụng database SQLite để lưu trữ thông tin của người chụp ảnh.
4. Mạch đóng mở relay
Phần mềm tự động tìm các cổng COM xem Arduino đang kết nối vào cổng nào. Nếu phát hiện có board Arduino sẽ tự động connect để gửi tín hiệu.
Bạn cần nạp code Arduino để nhận tín hiệu từ máy tính gửi xuống, mình quy ước khi có ký tự O (OK) sẽ xuất tín hiệu ra chân A0. Khi chân A0 xuất tín hiệu sẽ tạo 1 hiệu điện thế 5V kích relay rắn SSR-40-DA phát gạo.
Relay SSR-40-DA là loại relay dùng cho điện AC (220V dân dụng). Nếu bạn dùng điện DC 12V/24V để thì có thể sử dụng các loại relay SSR-40-DD
Tùy theo loại động cơ mà có thể thay thế bằng các loại relay khác cho phù hợp
- Cài driver Arduino Nano CH340
- Nạp code cho Arduino Nano tại folder Rice_ATM/Arduino/trigger_relay
- Kết nối dây điện tương tự hình ở trên
- 2 chân ở trên mắc nối tiếp trong mạch 220V tương tự như 1 công tắc
Bạn nên sử dụng đế ra chân Arduino Nano như hình dưới để ổn định khi sử dụng, không sợ lỏng dây
5. Download chương trình build sẵn
Nếu bạn không biết cách build phần mềm có thể dùng phần mềm đã build sẵn:
https://viscomsolution.com/download/Rice_ATM-x64_1.3.2.zip
6. Nguồn bài viết và tham khảo
Bài viết có nguồn từ: https://thigiacmaytinh.com/source-code-phan-mem-nhan-dien-khuon-mat-cho-atm-gao/
Tác giả: vohungvi