Trí thông mình nhân tạo với Watson IBM và Raspberry Pi (Phần 2): Nhận dạng khuôn mặt, giới tính và tuổi

Mô tả dự án: 

Bài trước tui đã hướng dẫn các bạn làm quen với Watson IBM trên Raspberry Pi. Bây giờ chúng ta sẽ quay trở lại với bài toán nhận diện khuôn mặt. Trong bài khóa "thông minh" với OpenCV, dữ liệu nhận dạng khuôn mặt được đưa ra bởi một thuật toán "tĩnh" OpenCV trên laptop của các bạn và sau đó kết quả được chép thủ công vào Raspberry Pi. Raspberry chỉ việc dựa vào kết quả training và đưa ra kết quả nhận diện khuôn mặt. Đây chưa phải là giải pháp tối ưu vì giả sử bạn muốn thay đổi thuật toán mới hoặc train cho tốt hơn thì không thể thực hiện trên Pi được. Thay vậy, bạn có thể dùng dịch vụ cloud của Watson cho việc training và chỉ việc up hình lên để Watson nhận diện. Kết quả sẽ được trả về qua json với lượng thông tin phong phú hơn nhiều. 

Nguyên lý

Nguyên lý hoạt động của hệ thống gồm 3 bước:

  • Webcam sẽ liên tục thu hình từ môi trường xung quanh.
  • Mỗi tấm hình thu được sẽ được phân tích qua OpenCV trên Raspberry Pi xem có khuôn mặt người hiện diện hay không. Ta thực hiện bước này trên Pi vì lí do đơn giản là số lượng phân tích miễn phí trên Watson bị giới hạn mỗi tháng.
  • Nếu có khuôn mặt người thì ta sẽ gửi lên Watson cloud và thu về kết quả bao gồm độ tuổi, giới tính và vị trí khuôn mặt trên bức hình

Cài đặt tài khoản

Các bạn tạo 1 tài khoản trên Bluemix để tiếp cận với kho ứng dụng của IBM. 

Sau đó bấm vào Catalog để tìm từ khóa Visual Recognition:

Bấm Create => Service credentials => View Credentials để lấy API key:

Code thoai

Đầu tiên là tải Python SDK

pip install --upgrade watson-developer-cloud

Sau đó vào Github của tui để tải các tập tin về. Sau đó mở tập tin Watson_face_recognition.py để chỉnh API key mà các bạn vừa được cung cấp ở bước trên

Cuối cùng là chạy python run.py

python Watson_face_recognition.py

Demo

Nếu webcam nhận diện được khuôn mặt của các bạn thì Watson sẽ xuất ra thông tin như sau:

Nếu các bạn uncomment dòng 30 thì sẽ nhận được các thông tin chung hơn về tấm hình vừa chụp được

Ở đăy Watson nhận diện khá tốt với mức tự tinh gần bằng 100% khi có người: Ngoài ra còn có thể nhận diện được người nổi tiếng như Obama nữa @_@

Các bạn có thể vào đây để hiểu rõ thêm về các API cũng như json. Không những Watson có thể nhận diện được khuôn mặt mà còn có các ứng dụng khác như nhận diện ngôn ngữ từ ảnh chụp văn bản, nhận diện đồ vật.. Bạn cũng có thể vào Git của Watson để tìm hiểu thêm các ứng dụng nhận diện ảnh khác.

Chúc các bạn thành công!

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Raspberry Pi Thiên Lý Nhãn (Phần 3): Khóa thông minh nhận dạng khuôn mặt với Raspberry Pi và OpenCV

Trong bài trước tui đã giới thiệu về việc nhận diện khuôn mặt với Raspberry Pi và webcam. Tuy nhiên bài chỉ dừng lại ở việc Raspberry Pi có thể nhận diện được khuôn mặt của bất kỳ ai đứng trước webcam mà thôi. Bài toán đặt ra là làm thế nào để Raspberry Pi nhận được khuôn mặt của chính bạn? Đây là một bài toán khó và thú vị. Khó là vì chúng ta cần thuật toán và khả năng xử lí hình ảnh mạnh. Thú vị là do ta có thể "chế cháo" kết hợp với các hệ thống bảo mật khác như vân tay, mật khẩu để tăng tính an ninh cho đề án của bạn. Vì độ phức tạp của đề án này nên tui sẽ chia ra làm 2 phần.

  • Phần đầu tiên là "phần mềm": chúng ta sẽ ghi lại khoảng 200 tấm hình webcam với khuôn mặt của bạn và huấn luyện máy tính với thuật toán chính diện (eigenfaces) của OpenCV. Do tài nguyên của Pi hạn hẹp nên bạn cần chạy phần này trên máy tính của mình. 
  • Phần tiếp theo là "phần cứng": ta nối Pi với relay và cho webcam chụp ảnh. Nếu Pi nhận diện được chính khuôn mặt của bạn thì sẽ kích relay.

Lưu ý là các bạn phải tải OpenCV về trên cả Pi và máy tính. Các bạn vào đây để download code và các tập tin cần thiết nữa: https://github.com/johnkimdinh/Facial-recognition-Raspberry-Pi-OpenCV

lên
2 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Arduino lưỡng quốc diễn nghĩa - Hậu kỳ

Đây là bài tiếp theo về cuộc đại chiến giữa hai công ty Arduino và ảnh hưởng của nó đến cục diện chung của cộng đồng IW.

lên
16 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: