Test thử Orange Pi CM5 với mã nguồn nhận dạng đối tượng bytetrack

Trước đây tôi đã có 1 bài test thử mã nguồn nhận dạng đối tượng (Object Detection) dùng riêng cho chip RK3588, và có sử dụng ByteTrack để nhận dạng. Thông tin thêm về ByteTrack bạn có thể xem ở bài trước

Cài đặt Ubuntu 22.04 và test thử demo Object Tracking dùng NPU của RK3588

Lần này, sẵn tiện với Orange Pi CM5 đang cài Ubuntu ở bài trước (Test thử Orange Pi CM5 bản 4G32GB trên các hệ điều hành Android, OpenWRT và Ubuntu 22.04) tôi cũng thử CM5 với ByteTrack thông qua một webcam thông thường có độ phân giải tối đa là 1280×720, kết nối qua cổng USB. Đối với sản phẩm này, Orange Pi CM5 baseboard có tới 4 cổng kết nối CSI cho camera, do đó về lý thuyết bạn có thể kết nối 4 camera khác nhau với cùng ứng dụng nhận dạng đối tượng này và dùng phần mềm nhận dạng đối tượng (Object Detection) vận hành cho cả 4 camera cùng lúc. Thử nghiệm cho thấy đối với 1 camera, mặc dù Orange PI CM5 chỉ dùng chip RK3588S, nhưng NPU của bo mạch chỉ dùng khoảng từ 7-9% hiệu suất.

Ngoài ra, ByteTrack còn có khả năng gán mỗi đối tượng 1 ID và từ đó track theo đường đi của đối tượng và lưu trữ, tuy mã nguồn còn chưa được hoàn thiện nhưng đủ cho thấy khả năng sử dụng Orange Pi CM5  như một thiết bị ngoại biên xử lý hình ảnh để giám sát là hoàn toàn phù hợp. Mã nguồn của phần mềm này được chia sẻ tại Github: https://github.com/swdee/go-rknnlite/tree/master/example/stream

Gần đây, mã nguồn này đã có chính sửa và nâng cấp lên khá nhiều, chạy mượt hơn với Webcam và các camera khác nhau. Ở bài trước tôi đã không viết lại hướng dẫn ra, lần này tôi sẽ viết lại hướng dẫn sử dụng của phần mềm này để các bạn có thể test và phát triển lên phần mềm riêng của chính mình. Các bước như sau:

1. Cài Golang

version=$(curl https://go.dev/VERSION?m=text | head -n1)
wget "https://dl.google.com/go/${version}.linux-arm64.tar.gz"
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${version}.linux-arm64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.profile
source ~/.profile

sau đó hãy đánh thử lệnh go env, nếu trả về các tham số của go là bạn cài xong.

2. Cài rknn-toolkit2, tôi dùng bản cài tự động của https://github.com/Pelochus/ezrknpu

nếu các bạn muốn tìm hiểu kỹ hơn về rknn-toolkit của hãng, hãy tham khảo github này https://github.com/airockchip/rknn-toolkit2

git clone https://github.com/Pelochus/ezrknpu
cd ezrknpu && sudo bash install.sh

3. Cài GoCV

git clone https://github.com/hybridgroup/gocv.git
cd gocv
make install

chỗ này có thể báo thiếu một số thư viện của make hoặc build-essential, bạn tự tìm hiểu trên mạng để cài thêm

4. Tải về RKNNLite

git clone https://github.com/swdee/go-rknnlite
cd go-rknnlite/example
git clone https://github.com/swdee/go-rknnlite-data.git data

trong rknnlite có khá nhiều mục, nhưng để thử mã nguồn bạn đi vào thư mục examples, và sau đó là stream

lệnh chạy bytetrack go run bytetrack.go --help

Video demo:

 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *