Link to this sectionHướng dẫn Bắt đầu Nhanh: Raspberry Pi với Ultralytics YOLO26#
Raspberry Pi là một máy tính nhỏ, giá rẻ có thể chạy Ultralytics YOLO26 để object detection thời gian thực tại biên (edge) — không cần GPU. Hướng dẫn này sẽ đưa bạn qua các bước triển khai YOLO26 trên Raspberry Pi 4 và 5: flash OS, cài đặt Ultralytics, export sang NCNN để đạt hiệu suất inference nhanh nhất trên kiến trúc ARM, và chạy dự đoán trên nguồn cấp 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 mười định dạng export để bạn có thể chọn sự cân bằng tốt nhất giữa tốc độ và accuracy cho phần cứng của mình.
Đi tới phần thiết lập Ultralytics, export sang NCNN và chạy inference, benchmark, hoặc inference qua camera.
Watch: Raspberry Pi 5 updates and improvements.
Hướng dẫn này đã được kiểm thử với Raspberry Pi 4 và Raspberry Pi 5 chạy phiên bản mới nhất của Raspberry Pi OS Bookworm (Debian 12). Việc áp dụng hướng dẫn này cho các thiết bị Raspberry Pi cũ hơn như Raspberry Pi 3 cũng sẽ hoạt động bình thường miễn là đã cài đặt cùng phiên bản Raspberry Pi OS Bookworm.
Link to this sectionRaspberry 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.
Link to this sectionSo 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) |
Link to this sectionRaspberry 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 bo mạch đơ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 các CPU ARM trên Raspberry Pi và sử dụng môi trường desktop LXDE tùy chỉnh với trình quản lý cửa sổ dạng 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 tính ổn định và hiệu suất của nhiều gói Debian nhất có thể trên Raspberry Pi.
Link to this sectionFlash Raspberry Pi OS vào Raspberry Pi#
Điều đầu tiên cần làm sau khi có trên tay một thiết bị Raspberry Pi là flash 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 làm theo Tài liệu Bắt đầu bởi Raspberry Pi để chuẩn bị thiết bị cho lần sử dụng đầu tiên.
Link to this sectionThiế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 Computer Vision tiếp theo của mình:
Link to this sectionBắ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 dưới đây để pull Docker container và chạy trên Raspberry Pi. Lệnh này dựa trên Docker image 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 $tDocker image này đã bao gồm sẵn Ultralytics, vì vậy bạn có thể chuyển thẳng sang bước export model sang NCNN.
Link to this sectionBắt đầu không dùng Docker#
Link to this sectionCài đặt gói Ultralytics#
Tại đây, chúng ta sẽ cài đặt gói Ultralytics trên Raspberry Pi cùng với các phụ thuộc tùy chọn để có thể export các model 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
ultralyticsvới các tùy chọn phụ thuộcpip install ultralytics[export] -
Khởi động lại thiết bị
sudo reboot
Link to this sectionSử dụng NCNN trên Raspberry Pi#
Trong số tất cả các định dạng export model được Ultralytics hỗ trợ, NCNN mang lại hiệu suất 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 model YOLO26n PyTorch của bạn sang NCNN, sau đó chạy inference với model đã export:
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 export được hỗ trợ, xem hướng dẫn tùy chọn triển khai model.
Link to this sectionCả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.
Link to this sectionĐiểm chuẩn YOLO26 trên Raspberry Pi 5#
Các benchmark của YOLO26 được thực hiện bởi đội ngũ Ultralytics trên mười định dạng model khác nhau để đo lường tốc độ và accuracy: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Benchmark được thực hiện trên Raspberry Pi 5 tại precision FP32 với kích thước ảnh đầu vào mặc định là 640.
Link to this sectionBiể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.
Link to this sectionBảng so sánh chi tiết#
Bảng dưới đây đại diện cho kết quả đánh giá cho hai model khác nhau (YOLO26n, YOLO26s) trên mười định dạng khác nhau (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), chạy trên Raspberry Pi 5, cung cấp trạng thái, kích thước, chỉ số mAP50-95(B) và thời gian suy luận cho mỗi 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.4798 | 302.15 |
| TorchScript | ✅ | 9.8 | 0.4764 | 357.58 |
| ONNX | ✅ | 9.5 | 0.4764 | 130.33 |
| OpenVINO | ✅ | 9.6 | 0.4818 | 70.74 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 213.58 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 213.5 |
| TF Lite | ✅ | 9.9 | 0.4764 | 251.41 |
| MNN | ✅ | 9.4 | 0.4784 | 90.89 |
| NCNN | ✅ | 9.4 | 0.4805 | 67.69 |
| ExecuTorch | ✅ | 9.4 | 0.4764 | 148.36 |
Được đánh giá bằng Ultralytics 8.4.1
Thời gian inference không bao gồm bước tiền/hậu xử lý (pre/post-processing).
Link to this sectionTái tạo kết quả của chúng tôi#
Để tái tạo các điểm chuẩn của Ultralytics nêu trên trên tất cả các định dạng xuất, 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)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 cụ thể 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 tập dữ liệu có số lượng ảnh lớn, ví dụ: data='coco.yaml' (5000 ảnh val).
Link to this sectionSử dụng Camera Raspberry Pi#
Khi sử dụng Raspberry Pi cho các dự án Computer Vision, việc nắm bắt nguồn cấp dữ liệu video thời gian thực để thực hiện suy luận có thể là yếu tố thiết yếu. Đầu nối MIPI CSI tích hợp trên Raspberry Pi cho phép bạn kết nối các module camera chính thức của Raspberry Pi. Trong hướng dẫn này, chúng tôi đã sử dụng một Raspberry Pi Camera Module 3 để nắm bắt nguồn cấp dữ liệu video và thực hiện suy luận bằng các model YOLO26.
Raspberry Pi 5 sử dụng các đầu nối CSI nhỏ hơn so với Raspberry Pi 4 (15-pin so với 22-pin), vì vậy bạn sẽ cần một cáp chuyển đổi từ 15-pin sang 22-pin để kết nối với Camera Raspberry Pi.
Link to this sectionKiể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 trên tài liệu chính thức của Raspberry Pi.
Link to this sectionSuy 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 được cài đặt sẵn cùng với Raspberry Pi OS để truy cập camera và chạy inference trên các model 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()Kiểm tra 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 ảnh/video.
Link to this sectionCá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 để vận hành liên tục 24/7, bạn nên dùng SSD cho hệ thống vì thẻ SD sẽ không thể chịu được việc ghi dữ liệu liên tục và có thể bị hỏng. Với cổng kết nối PCIe trên Raspberry Pi 5, giờ đây bạn có thể kết nối SSD bằng bộ chuyển đổi 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
Link to this sectionCá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 thêm, hãy khám phá chế độ Predict cho các tùy chọn inference khác, 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 thêm sức mạnh tính toán tại biên. Để xem tài liệu đầy đủ, hãy truy cập Tài liệu Ultralytics YOLO26.
Link to this sectionLờ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 Kashmir World Foundation, bạn có thể truy cập trang web của họ.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm thế nào để thiết lập Ultralytics YOLO26 trên Raspberry Pi mà không sử dụng Docker?#
Để 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
Để biết hướng dẫn chi tiết, hãy tham khảo phần Bắt đầu mà không cần Docker.
Link to this sectionTại sao tôi nên sử dụng định dạng NCNN của Ultralytics YOLO26 trên Raspberry Pi cho các tác vụ AI?#
Đị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, khiến nó trở nên lý tưởng cho việc chạy các tác vụ AI trên thiết bị Raspberry Pi. NCNN tối đa hóa hiệu suất inference bằng cách tận dụng kiến trúc ARM, mang lại khả năng 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 export được hỗ trợ, xem tùy chọn export model.
Link to this sectionLàm thế nào để chuyển đổi model YOLO26 sang định dạng NCNN để sử dụng trên Raspberry Pi?#
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:
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.
Link to this sectionCó những khác biệt phần cứng nào giữa Raspberry Pi 4 và Raspberry Pi 5 liên quan đến việc chạy YOLO26?#
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 tạo ra các điểm chuẩn hiệu suất tốt hơn cho các model YOLO26 trên Raspberry Pi 5 so với Raspberry Pi 4. Tham khảo bảng So sánh dòng Raspberry Pi để biết thêm chi tiết.
Link to this sectionLàm thế nào để thiết lập Raspberry Pi Camera Module hoạt động với Ultralytics YOLO26?#
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")
Để biết hướng dẫn thiết lập chi tiết, hãy truy cập phần Inference với Camera.