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 @[email protected]

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

Cách dùng Module L298N để điều khiển 4 động cơ DC

Trên cộng đồng đã có nhiều bài viết về động cơ, nhưng chưa có bài viết nào nói về cách để điều khiển cùng 1 lúc 4 động cơ mà chỉ dùng 1 module L298N. Nên hôm nay mình sẽ chia sẻ về cách để điều khiển cùng lúc 4 động cơ trên 1 module L298N.

lên
24 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ả

Setup Raspberry Pi Zero không cần màn hình

Một trong những lí do Pi Zero chưa thực sự phù hợp với túi tiền của người tiêu dùng là do giá thành bị độn lên bởi các thể loại cáp chuyển đổi (mini HDMI => HDMI, usb OTG, cáp nguồn) cần thiết để có thể khởi động giao tiếp với bo mạch tí hon này. Bài này tui sẽ giới thiệu với các bạn cách setup Pi Zero chỉ với 1 cáp USB OTG duy nhất, vừa là để cung cấp nguồn, vừa là cổng ssh. Lưu ý là phương pháp này chỉ áp dụng được với Pi Zero, các phiên bản Raspberry Pi khác không áp dụng được. 

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

Giới thiệu về ngôn ngữ Wolfram trên Raspberry Pi

Nếu bạn để ý thì các hệ điều hành Raspberry Pi sau này đều đi kèm với chương trình Wolfram và ngốn khá nhiều bộ nhớ (gần 500MB). Các bạn đừng xóa đi nhé, vì đây là 1 ngôn ngữ lập trình rất hay với kho dữ liệu sống khổng lồ bao la. Tuy nhiên đây là một ngôn ngữ lập trình còn khá mới mẻ ở Việt Nam và chưa nhận được sự quan tâm từ cộng đồng cho lắm.

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