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
7 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

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Lập trình GPIO Raspberry Pi trên iPad - Phần 1: Giới thiệu chi tiết về Blynk

Trong bài “Arduino hậu tiền chế” tui có giới thiệu sơ qua về Blynk. Do thời gian và không gian bài viết trước có hạn nên tui không thể viết chi tiết được. Bài này tui sẽ giới thiệu sâu hơn về apps bá đạo này.

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

Quang khắc (Lithography) - Công nghệ đằng sau sự thành công của công nghiệp Silicon

Năm 1946, chiếc máy tính ENIAC ra đời, đánh dấu khởi nguyên của công nghiệp máy tính. ENIAC sử dụng hơn 17000 bóng chân không, nặng gần 27 tấn và tiêu tốn 150kW. Dĩ nhiên là nó chỉ được dùng cho con nhà có điều kiện (bộ quốc phòng Mỹ lúc bấy giờ).

lên
9 thành viên đã đánh giá bài viết này hữu ích.