Pular para o conteúdo principal

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 8GBRaspberry Pi AI Kit

Para Hailo8 26 TOPS

reComputer R1125reComputer AI R2130reComputer AI Industrial R2145
reComputer Industrial R20xxreComputer Industrial R21xx

Instalar Hardware

Por favor, consulte isto

No Computador Host

nota

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

pir

Você obterá o modelo best.pt após o treinamento, conforme mostrado abaixo:

cd ./runs/detect/retrain_yolov8n/weights/
ls

pir

Converta o modelo .pt para .onnx.

yolo export model=./best.pt imgsz=640 format=onnx opset=11 

Resultado como abaixo:

pir

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.

pir

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.

pir

pip install hailo_model_zoo-2.11.0-py3-none-any.whl 

Teste se hailo_model_zoo está funcionando corretamente.

hailomz -h

pir

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

pir

Use hailo_model_zoo para otimizar o modelo

nota

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

pir

Use hailo_model_zoo para compilar o modelo

hailomz compile  yolov8n --hw-arch hailo8l --har ./yolov8n.har 

pir

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

ls

pir

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

nota

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:

pir

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:

pir

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
nota

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.

Loading Comments...