unicorn who dev commited on
Commit
bdcd483
·
verified ·
1 Parent(s): dbf3fe3

Refresh bilingual documentation, model evidence and continued-learning guides

Browse files

Documentation and evidence presentation only. Preserve all weights, contracts, raw historical reports, source notices and repository visibility.

README.en.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # FireViewer · LiteRT on Android
2
+
3
+ **Documented fire/smoke models with local adaptation and verifiable checkpoints.**
4
+
5
+ Detection and pointing conversions for experimental Android integrations. Reviewed annotations can update heads or output adapters while visual backbones remain frozen. This package is not an operational fire-alert system.
6
+
7
+ [Français](README.md) · **English**
8
+ [Get started](docs/USAGE.en.md) · [Catalogue and evidence](docs/BENCHMARKS.en.md) · [Kotlin SDK](android/README.md) · [Continuous learning](docs/CONTINUOUS_LEARNING.en.md)
9
+
10
+ | Delivered variants | Host training | Standalone Android |
11
+ |---|---|---|
12
+ | **6**, including 5 trainable | **5 checked conversions** | **YOLO11 M learning checked on emulator** |
13
+
14
+ All six variants remain **unqualified inside Vision Dataset Studio**. The YOLO SDK pass covers neither other models nor application integration. Physical ARM, task accuracy and forgetting are unmeasured.
15
+
16
+ ## Find the component
17
+
18
+ | Family | Files and scope |
19
+ |---|---|
20
+ | D-FINE M strict v1 | [Detection and candidate adaptation](models/fireviewer_dfine_m_strict_v1_learning/README.md) |
21
+ | RT-DETRv2 R50 | [Detection and candidate adaptation](models/fireviewer_rtdetr_v2_r50_learning/README.md) |
22
+ | YOLO11 M strict v1 | [Inference](models/fireviewer_yolo11m_strict_v1/README.md) · [Learning](models/fireviewer_yolo11m_strict_v1_learning/README.md) |
23
+ | RF-DETR Medium 1.10 | [Detection and candidate adaptation](models/fireviewer_rfdetr_medium_v110_learning/README.md) |
24
+ | DINOv3 pointing pilot v1 | [Segmentation, pointing, presence and abstention](models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) |
25
+
26
+ The optional SegFormer-B2 source was unavailable; no SegFormer graph is delivered. Detection adapters cannot create candidates absent from the frozen detector.
27
+
28
+ ## Start with a controlled integration
29
+
30
+ Choose a variant, read its contract and source notices, download a pinned revision and verify the artifact manifest. Apply its exact preprocessing, classes and coordinate transform. Test inference before training, use reviewed targets, keep the original and store checkpoints separately. Evaluate candidates before activation. [Full usage guide](docs/USAGE.en.md).
31
+
32
+ ## SDK and runtime
33
+
34
+ The [Kotlin SDK](android/README.md) provides `infer`, `train`, `save` and `restore`. Checkpoints retain parameters, SGD momentum and step counters. Receipts verify model/label identity and file integrity; the integrating application decides which version is active.
35
+
36
+ YOLO supports H/W multiples of 32. Other graphs resize to an internal grid. The historical SDK uses TensorFlow Lite + Select TF Ops **2.16.1**. Vision Dataset Studio's separate 16 KB Flex fix does not retroactively qualify this SDK.
37
+
38
+ ## Recorded qualification
39
+
40
+ | Variante / Variant | Hôte / Host | SDK | Application / App |
41
+ |---|---|---|---|
42
+ | [D-FINE M · learning](models/fireviewer_dfine_m_strict_v1_learning/README.md) | PASS | — | Non qualifié / Not qualified |
43
+ | [DINOv3 pointing · learning](models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) | PASS | — | Non qualifié / Not qualified |
44
+ | [RF-DETR Medium · learning](models/fireviewer_rfdetr_medium_v110_learning/README.md) | PASS | — | Non qualifié / Not qualified |
45
+ | [RT-DETRv2 R50 · learning](models/fireviewer_rtdetr_v2_r50_learning/README.md) | PASS | — | Non qualifié / Not qualified |
46
+ | [YOLO11 M](models/fireviewer_yolo11m_strict_v1/README.md) | N/A | — | Non qualifié / Not qualified |
47
+ | [YOLO11 M · learning](models/fireviewer_yolo11m_strict_v1_learning/README.md) | PASS | PASS | Non qualifié / Not qualified |
48
+
49
+ ![Historical conversion and SDK qualification matrix](docs/figures/qualification-matrix.png)
50
+
51
+ Reports distinguish conversion parity, synthetic host learning, standalone Android SDK and application integration. [Full report](docs/BENCHMARKS.en.md) · [Delivery receipt](reports/fireviewer-completion.json) · [Conversion sources](conversion/README.md).
52
+
53
+ ## Rights and limitations
54
+
55
+ Source models, datasets and components retain their own licences and restrictions. Check each model's rights and notices; **download access alone does not grant commercial-use rights**. This documentation changes no licence.
56
+
57
+ Synthetic checks prove updates and persistence, not field accuracy, generalization or reliable emergency alerts. Select models using authorized representative data, human review and measurements on the intended device.
58
+
59
+ <sub>Updated 23 September 2026 · Historical evidence preserved · No model weights changed.</sub>
README.md CHANGED
@@ -7,36 +7,68 @@ tags:
7
  - fire-detection
8
  ---
9
 
10
- # Modèles FireViewer pour Android
11
 
12
- Modèles avec dimensions d’image variables et apprentissage local des têtes d’adaptation. Les réseaux visuels restent figés. Les checkpoints contiennent les paramètres, les moments SGD et le compteur d’étapes pour reprendre et continuer l’apprentissage.
13
 
14
- | Modèle | Livraison | Apprentissage et reprise sur hôte 2.16.1 | Exécution Android |
15
- |---|---|---|---|
16
- | FireViewer D-FINE-M strict v1 | [modèle et contrat](models/fireviewer_dfine_m_strict_v1_learning) | validés | pas de test de ce modèle sur appareil |
17
- | FireViewer RT-DETRv2-R50 | [modèle et contrat](models/fireviewer_rtdetr_v2_r50_learning) | validés | pas de test de ce modèle sur appareil |
18
- | FireViewer YOLO11-M strict v1 | [modèle et contrat](models/fireviewer_yolo11m_strict_v1_learning) | validés | validée sur émulateur x86_64 |
19
- | FireViewer RF-DETR Medium 1.10 strict v1 | [modèle et contrat](models/fireviewer_rfdetr_medium_v110_learning) | validés | pas de test de ce modèle sur appareil |
20
- | FireViewer DINOv3 pointing pilot v1 | [modèle et contrat](models/fireviewer_dinov3_pointing_pilot_v1_learning) | validés | pas de test de ce modèle sur appareil |
21
- | FireViewer SegFormer-B2 baseline v1 | source optionnelle introuvable | — | — |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
- Les fichiers de configuration précisent la normalisation, les labels et les sorties. YOLO accepte H/W variables par multiples de 32. Les autres modèles redimensionnent dans le graphe vers leur grille interne ; le dataset peut contenir des images de dimensions différentes.
24
 
25
- - [SDK Kotlin et guide d’apprentissage continu](android/README.md)
26
- - [Rapport de livraison et empreintes vérifiées](reports/fireviewer-completion.json)
27
- - [Sources de conversion](conversion)
 
 
28
 
29
- Les essais utilisent des annotations synthétiques pour vérifier les mises à jour et leur persistance. Ils ne mesurent pas la précision de détection ni l’oubli catastrophique. Aucun téléphone ARM physique n’a été testé. Les notices et conditions des modèles sources sont conservées dans chaque dossier.
30
- ## Résultats illustrés / Visual evidence
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
- [Résultats complets FR](docs/BENCHMARKS.md) · [Full results EN](docs/BENCHMARKS.en.md) · [Utilisation FR](docs/USAGE.md) · [Usage EN](docs/USAGE.en.md)
33
 
34
- ![Qualification matrix](docs/figures/qualification-matrix.png)
35
 
36
- ![Host learning checks](docs/figures/host-learning.png)
37
 
38
- **Périmètres séparés :** conversion sur hôte, SDK Android autonome et intégration à Vision Dataset Studio. Le succès SDK de YOLO ne valide pas les six variantes dans l’application. Aucune latence téléphone, précision métier ou généralisation n’est mesurée. Les figures sont tracées à partir des reçus, avec liens vers leurs révisions immuables.
39
 
40
- **Separate scopes:** host conversion, standalone Android SDK and Vision Dataset Studio integration. YOLO’s SDK pass does not qualify the six variants in the app. No phone latency, task accuracy or generalization was measured. Figures are generated from recorded values and link to immutable source revisions.
41
 
42
- The [English report](docs/BENCHMARKS.en.md) contains the full catalogue, host training endpoints, numerical fidelity, Android SDK evidence, reproducibility and remaining tests. The [usage guide](docs/USAGE.en.md) covers pinned downloads, manifest verification, preprocessing, runtime dependencies, training targets, checkpoints and batch cleanup. Source licences/notices and access settings are unchanged.
 
7
  - fire-detection
8
  ---
9
 
10
+ # FireViewer · LiteRT sur Android
11
 
12
+ **Des modèles feu/fumée documentés, avec adaptation locale et checkpoints vérifiables.**
13
 
14
+ Conversions de détection et de pointage pour des intégrations Android expérimentales. Les têtes ou sorties peuvent apprendre à partir d’annotations revues ; les réseaux visuels restent figés. Cette livraison ne constitue pas un système d’alerte incendie ou une validation opérationnelle.
15
+
16
+ **Français** · [English](README.en.md)
17
+ [Prise en main](docs/USAGE.md) · [Catalogue et preuves](docs/BENCHMARKS.md) · [SDK Kotlin](android/README.md) · [Apprentissage continu](docs/CONTINUOUS_LEARNING.md)
18
+
19
+ | Variantes livrées | Apprentissage sur hôte | Android autonome |
20
+ |---|---|---|
21
+ | **6**, dont 5 entraînables | **5 conversions vérifiées** | **YOLO11 M learning vérifié sur émulateur** |
22
+
23
+ Les six variantes restent **non qualifiées dans Vision Dataset Studio**. Le succès du SDK YOLO ne valide ni les autres modèles ni leur intégration dans l’application. Aucun téléphone ARM physique, score de détection ou test d’oubli n’est documenté.
24
+
25
+ ## Trouver le bon composant
26
+
27
+ | Famille | Usage et fichiers |
28
+ |---|---|
29
+ | D-FINE M strict v1 | [Détection et adaptation des propositions](models/fireviewer_dfine_m_strict_v1_learning/README.md) |
30
+ | RT-DETRv2 R50 | [Détection et adaptation des propositions](models/fireviewer_rtdetr_v2_r50_learning/README.md) |
31
+ | YOLO11 M strict v1 | [Inférence](models/fireviewer_yolo11m_strict_v1/README.md) · [Variante entraînable](models/fireviewer_yolo11m_strict_v1_learning/README.md) |
32
+ | RF-DETR Medium 1.10 | [Détection et adaptation des propositions](models/fireviewer_rfdetr_medium_v110_learning/README.md) |
33
+ | DINOv3 pointing pilot v1 | [Segmentation, pointage, présence et abstention](models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) |
34
+
35
+ La source optionnelle SegFormer-B2 n’était pas disponible : aucun modèle SegFormer n’est livré ici. Les adaptations de détection ne créent pas de propositions absentes du détecteur figé.
36
 
37
+ ## Démarrer sans ambiguïté
38
 
39
+ 1. Choisir une variante et lire son README, son contrat et ses notices.
40
+ 2. Télécharger une révision épinglée et vérifier le manifeste des artefacts.
41
+ 3. Appliquer exactement normalisation, disposition des tenseurs, classes et transformation des coordonnées.
42
+ 4. Tester l’inférence avant l’apprentissage ; fournir uniquement des annotations connues et revues.
43
+ 5. Conserver l’original, enregistrer les checkpoints séparément et évaluer un candidat avant activation.
44
 
45
+ [Guide complet et exemples de téléchargement](docs/USAGE.md) · [Cycle des checkpoints](docs/CONTINUOUS_LEARNING.md).
46
+
47
+ ## SDK et architecture
48
+
49
+ Le [SDK Kotlin](android/README.md) expose `infer`, `train`, `save` et `restore`. Ses générations conservent paramètres, moments SGD et compteur d’étapes ; les reçus contrôlent modèle, schéma de labels et intégrité des fichiers. L’application qui l’intègre reste responsable de la validation métier et du choix des poids actifs.
50
+
51
+ YOLO accepte des dimensions H/W multiples de 32. Les autres modèles redimensionnent dans le graphe vers leur grille interne. Le SDK historique utilise TensorFlow Lite et Select TF Ops **2.16.1** ; le correctif Flex 16 Ko de Vision Dataset Studio est une livraison distincte, pas une qualification rétroactive de ce SDK.
52
+
53
+ ## Résultats documentés
54
+
55
+ | Variante / Variant | Hôte / Host | SDK | Application / App |
56
+ |---|---|---|---|
57
+ | [D-FINE M · learning](models/fireviewer_dfine_m_strict_v1_learning/README.md) | PASS | — | Non qualifié / Not qualified |
58
+ | [DINOv3 pointing · learning](models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) | PASS | — | Non qualifié / Not qualified |
59
+ | [RF-DETR Medium · learning](models/fireviewer_rfdetr_medium_v110_learning/README.md) | PASS | — | Non qualifié / Not qualified |
60
+ | [RT-DETRv2 R50 · learning](models/fireviewer_rtdetr_v2_r50_learning/README.md) | PASS | — | Non qualifié / Not qualified |
61
+ | [YOLO11 M](models/fireviewer_yolo11m_strict_v1/README.md) | N/A | — | Non qualifié / Not qualified |
62
+ | [YOLO11 M · learning](models/fireviewer_yolo11m_strict_v1_learning/README.md) | PASS | PASS | Non qualifié / Not qualified |
63
 
64
+ ![Matrice de qualification historique du SDK et des conversions](docs/figures/qualification-matrix.png)
65
 
66
+ Les rapports séparent fidélité de conversion, apprentissage synthétique sur hôte, SDK Android et intégration applicative. [Rapport détaillé](docs/BENCHMARKS.md) · [Reçu de livraison](reports/fireviewer-completion.json) · [Sources de conversion](conversion/README.md).
67
 
68
+ ## Droits et utilisation responsable
69
 
70
+ Les poids, jeux de données et composants amont gardent leurs licences et restrictions propres. Lire les fichiers de droits et notices de chaque modèle ; **la disponibilité au téléchargement n’accorde pas à elle seule un droit d’usage commercial**. Aucun droit n’est élargi par cette documentation.
71
 
72
+ Les contrôles synthétiques montrent des mises à jour et leur persistance. Ils ne mesurent ni précision sur terrain, ni généralisation, ni capacité à déclencher une alerte fiable. La sélection finale exige un corpus autorisé représentatif, une revue humaine et des mesures sur l’appareil cible.
73
 
74
+ <sub>Documentation actualisée le 23 septembre 2026 · Preuves historiques conservées · Aucun poids modifié.</sub>
android/README.md CHANGED
@@ -1,5 +1,7 @@
1
  # Apprentissage FireViewer sur Android
2
 
 
 
3
  Les fichiers `models/*_learning/model.tflite` contiennent les signatures exécutables `infer`, `train`, `save` et `restore`. Les têtes d'adaptation sont entraînables localement ; les réseaux visuels restent figés. Le modèle livré démarre avec ses poids source et une adaptation identité, sans les mises à jour synthétiques utilisées pour les tests.
4
 
5
  Utiliser les deux dépendances de même version :
 
1
  # Apprentissage FireViewer sur Android
2
 
3
+ > **Périmètre du SDK :** les dépendances 2.16.1 ci-dessous correspondent aux essais historiques sur émulateur. Ce SDK n’est pas qualifié sur téléphone ARM ni pour des pages 16 Ko. Le [runtime Flex reconstruit de Vision Dataset Studio](https://github.com/unicornwhodev/vision-dataset-studio/blob/65e4620/docs/FLEX_16K.md) et sa suite de base sont des preuves distinctes. [Conserver l’original et poursuivre l’apprentissage](../docs/CONTINUOUS_LEARNING.md).
4
+
5
  Les fichiers `models/*_learning/model.tflite` contiennent les signatures exécutables `infer`, `train`, `save` et `restore`. Les têtes d'adaptation sont entraînables localement ; les réseaux visuels restent figés. Le modèle livré démarre avec ses poids source et une adaptation identité, sans les mises à jour synthétiques utilisées pour les tests.
6
 
7
  Utiliser les deux dépendances de même version :
docs/BENCHMARKS.en.md CHANGED
@@ -1,5 +1,9 @@
1
  # Benchmark evidence and qualification
2
 
 
 
 
 
3
  [Français](BENCHMARKS.md) · [English](BENCHMARKS.en.md)
4
 
5
  **6 current conversion variants; 5 expose learning.** This report visualizes recorded checks; no new inference or training was run for this documentation update. The values are not a mobile performance leaderboard.
@@ -14,12 +18,12 @@
14
 
15
  | Conversion | Host train | Standalone SDK | App |
16
  |---|---|---|---|
17
- | [fireviewer_dfine_m_strict_v1_learning](../models/fireviewer_dfine_m_strict_v1_learning/README.md) | PASS | PENDING | PENDING |
18
- | [fireviewer_dinov3_pointing_pilot_v1_learning](../models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) | PASS | PENDING | PENDING |
19
- | [fireviewer_rfdetr_medium_v110_learning](../models/fireviewer_rfdetr_medium_v110_learning/README.md) | PASS | PENDING | PENDING |
20
- | [fireviewer_rtdetr_v2_r50_learning](../models/fireviewer_rtdetr_v2_r50_learning/README.md) | PASS | PENDING | PENDING |
21
- | [fireviewer_yolo11m_strict_v1](../models/fireviewer_yolo11m_strict_v1/README.md) | N/A | PENDING | PENDING |
22
- | [fireviewer_yolo11m_strict_v1_learning](../models/fireviewer_yolo11m_strict_v1_learning/README.md) | PASS | Reported PASS | PENDING |
23
 
24
  PASS is scoped to the indicated test. PENDING includes unexecuted or unfinished checks; it is not a failed test. N/A means there is no training signature.
25
 
 
1
  # Benchmark evidence and qualification
2
 
3
+ > **Documentation — 2026-09-23.** Catalogue actuel : 6 variantes, dont 5 entraînables. Les preuves ci-dessous gardent leur date et leur runtime. Aucun succès de Vision Dataset Studio n’est revendiqué pour ces six variantes. La correction Flex 16 Ko de rc5 est distincte de leur SDK historique. [Guide des versions](CONTINUOUS_LEARNING.md).
4
+
5
+ > **Documentation update.** The six variants remain unqualified in Vision Dataset Studio. Historical host/SDK evidence below is unchanged. rc5 core tests do not qualify this SDK for 16 KB pages. [Version lifecycle](CONTINUOUS_LEARNING.en.md).
6
+
7
  [Français](BENCHMARKS.md) · [English](BENCHMARKS.en.md)
8
 
9
  **6 current conversion variants; 5 expose learning.** This report visualizes recorded checks; no new inference or training was run for this documentation update. The values are not a mobile performance leaderboard.
 
18
 
19
  | Conversion | Host train | Standalone SDK | App |
20
  |---|---|---|---|
21
+ | [D-FINE M · learning](../models/fireviewer_dfine_m_strict_v1_learning/README.md) | PASS | PENDING | PENDING |
22
+ | [DINOv3 pointing · learning](../models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) | PASS | PENDING | PENDING |
23
+ | [RF-DETR Medium · learning](../models/fireviewer_rfdetr_medium_v110_learning/README.md) | PASS | PENDING | PENDING |
24
+ | [RT-DETRv2 R50 · learning](../models/fireviewer_rtdetr_v2_r50_learning/README.md) | PASS | PENDING | PENDING |
25
+ | [YOLO11 M](../models/fireviewer_yolo11m_strict_v1/README.md) | N/A | PENDING | PENDING |
26
+ | [YOLO11 M · learning](../models/fireviewer_yolo11m_strict_v1_learning/README.md) | PASS | Reported PASS | PENDING |
27
 
28
  PASS is scoped to the indicated test. PENDING includes unexecuted or unfinished checks; it is not a failed test. N/A means there is no training signature.
29
 
docs/BENCHMARKS.md CHANGED
@@ -1,5 +1,9 @@
1
  # Résultats de contrôle et qualification des modèles
2
 
 
 
 
 
3
  [Français](BENCHMARKS.md) · [English](BENCHMARKS.en.md)
4
 
5
  **6 variantes de conversion actives ; 5 exposent l’apprentissage.** Ce rapport illustre les contrôles enregistrés. Aucun nouveau calcul d’inférence ou d’apprentissage n’a été lancé pour cette actualisation. Ces valeurs ne constituent pas un classement de performances mobiles.
@@ -14,12 +18,12 @@
14
 
15
  | Conversion | Host train | Standalone SDK | App |
16
  |---|---|---|---|
17
- | [fireviewer_dfine_m_strict_v1_learning](../models/fireviewer_dfine_m_strict_v1_learning/README.md) | PASS | PENDING | PENDING |
18
- | [fireviewer_dinov3_pointing_pilot_v1_learning](../models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) | PASS | PENDING | PENDING |
19
- | [fireviewer_rfdetr_medium_v110_learning](../models/fireviewer_rfdetr_medium_v110_learning/README.md) | PASS | PENDING | PENDING |
20
- | [fireviewer_rtdetr_v2_r50_learning](../models/fireviewer_rtdetr_v2_r50_learning/README.md) | PASS | PENDING | PENDING |
21
- | [fireviewer_yolo11m_strict_v1](../models/fireviewer_yolo11m_strict_v1/README.md) | N/A | PENDING | PENDING |
22
- | [fireviewer_yolo11m_strict_v1_learning](../models/fireviewer_yolo11m_strict_v1_learning/README.md) | PASS | Reported PASS | PENDING |
23
 
24
  PASS vaut uniquement pour le contrôle indiqué. PENDING couvre un contrôle non exécuté ou inachevé, sans signifier un échec. N/A indique l’absence de signature d’apprentissage.
25
 
 
1
  # Résultats de contrôle et qualification des modèles
2
 
3
+ > **Documentation — 2026-09-23.** Catalogue actuel : 6 variantes, dont 5 entraînables. Les preuves ci-dessous gardent leur date et leur runtime. Aucun succès de Vision Dataset Studio n’est revendiqué pour ces six variantes. La correction Flex 16 Ko de rc5 est distincte de leur SDK historique. [Guide des versions](CONTINUOUS_LEARNING.md).
4
+
5
+ > **Documentation update.** The six variants remain unqualified in Vision Dataset Studio. Historical host/SDK evidence below is unchanged. rc5 core tests do not qualify this SDK for 16 KB pages. [Version lifecycle](CONTINUOUS_LEARNING.en.md).
6
+
7
  [Français](BENCHMARKS.md) · [English](BENCHMARKS.en.md)
8
 
9
  **6 variantes de conversion actives ; 5 exposent l’apprentissage.** Ce rapport illustre les contrôles enregistrés. Aucun nouveau calcul d’inférence ou d’apprentissage n’a été lancé pour cette actualisation. Ces valeurs ne constituent pas un classement de performances mobiles.
 
18
 
19
  | Conversion | Host train | Standalone SDK | App |
20
  |---|---|---|---|
21
+ | [D-FINE M · learning](../models/fireviewer_dfine_m_strict_v1_learning/README.md) | PASS | PENDING | PENDING |
22
+ | [DINOv3 pointing · learning](../models/fireviewer_dinov3_pointing_pilot_v1_learning/README.md) | PASS | PENDING | PENDING |
23
+ | [RF-DETR Medium · learning](../models/fireviewer_rfdetr_medium_v110_learning/README.md) | PASS | PENDING | PENDING |
24
+ | [RT-DETRv2 R50 · learning](../models/fireviewer_rtdetr_v2_r50_learning/README.md) | PASS | PENDING | PENDING |
25
+ | [YOLO11 M](../models/fireviewer_yolo11m_strict_v1/README.md) | N/A | PENDING | PENDING |
26
+ | [YOLO11 M · learning](../models/fireviewer_yolo11m_strict_v1_learning/README.md) | PASS | Reported PASS | PENDING |
27
 
28
  PASS vaut uniquement pour le contrôle indiqué. PENDING couvre un contrôle non exécuté ou inachevé, sans signifier un échec. N/A indique l’absence de signature d’apprentissage.
29
 
docs/CONTINUOUS_LEARNING.en.md ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Learn without losing the original model
2
+
3
+ [Home](../README.en.md) · [Usage](USAGE.en.md) · [Français](CONTINUOUS_LEARNING.md)
4
+
5
+ A trainable variant contains a graph, a contract and mutable in-memory parameters. Persistent progress is saved in **separate checkpoints**. The downloaded `.tflite` remains your reference original.
6
+
7
+ ![Original and learned generations](figures/model-lineage.svg)
8
+
9
+ The diagram describes **Vision Dataset Studio rc5**. Custom integrations must implement these rules in their own application.
10
+
11
+ ## Keep a complete version
12
+
13
+ | Element | Purpose |
14
+ |---|---|
15
+ | Original download and manifest | Reproduce the starting point and verify integrity |
16
+ | Contract, configuration and label order | Restore into the right graph and class schema |
17
+ | Learned version's graph | Execute checkpoint-compatible signatures |
18
+ | Complete checkpoint | Recover parameters, optimizer state and step where exposed by the conversion |
19
+ | Generation receipt | Bind files, model, labels, batch and checks |
20
+ | Authorized annotations and control data | Reproduce/evaluate learning and forgetting |
21
+
22
+ **Copying only the `.tflite` does not transfer parameters saved in a checkpoint.** Preserve identifiable provenance.
23
+
24
+ ## First training run
25
+
26
+ In Vision Dataset Studio, review and export the batch, then verify readback. Enable learning only for a model exposing the required contract. The app copies its graph into a separate version and stores the attempt separately. Successful evaluation and verified checkpoint round-trip allow the learned version to advance.
27
+
28
+ The deterministic split needs **at least 32 training and 8 control images**. Rejected images, unknown annotations and other batches are excluded. Supplied conversions retain frozen visual backbones; only the declared `training_scope` is trainable.
29
+
30
+ ## Subsequent batches
31
+
32
+ The application restores that learned version's latest validated weights even when the original remains selected for inference. Its identity stays stable across checkpoint generations. **Activate learned weights** changes inference selection separately from continued training.
33
+
34
+ Resume reloads an interrupted attempt. A subsequent run starts from the latest validated generation. Failed/rejected attempts do not replace it. Missing, modified or incompatible checkpoints block restoration instead of silently resetting learning.
35
+
36
+ ## Custom integration checklist
37
+
38
+ 1. Protect the original from training writes.
39
+ 2. Separate paths by project, model, label schema and attempt.
40
+ 3. Verify and restore the validated generation before continuing.
41
+ 4. Save a complete new generation and restore it in a fresh interpreter.
42
+ 5. Evaluate the candidate before atomically promoting your active reference.
43
+ 6. Keep the previous generation for explicit rollback.
44
+
45
+ The [FireViewer Kotlin SDK](../android/README.md) supplies save/restore receipts and generations. Its `CURRENT` pointer identifies the latest complete save; task evaluation and inference-version selection remain the integrator’s responsibility.
46
+
47
+ ## Cleanup, transport and evidence
48
+
49
+ Application batch cleanup waits for verified copying and completion or explicit abandonment of learning. Referenced graphs, checkpoints and receipts are retained. Transport trained graphs, checkpoints, contracts and provenance together; this guide does not promise migration between differently signed installations.
50
+
51
+ rc5's 4/16 KB emulator suites preserve the original, connect the first batch's final weights to the next batch's initial weights and check persisted files after process restart. That **synthetic application fixture** does not qualify every conversion in this repository. Consult the [per-model matrix](BENCHMARKS.en.md).
52
+
53
+ [Application lifecycle](https://github.com/unicornwhodev/vision-dataset-studio/blob/main/docs/en/MODEL_LINEAGE.md) · [Training contract](https://github.com/unicornwhodev/vision-dataset-studio/blob/main/docs/en/LITERT_TRAINING_CONTRACT.md).
54
+
55
+ Falling loss on repeated synthetic examples does not prove accuracy gains. Separately measure reserved-set quality, forgetting, latency, memory and thermals on the intended device.
docs/CONTINUOUS_LEARNING.md ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Apprendre sans perdre le modèle original
2
+
3
+ [Accueil](../README.md) · [Utilisation](USAGE.md) · [English](CONTINUOUS_LEARNING.en.md)
4
+
5
+ Une variante entraînable possède un graphe, un contrat et des poids mutables en mémoire. Sa progression durable est enregistrée dans des **checkpoints distincts**. Le fichier `.tflite` téléchargé reste votre original de référence.
6
+
7
+ ![Version originale et générations entraînées](figures/model-lineage.svg)
8
+
9
+ Le schéma décrit le comportement de **Vision Dataset Studio rc5**. Une intégration personnalisée doit mettre en place ces règles dans sa propre application.
10
+
11
+ ## Les éléments à conserver
12
+
13
+ | Élément | Pourquoi le garder |
14
+ |---|---|
15
+ | Original téléchargé et manifeste | Reproduire la base et contrôler son intégrité |
16
+ | Contrat, configuration et ordre des labels | Restaurer des poids sur le bon calcul et les bonnes classes |
17
+ | Graphe de la version entraînée | Exécuter les signatures compatibles avec le checkpoint |
18
+ | Checkpoint complet | Retrouver paramètres, état de l’optimiseur et compteur lorsque fournis par la conversion |
19
+ | Reçu de génération | Relier fichiers, modèle, schéma, lot et contrôles |
20
+ | Annotations et corpus de contrôle autorisés | Évaluer, reproduire et mesurer l’oubli ; un checkpoint ne remplace pas ces données |
21
+
22
+ **Copier seulement le `.tflite` ne transporte pas les paramètres appris dans son checkpoint.** Ne remplacez pas l’original par un fichier dont la provenance n’est plus identifiable.
23
+
24
+ ## Premier entraînement
25
+
26
+ Dans Vision Dataset Studio, corrigez puis exportez le lot et vérifiez sa relecture. Activez l’apprentissage seulement si le modèle expose le contrat requis. L’application copie le graphe dans une version séparée et écrit la tentative dans un dossier distinct. Une évaluation réussie et un aller-retour de checkpoint vérifié permettent d’avancer la version entraînée.
27
+
28
+ Le partage déterministe doit fournir au moins **32 images d’apprentissage et 8 de contrôle**. Les rejets, les annotations inconnues et les autres lots sont exclus. L’encodeur des conversions livrées reste figé ; seuls les éléments indiqués par `training_scope` sont entraînés.
29
+
30
+ ## Lots suivants
31
+
32
+ L’application restaure les derniers poids validés de cette même version, même si l’original reste actif pour l’inférence. La version entraînée garde une identité stable, avec des générations de checkpoints. **Activer les poids appris** change la sélection pour l’inférence ; cette action est distincte de la poursuite de l’apprentissage.
33
+
34
+ « Reprendre » recharge la tentative interrompue. Démarrer un entraînement ultérieur repart de la dernière génération validée. Une erreur ou un candidat rejeté ne remplace pas cette génération. Un checkpoint absent, altéré ou incompatible bloque la restauration ; il ne doit pas provoquer une remise à zéro silencieuse.
35
+
36
+ ## Pour une intégration personnalisée
37
+
38
+ 1. Conserver la base en lecture seule ou dans un dossier protégé des écritures de l’apprentissage.
39
+ 2. Utiliser des chemins séparés par projet, modèle, schéma de labels et tentative.
40
+ 3. Restaurer la génération validée avant de poursuivre ; vérifier chaque fichier et son contrat.
41
+ 4. Sauvegarder une nouvelle génération complète, puis la relire dans un nouvel interpréteur.
42
+ 5. Évaluer le candidat et déplacer atomiquement votre référence active seulement après les contrôles requis.
43
+ 6. Conserver la génération précédente pour un retour arrière explicite.
44
+
45
+ Le [SDK Kotlin FireViewer](../android/README.md) fournit `save` et `restore` avec reçus et générations. Son pointeur `CURRENT` indique la dernière sauvegarde complète ; l’évaluation métier et la sélection de la version d’inférence restent à la charge de l’intégrateur.
46
+
47
+ ## Nettoyage et transport
48
+
49
+ Le nettoyage d’un lot dans l’application attend la copie vérifiée et la fin ou l’abandon explicite de l’apprentissage. Les modèles, checkpoints et reçus référencés restent conservés. Pour déplacer un modèle entraîné, transporter le graphe, les checkpoints, les contrats et la provenance comme un ensemble cohérent. Ce document ne promet pas une fonction de migration entre installations signées différemment.
50
+
51
+ ## Ce que les tests démontrent
52
+
53
+ La suite rc5 vérifie sur émulateurs 4/16 Ko que l’original reste intact, que la fin du premier lot égale le début du second et que les fichiers survivent au redémarrage du processus. C’est une **fixture synthétique de l’application**, distincte de la qualification de chaque conversion de ce dépôt. Les preuves de modèle sont dans [la matrice](BENCHMARKS.md).
54
+
55
+ [Implémentation et preuves de filiation](https://github.com/unicornwhodev/vision-dataset-studio/blob/main/docs/MODEL_LINEAGE.md) · [Contrat entraînable](https://github.com/unicornwhodev/vision-dataset-studio/blob/main/docs/LITERT_TRAINING_CONTRACT.md).
56
+
57
+ Une perte qui baisse sur quelques exemples répétés ne démontre pas de gain de précision. Mesurer séparément qualité sur un jeu réservé, oubli d’anciens exemples, latence, mémoire et chauffe sur le matériel visé.
docs/README.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Documentation / Documentation
2
+
3
+ | Parcours / Route | Français | English |
4
+ |---|---|---|
5
+ | Présentation / Overview | [Accueil](../README.md) | [Overview](../README.en.md) |
6
+ | Téléchargement et intégration / Download and integration | [Utilisation](USAGE.md) | [Usage](USAGE.en.md) |
7
+ | Preuves par variante / Per-variant evidence | [Résultats](BENCHMARKS.md) | [Results](BENCHMARKS.en.md) |
8
+ | Original et versions entraînées / Original and learned versions | [Apprentissage continu](CONTINUOUS_LEARNING.md) | [Continuous learning](CONTINUOUS_LEARNING.en.md) |
9
+
10
+ Les résultats hôte, SDK Android et application sont distincts. Les poids, contrats,
11
+ rapports bruts et notices gardent leur provenance. / Host, standalone SDK and app
12
+ results are separate; weights, contracts, raw evidence and notices retain their provenance.
docs/USAGE.en.md CHANGED
@@ -2,6 +2,12 @@
2
 
3
  [Français](USAGE.md) · [English](USAGE.en.md)
4
 
 
 
 
 
 
 
5
  ## 1. Choose the exact variant
6
 
7
  Use the [qualification matrix](BENCHMARKS.en.md). An inference graph and its `_learning` counterpart are separate artifacts. Multi-graph bundles require all graphs and processor/tokenizer files described in `pipeline.json`; do not rename one component to pretend it is a complete model. Downloaded weights are separate from the app APK.
@@ -21,14 +27,14 @@ snapshot_download(
21
  )
22
  ```
23
 
24
- Replace `MODEL_ID` below with `fireviewer_dfine_m_strict_v1_learning` for this example.
25
 
26
  ```python
27
  from pathlib import Path
28
  import hashlib, json
29
 
30
- folder = Path("model-checkout/models/MODEL_ID") # choose the downloaded folder
31
- for name, expected in json.loads((folder / "artifact_manifest.json").read_text()).items():
32
  path = (folder / name).resolve()
33
  assert path.is_relative_to(folder.resolve())
34
  assert path.stat().st_size == expected["bytes"]
@@ -58,13 +64,13 @@ Checkpoints preserve parameters, optimizer momentum and step; keep compatible mo
58
 
59
  ## 6. Reproduce Android integration checks
60
 
61
- Use the [application QA tools](https://github.com/unicornwhodev/vision-dataset-studio/tree/ec05cec21899aed432721654d4de9d02ed7b20fb/tools/qa) on a dedicated device with verified app and test APKs. `fetch_model_fixtures.py` downloads pinned fixtures outside the APK and verifies manifests. `qualify_converted_models.py` executes one conversion at a time and records its build, hashes and raw Android verdict. Use `--help` to supply explicit model/evidence paths and device serial. The consent variable is `VDS_ALLOW_TEST_INSTALL=1`; these scripts are QA tools, not automatic training on a user corpus. Keep failed and timed-out cases. No host optimizer is used in this app test path.
62
 
63
  ## Troubleshooting
64
 
65
  - Hash mismatch: stop; verify revision and re-download the affected file.
66
  - Missing Flex/Save/Restore op: check the exact CPU runtime pair and signatures.
67
- - Tensor/stride mismatch: inspect the conversion’s shapes and decoder; RTMDet inference-only has a recorded open application failure.
68
  - Nonfinite loss or incompatible checkpoint: retain data and restore a previously verified compatible generation.
69
  - Slow software emulator: functional evidence only; do not infer phone speed.
70
 
 
2
 
3
  [Français](USAGE.md) · [English](USAGE.en.md)
4
 
5
+ ## Application update — 23 September 2026
6
+
7
+ Vision Dataset Studio rc5 uses LiteRT 1.4.2 with rebuilt Flex **2.16.1-vds16k1**. Its 4/16 KB core tests are separate from the older per-model campaign and the standalone SDK; they do not qualify every conversion or the entire APK for 16 KB pages. [Runtime details](https://github.com/unicornwhodev/vision-dataset-studio/blob/65e4620/docs/FLEX_16K.md).
8
+
9
+ The original model is retained. First training creates a separate learned version, and later runs continue its latest validated weights even before inference activation. [Versions and checkpoints](CONTINUOUS_LEARNING.en.md).
10
+
11
  ## 1. Choose the exact variant
12
 
13
  Use the [qualification matrix](BENCHMARKS.en.md). An inference graph and its `_learning` counterpart are separate artifacts. Multi-graph bundles require all graphs and processor/tokenizer files described in `pipeline.json`; do not rename one component to pretend it is a complete model. Downloaded weights are separate from the app APK.
 
27
  )
28
  ```
29
 
30
+ The following check uses the folder downloaded above.
31
 
32
  ```python
33
  from pathlib import Path
34
  import hashlib, json
35
 
36
+ folder = Path("model-checkout/models/fireviewer_dfine_m_strict_v1_learning") # choose the downloaded folder
37
+ for name, expected in json.loads((folder / "artifact_manifest.json").read_text(encoding="utf-8")).items():
38
  path = (folder / name).resolve()
39
  assert path.is_relative_to(folder.resolve())
40
  assert path.stat().st_size == expected["bytes"]
 
64
 
65
  ## 6. Reproduce Android integration checks
66
 
67
+ Use the [application QA tools](https://github.com/unicornwhodev/vision-dataset-studio/tree/65e4620/tools/qa) on a dedicated device with verified app and test APKs. `fetch_model_fixtures.py` downloads pinned fixtures outside the APK and verifies manifests. `qualify_converted_models.py` executes one conversion at a time and records its build, hashes and raw Android verdict. Use `--help` to supply explicit model/evidence paths and device serial. The consent variable is `VDS_ALLOW_TEST_INSTALL=1`; these scripts are QA tools, not automatic training on a user corpus. Keep failed and timed-out cases. No host optimizer is used in this app test path.
68
 
69
  ## Troubleshooting
70
 
71
  - Hash mismatch: stop; verify revision and re-download the affected file.
72
  - Missing Flex/Save/Restore op: check the exact CPU runtime pair and signatures.
73
+ - Tensor/stride mismatch: inspect the conversion’s shapes and decoder; the inference-only RTMDet app defect was fixed and its 22 September retest passed.
74
  - Nonfinite loss or incompatible checkpoint: retain data and restore a previously verified compatible generation.
75
  - Slow software emulator: functional evidence only; do not infer phone speed.
76
 
docs/USAGE.md CHANGED
@@ -21,14 +21,14 @@ snapshot_download(
21
  )
22
  ```
23
 
24
- Remplacer `MODEL_ID` par `fireviewer_dfine_m_strict_v1_learning` dans cet exemple.
25
 
26
  ```python
27
  from pathlib import Path
28
  import hashlib, json
29
 
30
- folder = Path("model-checkout/models/MODEL_ID") # choose the downloaded folder
31
- for name, expected in json.loads((folder / "artifact_manifest.json").read_text()).items():
32
  path = (folder / name).resolve()
33
  assert path.is_relative_to(folder.resolve())
34
  assert path.stat().st_size == expected["bytes"]
@@ -46,25 +46,25 @@ Dans Vision Dataset Studio, ouvrir **Modèles**, configurer la source HF autoris
46
 
47
  ## 4. Runtime et apprentissage
48
 
49
- Le SDK autonome/conversion utilise `org.tensorflow:tensorflow-lite:2.16.1` et `org.tensorflow:tensorflow-lite-select-tf-ops:2.16.1`. La campagne de l’application utilise séparément LiteRT 1.4.2 + Select TF Ops 2.16.1. Ces environnements ne sont pas des garanties interchangeables. CPU, XNNPACK désactivé pour le graphe d’apprentissage, Flex pour les checkpoints ; GPU/NPU et téléphone ARM non qualifiés ici.
50
 
51
  Les signatures réelles `train`, `infer`, `save`, `restore` et leurs noms d’entrées/sorties doivent correspondre au contrat. Les cibles suivent `targetEncoding`, formes et classes ; une annotation absente n’est pas un exemple négatif. L’application ne prend pas en charge les entrées texte d’apprentissage. Seules les têtes/adaptations sont mutables ; tous les encodeurs visuels fournis sont figés. Les adaptations de détection ne créent pas de propositions absentes du détecteur figé. Changer le nombre de classes impose de reconstruire la tête.
52
 
53
  ## 5. Cycle du lot dans l’application
54
 
55
- Importer → préannoter si activé → corriger/valider manuellement → exporter et vérifier la relecture → apprentissage facultatif du lot exporté → nettoyage confirmé → lot suivant. L’apprentissage est désactivé par défaut et s’exécute sur Android. Il utilise uniquement les images acceptées de ce lot ; rejets et autres lots sont exclus. Le nettoyage attend sa fin et son évaluation ; interruption/erreur conservent les données. Activation des nouveaux poids manuelle.
56
 
57
  Les checkpoints conservent paramètres, moments et étape. Conserver aussi les hashes modèle/classes, provenance du dataset et exemples de rejeu/contrôle. Une restauration réussie ne prouve pas la généralisation. L’application exige au moins 32 images d’apprentissage et 8 de contrôle après partage déterministe. Les empreintes persistantes par projet survivent au nettoyage et excluent les copies exactes de fichiers/pixels ; elles ne couvrent pas tous les quasi-doublons retouchés.
58
 
59
  ## 6. Reproduire les contrôles Android
60
 
61
- Utiliser [les outils de recette de l’application](https://github.com/unicornwhodev/vision-dataset-studio/tree/ec05cec21899aed432721654d4de9d02ed7b20fb/tools/qa) sur un appareil dédié et avec les APK vérifiées. `fetch_model_fixtures.py` télécharge les fixtures épinglées hors APK et vérifie les manifestes. `qualify_converted_models.py` exécute chaque variante et consigne build, hashes et verdict Android. Consulter `--help` pour fournir chemins des modèles/preuves et numéro de l’appareil. La variable de consentement est `VDS_ALLOW_TEST_INSTALL=1`. Aucun entraînement automatique d’un corpus utilisateur ; conserver échecs et délais dépassés. Aucun optimiseur hôte dans ce chemin de test applicatif.
62
 
63
  ## Diagnostic
64
 
65
  - Hash incorrect : arrêter, vérifier la révision et retélécharger le fichier concerné.
66
  - Opération Flex/Save/Restore absente : contrôler runtime CPU et signatures.
67
- - Forme/pas incompatible : vérifier formes et décodeur ; RTMDet sans apprentissage a un défaut applicatif ouvert.
68
  - Perte non finie ou checkpoint incompatible : conserver les données et restaurer une génération compatible vérifiée.
69
  - Émulateur logiciel lent : preuve fonctionnelle uniquement, aucune déduction de vitesse sur téléphone.
70
 
 
21
  )
22
  ```
23
 
24
+ Le contrôle suivant porte sur le dossier téléchargé ci-dessus.
25
 
26
  ```python
27
  from pathlib import Path
28
  import hashlib, json
29
 
30
+ folder = Path("model-checkout/models/fireviewer_dfine_m_strict_v1_learning") # choose the downloaded folder
31
+ for name, expected in json.loads((folder / "artifact_manifest.json").read_text(encoding="utf-8")).items():
32
  path = (folder / name).resolve()
33
  assert path.is_relative_to(folder.resolve())
34
  assert path.stat().st_size == expected["bytes"]
 
46
 
47
  ## 4. Runtime et apprentissage
48
 
49
+ Le SDK autonome/conversion utilise `org.tensorflow:tensorflow-lite:2.16.1` et `org.tensorflow:tensorflow-lite-select-tf-ops:2.16.1`. La campagne applicative du 22 septembre utilise séparément LiteRT 1.4.2 + Select TF Ops 2.16.1. La rc5 du 23 septembre utilise Flex 2.16.1-vds16k1 reconstruit pour les pages 16 Ko ; sa suite de base 4/16 Ko ne remplace pas un retest de toutes les conversions. [Détails du correctif](https://github.com/unicornwhodev/vision-dataset-studio/blob/65e4620/docs/FLEX_16K.md). Ces environnements ne sont pas des garanties interchangeables. CPU, XNNPACK désactivé pour le graphe d’apprentissage, Flex pour les checkpoints ; GPU/NPU et téléphone ARM non qualifiés ici.
50
 
51
  Les signatures réelles `train`, `infer`, `save`, `restore` et leurs noms d’entrées/sorties doivent correspondre au contrat. Les cibles suivent `targetEncoding`, formes et classes ; une annotation absente n’est pas un exemple négatif. L’application ne prend pas en charge les entrées texte d’apprentissage. Seules les têtes/adaptations sont mutables ; tous les encodeurs visuels fournis sont figés. Les adaptations de détection ne créent pas de propositions absentes du détecteur figé. Changer le nombre de classes impose de reconstruire la tête.
52
 
53
  ## 5. Cycle du lot dans l’application
54
 
55
+ Importer → préannoter si activé → corriger/valider manuellement → exporter et vérifier la relecture → apprentissage facultatif du lot exporté → nettoyage confirmé → lot suivant. L’apprentissage est désactivé par défaut et s’exécute sur Android. Il utilise uniquement les images acceptées de ce lot ; rejets et autres lots sont exclus. Le nettoyage attend sa fin et son évaluation ; interruption/erreur conservent les données. Activation des nouveaux poids manuelle. Le premier entraînement conserve l’original et crée une version séparée ; les suivants poursuivent ses derniers poids validés, même avant activation. [Versions et checkpoints](CONTINUOUS_LEARNING.md).
56
 
57
  Les checkpoints conservent paramètres, moments et étape. Conserver aussi les hashes modèle/classes, provenance du dataset et exemples de rejeu/contrôle. Une restauration réussie ne prouve pas la généralisation. L’application exige au moins 32 images d’apprentissage et 8 de contrôle après partage déterministe. Les empreintes persistantes par projet survivent au nettoyage et excluent les copies exactes de fichiers/pixels ; elles ne couvrent pas tous les quasi-doublons retouchés.
58
 
59
  ## 6. Reproduire les contrôles Android
60
 
61
+ Utiliser [les outils de recette de l’application](https://github.com/unicornwhodev/vision-dataset-studio/tree/65e4620/tools/qa) sur un appareil dédié et avec les APK vérifiées. `fetch_model_fixtures.py` télécharge les fixtures épinglées hors APK et vérifie les manifestes. `qualify_converted_models.py` exécute chaque variante et consigne build, hashes et verdict Android. Consulter `--help` pour fournir chemins des modèles/preuves et numéro de l’appareil. La variable de consentement est `VDS_ALLOW_TEST_INSTALL=1`. Aucun entraînement automatique d’un corpus utilisateur ; conserver échecs et délais dépassés. Aucun optimiseur hôte dans ce chemin de test applicatif.
62
 
63
  ## Diagnostic
64
 
65
  - Hash incorrect : arrêter, vérifier la révision et retélécharger le fichier concerné.
66
  - Opération Flex/Save/Restore absente : contrôler runtime CPU et signatures.
67
+ - Forme/pas incompatible : vérifier formes et décodeur ; le défaut applicatif RTMDet sans apprentissage a été corrigé et son retest du 22 septembre est réussi.
68
  - Perte non finie ou checkpoint incompatible : conserver les données et restaurer une génération compatible vérifiée.
69
  - Émulateur logiciel lent : preuve fonctionnelle uniquement, aucune déduction de vitesse sur téléphone.
70
 
docs/figures/model-lineage.png ADDED
docs/figures/model-lineage.svg ADDED