heal
horizon
File size: 3,235 Bytes
3125fc9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2b7b9db
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
---
license: other
tags:
  - heal
  - horizon
---

# MOTR (EfficientNet-b3)

MOTR models tracking as per-frame query propagation: detection queries are passed across frames via `QueryInteractionModule`; new targets get new queries and disappeared targets are cleared; training jointly supervises detection and tracking losses.

---

## Deployment Metrics

### Model Parameters

| Model | Model Input | Backbone | Neck | Model Output |
|---|---|---|---|---|
| MOTR | multi-frame image sequence `1x3x800x1422` | EfficientNet-b3 | — | tracking boxes + track IDs `(B,Q,cls+reg+id)` |

### Accuracy Metrics

| March | Metric | float | calibration | qat | hbm |
| --- | --- | --- | --- | --- | --- |
| J6M | MOTA | 0.5837 | 0.5704 | 0.5799 | 0.5767 |

> Data tested with `march = March.NASH_M` (J6M).
>
> HEAL versions: heal 0.0.2 / hbdk4-compiler 4.11.11 / horizon_plugin_pytorch 3.3.10.

### Performance Metrics

> **Performance test methodology**: FPS is measured with 8 threads on a single core; Latency is measured with single core, single thread; Memory is peak DDR usage.

| March | Metric | latency (ms) | fps | Memory Usage |
|---|---|---|---|---|
| J6M | main graph | 8.03 | 128.68 | 65.30 |
|  | qim | 0.37 | 5120.87 | 6.80 |
| J6P | main graph | 5.81 | 695.38 | 71.90 |
|  | qim | 0.36 | 10348.73 | 7.00 |
| J6B | main graph | - | - | - |
|  | qim | - | - | - |

J6B performance is not available for this model.

---

## Model Overview

### Core Design

MOTR models tracking as per-frame query propagation: detection queries are passed across frames via `QueryInteractionModule`; new targets get new queries and disappeared targets are cleared; training jointly supervises detection and tracking losses.

- **Task type**: Multi-Object Tracking (MOT).
- **backbone**: EfficientNet-b3 (`efficientnet`, `model_type=b3`, `include_top=False` removes classification head, `use_se_block=False`, ReLU activation).
- **neck**: — (no separate neck; backbone features feed directly into `MotrHead`).
- **detection head**: `MotrHead` + `MotrDeformableTransformer` (`d_model=256`, `num_queries=256`, `dim_feedforward=1024`, Deformable Attention, `in_channels=[384]`).
- **tracking module**: `QueryInteractionModule` (cross-frame query interaction for end-to-end tracking association).
- **post-processing**: `MotrPostProcess`.
- **Model input**: multi-frame image sequence, single-frame size `800 × 1422`, sequence sampling interval 10 frames; main graph `img:1x3x800x1422`, QIM subgraph input is query/feat (no images).
- **Model output**: per-frame detection boxes + cross-frame track IDs (256 queries, 1 class).

**Deployment note**: MOTR inference is split into a main graph (backbone + head + post_process) and a QIM subgraph (`QueryInteractionModule`, DDR input, no images), exported and compiled separately via `deploy.py` and `deploy_qim.py`; they work together at inference time (see Usage Guide > Export and Compilation).

### Official Repo and Paper

Official repo: https://github.com/megvii-research/MOTR
Paper: https://arxiv.org/pdf/2105.03247

Note: backbone is EfficientNet-b3; the official repo uses a different backbone.

### Reference

For more J6 chip deployment details, see https://developer.horizon.auto/blog/14093