1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ROCK5BでHailo-8を使って爆速YOLO

Posted at

基本的にうろ覚えです。
ここに書いてある手順通りにやってもダメだったぞ!!てなったら教えてください

すごい今更感&なぜ今(今日は元旦)感がありますが、前々からやりたかったことなのでメモとして残します。
今年のいかこうは技術記事書きまくるのでよろしくお願いします。

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つのソフトをインストールする必要があります。

  1. Hailo PCle ドライバとファームウェア
  2. HailoRT
  3. 使いたい言語ごとの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内の二つの行のコメントをはずします。

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.debhailort-4.19.0-cp310-cp310-linux_aarch64.whlがダウンロードされていることが確認できたら

HailoRTをapt install
$ 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を使う

pythonのhailoライブラリをpip install
pip install hailort-4.19.0-cp310-cp310-linux_aarch64.whl

Hailoでyoloを使うには専用のモデルが必要です。ここからモデルを持ってきます。

とりあえず、一番強そうなのを動かします。

yolov10xモデルをwget
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と比較してみたけど、かなり早くなってる!!!
mv.gif

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?