---
# System prepended metadata

title: HAILO轉檔(.pt->onnx->hef)

---



## 使用在 VirtualBox 上安裝的 Ubuntu 虛擬機載入 Hailo 官方提供的 hailo_model_zoo。

【1】Ultralytics Docker (yolov8:v0)
    ➜ 訓練模型得到 best.pt
    ➜ 匯出為 best.onnx

【2】Hailo Docker (hailo_ai_sw_suite_2025-04_docker)
    ➜ 解析 & 編譯 best.onnx → yolov8s.har / yolov8s.hef

### Ubuntu 系統資訊
```bash
test@test0:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
test@test0:~$ uname -m
x86_64
test@test0:~$ uname -a
Linux test0 6.14.0-24-generic #24~24.04.3-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul  7 16:39:17 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
```


### 安裝docker 
```bash
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER  # 執行完需登出再登入
```
### 下載hailo_model_zoo

hailo_model_zoo 是 Hailo 官方提供的 Model Zoo，主要功能是幫助開發者將主流深度學習模型部署到 Hailo 晶片（如 Hailo-8）上。它涵蓋了從模型訓練、轉換、量化、編譯、推論與評估的全流程。

```bash
git clone https://github.com/hailo-ai/hailo_model_zoo.git
```

### 從 hailo_model_zoo/training/yolov8 內的 Dockerfile 建立映像檔（image）
```bash
cd hailo_model_zoo/training/yolov8
docker build --build-arg timezone=`cat /etc/timezone` -t yolov8:v0 .
```

### 啟動 yolov8:v0 container
```bash
sudo docker run -it --ipc=host \ 
  -v /home/test/Desktop:/mnt/desktop \
  -v /home/test/hailo_model_zoo:/workspace/hailo_model_zoo \
  -v /home/test/ultralytics:/workspace/ultralytics \
  yolov8:v0 /bin/bash
```
### 訓練模型
```bash
yolo detect train data=/workspace/ultralytics/ultralytics/datasets/coco128.yaml model=yolov8s.pt name=retrain_yolov8s epochs=100 batch=16
```

### 將訓練好的 YOLOv8 模型匯出到 ONNX
```bash
yolo export model=/workspace/ultralytics/runs/detect/retrain_yolov8s/weights/best.pt imgsz=640 format=onnx opset=11  # export at 640x640
```

## Docker相關指令

### 確認目前已有哪些 Docker 映像
```bash
docker images
```
### 查看容器列表	
```bash
docker ps -a
```

### 進入 docker
```bash
docker start unruffled_visvesvaraya
docker exec -it unruffled_visvesvaraya /bin/bash
```
### 找檔案
```bash
find / -name "best.pt"
```
### 退出 docker
```bash
exit
```



### Hailo ai網站下載Docker image
需要在此image內將onnx轉hef指令格式
https://hailo.ai/developer-zone/software-downloads/

![2025-07-30 150347](https://hackmd.io/_uploads/ByiOHrPPex.png)

### 先在主機上解壓縮 .zip 檔案，再把裡面的 .tar.gz複製到 Ubuntu 裡面進行建置。


放進 Ubuntu 後手動改權限再載入

```bash
sudo chmod 644 hailo_ai_sw_suite_2025-04.tar.gz
sudo docker load < hailo_ai_sw_suite_2025-04.tar.gz
```

### 啟動 hailo_ai_sw_suite_2025-04:1 container
```bash
sudo docker run -it --ipc=host \
  -v /home/test/Desktop:/mnt/desktop \
  -v /home/test/hailo_model_zoo:/workspace/hailo_model_zoo \
  -v /home/test/ultralytics:/workspace/ultralytics \
  hailo_ai_sw_suite_2025-04:1 /bin/bash
```



### onnx轉hef指令格式
```bash
hailomz compile   
--ckpt /mnt/desktop/best.onnx   
--calib-path /mnt/desktop/train2017   
--yaml /workspace/hailo_model_zoo/hailo_model_zoo/cfg/networks/yolov8s.yaml   
--start-node-names images   
--end-node-names output0   
--classes 80
```

### 在主機上執行以下指令（不要在容器內打）將docker資料搬到本機
```bash
sudo docker cp unruffled_visvesvaraya:/workspace/ultralytics/runs/detect/retrain_yolov8s/weights/best.onnx  
/home/test/Desktop/best.onnx
```
```bash
sudo docker cp cbfd587c67c8:/local/workspace/yolov8s.hef /home/test/Desktop
```

![image](https://hackmd.io/_uploads/ryqEhXJulg.png)

### 解壓 .whl 看有沒有 hailort 模組
```bash
mkdir check_whl && cd check_whl
cp ../hailort-4.22.0-cp312-cp312-linux_aarch64.whl .
unzip hailort-4.22.0-cp312-cp312-linux_aarch64.whl
```

**本機終端機傳輸檔案至樹莓派**
```bash
scp D:/Felix/000.jpg test@192.168.0.208:/home/test/handwritten_detect
```




參考資料

AI Kit and AI HAT+ software
https://www.raspberrypi.com/documentation/computers/ai.html


https://github.com/hailo-ai/hailo_model_zoo/tree/master/training/yolov8
