YOLO Vision 2026:

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.
Lưu ý

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 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, Cortex-A53 64Bit SoCBroadcom BCM2711, Cortex-A72 64Bit SoCBroadcom BCM2712, Cortex-A76 64Bit SoC
Tần số CPU tối đa1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Tần số GPU tối đa400Mhz500Mhz800Mhz
Bộ nhớ1GB LPDDR2 SDRAM1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM4GB, 8GB LPDDR4X-4267 SDRAM
PCIeN/AN/A1xPCIe 2.0 Interface
Mức tiêu thụ điện tối đa2.5A@5V3A@5V5A@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 $t

Hì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.

  1. 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
  2. Cài đặt gói pip ultralytics cùng với các phần phụ thuộc tùy chọn

    pip install ultralytics[export]
  3. 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:

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")
Mẹo

Để 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.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Hiệu suất
Mô hìnhmAP50-95(B)Thời gian suy luận (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.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.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.108

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.

Hiệu suất
Định dạngTrạng tháiKích thước trên đĩa (MB)mAP50-95(B)Thời gian suy luận (ms/im)
PyTorch5.30.4760299.09
TorchScript9.80.4734353.20
ONNX9.50.4734125.99
OpenVINO9.60.4734104.55
MNN9.40.474991.87
NCNN9.40.478467.03
ExecuTorch9.40.4772144.83
LiteRT9.80.4730123.30

Được benchmark với Ultralytics 8.4.108

Lưu ý

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:

Ví dụ
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).

Xuất LiteRT chạy ngoài thiết bị

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.

Mẹo
Lưu ý

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-hello
Mẹo

Tì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ạy inference với camera Raspberry Pi

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.

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 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()
Mẹo

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.

  1. 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.

  2. 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.

  3. É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-upgrade

    b. Mở và chỉnh sửa tệp cấu hình

    sudo nano /boot/firmware/config.txt

    c. Thêm các dòng sau vào cuối tệp

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. 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:

    1. 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
    2. Cài đặt gói Ultralytics với các phụ thuộc tùy chọn:
      pip install ultralytics[export]
    3. 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.

  • Đị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:

    1. 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()
    2. Sử dụng TCP Stream:

      rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
      from 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.

Bình luận