Quick Start Guide: Raspberry Pi with Ultralytics YOLO11
This comprehensive guide provides a detailed walkthrough for deploying Ultralytics YOLO11 on Raspberry Pi devices. Additionally, it showcases performance benchmarks to demonstrate the capabilities of YOLO11 on these small and powerful devices.
Xem: Raspberry Pi 5 cập nhật và cải tiến.
Ghi
Hướng dẫn này đã được thử nghiệm với Raspberry Pi 4 và Raspberry Pi 5 chạy Raspberry Pi OS Bookworm (Debian 12) mới nhất. Sử dụng hướng dẫn này cho các thiết bị Raspberry Pi cũ hơn như Raspberry Pi 3 dự kiến sẽ hoạt động miễn là cùng một Raspberry Pi OS Bookworm được cài đặt.
Raspberry Pi là gì?
Raspberry Pi là một máy tính bảng đơn nhỏ, giá cả phải chăng. Nó đã trở nên phổ biến cho một loạt các dự án và ứng dụng, từ tự động hóa nhà theo sở thích đến sử dụng công nghiệp. Các bo mạch Raspberry Pi có khả năng chạy nhiều hệ điều hành khác nhau và chúng cung cấp các chân GPIO (Đầu vào / Đầu ra Mục đích chung) cho phép tích hợp dễ dàng với các cảm biến, bộ truyền động và các thành phần phần cứng khác. Chúng có nhiều mẫu khác nhau với các thông số kỹ thuật khác nhau, nhưng tất cả đều có chung 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
Mâm xôi Pi 3 | Mâm xôi Pi 4 | Mâm xôi Pi 5 | |
---|---|---|---|
CPU | Broadcom BCM2837, Cortex-A53 64Bit SoC | Broadcom BCM2711, Cortex-A72 64Bit SoC | Broadcom BCM2712, Cortex-A76 64Bit SoC |
CPU Tần số tối đa | 1.4GHz | 1.8GHz | 2.4GHz |
GPU | Videocore IV | Videocore VI | VideoCore VII |
GPU Tần số tối đa | 400Mhz | 500Mhz | 800Mhz |
Trí nhớ | 1GB LPDDR2 SDRAM | 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM | 4GB, 8GB LPDDR4X-4267 SDRAM |
Pcie | N/A | N/A | Giao diện 1xPCIe 2.0 |
Rút ra sức mạnh tối đa | 2.5A@5V | 3A@5V | 5A@5V (bật PD) |
Hệ điều hành Raspberry Pi là gì?
Raspberry Pi OS (trước đây gọi là Raspbian) là một hệ điều hành giống Unix dựa trên bản phân phối Debian GNU/Linux cho dòng máy tính bảng đơn nhỏ gọn Raspberry Pi được phân phối bởi Raspberry Pi Foundation. Hệ điều hành Raspberry Pi được tối ưu hóa cao cho Raspberry Pi với CPU ARM và sử dụng môi trường máy tính để bàn LXDE đã được sửa đổi với trình quản lý cửa sổ xếp chồng Openbox. Hệ điều hành Raspberry Pi đ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 càng nhiều gói Debian càng tốt trên Raspberry Pi.
Flash Raspberry Pi OS to Raspberry Pi
Điều đầu tiên cần làm sau khi chạm tay vào Raspberry Pi là flash thẻ micro-SD với hệ điều hành Raspberry Pi, lắp vào thiết bị và khởi động vào HĐH. Thực hiện theo cùng với Tài liệu chi tiết Bắt đầu của Raspberry Pi để chuẩn bị thiết bị của bạn cho lần sử dụng đầu tiên.
Dựng Ultralytics
There are two ways of setting up Ultralytics package on Raspberry Pi to build your next Computer Vision project. You can use either of them.
Bắt đầu với Docker
The fastest way to get started with Ultralytics YOLO11 on Raspberry Pi is to run with pre-built docker image for Raspberry Pi.
Thực hiện lệnh dưới đây để kéo container Docker và chạy trên Raspberry Pi. Điều này dựa trên hình ảnh docker arm64v8/debian chứa Debian 12 (Bookworm) trong môi trường Python3.
Sau khi hoàn tất, hãy chuyển đến Dùng NCNN trên phần Raspberry Pi.
Bắt đầu mà không cần Docker
Cài đặt Ultralytics Gói
Here we will install Ultralytics package on the Raspberry Pi with optional dependencies so that we can export the PyTorch models to other different formats.
-
Cập nhật danh sách gói, cài đặt pip và nâng cấp lên mới nhất
-
Cài đặt
ultralytics
Gói pip với các phụ thuộc tùy chọn -
Khởi động lại thiết bị
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 suất suy luận tốt nhất khi làm việc với các thiết bị Raspberry Pi vì NCNN được tối ưu hóa cao cho các nền tảng di động / nhúng (chẳng hạn như kiến trúc ARM). Do đó, khuyến nghị của chúng tôi là sử dụng NCNN với Raspberry Pi.
Chuyển đổi Model sang NCNN và Chạy suy luận
The YOLO11n model in PyTorch format is converted to NCNN to run inference with the exported model.
Ví dụ
from ultralytics import YOLO
# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
Mẹo
Để biết thêm chi tiết về các tùy chọn xuất được hỗ trợ, hãy truy cập Ultralytics trang tài liệu về các tùy chọn triển khai.
Raspberry Pi 5 YOLO11 Benchmarks
YOLO11 benchmarks were run by the Ultralytics team on nine different model formats measuring speed and accuracy: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, NCNN. Benchmarks were run on a Raspberry Pi 5 at FP32 precision with default input image size of 640.
Biểu đồ so sánh
We have only included benchmarks for YOLO11n and YOLO11s models because other models sizes are too big to run on the Raspberry Pis and does not offer decent performance.
Bảng so sánh chi tiết
The below table represents the benchmark results for two different models (YOLO11n, YOLO11s) across nine different formats (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, NCNN), running on a Raspberry Pi 5, giving us the status, size, mAP50-95(B) metric, and inference time for each combination.
Hiệu năng
Định dạng | Tình trạng | Kích thước trên đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/im) |
---|---|---|---|---|
PyTorch | ✅ | 5.4 | 0.61 | 524.828 |
TorchScript | ✅ | 10.5 | 0.6082 | 666.874 |
ONNX | ✅ | 10.2 | 0.6082 | 181.818 |
OpenVINO | ✅ | 10.4 | 0.6082 | 530.224 |
TF SavedModel | ✅ | 25.8 | 0.6082 | 405.964 |
TF GraphDef | ✅ | 10.3 | 0.6082 | 473.558 |
TF Lite | ✅ | 10.3 | 0.6082 | 324.158 |
PaddlePaddle | ✅ | 20.4 | 0.6082 | 644.312 |
NCNN | ✅ | 10.2 | 0.6106 | 93.938 |
Định dạng | Tình trạng | Kích thước trên đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/im) |
---|---|---|---|---|
PyTorch | ✅ | 18.4 | 0.7526 | 1226.426 |
TorchScript | ✅ | 36.5 | 0.7416 | 1507.95 |
ONNX | ✅ | 36.3 | 0.7416 | 415.24 |
OpenVINO | ✅ | 36.4 | 0.7416 | 1167.102 |
TF SavedModel | ✅ | 91.1 | 0.7416 | 776.14 |
TF GraphDef | ✅ | 36.4 | 0.7416 | 1014.396 |
TF Lite | ✅ | 36.4 | 0.7416 | 845.934 |
PaddlePaddle | ✅ | 72.5 | 0.7416 | 1567.824 |
NCNN | ✅ | 36.2 | 0.7419 | 197.358 |
Tái tạo kết quả của chúng tôi
Để tái tạo những điều trên Ultralytics Điểm chuẩn trên tất cả các định dạng xuất, hãy chạy mã này:
Ví dụ
Lưu ý rằng kết quả đo điểm chuẩn có thể thay đổi dựa trên 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 điểm chuẩn. Để có kết quả đáng tin cậy nhất, hãy sử dụng tập dữ liệu có số lượng hình ảnh lớn, tức là data='coco8.yaml' (4 val images), or
data = 'coco.yaml'' (5000 hình ảnh val).
Sử dụng Raspberry Pi Camera
When using Raspberry Pi for Computer Vision projects, it can be essentially to grab real-time video feeds to perform inference. The onboard MIPI CSI connector on the Raspberry Pi allows you to connect official Raspberry PI camera modules. In this guide, we have used a Raspberry Pi Camera Module 3 to grab the video feeds and perform inference using YOLO11 models.
Mẹo
Tìm hiểu thêm về các mô-đun máy ảnh khác nhau được cung cấp bởi Raspberry Pi và cũng như cách bắt đầu với các mô-đun máy ảnh Raspberry Pi.
Ghi
Raspberry Pi 5 sử dụng các đầu nối CSI nhỏ hơn Raspberry Pi 4 (15 chân so với 22 chân), vì vậy bạn sẽ cần cáp chuyển đổi 15 chân sang 22 chân để kết nối với Máy ảnh Raspberry Pi.
Kiểm tra máy ảnh
Thực hiện lệnh sau sau khi kết nối máy ảnh với Raspberry Pi. Bạn sẽ thấy nguồn cấp dữ liệu video trực tiếp từ máy ảnh trong khoảng 5 giây.
Mẹo
Tìm hiểu thêm về rpicam-hello
sử dụng trên tài liệu chính thức của Raspberry Pi
Suy luận bằng máy ảnh
There are 2 methods of using the Raspberry Pi Camera to inference YOLO11 models.
Sử dụng
Chúng ta có thể sử dụng picamera2
which comes pre-installed with Raspberry Pi OS to access the camera and inference YOLO11 models.
Ví dụ
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 YOLO11 model
model = YOLO("yolo11n.pt")
while True:
# Capture frame-by-frame
frame = picam2.capture_array()
# Run YOLO11 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()
Chúng ta cần bắt đầu một luồng TCP với rpicam-vid
từ camera được kết nối để chúng tôi có thể sử dụng URL luồng này làm đầu vào khi chúng tôi suy luận sau. Thực hiện lệnh sau để bắt đầu luồng TCP.
Tìm hiểu thêm về rpicam-vid
sử dụng trên tài liệu chính thức của Raspberry Pi
Mẹo
Kiểm tra tài liệu của chúng tôi về Nguồn suy luận nếu bạn muốn thay đổi loại đầu vào hình ảnh / video
Các phương pháp hay nhất khi sử dụng Raspberry Pi
There are a couple of best practices to follow in order to enable maximum performance on Raspberry Pis running YOLO11.
-
Sử dụng ổ SSD
Khi sử dụng Raspberry Pi để tiếp tục sử dụng 24x7, bạn nên sử dụng 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 đầu nối PCIe tích hợp 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 không có GUI
Khi nhấp nháy hệ điều hành Raspberry Pi, bạn có thể chọn không cài đặt môi trường Máy tính để bàn (Raspberry Pi OS Lite) và điều này có thể tiết kiệm một chút RAM trên thiết bị, để lại nhiều không gian hơn cho xử lý thị giác máy tính.
Các bước tiếp theo
Congratulations on successfully setting up YOLO on your Raspberry Pi! For further learning and support, visit Ultralytics YOLO11 Docs and Kashmir World Foundation.
Lời cảm ơn và trích dẫn
Hướng dẫn này ban đầu được tạo ra 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 có nguy cơ tuyệt chủng. Chúng tôi ghi nhận công việc tiên phong và tập trung giáo dục của họ trong lĩnh vực công nghệ phát hiệ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ọ.
FAQ
How do I set up Ultralytics YOLO11 on a Raspberry Pi without using Docker?
To set up Ultralytics YOLO11 on a Raspberry Pi without Docker, follow these steps:
- Cập nhật danh sách gói và cài đặt
pip
: - Cài đặt Ultralytics Gói với các phụ thuộc tùy chọn:
- Khởi động lại thiết bị để áp dụng các thay đổi:
Để được hướng dẫn chi tiết, hãy tham khảo phần Bắt đầu không cần Docker .
Why should I use Ultralytics YOLO11's NCNN format on Raspberry Pi for AI tasks?
Ultralytics YOLO11's NCNN format is highly optimized for mobile and embedded platforms, making it ideal for running AI tasks on Raspberry Pi devices. NCNN maximizes inference performance by leveraging ARM architecture, providing faster and more efficient processing compared to other formats. For more details on supported export options, visit the Ultralytics documentation page on deployment options.
How can I convert a YOLO11 model to NCNN format for use on Raspberry Pi?
You can convert a PyTorch YOLO11 model to NCNN format using either Python or CLI commands:
Ví dụ
from ultralytics import YOLO
# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
Để biết thêm chi tiết, hãy xem Dùng NCNN trên phần Raspberry Pi .
What are the hardware differences between Raspberry Pi 4 and Raspberry Pi 5 relevant to running YOLO11?
Sự 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.
- Max CPU Tần số: Raspberry Pi 4 có tần số tối đa là 1.8GHz, trong khi Raspberry Pi 5 đạt 2.4GHz.
- Bộ nhớ: Raspberry Pi 4 cung cấp tới 8GB LPDDR4-3200 SDRAM, trong khi Raspberry Pi 5 có LPDDR4X-4267 SDRAM, có sẵn trong các biến thể 4GB và 8GB.
These enhancements contribute to better performance benchmarks for YOLO11 models on Raspberry Pi 5 compared to Raspberry Pi 4. Refer to the Raspberry Pi Series Comparison table for more details.
How can I set up a Raspberry Pi Camera Module to work with Ultralytics YOLO11?
There are two methods to set up a Raspberry Pi Camera for YOLO11 inference:
-
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("yolo11n.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 luồng TCP:
Để biết hướng dẫn thiết lập chi tiết, hãy truy cập phần Suy luận bằng máy ảnh .