Ultralytics YOLO27:

Guia de início rápido: Raspberry Pi com Ultralytics YOLO26#

O Raspberry Pi é um computador pequeno e acessível que executa o Ultralytics YOLO26 para deteção de objetos em tempo real na periferia — sem necessidade de GPU. Este guia explica como implementar o YOLO26 no Raspberry Pi 4 e 5: gravar o sistema operativo, instalar o Ultralytics, exportar para NCNN para obter a inferência mais rápida em ARM e executar predições a partir de um feed de câmara em direto. Também inclui benchmarks de desempenho em oito formatos de exportação, para que possas escolher o melhor compromisso entre velocidade e precisão para o teu hardware.

Vai diretamente para configurar o Ultralytics, exportar para NCNN e executar inferência, benchmarks ou inferência com câmara.



Watch: Raspberry Pi 5 updates and improvements.
Nota

Este guia foi testado com o Raspberry Pi 4 e o Raspberry Pi 5 a executar a versão mais recente do Raspberry Pi OS Bookworm (Debian 12). É esperado que este guia também funcione em dispositivos Raspberry Pi mais antigos, como o Raspberry Pi 3, desde que o mesmo Raspberry Pi OS Bookworm esteja instalado.

O que é o Raspberry Pi?#

O Raspberry Pi é um computador pequeno, acessível e de placa única. Tornou-se popular numa vasta gama de projetos e aplicações, desde a automação doméstica para entusiastas até utilizações industriais. As placas Raspberry Pi conseguem executar vários sistemas operativos e disponibilizam pinos GPIO (E/S de uso geral) que permitem uma integração fácil com sensores, atuadores e outros componentes de hardware. Existem em diferentes modelos com especificações variadas, mas todos partilham a mesma filosofia básica de design: baixo custo, dimensões compactas e versatilidade.

Comparação da série Raspberry Pi#

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, SoC Cortex-A53 de 64 bitsBroadcom BCM2711, SoC Cortex-A72 de 64 bitsBroadcom BCM2712, SoC Cortex-A76 de 64 bits
Frequência máxima da CPU1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Frequência máxima da GPU400Mhz500Mhz800Mhz
MemóriaSDRAM LPDDR2 de 1 GBSDRAM LPDDR4-3200 de 1 GB, 2 GB, 4 GB ou 8 GBSDRAM LPDDR4X-4267 de 4 GB ou 8 GB
PCIeN/AN/AInterface PCIe 2.0 1x
Consumo máximo de energia2,5 A@5 V3 A@5 V5 A@5 V (PD ativado)

O que é o Raspberry Pi OS?#

O Raspberry Pi OS (anteriormente conhecido como Raspbian) é um sistema operativo semelhante ao Unix, baseado na distribuição Debian GNU/Linux, para a família de computadores compactos de placa única Raspberry Pi, distribuídos pela Raspberry Pi Foundation. O Raspberry Pi OS é altamente otimizado para o Raspberry Pi com CPUs ARM e utiliza um ambiente de desktop LXDE modificado com o gestor de janelas Openbox. O Raspberry Pi OS está em desenvolvimento ativo, com ênfase na melhoria da estabilidade e do desempenho do maior número possível de pacotes Debian no Raspberry Pi.

Gravar o Raspberry Pi OS no Raspberry Pi#

A primeira coisa a fazer depois de obteres um Raspberry Pi é gravar um cartão micro-SD com o Raspberry Pi OS, inseri-lo no dispositivo e iniciar o sistema operativo. Segue a documentação detalhada de primeiros passos da Raspberry Pi para preparares o dispositivo para a primeira utilização.

Configurar o Ultralytics#

Podes configurar o pacote Ultralytics no Raspberry Pi de duas formas para o teu próximo projeto de Visão Computacional:

Começar com Docker#

A forma mais rápida de começar a utilizar o Ultralytics YOLO26 no Raspberry Pi é executar uma imagem Docker pré-criada para Raspberry Pi.

Executa o comando abaixo para obter o contentor Docker e executá-lo no Raspberry Pi. Este comando baseia-se na imagem Docker arm64v8/ubuntu, que executa o Ubuntu 24.04 num ambiente Python3.

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

A imagem Docker já inclui o Ultralytics, por isso podes avançar diretamente para exportar o teu modelo para NCNN.

Começar sem Docker#

Instalar o pacote Ultralytics#

Aqui, vamos instalar o pacote Ultralytics no Raspberry Pi. As dependências de exportação para formatos como NCNN são instaladas automaticamente na primeira vez que exportas um modelo PyTorch, por isso só precisas do pacote base nesta etapa.

  1. Atualizar a lista de pacotes, instalar o pip e atualizar para a versão mais recente

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Instalar o pacote pip ultralytics

    pip install ultralytics
  3. Reiniciar o dispositivo

    sudo reboot

Utilizar NCNN no Raspberry Pi#

De todos os formatos de exportação de modelos suportados pelo Ultralytics, o NCNN oferece o melhor desempenho de inferência em dispositivos Raspberry Pi, pois é altamente otimizado para plataformas móveis/incorporadas, como a arquitetura ARM. Converte o teu modelo YOLO26n PyTorch para NCNN e executa a inferência com o modelo exportado:

Exemplo
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")
Dica

Para obteres mais detalhes sobre as opções de exportação suportadas, consulta o guia de opções de implementação de modelos.

Melhorias de desempenho do YOLO26 em relação ao YOLO11#

O YOLO26 foi especificamente concebido para ser executado em dispositivos com recursos de hardware limitados, como o Raspberry Pi 5. Em comparação com o YOLO11n, o YOLO26n alcança um aumento de aproximadamente ~15% em FPS (6.79 → 7.79), oferecendo simultaneamente um mAP superior (40.1 vs 39.5) com tamanho de entrada 640 e modelos exportados para ONNX no Raspberry Pi 5. A tabela e o gráfico abaixo apresentam esta comparação.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Desempenho
ModelomAP50-95(B)Tempo de inferência (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

Avaliado com o Ultralytics 8.4.14.

Benchmarks do YOLO26 no Raspberry Pi 5#

Os benchmarks do YOLO26 foram executados pela equipa do Ultralytics em oito formatos de modelo diferentes, medindo a velocidade e a precisão: PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch e LiteRT. Os benchmarks foram executados num Raspberry Pi 5 com precisão FP32 e tamanho de imagem de entrada predefinido de 640.

Gráfico de comparação#

Incluímos apenas benchmarks dos modelos YOLO26n e YOLO26s, porque os outros tamanhos de modelo são demasiado grandes para serem executados nos Raspberry Pi e não oferecem um desempenho razoável.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.108

Tabela de comparação detalhada#

A tabela abaixo representa os resultados dos benchmarks de dois modelos diferentes (YOLO26n e YOLO26s) em oito formatos diferentes (PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch e LiteRT), executados num Raspberry Pi 5, apresentando o estado, o tamanho, a métrica mAP50-95(B) e o tempo de inferência de cada combinação.

Desempenho
FormatoEstadoTamanho em disco (MB)mAP50-95(B)Tempo de inferência (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

Avaliado com o Ultralytics 8.4.108

Nota

O tempo de inferência não inclui o pré-processamento nem o pós-processamento.

Reproduzir os nossos resultados#

Para reproduzires os benchmarks do Ultralytics acima em todos os formatos de exportação, executa este código:

Exemplo
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)

Tem em atenção que os resultados dos benchmarks podem variar consoante a configuração exata de hardware e software de um sistema, bem como a carga atual do sistema no momento da execução dos benchmarks. Para obteres resultados mais fiáveis, utiliza um conjunto de dados com um grande número de imagens, por exemplo, data='coco.yaml' (5000 imagens de validação).

A exportação LiteRT é executada fora do dispositivo

litert-converter não inclui um wheel Linux aarch64, por isso a exportação format=litert só é suportada em Linux x86_64 e macOS, não no próprio Raspberry Pi. Exporta o modelo .tflite numa máquina Linux x86_64 ou num Mac, copia-o para o Raspberry Pi e utiliza o Pi para a inferência.

Utilizar a câmara do Raspberry Pi#

Ao utilizar o Raspberry Pi em projetos de Visão Computacional, pode ser essencial obter feeds de vídeo em tempo real para executar inferência. O conector MIPI CSI integrado no Raspberry Pi permite ligar módulos de câmara oficiais do Raspberry Pi. Neste guia, utilizámos um Raspberry Pi Camera Module 3 para obter os feeds de vídeo e executar inferência com modelos YOLO26.

Dica
Nota

O Raspberry Pi 5 utiliza conectores CSI mais pequenos do que o Raspberry Pi 4 (15 pinos contra 22 pinos), por isso precisas de um cabo adaptador de 15 para 22 pinos para ligares uma Raspberry Pi Camera.

Testar a câmara#

Executa o comando seguinte depois de ligares a câmara ao Raspberry Pi. Deverás ver um feed de vídeo em direto da câmara durante cerca de 5 segundos.

rpicam-hello
Dica

Obtém mais informações sobre a utilização de rpicam-hello na documentação oficial do Raspberry Pi

Inferência com câmara#

Existem dois métodos para utilizar a Raspberry Pi Camera para executar inferência em modelos YOLO26.

Executar inferência com a câmara do Raspberry Pi

Podemos utilizar picamera2, que vem pré-instalado com o Raspberry Pi OS, para aceder à câmara e executar inferência em modelos YOLO26.

Exemplo
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()
Dica

Consulta o nosso documento sobre Fontes de inferência se quiseres alterar o tipo de entrada de imagem/vídeo

Práticas recomendadas ao utilizar o Raspberry Pi#

Existem algumas práticas recomendadas que deves seguir para permitir o máximo desempenho nos Raspberry Pi que executam o YOLO26.

  1. Utilizar um SSD

    Ao utilizar o Raspberry Pi continuamente, 24 horas por dia e 7 dias por semana, recomenda-se utilizar um SSD para o sistema, porque um cartão SD não conseguirá suportar escritas contínuas e poderá avariar. Com o conector PCIe integrado no Raspberry Pi 5, agora podes ligar SSDs utilizando um adaptador, como o NVMe Base para Raspberry Pi 5.

  2. Gravar sem GUI

    Ao gravares o Raspberry Pi OS, podes optar por não instalar o ambiente de Desktop (Raspberry Pi OS Lite), o que pode poupar alguma RAM no dispositivo, deixando mais espaço para o processamento de visão computacional.

  3. Fazer overclock ao Raspberry Pi

    Se quiseres um pequeno aumento de desempenho ao executar modelos YOLO26 da Ultralytics no Raspberry Pi 5, podes fazer overclock da CPU de 2.4GHz para 3.0GHz e da GPU de 800MHz para 1GHz. Se o sistema ficar instável ou falhar, reduz os valores de overclock em incrementos de 100MHz. Assegura-te de que tens um arrefecimento adequado, uma vez que o overclock aumenta a geração de calor e pode provocar o corte térmico (thermal throttling).

    a. Atualiza o software

    sudo apt update && sudo apt dist-upgrade

    b. Abre o ficheiro de configuração para edição

    sudo nano /boot/firmware/config.txt

    c. Adiciona as linhas seguintes no final

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. Guarda e sai premindo CTRL + X, depois Y, e pressiona ENTER

    e. Reinicia o Raspberry Pi

Próximas etapas#

Configuraste o YOLO26 com sucesso no teu Raspberry Pi. Para continuares, explora o modo Predict para obteres mais opções de inferência, o modo Export para formatos de implementação adicionais ou o guia NVIDIA Jetson se precisares de mais capacidade de computação na periferia. Para consultares a documentação completa, visita a documentação do Ultralytics YOLO26.

Agradecimentos e citações#

Este guia foi inicialmente criado por Daan Eeltink para a Kashmir World Foundation, uma organização dedicada à utilização do YOLO na conservação de espécies ameaçadas. Reconhecemos o seu trabalho pioneiro e o seu foco educativo no domínio das tecnologias de deteção de objetos.

Para obteres mais informações sobre as atividades da Kashmir World Foundation, podes visitar o seu website.

Perguntas frequentes#

  • Para configurares o Ultralytics YOLO26 num Raspberry Pi sem Docker, segue estes passos:

    1. Atualiza a lista de pacotes e instala pip:
      sudo apt update
      sudo apt install python3-pip -y
      pip install -U pip
    2. Instala o pacote Ultralytics:
      pip install ultralytics
    3. Reinicia o dispositivo para aplicar as alterações:
      sudo reboot

    Para obter instruções detalhadas, consulta a secção Iniciar sem Docker.

  • O formato NCNN do Ultralytics YOLO26 é altamente otimizado para plataformas móveis e integradas, o que o torna ideal para executar tarefas de IA em dispositivos Raspberry Pi. O NCNN maximiza o desempenho da inferência ao tirar partido da arquitetura ARM, proporcionando um processamento mais rápido e eficiente em comparação com outros formatos. Para obter mais informações sobre os formatos de exportação suportados, consulta as opções de exportação do modelo.

  • Podes converter um modelo YOLO26 PyTorch para o formato NCNN utilizando comandos Python ou CLI:

    Exemplo
    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")

    Para obter mais informações, consulta a secção Utilizar NCNN no Raspberry Pi.

  • As principais diferenças incluem:

    • CPU: o Raspberry Pi 4 utiliza o Broadcom BCM2711, um SoC Cortex-A72 de 64 bits, enquanto o Raspberry Pi 5 utiliza o Broadcom BCM2712, um SoC Cortex-A76 de 64 bits.
    • Frequência máxima da CPU: o Raspberry Pi 4 tem uma frequência máxima de 1.8GHz, enquanto o Raspberry Pi 5 atinge 2.4GHz.
    • Memória: o Raspberry Pi 4 disponibiliza até 8GB de SDRAM LPDDR4-3200, enquanto o Raspberry Pi 5 inclui SDRAM LPDDR4X-4267, disponível nas variantes de 4GB e 8GB.

    Estas melhorias contribuem para um melhor desempenho nos benchmarks dos modelos YOLO26 no Raspberry Pi 5 em comparação com o Raspberry Pi 4. Consulta a tabela Comparação das séries Raspberry Pi para obter mais informações.

  • Existem dois métodos para configurar uma câmara Raspberry Pi para a inferência do YOLO26:

    1. Utilizando 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. Utilizando uma transmissão 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")

    Para obter instruções detalhadas de configuração, visita a secção Inferência com câmara.

Comentários