Tutorial do AI Kit com Raspberry Pi 5 sobre detecção de objetos com YOLOv8n
Introdução
YOLOv8 (You Only Look Once versão 8) é a mais popular série YOLO de modelos de detecção de objetos e estimativa de pose em tempo real. Ele se baseia nos pontos fortes de seus predecessores, introduzindo diversos avanços em velocidade, precisão e flexibilidade. O Raspberry-pi-AI-kit é usado para acelerar a velocidade de inferência, apresentando um acelerador de inferência de rede neural de 13 TOPS construído em torno do chip Hailo-8L.
Este wiki irá guiá‑lo sobre como usar YOLOv8n para detecção de objetos com o AI Kit no Raspberry Pi 5, desde o treinamento até a implantação.
Preparar Hardware
Para Hailo8L 13 TOPS
| Raspberry Pi5 8GB | Raspberry Pi AI Kit |
|---|---|
![]() | ![]() |
Para Hailo8 26 TOPS
| reComputer R1125 | reComputer AI R2130 | reComputer AI Industrial R2145 |
|---|---|---|
![]() | ![]() | ![]() |
| reComputer Industrial R20xx | reComputer Industrial R21xx |
|---|---|
![]() | ![]() |
Instalar Hardware
Por favor, consulte isto
No Computador Host
Iremos instalar o software hailo, certifique‑se de que você tenha uma conta hailo.
Instalar Ultralytics e treinar o modelo
Instale python3.11
sudo apt install python3.11
Crie yolo_env como seu ambiente virtual
python3.11 -m venv yolo_env
Ative o ambiente
source yolo_env/bin/activate
Instale ultralytics
pip install ultralytics
Treine YOLOv8n usando o conjunto de dados COCO. Se você quiser treinar seu próprio conjunto de dados, pode consultar isto para instruções sobre como fazer isso.
mkdir yolomodel && cd yolomodel
yolo detect train data=coco128.yaml model=yolov8n.pt name=retrain_yolov8n epochs=100 batch=16

Você obterá o modelo best.pt após o treinamento, conforme mostrado abaixo:
cd ./runs/detect/retrain_yolov8n/weights/
ls

Converta o modelo .pt para .onnx.
yolo export model=./best.pt imgsz=640 format=onnx opset=11
Resultado como abaixo:

Instalar software hailo
Instale python 3.8
cd ~
sudo apt install python3.8
Crie hailo_env como seu ambiente virtual
python3.8 -m venv hailo_env
Ative o ambiente
source hailo_env/bin/activate
Instale o Hailo Dataflow Compiler 3.27, aqui você precisa se registrar na Hailo, fazer login e baixar o software.

pip install hailo_dataflow_compiler-3.27.0-py3-none-linux_x86_64.whl
Instale o Model zoo, aqui você precisa se registrar na Hailo, fazer login e baixar o software.

pip install hailo_model_zoo-2.11.0-py3-none-any.whl
Teste se hailo_model_zoo está funcionando corretamente.
hailomz -h

Instale o arquivo do github hailo_model_zoo
cd yolomodel/runs/detect/retrain_yolov8n/weights
git clone https://github.com/hailo-ai/hailo_model_zoo.git
Instale o conjunto de dados coco para avaliar/otimizar/compilar o modelo yolov8n
python hailo_model_zoo/datasets/create_coco_tfrecord.py val2017
python hailo_model_zoo/datasets/create_coco_tfrecord.py calib2017
Use hailo_model_zoo para analisar o modelo
hailomz parse --hw-arch hailo8l --ckpt ./best.onnx yolov8n

Use hailo_model_zoo para otimizar o modelo
Se você executar o seguinte comando, poderá encontrar alguns erros. No entanto, você pode copiar ./hailo_model_zoo/hailo_model_zoo para a sua biblioteca local. Se o erro indicar que o conjunto de dados não pode ser encontrado, você pode navegar até ~/.hailomz, localizar o conjunto de dados e copiá‑lo para o diretório local de conjuntos de dados.
hailomz optimize --hw-arch hailo8l --har ./yolov8n.har yolov8n

Use hailo_model_zoo para compilar o modelo
hailomz compile yolov8n --hw-arch hailo8l --har ./yolov8n.har

Ao final, você obterá um modelo hef, que pode ser usado para implantar no Raspberry Pi 5 com o AI Kit
ls

No Raspberry Pi5
atualizar o sistema
sudo apt update
sudo apt full-upgrade
Definir pcie para gen2/gen3 (gen3 é mais rápido que gen2)
Adicione o seguinte texto em /boot/firmware/config.txt
#Enable the PCIe external connector
dtparam=pciex1
#Force Gen 3.0 speeds
dtparam=pciex1_gen=3
Se você quiser usar gen2, comente dtparam=pciex1_gen=3
Instale hailo-all e reinicie
Abra o terminal no Raspberry Pi 5 e insira o seguinte comando para instalar o software Hailo
sudo apt install hailo-all
sudo reboot
Verificar Software e Hardware
Abra o terminal no Raspberry Pi 5 e insira o comando a seguir para verificar se o hailo-all foi instalado.
hailortcli fw-control identify
O resultado correto é mostrado abaixo:

Abra o terminal no Raspberry Pi 5 e insira o comando a seguir para verificar se o hailo-8L foi conectado.
lspci | grep Hailo
O resultado correto é mostrado abaixo:

Clonar o projeto
git clone https://github.com/Seeed-Projects/Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L.git
cd Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L
Copiar seu modelo para o Raspberry Pi 5
Crie um diretório chamado hailomodel
mkdir hailomodel
O comando abaixo deve ser executado no seu computador host, não no seu Raspberry Pi 5. Certifique-se de que tanto o seu computador host quanto o Raspberry Pi 5 estejam conectados à mesma rede.
scp -r ./yolomodel/runs/detect/retrain_yolov8n/weights/yolov8n.hef username@ip /home/pi/Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L/hailomodel/
Alterar o código
Encontre as linhas 105 e 106 em object-detection-hailo.py e altere o código como abaixo:
elif args.network == "yolov8n":
self.hef_path = os.path.join(self.current_path, './hailomodel/yolov8n.hef')
Encontre a linha 172 em object-detection-hailo.py e altere o código como abaixo:
parser.add_argument("--network", default="yolov8n", choices=['yolov6n', 'yolov8s', 'yolox_s_leaky'], help="Which Network to use, defult is yolov6n")
Executar o código
bash run.sh object-detection-hailo
Resultado
Aqui está o vídeo em que demonstramos o processo de treinamento do modelo YOLOv8n e sua implantação no Raspberry Pi 5. Definimos o tamanho do lote como 8, o tamanho de entrada como 640x640 e a taxa de quadros do vídeo de entrada como 240 fps. A velocidade de inferência alcançada é de 136,7 fps, o que é excepcionalmente rápido para a maioria dos cenários de aplicação.
Suporte Técnico e Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.






