基本的にうろ覚えです。
ここに書いてある手順通りにやってもダメだったぞ!!てなったら教えてください
すごい今更感&なぜ今(今日は元旦)感がありますが、前々からやりたかったことなのでメモとして残します。
今年のいかこうは技術記事書きまくるのでよろしくお願いします。
Hailo-8を使う
動作環境を以下に示します。Hailoはrock5bの背面m.2に刺して使いました。
機器 | 概要 |
---|---|
PC | ROCK5 model B |
OS | Ubuntu 5.10.0-1012-rockchip |
Hailo | Hailo-8 M.2 AI Acceleration Module |
Hailo-8を使うには主に3つのソフトをインストールする必要があります。
- Hailo PCle ドライバとファームウェア
- HailoRT
- 使いたい言語ごとのHailoライブラリ
1. Hailo PCle ドライバとファームウェアのインストール
sudo apt update
sudo apt upgrade -y
sudo apt install -y cmake dkms
Hailo系のソフトはそれぞれのバージョンが違うと使えないみたいなので気をつけて
今回はv4.19.0
でやってみた
git clone -b v4.19.0 https://github.com/hailo-ai/hailort-drivers.git
cd hailort-drivers/linux/pcie
make all
sudo make insttall_dkms
cd ~/hailort-drivers
./download_firmware.sh
sudo mv hailo8_fw.4.19.0.bin /lib/firmware/hailo/hailo8_fw.bin
sudo cp linux/pcie/51-hailo-udev.rules /etc/udev/rules.d/
sudo cp linux/pcie/hailo_pci.conf /etc/modprobe.d/
sudo vim /etc/modprobe.d/hailo_pci.conf
hailo_pci.conf
内の二つの行のコメントをはずします。
# Modprobe information used for Hailo PCIe driver, edit this file when needed.
# Disables automatic D0->D3 transition, should be set on platforms that
# does not support such transition.
options hailo_pci no_power_mode=N # この行のコメントを外す
# Determines the maximum DMA descriptor page size (must be a power of 2), needs to be
# set on platforms that does not support large pcie transactions.
options hailo_pci force_desc_page_size=4096 # この行のコメントも外す
2. HailoRTをインストール
Hailo Developer Zoneで以下の選択肢で
HailoRT-Ubuntu package(deb) for arm64
と
HailoRT-Python package(whl) for Python 3.10, aarch64
をダウンロードします。
項目 | 内容 |
---|---|
Software Package | AI Software Suite |
Software Sub-Package | HailoRT |
Architecture | ARM64 |
OS | Linux |
Python Version | 3.10 |
hailort_4.19.0_arm64.deb
とhailort-4.19.0-cp310-cp310-linux_aarch64.whl
がダウンロードされていることが確認できたら
$ sudo apt install ./hailort_4.19.0_arm64.deb
$ hailortcli fw-control identify # このコマンドでHailo-8が認識されていることを確認
# 出力例
Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.19.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8
Serial Number: HLLWM2B225102960
Part Number: HM218B1C2FAE
Product Name: HAILO-8 AI ACC M.2 M KEY MODULE EXT TEMP
3. PythonでHailoを使う
pip install hailort-4.19.0-cp310-cp310-linux_aarch64.whl
Hailoでyoloを使うには専用のモデルが必要です。ここからモデルを持ってきます。
とりあえず、一番強そうなのを動かします。
mkdir models
cd models
wget https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.13.0/hailo8/yolov10x.hef
あと、適当にテスト用の動画をとってきます
mkdir videos
cd videos
wget https://videos.pexels.com/video-files/854100/854100-hd_1920_1080_25fps.mp4
これでいごかす環境は整いました。githubにプログラムをpushしたので勝手に使ってください
うおおおおうごいた!!!
あとでHailoなしのyolov10xと比較してみたけど、かなり早くなってる!!!
参考