| --- |
| license: apache-2.0 |
| tags: |
| - object-detection |
| - comics |
| - onnx |
| --- |
| |
| # DASS comic character detector — ONNX (`dcm` weights) |
|
|
| ONNX conversion of **DASS** (*Domain-Adaptive Self-Supervised Pre-training for |
| Face & Body Detection in Drawings*) by Barış Batuhan Topal et al., using the |
| `xl_dcm_finetuned_stage3` weights — the variant fine-tuned on **DCM772** |
| (western comics) rather than manga. |
|
|
| - Upstream: https://github.com/barisbatuhan/DASS_Det_Inference |
| - Licence: **Apache-2.0**, unchanged. |
| - **No retraining and no fine-tuning.** This is a format conversion only: |
| the authors' PyTorch checkpoint exported to ONNX (opset 17). The state dict |
| loaded with 0 missing and 0 unexpected keys. |
|
|
| ## Inputs / outputs |
|
|
| | | shape | notes | |
| |---|---|---| |
| | input `images` | `[1, 3, 1024, 1024]` | **raw 0–255**, NCHW, RGB. No `/255`, no mean/std. | |
| | output 0 | `[1, 21504, 5]` | **faces** — `(cx, cy, w, h, score)` | |
| | output 1 | `[1, 21504, 5]` | **bodies** — same layout | |
|
|
| Two things worth knowing, both verified by probing the graph rather than assumed: |
|
|
| 1. **Outputs are already decoded.** Coordinates arrive in 0–1024 pixel space and |
| scores are already through a sigmoid. Do **not** apply the usual YOLOX |
| grid/stride decode — it will corrupt every box. |
| 2. **Input is unnormalised.** Dividing by 255 drives every score toward zero, |
| which looks like "the model finds nothing" rather than a preprocessing bug. |
|
|
| Letterbox rather than stretch (pad value 114), and run NMS **per head** — a face |
| sits inside its body, so a shared NMS makes them suppress each other. |
|
|
| ## Citation |
|
|
| ``` |
| @article{topal2022domain, |
| title={Domain-Adaptive Self-Supervised Pre-training for Face & Body Detection in Drawings}, |
| author={Topal, Bar{\i}\c{s} Batuhan and Yuret, Deniz and G{\"u}ng{\"o}r, Tunga}, |
| year={2022} |
| } |
| ``` |
|
|