Ultralytics YOLO27:

Hướng dẫn bắt đầu nhanh: Raspberry Pi với Ultralytics YOLO26#

Raspberry Pi là một máy tính nhỏ, có chi phí phải chăng, chạy Ultralytics YOLO26 để phát hiện đối tượng theo thời gian thực ở biên — không cần GPU. Hướng dẫn này chỉ cho bạn cách triển khai YOLO26 trên Raspberry Pi 4 và 5: ghi OS vào thẻ, cài đặt Ultralytics, xuất sang NCNN để đạt [suy luận](https://ultralytics-translation-4.invalid nhanh nhất trên ARM và chạy dự đoán từ luồng camera trực tiếp. Hướng dẫn 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ể chọn sự cân bằng tốt nhất giữa tốc độ và độ chính xác cho phần cứng của mình.

Chuyển nhanh đến phần thiết lập Ultralytics, xuất sang NCNN và chạy suy luận, benchmark hoặc suy luận từ camera.



Watch: Raspberry Pi 5 updates and improvements.
Lưu ý

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). Hướng dẫn này dự kiến cũng hoạt động với các thiết bị Raspberry Pi cũ hơn như Raspberry Pi 3, miễn là cài đặt cùng Raspberry Pi OS Bookworm.

Raspberry Pi là gì?#

Raspberry Pi là một máy tính đơn bo mạch nhỏ, có chi phí phải chăng. Thiết bị này đã trở nên phổ biến trong nhiều dự án và ứng dụng, từ tự động hóa nhà ở dành cho người yêu thích công nghệ đến các ứng dụng công nghiệp. Các bo mạch Raspberry Pi có thể chạy nhiều hệ điều hành khác nhau và cung cấp các chân GPIO (Đầu vào/Đầu ra đa dụng), cho phép dễ dàng tích hợp với cảm biến, cơ cấu chấp hành và các thành phần phần cứng khác. Raspberry Pi có nhiều model với thông số kỹ thuật khác nhau, nhưng đều chia sẻ triết lý thiết kế cơ bản là chi phí thấp, nhỏ gọn và linh hoạt.

So sánh các dòng Raspberry Pi#

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, Cortex-A53 SoC 64BitBroadcom BCM2711, Cortex-A72 SoC 64BitBroadcom BCM2712, Cortex-A76 SoC 64Bit
Tần số tối đa của CPU1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Tần số tối đa của GPU400Mhz500Mhz800Mhz
Bộ nhớSDRAM LPDDR2 1GBSDRAM LPDDR4-3200 1GB, 2GB, 4GB, 8GBSDRAM LPDDR4X-4267 4GB, 8GB
PCIeKhông áp dụngKhông áp dụngGiao diện PCIe 2.0 1x
Công suất tiêu thụ tối đa2.5A@5V3A@5V5A@5V (bật PD)

Raspberry Pi OS là gì?#

Raspberry Pi OS (trước đây có tên là Raspbian) là một hệ điều hành tương tự Unix, dựa trên bản phân phối Debian GNU/Linux dành cho dòng máy tính đơn bo mạch 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 với CPU ARM và sử dụng môi trường desktop LXDE đã được sửa đổi 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, tập trung cải thiện độ ổn định và hiệu năng của nhiều gói Debian nhất có thể trên Raspberry Pi.

Ghi Raspberry Pi OS vào Raspberry Pi#

Việc đầu tiên cần làm sau khi có Raspberry Pi là ghi Raspberry Pi OS vào thẻ micro-SD, lắp thẻ vào thiết bị và khởi động vào OS. Hãy làm theo Tài liệu Bắt đầu của Raspberry Pi để chuẩn bị thiết bị cho lần sử dụng đầu tiên.

Thiết lập Ultralytics#

Bạn có thể thiết lập package Ultralytics trên Raspberry Pi theo hai cách cho dự án Thị giác máy tính tiếp theo:

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 một Docker image 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 $t

Docker image đã bao gồm Ultralytics, vì vậy bạn có thể chuyển thẳng đến bước xuất model sang NCNN.

Bắt đầu không dùng Docker#

Cài đặt package Ultralytics#

Tại đây, chúng ta sẽ cài đặt package Ultralytics trên Raspberry Pi. Các dependency để xuất sang những định dạng như NCNN sẽ tự động được cài đặt lần đầu bạn xuất một model PyTorch, vì vậy ở đây chỉ cần package cơ sở.

  1. Cập nhật danh sách package, 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 package pip ultralytics

    pip install ultralytics
  3. Khởi động lại thiết bị

    sudo reboot

Sử dụng NCNN trên Raspberry Pi#

Trong tất cả các định dạng xuất model được Ultralytics hỗ trợ, NCNN mang lại hiệu năng suy luận tốt nhất trên các thiết bị Raspberry Pi vì được tối ưu hóa cao cho các nền tảng mobile/embedded như kiến trúc ARM. Chuyển model PyTorch YOLO26n sang NCNN, sau đó chạy suy luận với model đã 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 về các tùy chọn triển khai model.

Cải thiện hiệu năng của YOLO26 so với YOLO11#

YOLO26 được thiết kế riêng để chạy trên các thiết bị có tài nguyên phần cứng hạn chế như Raspberry Pi 5. So với YOLO11n, YOLO26n đạt mức tăng khoả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 đã xuất sang ONNX trên Raspberry Pi 5. Bảng và biểu đồ dưới đây minh họa so sánh này.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Hiệu năng
ModelmAP50-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

Benchmark được thực hiện với Ultralytics 8.4.14.

Benchmark YOLO26 trên Raspberry Pi 5#

Benchmark YOLO26 được đội ngũ Ultralytics thực hiện trên tám định dạng model khác nhau, đo tốc độ và độ chính xác: PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT. Benchmark được thực hiện trên Raspberry Pi 5 ở độ chính xác FP32 với kích thước ảnh đầu vào mặc định là 640.

Biểu đồ so sánh#

Chúng tôi chỉ đưa vào benchmark các model YOLO26n và YOLO26s vì những kích thước model khác quá lớn để chạy trên Raspberry Pi và không mang lại hiệu năng 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 của 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 trạng thái, kích thước, chỉ số mAP50-95(B) và thời gian suy luận cho từng tổ hợp.

Hiệu năng
Đị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

Benchmark được thực hiện với Ultralytics 8.4.108

Lưu ý

Thời gian suy luận không bao gồm bước tiền xử lý/hậu xử lý.

Tái tạo kết quả của chúng tôi#

Để tái hiện các benchmark Ultralytics ở trên trên tất cả định dạng xuất, hãy chạy đoạn code 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)

Lưu ý rằng kết quả benchmark có thể thay đổi tùy theo cấu hình phần cứng và phần mềm cụ thể của hệ thống, cũng như workload 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 dataset có số lượng ảnh lớn, chẳng hạn như data='coco.yaml' (5000 ảnh val).

Xuất LiteRT được thực hiện ngoài thiết bị

litert-converter không cung cấp Linux wheel aarch64, vì vậy việc xuất format=litert chỉ được hỗ trợ trên Linux x86_64 và macOS, không được hỗ trợ trực tiếp trên Raspberry Pi. Hãy xuất model .tflite trên máy Linux x86_64 hoặc máy Mac, sao chép model đó sang Raspberry Pi và sử dụng Pi để suy luận.

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 thu nhận luồng video theo thời gian thực để thực hiện suy luận có thể rất cần thiết. Đầ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 Raspberry Pi chính thức. Trong hướng dẫn này, chúng tôi đã sử dụng Raspberry Pi Camera Module 3 để thu nhận luồng video và thực hiện suy luận bằng các model YOLO26.

Mẹo
Lưu ý

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 Raspberry Pi Camera.

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 luồng video trực tiếp từ camera trong khoảng 5 giây.

rpicam-hello
Mẹo

Suy luận bằng camera#

Có hai phương pháp sử dụng Raspberry Pi Camera để chạy suy luận trên các model YOLO26.

Chạy suy luận bằng camera Raspberry Pi

Chúng ta có thể sử dụng picamera2, được cài đặt sẵn cùng Raspberry Pi OS, để truy cập camera và chạy suy luận trên các model 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

Xem tài liệu về Nguồn suy luận nếu bạn muốn thay đổi loại đầu vào ảnh/video

Các phương pháp hay nhất khi sử dụng Raspberry Pi#

Có một số phương pháp hay nhất cần tuân theo để đạt hiệu năng tối đa trên Raspberry Pi chạy YOLO26.

  1. Sử dụng SSD

    Khi sử dụng Raspberry Pi liên tục 24x7, bạn nên dùng SSD cho hệ thống vì thẻ SD 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 adapter như NVMe Base cho Raspberry Pi 5.

  2. Ghi mà không có GUI

    Khi ghi Raspberry Pi OS, bạn có thể chọn không cài đặt môi trường Desktop (Raspberry Pi OS Lite), giúp tiết kiệm một phần RAM trên thiết bị và 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 cải thiện một chút hiệu năng 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 3.0GHz và GPU từ 800MHz lên 1GHz. Nếu hệ thống trở nên không ổn định hoặc gặp sự cố, hãy giảm các giá trị ép xung xuống theo các bước 100MHz. Hãy đảm bảo có giải pháp làm mát phù hợp, vì việc ép xung làm tăng sinh nhiệt và có thể dẫn đến hiện tượng giảm xung do nhiệt.

    a. Nâng cấp phần mềm

    sudo apt update && sudo apt dist-upgrade

    b. Mở để chỉnh sửa file cấu hình

    sudo nano /boot/firmware/config.txt

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

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. Lưu và thoát bằng cách nhấn CTRL + X, sau đó nhấn Y và 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. Để tìm hiểu thêm, hãy khám phá Predict mode để xem thêm các tùy chọn suy luận, Export mode để biết 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 năng lực tính toán ở biên. Để xem toàn bộ tài liệu, 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 Daan Eeltink tạo cho Kashmir World Foundation, một tổ chức tận tâm 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 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ệ 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 website của họ.

FAQ#

  • Để thiết lập Ultralytics YOLO26 trên Raspberry Pi mà không dùng Docker, hãy làm theo các bước sau:

    1. Cập nhật danh sách package và cài đặt pip:
      sudo apt update
      sudo apt install python3-pip -y
      pip install -U pip
    2. Cài đặt package Ultralytics:
      pip install ultralytics
    3. Khởi động lại thiết bị để áp dụng các thay đổi:
      sudo reboot

    Để xem hướng dẫn chi tiết, hãy tham khảo phần Khởi động mà không dùng Docker.

  • Format NCNN của Ultralytics YOLO26 được tối ưu hóa cao cho các nền tảng di động và nhúng, nên rất phù hợp để 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 format khác. Để biết thêm chi tiết về các format export được hỗ trợ, hãy xem các tùy chọn export model.

  • Bạn có thể chuyển đổi model YOLO26 từ PyTorch sang format 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.

  • Các khác biệt chính bao gồm:

    • CPU: Raspberry Pi 4 sử dụng SoC Broadcom BCM2711, Cortex-A72 64-bit, trong khi Raspberry Pi 5 sử dụng SoC Broadcom BCM2712, Cortex-A76 64-bit.
    • 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 2.4GHz.
    • Bộ nhớ: Raspberry Pi 4 hỗ trợ tối đa 8GB LPDDR4-3200 SDRAM, trong khi Raspberry Pi 5 sử dụng LPDDR4X-4267 SDRAM, 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 kết quả benchmark hiệu năng tốt hơn cho các model YOLO26 trên Raspberry Pi 5 so với Raspberry Pi 4. Hãy tham khảo bảng So sánh các dòng Raspberry Pi để biết thêm chi tiết.

  • Có hai phương pháp để thiết lập Raspberry Pi Camera cho inference 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")

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