Như các bạn đã biết, Orange Pi 5 MAX là phiên bản cuối cùng của dòng Orange Pi 5 series của hãng. Đây là phiên bản tối ưu hơn cho các ứng dụng AI, thị giác máy tính và cực kỳ phù hợp khi sử dụng như một máy tính ngoại biên (edge computer) trong hệ thống.
Tiếp tục ra mắt Orange Pi 5 Max tối ưu hơn cho các ứng dụng AI
Ở bài viết này, tôi sẽ hướng dẫn các bạn cài bản Ubuntu 22.04 cho Rockchip của Joshua, cài trên eMMC hoặc SSD, và sau đó là demo mã nguồn nhận diện đối tượng sử dụng Bytetrack, dùng NPU sẵn có trên Chip RK3588.
Cài đặt Hệ điều hành Ubuntu trên Orange Pi 5 MAX
Đầu tiên, bạn cần tải về 1 file cài của bản Ubuntu 22.04 cho Orange Pi 5 MAX tại link sau: https://joshua-riek.github.io/ubuntu-rockchip-download/boards/orangepi-5-max.html
Trong link này có cả bản Ubuntu 24.04, tuy nhiên trong khuôn khổ bài viết này, tôi sẽ chỉ sử dụng Ubuntu 22.04 bản Desktop.
Có nhiều cách cài HDH lên eMMC hoặc SSD, tuy nhiên cách dùng thẻ nhớ để cài bản ban đầu là đơn giản nhất. Do vậy, bạn hãy sử dụng 1 thẻ nhớ microSD tối thiểu 16GB, cắm vào PC của bạn, format lại như ban đầu bằng phần mềm SD Card Formatter. Tiếp đó, sử dụng Win32DiskImager hoặc Balena Etcher để flash file img.xz đã tải ở bên trên vào thẻ nhớ (riêng đối với Win32DiskImager bạn phải giải nén để lấy file đuôi .img vì nó không hỗ trợ nén .img.xz)
Sau khi flash xong trên thẻ, bạn cắm vào khe thẻ nhớ của Orange Pi 5 MAX, cắm nguồn điện, cắm màn hình qua HDMI, bàn phím chuột và khởi động như một chiếc máy tính bình thường.
Sau một vài câu hỏi khởi động, gần giống như Windows, các bạn sẽ được sử dụng Desktop của Ubuntu 22.04 tương tự như hình bên dưới, nếu đã có eMMC hoặc SSD gắn trên bo mạch, các bạn sẽ thấy các ổ đĩa chờ. Ngoài ra, Orange Pi 5 MAX còn mặc định hỗ trợ 2 màn hình qua cổng HDMI full-size, nên nếu bạn cắm 2 màn hình sẽ thấy lựa chọn như bên dưới. Kết nối bo mạch với Internet qua Wifi, các bạn sẽ thấy tốc độ Wifi6 cực nhanh ~ 700Mbs
Giờ sẽ là cách cài vào eMMC hoặc SSD, đầu tiên bạn cần flash bộ nhớ SPI, đánh lệnh sudo u-boot-install-mtd
chúng ta sẽ flash lại bộ nhớ SPI theo bản ubuntu-rockchip
Nếu bạn cài Hệ đièu hành trên eMMC, chỉ cần đánh lệnh sudo ubuntu-rockchip-install /dev/mmcblk0
. Trong đó /dev/mmcblk0
là ổ đĩa eMMC đã được gắn trên bo mạch, nếu như không thấy, bạn cần kiểm tra lại việc gắn eMMC đã khớp chưa.
Nếu bạn cài trên SSD, chỉ cần đánh lệnh sudo ubuntu-rockchip-install /dev/nvme0n1
trong đó /dev/nvme0n1
là ổ đĩa SSD NVME đã gắn trên mạch, nếu chưa có, bạn cần kiểm tra lại xem đúng chuẩn ổ cứng NVME hay chưa? hoặc đã gắn ssd khớp hẳn vào chân ổ.
Sau khi các bước trên cài xong, việc còn lại là bạn chỉ cần khởi động lại, rút thẻ nhớ ra và tận hưởng.
Demo Bytetrack trên Orange Pi 5 MAX
Giới thiệu về Bytetrack
ByteTrack (Bytetrack Enhanced Tracker) là một thuật toán theo dõi đối tượng tiên tiến, cải thiện độ chính xác và hiệu quả của quá trình theo dõi dựa trên các mô hình phát hiện đối tượng hiện có. ByteTrack giải quyết các thách thức trong việc theo dõi đa đối tượng (MOT) bằng cách tập trung vào cả các đối tượng được phát hiện và không được phát hiện, cung cấp một giải pháp theo dõi đáng tin cậy và ổn định hơn.
ByteTrack được giới thiệu lần đầu tiên trên 2022 European Conference on Computer Vision (https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136820001.pdf) do 1 nhóm lập trình viên TQ triển khai thực hiện. Năm 2024, nhóm submit nghiên cứu trên Accessibility Forum 2024 (https://arxiv.org/abs/2110.06864)
Các Đặc Điểm Chính của ByteTrack:
- Độ Chính Xác Cao: ByteTrack cải thiện quá trình theo dõi bằng cách liên kết cả những đối tượng được phát hiện với độ tin cậy cao và thấp, giúp giảm thiểu các phát hiện bị bỏ lỡ và nâng cao độ chính xác tổng thể.
- Đơn Giản Nhưng Hiệu Quả: ByteTrack sử dụng chiến lược liên kết dữ liệu đơn giản và hiệu quả, kết hợp các đối tượng dựa trên vị trí và đặc trưng ngoại hình của chúng mà không cần tính toán phức tạp.
- Hiệu Suất Thời Gian Thực: ByteTrack được thiết kế để hoạt động trong thời gian thực, phù hợp với các ứng dụng yêu cầu xử lý nhanh như giám sát video, xe tự lái, và robot.
- Xử Lý Tốt Các Tình Huống Khuất Tầm Nhìn: ByteTrack xử lý tốt các trường hợp đối tượng bị khuất hoặc không được phát hiện tạm thời bằng cách duy trì thông tin về đối tượng trong quá trình theo dõi.
- Tính Linh Hoạt: ByteTrack có thể tích hợp với nhiều mô hình phát hiện đối tượng khác nhau như YOLO, Faster R-CNN, và nhiều mô hình khác, giúp nó phù hợp với nhiều yêu cầu theo dõi.
Ứng Dụng của ByteTrack:
- Hệ Thống Giám Sát: Nâng cao việc giám sát và theo dõi nhiều người hoặc phương tiện trong thời gian thực.
- Xe Tự Lái: Theo dõi người đi bộ, các phương tiện khác, và chướng ngại vật, nâng cao khả năng điều hướng và an toàn.
- Robot: Ứng dụng trong các hệ thống robot cần theo dõi đối tượng trong thời gian thực để tương tác với môi trường xung quanh.
Do triển khai demo ByteTrack khá dài dòng, nên tôi đã đưa cả quá trình vào video dưới đây. Đây là phần mềm mã nguồn mở HTTP Stream with ByteTrack Object Tracking sử dụng RKNN toolkit (Thư viện NPU viết riêng cho Rockchip) và GoCV viết bằng ngôn ngữ Golang. Github: https://github.com/swdee/go-rknnlite/tree/master/example/stream
Khi triển khai, có thê tùy biến việc tracking bằng nhiều model Yolov khác nhau, các đối tượng khác nhau và thời gian tracking khác nhau. Ngoài ra, nguồn video tracking có thể sử dụng luôn webcam gắn cổng USB Logitech để test. Mời các bạn xem video và nếu cần trợ giúp, hãy bình luận.
Thank you for trying the go-rknnlite project. We see in your video you tried to use the HTTP Stream example with a Webcamera however the code did not support that. However we have now added support using a Webcamera so you can try it out using the latest code base if you like. The YOLOv8-pose example works quite well with it.