Ultralytics YOLO27:
Get Started

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á phải chăng, có thể 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ỉ 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 tốc độ suy luận nhanh nhất trên ARM và chạy dự đoán trên luồng camera trực tiếp. Hướng dẫn cũng bao gồm benchmark hiệu năng trên tám định dạng xuất để bạn 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 đến phần thiết lập Ultralytics, xuất sang NCNN và chạy suy luận, benchmark hoặc suy luận bằng camera.



Xem: Các bản cập nhật và cải tiến dành cho Raspberry Pi 5.
Lưu ý

Hướng dẫn này đã được kiểm thử trên 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 dự kiến cũng hoạt động trên các thiết bị Raspberry Pi đời cũ như Raspberry Pi 3, miễn là đã cài cùng Raspberry Pi OS Bookworm.

Raspberry Pi là gì?#

Raspberry Pi là máy tính bo mạch đơn nhỏ gọn, giá phải chăng. Raspberry Pi đã trở nên phổ biến với nhiều dự án và ứng dụng, từ tự động hóa nhà ở dành cho người đam mê đến các ứng dụng công nghiệp. 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 tích hợp dễ dàng với cảm biến, bộ truyền động 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: giá rẻ, 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, SoC 64 bit Cortex-A53Broadcom BCM2711, SoC 64 bit Cortex-A72Broadcom BCM2712, SoC 64 bit Cortex-A76
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ớ1GB LPDDR2 SDRAM1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM2GB, 4GB, 8GB, 16GB LPDDR4X-4267 SDRAM
PCIeKhông áp dụngKhông áp dụngGiao diện PCIe 2.0 1x
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 có tên là Raspbian) là một hệ điều hành kiểu 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 Raspberry Pi dùng CPU ARM và sử dụng môi trường desktop nhẹ, mặc định chạy trên Wayland ở Raspberry Pi 4 và 5. 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.

Flash Raspberry Pi OS vào Raspberry Pi#

Việc đầu tiên cần làm sau khi có Raspberry Pi là flash thẻ micro-SD bằng Raspberry Pi OS, lắp thẻ vào thiết bị và khởi động hệ điều hành. Hãy làm theo hướng dẫn chi tiết trong 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 sử dụng Ultralytics YOLO26 trên Raspberry Pi là chạy image Docker được dựng sẵn cho Raspberry Pi.

Chạy lệnh bên dưới để pull Docker container và chạy trên Raspberry Pi. Image này dựa trên image Python 3.13-slim-trixie chính thức, chạy Debian 13 với Python 3.13.

t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t

Image Docker đã bao gồm Ultralytics, vì vậy bạn có thể bắt đầu ngay với thao tác export 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 package Ultralytics trên Raspberry Pi. Các dependency để export sang những định dạng như NCNN sẽ được tự động cài đặt vào lần đầu tiên bạn export model PyTorch, vì vậy ở đây chỉ cần cài package cơ bản.

  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ả định dạng export 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 nền tảng di động/nhúng như kiến trúc ARM. Chuyển đổi model YOLO26n PyTorch sang NCNN, sau đó chạy suy luận bằng model đã export:

Ví dụ
from ultralytics import YOLO

# Tải model YOLO26n PyTorch
model = YOLO("yolo26n.pt")

# Export model sang định dạng NCNN
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'

# Tải model NCNN đã export
ncnn_model = YOLO("yolo26n_ncnn_model")

# Chạy suy luận
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 export đượ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ế đặc biệt để 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ăng khoảng ~15% FPS (6.79 → 7.79), đồng thời đạt mAP cao hơn (40.1 so với 39.5) ở kích thước đầu vào 640 với các model export ONNX trên Raspberry Pi 5. Bảng và biểu đồ dưới đây trình bày so sánh này.

YOLO26 benchmarks on RPi 5
Được benchmark bằng Ultralytics 8.4.14
Hiệu năng
ModelmAP50-95(B)Thời gian suy luận (ms/ảnh)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

Được benchmark bằng Ultralytics 8.4.14.

Benchmark YOLO26 trên Raspberry Pi 5#

Các benchmark YOLO26 được nhóm 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, LiteRT, MNN, NCNN, ExecuTorch. Benchmark được chạy 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 phù hợp.

YOLO26 benchmarks on RPi 5
Được benchmark bằng Ultralytics 8.4.108

Bảng so sánh chi tiết#

Bảng dưới đây trình bày kết quả benchmark của hai model khác nhau (YOLO26n, YOLO26s) trên tám định dạng (PyTorch, TorchScript, ONNX, OpenVINO, LiteRT, MNN, NCNN, ExecuTorch), chạy trên Raspberry Pi 5; bảng cung cấp trạng thái, kích thước, metric 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áiDung lượng trên ổ đĩa (MB)mAP50-95(B)Thời gian suy luận (ms/ảnh)
PyTorch✅5.30.4760299.09
TorchScript✅9.80.4734353.20
ONNX✅9.50.4734125.99
OpenVINO✅9.60.4734104.55
LiteRT✅9.80.4730123.30
MNN✅9.40.474991.87
NCNN✅9.40.478467.03
ExecuTorch✅9.40.4772144.83

Được benchmark bằng Ultralytics 8.4.108

Lưu ý

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

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

Để tái tạo các benchmark Ultralytics ở trên trên tất cả định dạng export, hãy chạy đoạn code này:

Ví dụ
from ultralytics import YOLO

# Tải model YOLO26n PyTorch
model = YOLO("yolo26n.pt")

# Benchmark tốc độ và độ chính xác của YOLO26n trên tập dữ liệu COCO128 cho tất cả định dạng xuất
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ư 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ó nhiều ảnh, ví dụ: data='coco.yaml' (5000 ảnh val).

Quá trình export LiteRT chạy trên thiết bị khác

Quá trình export format=litert (thông qua litert-torch) chỉ được hỗ trợ trên Linux x86_64 và macOS, không hỗ trợ trực tiếp trên Raspberry Pi. Export model .tflite trên máy Linux x86_64 hoặc Mac, sao chép sang Raspberry Pi rồi dùng Pi để chạy 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 video trực tiếp để 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 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 Raspberry Pi Camera Module 3 để thu nhận 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 đầu nối CSI nhỏ hơn Raspberry Pi 4 (22 chân so với 15 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 camera Raspberry Pi.

Kiểm tra camera#

Thực thi lệnh sau khi kết nối camera với Raspberry Pi. Bạn sẽ thấy hình ảnh 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 camera Raspberry Pi để 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 trong 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

# Khởi tạo 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()

# Tải model YOLO26
model = YOLO("yolo26n.pt")

while True:
    # Chụp từng frame
    frame = picam2.capture_array()

    # Chạy suy luận YOLO26 trên frame
    results = model(frame)

    # # Trực quan hóa kết quả trên frame
    annotated_frame = results[0].plot()

    # Hiển thị frame kết quả
    cv2.imshow("Camera", annotated_frame)

    # # Thoát vòng lặp nếu nhấn 'q'
    if cv2.waitKey(1) == ord("q"):
        break

# Giải phóng tài nguyên và đóng cửa sổ
cv2.destroyAllWindows()
Mẹo

Tham khảo tài liệu 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#

Có một số phương pháp hay nhất cần thực hiện để đạ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 hoạt động 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. Flash không có GUI

    Khi flash Raspberry Pi OS, bạn có thể chọn không cài môi trường Desktop (Raspberry Pi OS Lite) để tiết kiệm một phần RAM trên thiết bị, dành thêm dung lượng cho xử lý thị giác máy tính.

  3. Ép xung Raspberry Pi

    Nếu muốn tăng nhẹ 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 hoạt động không ổn định hoặc gặp sự cố, hãy giảm mức ép xung theo từng bước 100MHz. Đảm bảo hệ thống được làm mát phù hợp, vì ép xung làm tăng nhiệt lượng và có thể gây 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 rồi 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á chế độ Predict để biết thêm tùy chọn suy luận, chế độ Export để xem 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. Truy cập Tài liệu Ultralytics YOLO26 để xem toàn bộ tài liệu.

Lời cảm ơn và trích dẫn#

Hướng dẫn này ban đầu được Daan Eeltink biên soạn cho Kashmir World Foundation, một tổ chức chuyên ứng dụng YOLO vào công tác bảo tồn các loài có nguy cơ tuyệt chủng. Chúng tôi ghi nhận những đóng góp tiên phong và trọng tâm giáo dục của tổ chức trong lĩnh vực công nghệ phát hiện đối tượng.

Để biết thêm thông tin về hoạt động của Kashmir World Foundation, bạn có thể truy cập website của tổ chức.

Câu hỏi thường gặp#

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

    Để biết hướng dẫn chi tiết, hãy tham khảo phần Bắt đầu không dùng Docker.

  • Định dạng NCNN của Ultralytics YOLO26 được tối ưu hóa cao cho nền tảng di động và nhúng, 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 năng suy luận bằng cách tận dụng kiến trúc ARM, cho khả năng xử lý nhanh 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ợ, hãy xem các tùy chọn export model.

  • Bạn có thể chuyển đổi model YOLO26 PyTorch sang định dạng NCNN bằng lệnh Python hoặc CLI:

    Ví dụ
    from ultralytics import YOLO
    
    # Tải model YOLO26n PyTorch
    model = YOLO("yolo26n.pt")
    
    # Export model sang định dạng NCNN
    model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    
    # Tải model NCNN đã export
    ncnn_model = YOLO("yolo26n_ncnn_model")
    
    # Chạy suy luận
    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 cung cấp tối đa 8GB SDRAM LPDDR4-3200, trong khi Raspberry Pi 5 có SDRAM LPDDR4X-4267, với các phiên bản 2GB, 4GB, 8GB và 16GB.

    Những cải tiến này giúp các model YOLO26 đạt kết quả benchmark hiệu năng tốt hơn trên Raspberry Pi 5 so với Raspberry Pi 4. 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 để suy luận 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 luồng TCP:

      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 mục Suy luận bằng camera.

Bình luận