Yolo26-Depth / README.md
Nnow2024's picture
Update README.md
3b8d75f verified
|
Raw History Blame Contribute Delete
4.92 kB
metadata
license: bsd-3-clause
language:
  - en
base_model:
  - YOLO26
pipeline_tag: depth-estimation
tags:
  - Axera
  - NPU
  - yolo26-depth

YOLO26-Depth

This repository provides an Axera NPU inference deployment example for the Ultralytics YOLO26-Depth depth-estimation model, including model conversion and AX8850N Python inference examples.

This version of YOLO26-Depth has been converted to run on the Axera NPU using mixed U8/U16 quantization for improved performance.

Convert tools links:

For those who are interested in model conversion, you can try to export axmodel through

Support Platform

Performance Statistics

AX8850N (NPU3 mode)

ζ¨‘εž‹ εˆ†θΎ¨ηŽ‡ θ€—ζ—Ά(ms) FPS CMM(MiB)
yolo26n-depth 768x768 5.83 171.53 7.97
yolo26s-depth 768x768 8.33 120.05 14.90
yolo26m-depth 768x768 16.37 61.09 36.36
yolo26l-depth 768x768 20.74 48.22 41.12
yolo26x-depth 768x768 39.19 25.52 93.37

AX8910

ζ¨‘εž‹ εˆ†θΎ¨ηŽ‡ θ€—ζ—Ά(ms) FPS CMM(MiB)
yolo26n-depth 768x768 20.42 48.97 16.38
yolo26s-depth 768x768 29.24 34.20 25.27
yolo26m-depth 768x768 52.34 19.11 48.02
yolo26l-depth 768x768 66.61 15.01 45.65
yolo26x-depth 768x768 120.21 8.32 83.85

AX630C (NPU2 mode)

ζ¨‘εž‹ εˆ†θΎ¨ηŽ‡ θ€—ζ—Ά(ms) FPS CMM(MiB)
yolo26n-depth 768x768 27.67 36.14 15.65
yolo26s-depth 768x768 41.68 23.99 22.75
yolo26m-depth 768x768 74.02 13.51 47.10
yolo26l-depth 768x768 94.04 10.63 44.77
yolo26x-depth 768x768 169.09 5.91 84.50

AX615 (NPU2 mode)

ζ¨‘εž‹ εˆ†θΎ¨ηŽ‡ θ€—ζ—Ά(ms) FPS CMM(MiB)
yolo26n-depth 768x768 82.17 12.17 14.21
yolo26s-depth 768x768 109.03 9.17 23.44
yolo26m-depth 768x768 170.99 5.85 47.75
yolo26l-depth 768x768 201.56 4.96 45.57

How to use

Download all files from this repository to the device

root@ax650:~/root/yolo26-depth# tree -L 2
.
β”œβ”€β”€ asserts
β”‚   β”œβ”€β”€ bus.jpg
β”‚   β”œβ”€β”€ ssd_car_depth_heatmap_ax.png
β”‚   β”œβ”€β”€ ssd_car_depth_heatmap_onnx.png
β”‚   └── ssd_car.jpg
β”œβ”€β”€ ax615
β”‚   β”œβ”€β”€ config.json
β”‚   β”œβ”€β”€ yolo26l-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26m-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26n-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26s-depth_w8a8_mix.axmodel
β”‚   └── yolo26x-depth_w8a8_mix.axmodel
β”œβ”€β”€ ax630c
β”‚   β”œβ”€β”€ config.json
β”‚   β”œβ”€β”€ yolo26l-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26m-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26n-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26s-depth_w8a8_mix.axmodel
β”‚   └── yolo26x-depth_w8a8_mix.axmodel
β”œβ”€β”€ ax637
β”‚   β”œβ”€β”€ config.json
β”‚   β”œβ”€β”€ yolo26l-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26m-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26n-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26s-depth_w8a8_mix.axmodel
β”‚   └── yolo26x-depth_w8a8_mix.axmodel
β”œβ”€β”€ ax8850n
β”‚   β”œβ”€β”€ config.json
β”‚   β”œβ”€β”€ yolo26l-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26m-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26n-depth_w8a8_mix.axmodel
β”‚   β”œβ”€β”€ yolo26s-depth_w8a8_mix.axmodel
β”‚   └── yolo26x-depth_w8a8_mix.axmodel
β”œβ”€β”€ axengine-0.1.3-py3-none-any.whl
β”œβ”€β”€ calib_data.zip
β”œβ”€β”€ fold_depth_log.py
β”œβ”€β”€ infer_depth.py
β”œβ”€β”€ onnx
β”‚   β”œβ”€β”€ yolo26l-depth.onnx
β”‚   β”œβ”€β”€ yolo26m-depth.onnx
β”‚   β”œβ”€β”€ yolo26n-depth.onnx
β”‚   β”œβ”€β”€ yolo26s-depth.onnx
β”‚   └── yolo26x-depth.onnx
β”œβ”€β”€ README.md
└── requirements.txt

6 directories, 39 files

Inference with AX650 Host, such as M4N-Dock(爱芯派Pro)

cd /root/yolo26-depth
pip3 install -r requirements.txt

pip3 install axengine-0.1.3-py3-none-any.whl

# axera npu infer
python3 infer_depth.py --model ./ax8850n/yolo26n-depth_w8a8_mix.axmodel --source ./asserts/ssd_car.jpg

# onnxtuntime cpu infer
python3 infer_depth.py --model ./onnx/yolo26n-depth.onnx --source ./asserts/ssd_car.jpg

axera npu output: