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.
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 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, SoC Cortex-A53 de 64 bits | Broadcom BCM2711, SoC Cortex-A72 de 64 bits | Broadcom BCM2712, SoC Cortex-A76 de 64 bits |
| Frequência máxima da CPU | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| Frequência máxima da GPU | 400Mhz | 500Mhz | 800Mhz |
| Memória | SDRAM LPDDR2 de 1 GB | SDRAM LPDDR4-3200 de 1 GB, 2 GB, 4 GB ou 8 GB | SDRAM LPDDR4X-4267 de 4 GB ou 8 GB |
| PCIe | N/A | N/A | Interface PCIe 2.0 1x |
| Consumo máximo de energia | 2,5 A@5 V | 3 A@5 V | 5 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 $tA 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.
-
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 -
Instalar o pacote pip
ultralyticspip install ultralytics -
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:
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 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.
| Modelo | mAP50-95(B) | Tempo de inferência (ms/im) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.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.
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.
| Formato | Estado | Tamanho em disco (MB) | mAP50-95(B) | Tempo de inferência (ms/im) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4760 | 299.09 |
| TorchScript | ✅ | 9.8 | 0.4734 | 353.20 |
| ONNX | ✅ | 9.5 | 0.4734 | 125.99 |
| OpenVINO | ✅ | 9.6 | 0.4734 | 104.55 |
| MNN | ✅ | 9.4 | 0.4749 | 91.87 |
| NCNN | ✅ | 9.4 | 0.4784 | 67.03 |
| ExecuTorch | ✅ | 9.4 | 0.4772 | 144.83 |
| LiteRT | ✅ | 9.8 | 0.4730 | 123.30 |
Avaliado com o Ultralytics 8.4.108
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:
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).
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.
Obtém mais informações sobre os diferentes módulos de câmara disponibilizados pelo Raspberry Pi e sobre como começar a utilizar os módulos de câmara do Raspberry Pi.
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-helloObté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.
Podemos utilizar picamera2, que vem pré-instalado com o Raspberry Pi OS, para aceder à câmara e executar inferência em modelos YOLO26.
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()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.
-
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.
-
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.
-
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-upgradeb. Abre o ficheiro de configuração para edição
sudo nano /boot/firmware/config.txtc. Adiciona as linhas seguintes no final
arm_freq=3000 gpu_freq=1000 force_turbo=1d. 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:
- Atualiza a lista de pacotes e instala
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - Instala o pacote Ultralytics:
pip install ultralytics - Reinicia o dispositivo para aplicar as alterações:
sudo reboot
Para obter instruções detalhadas, consulta a secção Iniciar sem Docker.
- Atualiza a lista de pacotes e instala
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:
Exemplofrom 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:
-
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() -
Utilizando uma transmissão TCP:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from 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.
-