## 使用在 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