Source code phần mềm nhận diện khuôn mặt cho ATM gạo

Có một số Mạnh Thường Quân tài trợ gạo cho người gặp khó khăn vì COVID qua máy “ATM gạo”. Chúng tôi đã làm tặng phần mềm nhận diện khuôn mặt để phát gạo, nay chúng tôi share source code để quý vị tự sửa theo nhu cầu. Mỗi nơi sẽ có 1 quy tắc phân phát khác nhau, ví dụ như 1 người chỉ nhận được 1 phần trong 7 ngày, quý vị sửa lại cho đúng nhu cầu của mình.

Chương trình có sử dụng module FaceComp để nhận diện khuôn mặt từ hình ảnh webcam.

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.

Chuẩn bị

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.

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

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

Nếu có vấn đề gì trong quá trình build, vui lòng liên hệ Võ Hùng Vĩ (1990) qua số điện thoại 0939.825.125 để được giải đáp. Chúc các bạn thành công.

Leave a Reply