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...