Hướng dẫn Bắt đầu Nhanh: Raspberry Pi với Ultralytics YOLO26#
Raspberry Pi là một máy tính nhỏ gọn, giá rẻ, chạy Ultralytics YOLO26 để phát hiện đối tượng thời gian thực ở biên — không cần GPU. Hướng dẫn này sẽ hướng dẫn bạn cách triển khai YOLO26 trên Raspberry Pi 4 và 5: cài đặt hệ điều hành, cài đặt Ultralytics, xuất sang NCNN để đạt tốc độ inference nhanh nhất trên kiến trúc ARM, và chạy dự đoán trên luồng camera trực tiếp. Tài liệu này cũng bao gồm các benchmark hiệu năng trên tám định dạng xuất để bạn có thể lựa chọn mức đánh đổi tốt nhất giữa tốc độ và độ chính xác cho phần cứng của mình.
Chuyển đến phần cài đặt Ultralytics, xuất sang NCNN và chạy inference, benchmark, hoặc inference bằng camera.
Watch: Raspberry Pi 5 updates and improvements.
Hướng dẫn này đã được thử nghiệm với Raspberry Pi 4 và Raspberry Pi 5 chạy phiên bản Raspberry Pi OS Bookworm (Debian 12) mới nhất. Việc sử dụng hướng dẫn này cho các thiết bị Raspberry Pi đời cũ hơn như Raspberry Pi 3 dự kiến vẫn sẽ hoạt động miễn là cùng được cài đặt phiên bản Raspberry Pi OS Bookworm.
Raspberry Pi là gì?#
Raspberry Pi là một máy tính bo mạch đơn nhỏ gọn và có giá thành phải chăng. Nó trở nên phổ biến cho nhiều loại dự án và ứng dụng khác nhau, từ tự động hóa nhà thông minh cho người dùng phổ thông đến các mục đích sử dụng trong công nghiệp. Các bo mạch Raspberry Pi có khả năng chạy đa dạng các hệ điều hành và cung cấp các chân cắm GPIO (General Purpose Input/Output) cho phép dễ dàng tích hợp với cảm biến, thiết bị truyền động và các linh kiện phần cứng khác. Chúng có các model khác nhau với thông số kỹ thuật đa dạng, nhưng tất cả đều chia sẻ chung một triết lý thiết kế cơ bản là chi phí thấp, nhỏ gọn và linh hoạt.
So sánh Dòng Raspberry Pi#
| Raspberry Pi 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, Cortex-A53 64Bit SoC | Broadcom BCM2711, Cortex-A72 64Bit SoC | Broadcom BCM2712, Cortex-A76 64Bit SoC |
| Tần số CPU tối đa | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| Tần số GPU tối đa | 400Mhz | 500Mhz | 800Mhz |
| Bộ nhớ | 1GB LPDDR2 SDRAM | 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM | 4GB, 8GB LPDDR4X-4267 SDRAM |
| PCIe | N/A | N/A | 1xPCIe 2.0 Interface |
| Mức tiêu thụ điện tối đa | 2.5A@5V | 3A@5V | 5A@5V (Đã bật PD) |
Raspberry Pi OS là gì?#
Raspberry Pi OS (trước đây gọi là Raspbian) là một hệ điều hành dạng Unix dựa trên bản phân phối Debian GNU/Linux dành cho dòng máy tính bảng đơn nhỏ gọn Raspberry Pi do Raspberry Pi Foundation phân phối. Raspberry Pi OS được tối ưu hóa cao cho Raspberry Pi sử dụng CPU ARM và sử dụng giao diện máy tính để bàn LXDE đã chỉnh sửa cùng trình quản lý cửa sổ xếp chồng Openbox. Raspberry Pi OS đang được phát triển tích cực, với trọng tâm là cải thiện độ ổn định và hiệu năng của càng nhiều gói Debian càng tốt trên Raspberry Pi.
Flash Raspberry Pi OS vào Raspberry Pi#
Điều đầu tiên cần làm sau khi có trên tay một chiếc Raspberry Pi là ghi thẻ micro-SD với Raspberry Pi OS, cắm vào thiết bị và khởi động vào hệ điều hành. Hãy theo dõi Tài liệu Bắt đầu chi tiết từ Raspberry Pi để chuẩn bị cho thiết bị sẵn sàng sử dụng lần đầu.
Thiết lập Ultralytics#
Bạn có thể thiết lập gói Ultralytics trên Raspberry Pi theo hai cách cho dự án Thị giác Máy tính tiếp theo của mình:
Bắt đầu với Docker#
Cách nhanh nhất để bắt đầu với Ultralytics YOLO26 trên Raspberry Pi là chạy bằng Docker image được xây dựng sẵn cho Raspberry Pi.
Thực thi lệnh bên dưới để tải Docker container và chạy trên Raspberry Pi. Điều này dựa trên hình ảnh Docker arm64v8/ubuntu, chạy Ubuntu 24.04 trong môi trường Python3.
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tHình ảnh Docker đã bao gồm sẵn Ultralytics, vì vậy bạn có thể tiến hành ngay việc xuất mô hình sang NCNN.
Bắt đầu không dùng Docker#
Cài đặt gói Ultralytics#
Tại đây, chúng ta sẽ cài đặt gói Ultralytics trên Raspberry Pi kèm theo các phụ thuộc tùy chọn để có thể xuất các mô hình PyTorch sang các định dạng khác.
-
Cập nhật danh sách các gói, cài đặt pip và nâng cấp lên phiên bản mới nhất
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Cài đặt gói pip
ultralyticscùng với các phần phụ thuộc tùy chọnpip install ultralytics[export] -
Khởi động lại thiết bị
sudo reboot
Sử dụng NCNN trên Raspberry Pi#
Trong số tất cả các định dạng xuất mô hình được hỗ trợ bởi Ultralytics, NCNN mang lại hiệu năng inference tốt nhất trên các thiết bị Raspberry Pi vì nó được tối ưu hóa cao cho các nền tảng di động/nhúng như kiến trúc ARM. Chuyển đổi mô hình YOLO26n PyTorch của bạn sang NCNN, sau đó chạy inference với mô hình đã xuất:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")Để biết thêm chi tiết về các tùy chọn xuất được hỗ trợ, hãy xem hướng dẫn tùy chọn triển khai mô hình.
Cải tiến hiệu suất của YOLO26 so với YOLO11#
YOLO26 được thiết kế đặc biệt để chạy trên các thiết bị giới hạn về phần cứng như Raspberry Pi 5. So với YOLO11n, YOLO26n đạt mức tăng ~15% FPS (6.79 → 7.79) đồng thời mang lại mAP cao hơn (40.1 so với 39.5) ở kích thước đầu vào 640 với các model được xuất sang ONNX trên Raspberry Pi 5. Bảng và biểu đồ dưới đây cho thấy sự so sánh này.
| Mô hình | mAP50-95(B) | Thời gian suy luận (ms/im) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.26 |
Được đánh giá bằng Ultralytics 8.4.14.
Điểm chuẩn YOLO26 trên Raspberry Pi 5#
Các benchmark YOLO26 được thực hiện bởi đội ngũ Ultralytics trên tám định dạng mô hình khác nhau nhằm đo lường tốc độ và độ chính xác: PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT. Các benchmark được chạy trên Raspberry Pi 5 ở độ chính xác FP32 với kích thước hình ảnh đầu vào mặc định là 640.
Biểu đồ so sánh#
Chúng tôi chỉ bao gồm các điểm chuẩn cho model YOLO26n và YOLO26s vì các kích thước model khác quá lớn để chạy trên các thiết bị Raspberry Pi và không mang lại hiệu suất tốt.
Bảng so sánh chi tiết#
Bảng dưới đây thể hiện kết quả benchmark cho hai model khác nhau (YOLO26n, YOLO26s) trên tám định dạng khác nhau (PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT), chạy trên Raspberry Pi 5, cung cấp cho chúng ta trạng thái, kích thước, chỉ số mAP50-95(B), và thời gian inference cho mỗi sự kết hợp.
| Định dạng | Trạng thái | Kích thước trên đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/im) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4760 | 299.09 |
| TorchScript | ✅ | 9.8 | 0.4734 | 353.20 |
| ONNX | ✅ | 9.5 | 0.4734 | 125.99 |
| OpenVINO | ✅ | 9.6 | 0.4734 | 104.55 |
| MNN | ✅ | 9.4 | 0.4749 | 91.87 |
| NCNN | ✅ | 9.4 | 0.4784 | 67.03 |
| ExecuTorch | ✅ | 9.4 | 0.4772 | 144.83 |
| LiteRT | ✅ | 9.8 | 0.4730 | 123.30 |
Được benchmark với Ultralytics 8.4.108
Thời gian inference không bao gồm bước tiền/hậu xử lý (pre/post-processing).
Tái tạo kết quả của chúng tôi#
Để tái tạo các benchmark Ultralytics trên tất cả các định dạng xuất ở trên, hãy chạy mã này:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)Xin lưu ý rằng kết quả benchmark có thể thay đổi tùy thuộc vào cấu hình phần cứng và phần mềm chính xác của hệ thống, cũng như khối lượng công việc hiện tại của hệ thống tại thời điểm chạy benchmark. Để có kết quả đáng tin cậy nhất, hãy sử dụng một tập dữ liệu có số lượng ảnh lớn, ví dụ: data='coco.yaml' (5000 ảnh val).
litert-converter không cung cấp gói aarch64 Linux wheel, vì vậy việc xuất format=litert chỉ được hỗ trợ trên Linux x86_64 và macOS, chứ không phải trực tiếp trên Raspberry Pi. Hãy xuất mô hình .tflite trên máy tính Linux x86_64 hoặc Mac, sao chép nó sang Raspberry Pi, và sử dụng Pi để chạy inference.
Sử dụng Camera Raspberry Pi#
Khi sử dụng Raspberry Pi cho các dự án Thị giác Máy tính, việc lấy các nguồn cấp dữ liệu video thời gian thực để thực hiện inference có thể rất quan trọng. Cổng kết nối MIPI CSI tích hợp trên Raspberry Pi cho phép bạn kết nối các mô-đun camera chính thức của Raspberry Pi. Trong hướng dẫn này, chúng tôi đã sử dụng Raspberry Pi Camera Module 3 để lấy nguồn cấp dữ liệu video và thực hiện inference bằng các mô hình YOLO26.
Tìm hiểu thêm về các mô-đun camera khác nhau do Raspberry Pi cung cấp và cả cách bắt đầu với các mô-đun camera Raspberry Pi.
Raspberry Pi 5 sử dụng các đầu nối CSI nhỏ hơn so với Raspberry Pi 4 (15 chân so với 22 chân), vì vậy bạn sẽ cần một cáp chuyển đổi từ 15 chân sang 22 chân để kết nối với Camera Raspberry Pi.
Kiểm tra Camera#
Thực thi lệnh sau đây sau khi kết nối camera với Raspberry Pi. Bạn sẽ thấy nguồn cấp video trực tiếp từ camera trong khoảng 5 giây.
rpicam-helloTìm hiểu thêm về cách sử dụng rpicam-hello trong tài liệu chính thức của Raspberry Pi
Suy luận với Camera#
Có hai phương pháp sử dụng Raspberry Pi Camera để chạy inference trên các model YOLO26.
Chúng ta có thể sử dụng picamera2 đi kèm sẵn với Raspberry Pi OS để truy cập camera và chạy inference trên các mô hình YOLO26.
import cv2
from picamera2 import Picamera2
from ultralytics import YOLO
# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
while True:
# Capture frame-by-frame
frame = picam2.capture_array()
# Run YOLO26 inference on the frame
results = model(frame)
# Visualize the results on the frame
annotated_frame = results[0].plot()
# Display the resulting frame
cv2.imshow("Camera", annotated_frame)
# Break the loop if 'q' is pressed
if cv2.waitKey(1) == ord("q"):
break
# Release resources and close windows
cv2.destroyAllWindows()Hãy xem tài liệu của chúng tôi về Nguồn Inference nếu bạn muốn thay đổi loại đầu vào hình ảnh/video
Các phương pháp thực hành tốt nhất khi sử dụng Raspberry Pi#
Có một số phương pháp thực hành tốt nhất cần tuân theo để đạt được hiệu suất tối đa trên Raspberry Pi khi chạy YOLO26.
-
Sử dụng SSD
Khi sử dụng Raspberry Pi để hoạt động liên tục 24x7, bạn nên sử dụng ổ đĩa SSD cho hệ thống vì thẻ SD sẽ không thể chịu được việc ghi liên tục và có thể bị hỏng. Với cổng PCIe tích hợp trên Raspberry Pi 5, giờ đây bạn có thể kết nối SSD bằng một bộ chuyển đổi chẳng hạn như NVMe Base cho Raspberry Pi 5.
-
Flash hệ điều hành không có GUI
Khi flash Raspberry Pi OS, bạn có thể chọn không cài đặt môi trường Desktop (Raspberry Pi OS Lite), điều này giúp tiết kiệm một phần RAM trên thiết bị, dành thêm không gian cho việc xử lý thị giác máy tính.
-
Ép xung Raspberry Pi
Nếu bạn muốn tăng một chút hiệu suất khi chạy các model Ultralytics YOLO26 trên Raspberry Pi 5, bạn có thể ép xung CPU từ mức cơ bản 2.4GHz lên 2.9GHz và GPU từ 800MHz lên 1GHz. Nếu hệ thống trở nên không ổn định hoặc bị treo, hãy giảm các giá trị ép xung theo mức 100MHz. Đảm bảo hệ thống làm mát hoạt động hiệu quả, vì ép xung làm tăng nhiệt độ và có thể dẫn đến hiện tượng giảm xung do quá nhiệt.
a. Nâng cấp phần mềm
sudo apt update && sudo apt dist-upgradeb. Mở và chỉnh sửa tệp cấu hình
sudo nano /boot/firmware/config.txtc. Thêm các dòng sau vào cuối tệp
arm_freq=3000 gpu_freq=1000 force_turbo=1d. Lưu và thoát bằng cách nhấn CTRL + X, sau đó chọn Y và nhấn ENTER
e. Khởi động lại Raspberry Pi
Các bước tiếp theo#
Bạn đã thiết lập thành công YOLO26 trên Raspberry Pi của mình. Để tìm hiểu sâu hơn, hãy khám phá Chế độ Predict để có thêm các tùy chọn inference, Chế độ Export cho các định dạng triển khai bổ sung, hoặc hướng dẫn NVIDIA Jetson nếu bạn cần nhiều năng lực tính toán hơn ở biên. Để xem tài liệu hoàn chỉnh, hãy truy cập Tài liệu Ultralytics YOLO26.
Lời cảm ơn và Trích dẫn#
Hướng dẫn này ban đầu được tạo bởi Daan Eeltink cho Kashmir World Foundation, một tổ chức chuyên sử dụng YOLO để bảo tồn các loài nguy cấp. Chúng tôi ghi nhận công trình tiên phong và trọng tâm giáo dục của họ trong lĩnh vực công nghệ nhận diện đối tượng.
Để biết thêm thông tin về các hoạt động của Quỹ Kashmir World Foundation, bạn có thể truy cập trang web của họ.
Câu hỏi thường gặp#
Để thiết lập Ultralytics YOLO26 trên Raspberry Pi mà không cần Docker, hãy làm theo các bước sau:
- Cập nhật danh sách gói và cài đặt
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - Cài đặt gói Ultralytics với các phụ thuộc tùy chọn:
pip install ultralytics[export] - Khởi động lại thiết bị để áp dụng thay đổi:
sudo reboot
Để có hướng dẫn chi tiết, hãy tham khảo phần Bắt đầu không cần Docker.
- Cập nhật danh sách gói và cài đặt
Định dạng NCNN của Ultralytics YOLO26 được tối ưu hóa cao cho các nền tảng di động và nhúng, giúp nó trở nên lý tưởng để chạy các tác vụ AI trên các thiết bị Raspberry Pi. NCNN tối đa hóa hiệu năng inference bằng cách tận dụng kiến trúc ARM, mang lại quá trình xử lý nhanh hơn và hiệu quả hơn so với các định dạng khác. Để biết thêm chi tiết về các định dạng xuất được hỗ trợ, hãy xem các tùy chọn xuất mô hình.
Bạn có thể chuyển đổi model PyTorch YOLO26 sang định dạng NCNN bằng Python hoặc các lệnh CLI:
Ví dụfrom ultralytics import YOLO # Load a YOLO26n PyTorch model model = YOLO("yolo26n.pt") # Export the model to NCNN format model.export(format="ncnn") # creates 'yolo26n_ncnn_model' # Load the exported NCNN model ncnn_model = YOLO("yolo26n_ncnn_model") # Run inference results = ncnn_model("https://ultralytics.com/images/bus.jpg")Để biết thêm chi tiết, hãy xem phần Sử dụng NCNN trên Raspberry Pi.
Những khác biệt chính bao gồm:
- CPU: Raspberry Pi 4 sử dụng Broadcom BCM2711, Cortex-A72 64-bit SoC, trong khi Raspberry Pi 5 sử dụng Broadcom BCM2712, Cortex-A76 64-bit SoC.
- Tần số CPU tối đa: Raspberry Pi 4 có tần số tối đa 1.8GHz, trong khi Raspberry Pi 5 đạt mức 2.4GHz.
- Bộ nhớ: Raspberry Pi 4 cung cấp tối đa 8GB LPDDR4-3200 SDRAM, trong khi Raspberry Pi 5 có LPDDR4X-4267 SDRAM, khả dụng với các phiên bản 4GB và 8GB.
Những cải tiến này góp phần mang lại các benchmark hiệu năng tốt hơn cho các mô hình YOLO26 trên Raspberry Pi 5 so với Raspberry Pi 4. Hãy tham khảo bảng So sánh dòng Raspberry Pi để biết thêm chi tiết.
Có hai phương pháp để thiết lập camera Raspberry Pi cho việc inference với YOLO26:
-
Sử dụng
picamera2:import cv2 from picamera2 import Picamera2 from ultralytics import YOLO picam2 = Picamera2() picam2.preview_configuration.main.size = (1280, 720) picam2.preview_configuration.main.format = "RGB888" picam2.preview_configuration.align() picam2.configure("preview") picam2.start() model = YOLO("yolo26n.pt") while True: frame = picam2.capture_array() results = model(frame) annotated_frame = results[0].plot() cv2.imshow("Camera", annotated_frame) if cv2.waitKey(1) == ord("q"): break cv2.destroyAllWindows() -
Sử dụng TCP Stream:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("tcp://127.0.0.1:8888")
Để có hướng dẫn thiết lập chi tiết, hãy truy cập phần Inference với Camera.
-