Computer Vision & Pi – Chương 2. Triển khai model AI nhận diện đối tượng MobileNet SSD lên Raspberry Pi

Hế lô anh em Mì. Tiếp nối series về Pi, sau bài hôm trước về cài cắm các thứ trên Pi tại đây thì hôm nay chúng ta sẽ làm bước ngon hơn là cài đặt một model AI nhận diện đối tượng sư dụng mạng MobileNet SSD lên Pi nhé (object detection raspberry pi)

Trước đây khi mình nói tới nhận diện tối tượng thì mình hay nói đến YOLO và đã có một series về nó. Tuy nhiên, khi triển khai lên Pi hay các thiết bị có cấu hình yếu thì quá nặng và gần như là không chạy nổi. Do đó, chúng ta sẽ sử dụng Tiny Yolo và Mobilenet SSD. Các mạng này nhẹ hơn, đơn giản hơn và hi vọng sẽ chạy được trên Pi nhé.

Cùng bắt đầu nào!

Phần 1 – Chuẩn bị nguyên vật liệu

Do đây là chúng ta sẽ làm việc trên Pi, nên các bạn bật Pi lên, sau đó truy cập vào Terminal nhé.

AI trên pi

Bây giờ các bạn nên tạo môi trường ảo theo như Phần 2 trong bài số 1 tại đây. Sau khi tạo môi trường ảo và kích hoạt lên xong, các bạn tải mã nguồn về bằng lệnh:

git clone https://github.com/thangnch/MiAI_MobileNetSSD_Pi

Các bạn đợi một lúc sẽ thấy trong thư mục hiện tại của Pi có thêm folder MiAI_MobileNetSSD_Pi.

Ở đây mình coi như các bạn đã cài đặt đầy đủ thư viện như ở bài trước nhé.

Phần 2 – Cách thức triển khai bài toán và tối ưu cho Pi

Cách thức triển khai như sau:

  • Bước 1: Các bạn load model đã được train sẵn. Trong thư mục mã nguồn bạn tải về có 2 file MobileNetSSD_deploy.caffemodel và MobileNetSSD_deploy.prototxt, đây chính là 2 file weight và proto của model nhé. Các bạn tự tìm hiểu trên google chi tiết về 2 file này sau nha!
  • Bước 2: Các bạn kiểm tra và đọc dữ liệu từ video file hoặc webcam của người dùng sau đó capture ảnh, đưa qua model để detect các object trong đó.
  • Bước 3: Xử lý dữ liệu đầu ra và tiến hành hiển thị lên màn hình của Pi các thông tin detect được

Do Pi là một máy có cấu hình khá yếu nên mình đã thực hiện:

  • Resize ảnh đọc từ camera của Pi về size nhỏ hơn trước khi xử lý để tăng tốc độ xử lý
  • Thay vì việc đọc all các frame và nhận diện thì mình thêm 1 biến đếm và chỉ xử lý mỗi 20 frame mà thôi. Nghĩa là mình nhảy cóc 20 frame mới detect object một lần. Bạn nào dùng Pi 4 ngon hơn thì có thể giảm xuống, 10 frame thôi chẳng hạn.

Phần 3 – Chạy thử mã nguồn object detection raspberry pi

Các bạn hãy chuẩn bị 1 file video để thử nghiệm nhé. Ở đây mình sử dụng video tải về từ youtube về xe cộ tại đây nhé (https://www.youtube.com/watch?v=ZQSVspMZKy8).

Bây giờ mình chạy lệnh sau trên terminal của Pi

python mobilenetssd.py --vid_file test.mp4

Nếu bạn cài đặt ngon thì sẽ hiển thị video như sau:

Tiếp theo, các bạn tiến hành remove tham số đi để mở camera của Pi và tiến hành detect bằng lệnh:

python mobilenetssd.py

Và đây là kết quả:

object detection on Pi

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

Hãy join cùng cộng đồng Mì AI nhé!

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn
Youtube: http://bit.ly/miaiyoutube

Related Post

13 Replies to “Computer Vision & Pi – Chương 2. Triển khai model AI nhận diện đối tượng MobileNet SSD lên Raspberry Pi”

  1. nếu không có Raspberry thì có thiết bị gì khác thay thế để demo thử được không a, vì e muốn thực hành như bài a nêu nhưng k có điều kiện mua Pi

  2. em muốn train model này chỉ đối tượng là “người” thôi có được không ạ?

  3. Em chào anh, em có thể triển khai model AI này lên trên điện thoại android đc ko ạ

Leave a Reply

Your email address will not be published. Required fields are marked *