Hailo-8上の低消費電力Edge AI

17.1K Views

December 18, 23

スライド概要

2023/12/14「自動運転におけるAIコンピューティングⅡ」
発表者:梅田 弾

profile-image

TIER IV(ティアフォー)は、「自動運転の民主化」をビジョンとし、Autowareを活用したソフトウェアプラットフォームと統合開発環境を提供しています。 #Autoware #opensource #AutonomousDriving #deeptech

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Hailo-8上の低消費電力Edge AI 株式会社ティアフォー 梅田 弾

2.

Speaker 経歴: 早稲田大学基幹理工研究科情報理工専攻博士後期課程修了 ~2016 早稲田大学 基幹理工学部助手 車載ソフトウェア向けの並列化コンパイラの研究に従事 ~2017 電気メーカ研究所 ビックデータ可視化に関する研究開発に従事 (前回)自動運転におけるAIコンピューティング23/7/13 ▷Edge AIのためのDNN推論処理の最適化 ~2022 自動車メーカ研究所 自動運転AIの研究開発に従事 [Youtube] https://www.youtube.com/watch?v=lehBFSwye5o#t=1h46m 37s [Docswell] 2023~ TIER IV DNN高速化やEdge AIの研究開発に従事 https://www.docswell.com/s/TIER_IV/KGX2L8-2023-07-24-1 20048 2019~ 早稲田大学 客員講師・ 招聘研究員 並列化コンパイラの研究に従事

3.

TIER IVでのHailo-8実装最適化の取り組み事 例を紹介 Hailo-8上の 低消費電力Edge AI 1) YOLOXにおけるHailo-8へのデプロイ 2) LightNetにおけるHailo-8へのデプロイ 3) Hailo-8用いたアプリケーション事例 3

4.

Artifical Intelligence (AI)とDeep Neural Network (DNN)の進化の流れ 機械学習としての側面 10x Per Year J. Sevilla el al., arXiv:2202.05924, “Compute Trends Across Three Eras of Machine Learning” https://arxiv.org/abs/2202.05924 Deep Learning (AlexNet)の登場から、AIに必要なパラメータと計算量が爆発的に増加しつづけている 4

5.

GPU性能の進展の流れ 計算機としての側面 Predicting GPU Performance https://epochai.org/blog/predicting-gpu-performance 今のところは、 AIの学習・推論に必要な GPU性能も進化し続けている AIの進化に比べてれば緩やか (2x per 2.69 years) => 機械学習と計算機のギャップ大きい 5

6.

Peak Power vs Peak Performance DNNを処理するために必要な AIプロセッサは電力により制約される => 特にエッジ環境化では低消費電力であることが求められる A. Reither et al., arXiv:2210.04055, “AI and ML Accelerator Survey and Trends” https://arxiv.org/abs/2210.04055 空冷では <10W程度が望ましい IoT autonomous 10W cloud or datacenter 100W 6

7.

Peak Power vs Peak Performance DNNを処理するために必要な AIプロセッサは電力により制約される => 特にエッジ環境化では低消費電力であることが求められる A. Reither et al., arXiv:2210.04055, “AI and ML Accelerator Survey and Trends” https://arxiv.org/abs/2210.04055 空冷では <10W程度が望ましい IoT autonomous 10W cloud or datacenter 100W 本発表では10W以下のHailo-8への実装を狙って、最適化・高速化の取り組みを紹介します 7

8.

https://hailo.ai/products/technology/ Hailo-8 ❏ AI推論用に特化した Accelerator ❏ M.2のインターフェースを持ち、任 意のシステムと接続可能 ❏ 低消費電力で 26TOPSの性能 ❏ Domain-Specific Dataflow ターゲットDNNの構造に併せて、HW構成が変化 => Edge AIに合わせた電力効率が高い推論が可能 8

9.

Hailo-8 構成 開発用の構成 ノートパソコン M.2 TypeC Converter Hailo AI Accelerator M.2 Key M Rock 5 ModelB 以下からイメージから環境構築するのが用意 https://github.com/Qengineering/Rock-5-image A76 A76 A76 A76 A 5 5 A 5 5 A 5 5 A 5 5 M.2 Hailo-8 USB-Type-C USB-Type-C Converterを介した転送を行うた め、右よりDNNのLatencyが遅 くなる傾向がある Amazonより購入可能 CPU : Cortex A76 x4 + Cortex A55 (big.LITTLE) M.2 (PCIe 3.0x4)があり、 直接接続できるため、転送オーバヘッド小 big.LITTLEの構成下で、 最大性能を評価するため、 CPU Affinity設定をする taskset -c 4,5,6,7 $CMD 本発表はRock5の環境で評価を実施 9

10.

Hailo AI Software Suite https://hailo.ai/products/hailo-software/hailo-ai-software-suite/#sw-overview Runtime for AI Compiler for AI 本発表で使用するSoftware Suite のバージョン ➢ Hailo Dataflow Compiler v3.25.0 ➢ HailoRT v4.15.0 10

11.

AIコンパイラを使ったデプロイのワークフロー ONNX, Tensorflow 一般的なワークフロー Frontend Translate into Intermediate Representation Middleend Optimize Neural Network Layer Fusion (Graph Optimization) Quantization Backend binary Generate binary for target devices Scheduling Allocation Runtime selection 11

12.

Hailo Dataflow Compilerによるワークフロー ONNX, Tensorflow 一般的なワークフロー Hailo Dataflow Compilerの ワークフロー Frontend Translate into Intermediate Representation Middleend Optimize Neural Network Layer Fusion (Graph Optimization) Quantization Backend binary Generate binary for target devices Scheduling Allocation Runtime selection 各ワークフローに沿って説明します 12

13.

1) YOLOXにおけるHailo-8へのデプロイ 13

14.

YOLOX Object Detection ● Ge et al., arXiv:2107.08430, “YOLOX: Exceeding YOLO Series in 2021” YOLOX <= AutowareのCamera Perceptionに採用している ○ 2021年にMegvii Technologyに提案された物体検出DNN ■ YOLOv3, YOLOv4を踏襲したsingle shot detector ○ Decoupling Headによる分類と回帰タスクのコンフリクトの緩和 ○ Anchor Freeにより汎化性能の向上 ○ スケーラブルなモデルの提供(Nano, Tiny, S, M, L, X) ○ Apache License (TIER IVとしてはここを重視) https://github.com/Megvii-BaseDetection/YOLOX より引用 14

15.

Hailo-8 YOLOX (Parse) hailo parser onnx YOLOX.onnx YOLOX.har har : Hailo Archive モデル情報や重み、最適化された情報などを含んでいる 15

16.

Hailo-8 YOLOX (Optimize) from yolox.data.data_augment import preproc as preproces calib_dataset = np.zeros((len(images_list), height, width, 3), dtype=np.float32) for idx, img_name in enumerate(images_list): img = np.array(Image.open(os.path.join(images_path, img_name))) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_preproc, ratio = preprocess(img, input_shape,swap=(0,1,2)) calib_dataset[idx,:,:,:] = img_preproc np.save('calib_set.npy', calib_dataset) HailoはNHWC フォーマット hailo optimize YOLOX.har --calib-set-path calib_set.npy YOLOX_quantized.har 16

17.

Hailo-8 YOLOX (Compile) hailo compiler YOLOX_quantized.har --hw-arch hailo8 YOLOX_quantized_compiled.har YOLOX.hef HEF : Hailo Executable File 17

18.

Hailo-8 YOLOX (Profile) Step1: Get runtime profile (.json) on a target device. hailortcli run YOLOX.hef collect-runtime-data Step2: Get a profile report using runtime profile hailo profiler YOLOX_quantized_compiled.har –runtime-data runtime_data_YOLOX.json Runtime Banwidth Layer-by-layer latency Call graph DNN最適化に有益な情報がグラフィカルに取得できる 18

19.

Evaluation for YOLOX on Hailo-8 GFLOPs Params [M] Accuracy@ INT8 [mAP] Latency [ms] FPS [frames/s] 性能評価結果は”hailortcli benchmark”を使用 Power [W] Contexts Tiny @960x960 33.9 5.0 43.28 9.62 92.38 2.41 3 S @960x960 59.7 8.9 44.10 13.70 66.46 2.77 3 M @960x960 164.9 25.3 49.08 30.66 31.72 3.34 5 3W前後の消費電力でYOLOXのTinyからMをリアルタイム処理可能 19

20.

TIER IV YOLOXモデル最適化 (YOLOX-S-Opt) 「Edge AIのためのDNN推論処理の最適化」で紹介した YOLOX-S-Optを使用する https://www.docswell.com/s/TIER_IV/KGX2L8-2023-07-24-120048 ▷NVIDIA GPU/DLA向けに最適化したモデル a) ● ● Model Simplification a) Remove SPP b) Simplify Stem c) SWISH2RELU6 (SWISH2RELU) Switch modern macro architecture d) CSP-Res => ELAN-Res (C2F) b) d) c) 20

21.

Evaluation for YOLOX on Hailo-8 GFLOPs Params [M] Accuracy@ INT8 [mAP] Latency [ms] FPS [frames/s] 性能評価結果は”hailortcli benchmark”を使用 Power [W] Contexts Tiny @960x960 33.9 5.0 43.28 9.62 92.38 2.41 3 S @960x960 59.7 8.9 44.10 13.70 66.46 2.77 3 M @960x960 164.9 25.3 49.08 30.66 31.72 3.34 5 S-Opt @960x960 73.8 10.2 49.54 12.27 74.66 3.13 3 Repository https://github.com/tier4/hailort-yoloXP Hailo-8 Model https://github.com/tier4/hailort-yoloXP/blob/main/hef/yolo x-s-opt-relu6-960x960-T4.hef Edge Processor向けに最適化したモデルYOLOX-S-Optは Hailo-8上でも有効なことを確認 21

22.

Runtime Profile for YOLOX-S-Opt hailo profiler YOLOX_quantized_compiled.har --hw-arch hailo8 --mode post_placement --hef YOLOX.hef --runtime-data runtime_data_YOLOX.json モデルが3つのContext(サブグラフ)に分割し、コンテクストス イッチしながら実行される => DataFlowが活かされず、FPSを向上しにくい 22

23.

YOLOX-S-OptのFPS向上 ※Hailo Dataflow Compiler v3.25.0より追加された新機能 Allocationの最適化に以下Optionを追加 “performance_param(compiler_optimization_level=max)” => 可能であれば、Contextを1つに集約できる ======= Summary ======= FPS (hw_only) = 74.2608 (streaming) = 74.1897 Latency (hw) = 12.2719 ms Device 0000:01:00.0: Power in streaming mode (average) = 2.97239 W (max) = 3.02594 W ======= Summary ======= FPS (hw_only) = 89.3205 (streaming) = 89.3221 Latency (hw) = 17.9989 ms Device 0000:01:00.0: Power in streaming mode (average) = 3.0152 W (max) = 3.03359W 15FPS向上 レイテンシは増えるが 単一のコンテクスト実行が可能となり、FPSが向上できる 23

24.

Wu et al., arXiv:2108.11250, “YOLOP: You Only Look Once for Panoptic Driving Perception” Han et al., arXiv:2208.11434, “YOLOPv2: Better, Faster, Stronger for Panoptic Driving Perception” マルチタスクYOLOX (YOLOXP) Backbone Neck Head detection 73.8GFLOPs 10.2MParams detection detection Detection non trainable (frozen) 92.8GFLOPs (+25.7%) 10.9MParams (+6.8%) segmentation trainable detection detection detection Encorder Detection + Segmentation Decorder Decoderの追加学習によりSegmentationタスクを追加 24

25.

Hailo-8上のYOLOXP segmentation 92.8GFLOPs (+25.7%) 10.9MParams (+6.8%) detection detection detection GFLOPs Params [M] Latency [ms] FPS [frames/s] Power [W] Contexts detection @960x960 73.8 10.2 12.3 74.7 3.13 3 detection+ segmentation @960x960 92.8 10.9 21.1 46.7 2.71 3 Hailo-8上のDetection+Segmentationタスクが実現 25

26.

2) LightNetにおけるHailo-8へのデプロイ 26

27.

TIER IV YOLOシリーズの変遷 darknet53 +FPN YOLO 15/6 Joseph Redmon YOLOv2 16/12 Joseph Redmon YOLOv3 18/4 Joseph Redmon ELAN (C2F) + PAN CSP + PAN YOLOv4 20/4 Alexey Bochkosky Chien-Yao Wang Scaled YOLOv4 YOLOR 20/11 Chien-Yao Wang 21/5 Chien-Yao Wang Alexey Bochkosky YOLOv7 22/7 Chien-Yao Wang Alexey Bochkosky YOLOv5 YOLOv8 Model Scaling 20/6? Ultralystics 23/1 Ultralystics YOLOX 毎年のように新しいYOLOシリーズは 提案されているものの、 Edge AIに特化して最適化されたものは 提案されていない ResNet +FPN PP-YOLO 20/8 Baidu 21/3 Megvii YOLO-NAS NAS 23/5 Deci GOLD-YOLO CNN 23/9 Huawei +Transformer 27

28.

TIER IV YOLOシリーズの変遷 Edge AIを狙ってモデルを シンプル化し darknet53 +FPN YOLO 15/6 Joseph Redmon YOLOv2 16/12 Joseph Redmon YOLOv3 18/4 Joseph Redmon 20/4 Alexey Bochkosky Chien-Yao Wang LightNetV2 ELAN (C2F) + PAN CSP + PAN YOLOv4 LightNet Scaled YOLOv4 YOLOR 20/11 Chien-Yao Wang 21/5 Chien-Yao Wang Alexey Bochkosky YOLOv7 22/7 Chien-Yao Wang Alexey Bochkosky YOLOv5 YOLOv8 Model Scaling 20/6? Ultralystics LightNet's Feature -Network Simplification -Channel Pruning -Sparse Pruning (2:4 structured Sparsity) -Supports NVDLA and Hailo-8 -Multi-task learning 23/1 Ultralystics YOLOX ResNet +FPN PP-YOLO 20/8 Baidu 21/3 Megvii YOLO-NAS NAS 23/5 Deci GOLD-YOLO CNN 23/9 Huawei +Transformer 28

29.

conv-relu-bn SWISH LightNet YOLOv7 (ELAN) like simple block No residual connenction conv-relu-bn conv-relu-bn Pruning-aware architecture conv-relu-bn conv-relu-bn □LightNet = Simplify(YOLOv7) RELU https://github.com/daniel89710/lightNet https://github.com/daniel89710/lightNet-TRT conv-relu-bn stem concat conv-relu-bn detect head scale : 1/4 stage1 scale : 1/8 stage2 up stage6 down stage7 detect head stage3 up stage5 down state8 detect head scale : 1/16 neck scale : 1/32 stage4 ASPP backbone Simple and modern architecture is better for efficient inference on edge devices!

30.

conv-relu-bn YOLOv7 (ELAN) like simple block No residual connenction conv-relu-bn LightNetV2 conv-relu-bn Pruning-aware architecture conv-relu-bn □LightNetV2 = Simplify(YOLOv7 + YOLONAS) conv-relu-bn conv-relu-bn stem concat conv-relu-bn YOLONAS like shortcut scale : 1/4 detect head stage1 scale : 1/8 stage2 up stage6 down stage7 detect head stage3 up stage5 down state8 detect head scale : 1/16 neck scale : 1/32 stage4 ASPP backbone Simple and modern architecture is better for efficient inference on edge devices!

31.

Hailo-8 LightNet (Parse) hailo parser onnx LightNet.onnx LightNet.har 31

32.

Hailo-8 LightNet (Optimize) def preprocess(img, input_shape) : resized = cv2.resize(img, (input_shape[0], input_shape[1]), interpolation=cv2.INTER_LINEAR) img_in = cv2.cvtColor(resized, cv2.COLOR_BGR2RGB) img_in = np.transpose(img_in, (0, 1, 2)).astype(np.float32) img_in = np.expand_dims(img_in, axis=0) img_in /= 255.0 HailoはNHWCフォーマット return img_in calib_dataset = np.zeros((N, height, width, 3), dtype=np.float32) for idx, img_name in enumerate(images_list): if idx >= N : break img = np.array(Image.open(os.path.join(images_path, img_name))) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) #preprocess outputs 'NCHW' format due to using OpenCV img_preproc = preprocess(img, input_shape) calib_dataset[idx,:,:,:] = img_preproc np.save('calib_set.npy', calib_dataset) hailo optimize LightNet.har --calib-set-path calib_set.npy Lightnet_quantized.har 32

33.

Hailo-8 LightNet (Optimize) hailo compiler LightNet_quantized.har --hw-arch hailo8 LightNet.hef 33

34.

Performance Evaluation on Hailo-8 GFLOPS Params Latency [ms] FPS Power [W] Contexts mAP @B100K yolov7-tiny 29.4 6.0 7.4 259.6 4.50 1 51.19 yolonas-s 74.0 12.7 15.1 57.0 2.62 2 54 lightNet 43.4 9.0 10.3 167.0 3.00 1 54.11 lightNetV2 49.2 10.6 13.4 143.5 3.19 1 55.21 精度改善しつつも、Latencyが3ms増加 => 別途DNNの圧縮で最適化する https://github.com/tier4/hailort-LightNet 34

35.

2) LightNetにおけるHailo-8へのデプロイ 量子化の定量評価 35

36.

DNNの量子化 [Neta, GTC2021] [Horowitz, ISCCC 2014] 8bit整数型(INT8)は電力・面積共に効率が良い =>消費電力・面積に制約がある組み込み環境ではINT8が一般的

37.

Wu et al., arXiv:2004.09602, ‘INTEGER QUANTIZATION FOR DEEP LEARNING INFERENCE: PRINCIPLES AND EMPIRICAL EVALUATION’ DNN量子化のワークフロー calibraion calibraion weight quantization Activation quantization optimization ・統計値を取得して、Dynamic Range[α,β]を算出 Activationの場合、ラベルなしデータを使う ex) Max, Entropy, Percentile, MSE … ・scale factor ‘s’とzero-point ‘z’を算出し、量子化 ・種々の最適化により量子化誤差を低減 37

38.

Wu et al., arXiv:2004.09602, “INTEGER QUANTIZATION FOR DEEP LEARNING INFERENCE: PRINCIPLES AND EMPIRICAL EVALUATION” DNN量子化のワークフロー calibraion calibraion weight quantization Activation quantization optimization ・統計値を取得して、Dynamic Range[α,β]を算出 Activationの場合、ラベルなしデータを使う ex) Max, Entropy, Percentile, MSE … ・scale factor ‘s’とzero-point ‘z’を算出し、量子化 ・種々の最適化により量子化誤差を低減 calibrationとoptimizationに関して評価する 38

39.

INT8 Quantization per Number of Calibration Images baseline : ONNX runtime@FP32 ▼1.25% ▼1.23% ▼0.83% ▼0.56% ▼0.29% ▼0.14% ▼0.58% ▼0.63% 32枚以上のキャリブレーションデータで量子化誤差を 1%以内を達成 256枚のキャリブレーションを使ったときが最高精度(精度低下 0.14%) => シンプルなモデルであれば、大量のキャリブレーションデータは不要

40.

INT8 Quantization per Quantization Options Optimization Level 0 強力な量子化のオプションがサポートされており、量子化誤差を極限まで低減できる Equalization [1] 1 Bias Correlation [2] 2 Quantization-Aware Finetuning (QFT) [3] 3 AdaRound [4] 4 [1] Meller et al., arXiv:1902.01917, “Same, Same But Different - Recovering Neural Network Quantization Error Through Weight Factorization” [2] Finkelstein et al., arXiv:1906.03193, “Fighting Quantization Bias With Bias” [3] Finkelstein et al., arXiv:2212.02634, “QFT: Post-training quantization via fast joint finetuning of all degrees of freedom” [4] Nagel et al., arXiv:2004.10568, “Up or Down? Adaptive Rounding for Post-Training Quantization” AdaRound mAP@BDD100K Accuracy Drop [%] ONNX-Runtime-FP32 (baseline) 55.22 - default (Full INT8) 55.14 ▼0.14% Optimization Level=1 55.05 ▼0.31% Optimization Level=2 55.21 ▼0.02% Optimization Level=3 55.13 ▼0.16% (the number of data is different) level 2-4 : Finetuning with unlaeled data Optimization Level=2でほぼFP32と遜色ない精度を達成

41.

2) LightNetにおけるHailo-8へのデプロイ Pruningによるネットワーク圧縮 41

42.

q Pruning Method q Fine Grain Pruning (Sparse Pruning, Weight Pruning, Unstructured Pruning ) ■ ✔ 寄与度の低い枝もしくは重みをカット (0にする) 特殊なハードウェアでしか実行できない q Coarse Grain Pruning (Channel Pruning, Structured Pruning) ■ ■ ✔ 寄与度の低いチャンネルをカット 任意のハードウェアで実行できる 精度が下がりやすい q Mao et al., arXiv:1705.08922, “Exploring the Regularity of Sparse Structure in Convolutional Neural Networks” q q 42

43.

q Pruning Method q Fine Grain Pruning (Sparse Pruning, Weight Pruning, Unstructured Pruning ) ■ ✔ 寄与度の低い枝もしくは重みをカット (0にする) 特殊なハードウェアでしか実行できない q Coarse Grain Pruning (Channel Pruning, Structured Pruning) ■ ■ ✔ 寄与度の低いチャンネルをカット 任意のハードウェアで実行できる 精度が下がりやすい q Mao et al., arXiv:1705.08922, “Exploring the Regularity of Sparse Structure in Convolutional Neural Networks” q q 43

44.

Sensitivity Analysis for Weights Pruning Li et al., arXiv:1608.08710, “PRUNING FILTERS FOR EFFICIENT CONVNETS” original accuracy

45.

conv-relu-bn YOLOv7 (ELAN) like simple block conv-relu-bn Sensitivity Analysis for Weights Pruning conv-relu-bn conv-relu-bn conv-relu-bn conv-relu-bn Li et al., arXiv:1608.08710, “PRUNING FILTERS FOR EFFICIENT CONVNETS” concat conv-relu-bn original accuracy concat毎の1x1 Convで 精度が下がりやすい チャンネル数が小さい(16~64)初期のレ イヤは精度が特に下がりやすい ラストレイヤ付近も精度が下がりやすい 精度が下がりにくい中間レイヤをターゲットに段階的に Pruningを実施

46.

Evaluation for Weights Pruning basselineより誤 差1%以内 49.2G FLOPS Weights Pruning Ratio [%] 39.7G FLOPS 32.1G FLOPS 28.8G FLOPS 23.5G FLOPS 18.6G FLOPS 12.3G FLOPS 85%の重みの削減時、精度劣化を0.87%に抑制した上 で、約1.4x高速+約1W削減 Max Power Consumptio n [W] Control Usage [%[ Compute Usage [%] Memory Usage [%] 0.0 3.19 85.2 71.1 51.5 36.79 3.06 85.2 75.2 37.5 63.21 2.65 85.2 66.2 29.9 77.36 2.48 84.4 64.6 24.6 85.85 2.22 84.4 51.6 26.1 90.75 2.03 84.4 41.4 23.5 95 1.76 84.4 33 22.6 モデル圧縮を実施するほど、HW の使用率が減少し、消費電力を削 減できる 46

47.

Evaluation for Weights Pruning Energy [mJ] = Power [W] x Latency [ms] 3.19W 42.7mJ 2.22W 2.62W 21.2mJ 4.50W Hailo-8の場合、Pruningを実施すればするほど、レイテンシや消費電力が削減でき、電力効率を向上できる 47

48.

3) Hailo-8を使ったアプリケーション事例 48

49.

事例1 : リアルタイム匿名化 1st stage Image Detection DNN : Person Detector (LightNet) Input : 960x960x3 Dataset : CrowdHuman https://www.crowdhuman.org/ 2nd stage crop & resize Segmentation DNN : Head Segmenter (UNet) Input : 320x320x3 Dataset : Face/Head segmentation https://www.v7labs.com/open-datasets/fa ce-head-segmentation-dataset 49

50.

事例1 : リアルタイム匿名化デモ 50

51.

事例2 : 単眼マルチタスクパーセプション Multi-task LightNet detection detection Object Detection semantic segmentation segmentation detection lane detection Pseudo LiDAR lane detection GFLOPs 86.4 Params [M] 9.4 Latency [ms] 36.6 FPS [frames/s] 27.3 Power [W] 2.16 Contexts 4 depth estimation 解像度960x960のときのパラメータと性能 Hailo-8上で、単一のDNNで4つのタスクを実現 Depth Estimation 51

52.

単眼マルチタスクパーセプションのパイプライン NMS CPU Image Decode ~10ms Image Decode & preprocess CPU Hailo-8 Pre-process inference ~2ms ~35ms mask generation mask generation Depth generation Pseudo LiDAR generation CPU postprocess ~10FPS ~50ms postprocessがボトルネックのため、 10FPSほどしか達成できない Image Decode & preprocess Image Decode & preprocess Image Decode & preprocess Image Decode & preprocess inference inference inference inference postprocess postprocess postprocess 各処理をパイプライン式に並列実行することで、約20FPSまで改善 ~20FPS 52

53.

事例2 : 単眼マルチタスクパーセプションデモ 53

54.

まとめ ● YOLOXにおけるHailo-8へのデプロイ ○ ○ ○ ● LightNetにおけるHailo-8へのデプロイ ○ ○ ○ ● Tiny, S, MのモデルをHailo-8上に実装 ■ 3W前後の消費電力でリアルタイム実行が可能 モデル最適化したYOLOX (YOLOX-S-Opt)を使い、Hailo-8上での優位性を確認 ■ YOLOX-Mと同等の精度で、Sよりも速い実行速度を実現 Segmentation Decoderの追加により、Detection+Segmentationのマルチタスクを実装 ■ YOLOXをSegmentationのEncoderとみなすことで、+9msでSegmentationを追加 Edge AIに最適化したLightNetをHailo-8上に実装 ■ YOLOv7とYOLONAS-Sを基にしたシンプルなモデル構造を採用することで、精度改善 LightNetV2を使い、量子化のパラメータ・オプションを評価 ■ キャリブレーション枚数が256枚,Optimize_Level=2のときに、量子化精度劣化を 0.02%まで抑制 チャンネルプルーニングを行い、実行時間及び電力を削減 ■ 85%の重みの削減時、精度劣化を 0.87%に抑制した上で、約1.4x高速+約1W削減 Hailo-8を使ったアプリケーション事例を紹介 ○ ○ リアルタイム匿名化 単眼マルチタスクパーセプション 54

55.

CONTACT US https://tier4.jp/ Thanks Again !