File size: 4,589 Bytes
ed69efb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# NOTICE β€” Attribution and Provenance

This repository hosts an **INT8-quantized ONNX** of a **YOLOX-Nano variant
with ReLU activations and no depthwise convolutions**, trained from
randomly-initialised weights on COCO 2017 by **Pablo Mendoza**
(`@thefalley`).

The trained weights, the ONNX export pipeline, the INT8 quantization,
the decoder, and the inference scripts are released under the MIT License
(see `LICENSE`).

---

## Provenance chain

```
Training architecture: YOLOX-Nano-ti-lite        BSD-3 + Apache-2.0
   TexasInstruments/edgeai-yolox                 (used as build tool only)
   exps/default/yolox_nano_ti_lite.py
   (depth=0.33, width=0.25, ReLU activations, regular Conv2D β€” no depthwise)
        β”‚
        β”‚  Training loop (TI's train.py invoked locally)
        β”‚  Dataset: COCO train2017 (CC BY 4.0)
        β”‚  Hardware: own server NVIDIA GTX 1050 Ti, 4 GB VRAM
        β”‚  Batch: 32, fp16 mixed precision, image size 416Γ—416
        β–Ό
yolox_nano_relu.pth          (epoch N checkpoint β€” original work, MIT)
        β”‚
        β”‚  TI's tools/export_onnx.py (used as tool; --opset 13, --no-onnxsim)
        β–Ό
yolox_nano_relu_float.onnx   (this repo, MIT)
        β”‚
        β”‚  onnxruntime.quantize_static (MIT, used as tool)
        β”‚  + COCO val2017 calibration (1000 images, CC BY 4.0, seed=42)
        β–Ό
yolox_nano_relu_int8_qop.onnx (this repo, MIT)
```

The TI source code is used as a build tool only and is not redistributed
in this repository. The weights themselves are an original work output
of the training process performed by Pablo Mendoza.

---

## Component-level attribution

### 1. Training architecture & training code β€” Texas Instruments / edgeai-yolox

- **Project**: `TexasInstruments/edgeai-yolox`
- **Source**: https://github.com/TexasInstruments/edgeai-yolox
- **License**: BSD-3-Clause + Apache-2.0
- **What we use**: the experiment file `exps/default/yolox_nano_ti_lite.py` and the standard YOLOX training loop. The architecture replaces SiLU activations with ReLU and depthwise separable convolutions with regular Conv2D, originally proposed by TI for their Jacinto SoCs.
- **What we do NOT redistribute**: any source code, configs, or compiled binaries from TI's repo. This HF repo contains only the trained weights and our own export/quantization/inference scripts.

### 2. Original YOLOX architecture β€” Megvii

- **Project**: `Megvii-BaseDetection/YOLOX`
- **Source**: https://github.com/Megvii-BaseDetection/YOLOX
- **License**: Apache-2.0
- **Reference**: Ge et al., "YOLOX: Exceeding YOLO Series in 2021", arXiv:2107.08430
- **What we use**: the academic credit for the architecture. We do not use Megvii's pretrained weights β€” those use SiLU activations which our target hardware (an INT8 FPGA DPU) cannot run.

### 3. Training data β€” COCO train2017

- **Source**: https://cocodataset.org
- **License**: Creative Commons Attribution 4.0 (CC BY 4.0)

### 4. Calibration data β€” COCO val2017

- **Source**: same dataset, validation split
- 1,000 images randomly sampled with `random.Random(42).sample(...)` (deterministic). No COCO image is embedded inside the published ONNX file.

### 5. Conversion and quantization tools β€” Microsoft ONNX Runtime, PyTorch

- `torch.onnx.export` (BSD-3-Clause) β€” used as a tool, not redistributed
- `onnxruntime.quantization.quantize_static` (MIT) β€” used as a tool, not redistributed

---

## File-level integrity (SHA-256)

Hashes will be added once training reaches a milestone where the
checkpoint is "frozen" for that version. The README always reflects the
currently-published file hashes.

| File | Size | SHA-256 |
|---|---:|---|
| `yolox_nano_relu_float.onnx`     | *** | *** |
| `yolox_nano_relu_int8_qop.onnx`  | *** | *** |

---

## Author of the trained weights and INT8 derivative

**Pablo Mendoza** β€” HuggingFace [`@thefalley`](https://huggingface.co/thefalley)

Companion repositories (same author, MIT-clean INT8 detectors):

| Repository | INT8 size | mAP@0.5:0.95 |
|---|---|---|
| [`Thefalley/yolov4-leaky-416-int8-qop`](https://huggingface.co/Thefalley/yolov4-leaky-416-int8-qop) | 61.66 MiB | 0.345 |
| [`Thefalley/yolov4-tiny-416-int8-qop`](https://huggingface.co/Thefalley/yolov4-tiny-416-int8-qop) | 5.83 MiB | 0.163 |
| [`Thefalley/yolo-fastest-1.1-320-int8-qop`](https://huggingface.co/Thefalley/yolo-fastest-1.1-320-int8-qop) | 0.47 MiB | (pending) |

## Contact

If you are a rights holder and believe this attribution is inaccurate or
incomplete, please open an issue on this repository and it will be
corrected promptly.