Raspango – source code server nhận diện hình ảnh

Raspango là tên source code web server chúng tôi tự viết dùng để cung cấp API xử lý ảnh. Raspango sử dụng framework Django chạy trên nhiều hệ điều hành như Windows, Centos, Ubuntu và Raspbian để xử lý ảnh, nhận diện vật thể và trả về cho client. Đối với Raspberry Pi còn có thêm chức năng đọc tín hiệu cảm biến, xuất tín hiệu ra các chân GPIO,…

Khi lập trình OpenCV bằng script Python thì mỗi lần chạy là phải load lại model. Với những model nhẹ thì không sao, còn những model nặng thì việc load lại tốn rất nhiều thời gian. Mục đich của Raspango là load sẵn model để sử dụng nhiều lần.

Việc kết hợp giữa Django và OpenCV giúp cho nhiều ngôn ngữ khác có thể gọi đến Python thông qua RESTful API. Nhờ đó các bạn có thể chạy web server ở 1 máy và nhiều máy khác truy cập được, kể cả thiết bị di động.

Việc chuẩn bị source code Raspango này dựa theo các câu hỏi của các bạn, tổng hợp lại thành example ứng với các câu hỏi nhiều nhất.

Ưu điểm của Raspango

Raspango được customize và cấu trúc thư mục phù hợp nhất với việc gắn các thư viện Machine Learning như OpenCV, Tensorflow,… Các thư viện này được đặt trong folder lib.

  • Dễ sử dụng, tốc độ nhanh khi gọi model predict hình ảnh
  • Có giao diện web sử dụng bootstrap dễ dàng điều chỉnh, design layout bằng html/css
  • Cung cấp API cho nhiều client khác nhau như browser, app,…
  • Sử dụng SQLite nên không cần cài đặt DB Management, chỉ cần load là chạy
  • Chạy được trên cả Windows lẫn Linux (Ubuntu, Centos, Rasbian – nay là Raspberry Pi OS)
  • Play webcam từ phía backend (server) lẫn frontend (browser)
  • Raspango có thể stream dữ liệu realtime từ server về client mà không cần cliend request liên tục
  • Trong folder lib/hardware có sẵn 1 số code điều khiển phần cứng của Raspberry Pi
  • Loại bỏ các phương thức xác thực, chống hack, chỉ tập trung giới thiệu cách gọi OpenCV

Nguyên lý hoạt động và ứng dụng

  • Hình ảnh từ webcam hoặc ảnh load từ file đều chuyển thành string base64, sau đó gửi về phía backend xử lý
  • Backend chấp nhận ảnh dạng binary lẫn base64, sau đó xử lý và gửi về kết quả
  • Có code example điều khiển Shield 4 relay của Raspberry Pi

Trang chủ là các thông tin về server

Stream webcam từ server về client

Example upload ảnh để detect khuôn mặt, ảnh up lên server dạng base64, server detect khuôn mặt và cũng trả về định dạng base64

Example detect đeo khẩu trang

Hướng dẫn sử dụng

  1. Bước 1: download Python 3.6.5 và cài đặt, sau đó restart máy tính.
  2. Bước 2: download Visual Studio Code
  3. Bước 3: Clone source code Raspango
  4. Bước 4: Cài đặt các thư viện pip bằng lệnh pip install -r requirements.txt
  5. Bước 5: chạy file start.bat
  6. Bước 6: mở Chrome nhập địa chỉ localhost, trang web sẽ yêu cầu nhập username và password

Username: admin
Password: admin

Trên hệ điều hành Linux để chạy TGMTdjango thì gọi lệnh:
sudo bash start.sh

Nếu bạn gặp vấn đề gì với Raspango vui lòng post vào trong group thigiacmaytinh tui sẽ trả lời.

Leave a Reply