File size: 4,870 Bytes
953b114
c4b6bb3
 
 
 
 
 
 
 
 
 
 
 
 
953b114
c4b6bb3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
---
license: agpl-3.0
language:
- en
base_model:
- YOLO11
pipeline_tag: object-detection
tags:
- Axera
- YOLO11-OBB
- NPU
- Ultralytics
- Oriented Object Detection
- Rotated Bounding Box
---

# YOLO11-OBB

This version of **YOLO11-OBB** (Oriented Bounding Box) has been converted to run on the Axera NPU using **w8a16** quantization. It is optimized for detecting rotated objects such as ships, harbors, vehicles, and other DOTA-style targets with oriented bounding boxes.

Compatible with Pulsar2 version: 6.0.

## Convert tools links

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

- [The repo of AXera Platform](https://github.com/AXERA-TECH/ax-samples), where you can get the detailed guide.
- [Pulsar2 Link, How to Convert ONNX to axmodel](https://pulsar2-docs.readthedocs.io/en/latest/pulsar2/introduction.html)

## Support Platform

This repository currently provides axmodels for the following Axera platforms only:

- **AX650N/AX8850**
  - [M4N-Dock(爱芯派Pro)](https://wiki.sipeed.com/hardware/zh/maixIV/m4ndock/m4ndock.html)
  - [M.2 Accelerator card](https://docs.m5stack.com/en/ai_hardware/LLM-8850_Card)
- **AX637**

## Model files

The converted axmodels are organized by target platform:

```text
yolo11_obb/
β”œβ”€β”€ 650/
β”‚   β”œβ”€β”€ yolo11n-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11n-obb_640x640_npu3.axmodel
β”‚   β”œβ”€β”€ yolo11s-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11s-obb_640x640_npu3.axmodel
β”‚   β”œβ”€β”€ yolo11m-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11m-obb_640x640_npu3.axmodel
β”‚   β”œβ”€β”€ yolo11l-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11l-obb_640x640_npu3.axmodel
β”‚   β”œβ”€β”€ yolo11x-obb_640x640_npu1.axmodel
β”‚   └── yolo11x-obb_640x640_npu3.axmodel
β”œβ”€β”€ 637/
β”‚   β”œβ”€β”€ yolo11n-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11s-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11m-obb_640x640_npu1.axmodel
β”‚   β”œβ”€β”€ yolo11l-obb_640x640_npu1.axmodel
β”‚   └── yolo11x-obb_640x640_npu1.axmodel
β”œβ”€β”€ ax_infer.py
β”œβ”€β”€ boats.jpg
└── result_yolo11_obb_ax.jpg
```

## Performance Statistics

Latency data is left blank and can be filled in after benchmark testing.

### AX650N/AX8850

| Model | Latency(ms) npu1 | Latency(ms) npu3 |
| :--- | :---: | :---: |
| **yolo11n-obb** | 3.491 | 1.383 |
| **yolo11s-obb** | 9.008 | 3.240 |
| **yolo11m-obb** | 26.086 | 8.958 |
| **yolo11l-obb** | 33.724 | 11.496 |
| **yolo11x-obb** | 73.796 | 25.168 |

### AX637

| Model | Latency(ms) |
| :--- | :---: |
| **yolo11n-obb** | 4.191 |
| **yolo11s-obb** | 11.068 |
| **yolo11m-obb** | 27.316 |
| **yolo11l-obb** | 35.625 |
| **yolo11x-obb** | 79.141 |

## How to use

Download all files from this repository to the device, then choose the axmodel that matches your target platform.

### Python env requirement

#### pyaxengine

https://github.com/AXERA-TECH/pyaxengine

```bash
wget https://github.com/AXERA-TECH/pyaxengine/releases/download/0.1.3.rc2/axengine-0.1.3-py3-none-any.whl
pip install axengine-0.1.3-py3-none-any.whl
```

### Inference on board

Input image:

![](boats.jpg)

Run with an AX650N/AX8850 model:

```bash
python3 ax_infer.py -m 650/yolo11m-obb_640x640_npu3.axmodel -i boats.jpg
```

Run with an AX637 model:

```bash
python3 ax_infer.py -m 637/yolo11m-obb_640x640_npu1.axmodel -i boats.jpg
```

Example output from AX637:

```bash
root@ax637:~/11obb# python3 ax_infer.py -m yolo11m-obb_640x640_npu3.axmodel -i boats.jpg
[INFO] Available providers:  ['AxEngineExecutionProvider']
[INFO] Using provider: AxEngineExecutionProvider
[INFO] Chip type: ChipType.M57H
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Engine version: 2.12.0s
[INFO] Model type: 0 (single core)
[INFO] Compiler version: 6.0 93b95f7f
Load model: 844.4 ms
Forward+post: 194.9 ms
Found 167 oriented objects.
  ship                 conf=0.84 cx=1707.6 cy=792.9 w=105.7 h=34.9 theta=+26.0
  ship                 conf=0.84 cx=1790.4 cy=573.8 w=117.8 h=36.5 theta=+24.5
  ship                 conf=0.84 cx=1723.6 cy=760.6 w=108.8 h=31.4 theta=+24.5
  ship                 conf=0.84 cx=1782.8 cy=620.8 w=112.0 h=35.7 theta=+25.0
  ship                 conf=0.82 cx=1487.2 cy=694.4 w=97.2 h=31.3 theta=+21.0
  ...
  harbor               conf=0.29 cx=824.3 cy=184.2 w=230.5 h=521.3 theta=+24.0
  ship                 conf=0.29 cx=1219.5 cy=246.9 w=85.7 h=24.0 theta=+23.0
  ship                 conf=0.29 cx=1652.9 cy=276.2 w=80.3 h=26.1 theta=+20.5
  ship                 conf=0.29 cx=1190.1 cy=307.0 w=91.3 h=28.6 theta=+21.0
  harbor               conf=0.27 cx=1535.8 cy=388.2 w=221.8 h=953.5 theta=+20.5
  ship                 conf=0.26 cx=1517.0 cy=274.2 w=84.8 h=24.2 theta=+21.5
  ship                 conf=0.26 cx=1522.8 cy=252.3 w=89.5 h=29.9 theta=+19.5
Saved: result_yolo11_obb_ax.jpg
```

Output image:

![](result_yolo11_obb_ax.jpg)