Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
281b868
Add opt-in model YAML family inheritance with identity proofs
parkjinman98 Nov 4, 2026
e8fe25c
Add read-only Hub artifact resolution checks
parkjinman98 Nov 4, 2026
c1289eb
Add person retrieval datasets, embedding postprocessing and exact pro…
parkjinman98 Nov 4, 2026
511b8a3
Add published ImageNet classifier family configurations
parkjinman98 Nov 4, 2026
86def30
Stack classifier coverage on read-only Hub verifier
parkjinman98 Nov 4, 2026
b1dbd45
Require local ONNX for MXQ-only published classifier repositories
parkjinman98 Nov 4, 2026
81a3727
Connect retrieval embeddings to engine results and dataset readiness
parkjinman98 Nov 4, 2026
31ddef1
Honor ONNX-only policy across backend and compile paths
parkjinman98 Nov 4, 2026
636c390
Add aligned face pair datasets and source-exact fold verification
parkjinman98 Nov 4, 2026
aaf0c14
Add pending EfficientViT B0 B1 B2 family sibling configs
parkjinman98 Nov 4, 2026
77478b4
Validate official face pair counts independently for every fold
parkjinman98 Nov 4, 2026
703ce82
Merge classifier artifact guards and coverage dependency for ReID con…
parkjinman98 Nov 4, 2026
6bc2db8
Add twelve published CLIP-ReID model configs and registry exports
parkjinman98 Nov 4, 2026
6a4957d
Limit ReID model exports and clarify unsupported compilation
parkjinman98 Nov 4, 2026
b37c5bd
Integrate squash-merged verifier preserving classifier guards
parkjinman98 Nov 4, 2026
1c0a9b1
Integrate squash-merged ReID main with unchanged face-family diff
parkjinman98 Nov 4, 2026
097c810
Reject face-cache symlink roots images and pair manifests
parkjinman98 Nov 4, 2026
a5d5be0
Integrate squash-merged main preserving ReID and face review fixes
parkjinman98 Nov 4, 2026
ab09ae4
Merge updated face verification dependency and cache symlink regressions
parkjinman98 Nov 4, 2026
32df980
Merge updated classifier guard dependency and preserve verifier board…
parkjinman98 Nov 4, 2026
87ff416
Integrate OBB and classifier main preserving face-family changes
parkjinman98 Nov 4, 2026
f1b893b
Integrate merged classifier and OBB release main without changing the…
parkjinman98 Nov 4, 2026
c765f8a
Integrate latest face verification dependency on release main
parkjinman98 Nov 4, 2026
45fac20
Merge main after face-verification squash preserving ReID-only changes
parkjinman98 Nov 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .claude/skills/mblt-vision/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,8 @@ description: >-
complete methodology are in the DOTA section of `mblt_vision/README.md`.
- Run YOLOv7 models at `iou_thres: 0.65`, WongKinYiu/yolov7's own `test.py` default.

- ReID is utility-only until published wrappers and routing are added. Reuse
- Published CLIP-ReID wrappers use RN50/ViT processing bases and matching retrieval datasets;
keep their MXQ-only ONNX runtime guard. ReID compile, CLI/benchmark routing remain unavailable. Reuse
`EmbeddingPost` for dense vectors, explicit float32 mean/std for source preprocessing,
and prepared query/gallery loaders. Preserve ops stable distance ties, camera exclusions
and dataset-specific junk handling; see the ReID API section in `mblt_vision/README.md`.
Expand Down
5 changes: 4 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,10 @@ The current ownership boundary is deliberate:
any future model needing more than one Hub artifact, rather than duplicating Hub-resolution
logic.

- ReID utilities live in `mblt_vision.person_reid`; concrete published wrappers are separate.
- ReID utilities and twelve published CLIP-ReID wrappers live in `mblt_vision.person_reid`.
Model YAMLs inherit the RN50/ViT processing base and explicitly bind their dataset/dimension.
Published ReID artifacts are MXQ-only; preserve the trusted-local ONNX runtime guard.
ReID compilation/calibration is not supported by compile_vision_model in this stage.
Use `EmbeddingPost` for validated dense vectors and `PersonReIDPost` for dataset binding.
Retrieval protocols and prepared loaders are pinned to ops source in dataset YAMLs; keep
stable distance ties, camera exclusions, junk rules, and preprocessing numeric parity tested.
Expand Down
23 changes: 23 additions & 0 deletions mblt_vision/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1065,3 +1065,26 @@ Dataset YAMLs record exact source paths/revision. CFP-FP specifically refers to
the prepared cat-claws mirror: ops warns it was not checked against the original
`cfp_fp.bin` and records a training-log discrepancy. This package preserves that
provenance and makes no new accuracy claim.

### Published ReID models

The twelve published `CLIP_ReID_*` wrappers are available from
`mblt_vision.person_reid`, lazy top-level imports, and `list_models("person_reid")`.
They cover RN50 / ViT-B-16, baseline / fine-tuned, each for Market-1501, DukeMTMC-reID
and Occluded-Duke. Every YAML inherits `bases/person_reid.yaml` and binds the
matching retrieval dataset. RN50 uses 3072 dimensions and torch mean/std; ViT uses
1280 dimensions and 0.5 mean/std. Both take 256x128 PIL bilinear crops and one
image input, confirmed from ops distribution contracts and recorded preprocessing.

HF metadata confirms one canonical `aries-rb/<model-lowercase>.mxq` per repository,
with no published ONNX. These configurations retain `revision: main` by project
policy; the approval HF commit is explicitly **not recorded**, while the ops source
commit and exact source paths are included under `source`. Live metadata SHAs are
audit diagnostics, not approval pins. `onnx_local_artifact_only: true` preserves
automatic MXQ loading and requires trusted local ONNX for runtime.
`compile_vision_model` does not yet support `person_reid`; this stage does not
add a ReID compilation/calibration path.
The guard is inherited from the PR31 dependency, not reimplemented here.

ArcFace/CosFace eight-model publication is pending. Those models remain
inventory-only: no guessed HF repository identity or downloadable YAML is shipped.
5 changes: 4 additions & 1 deletion mblt_vision/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,15 @@
object_detection,
obb,
pose_estimation,
person_reid,
Comment thread
parkjinman98 marked this conversation as resolved.
Resolved
semantic_segmentation,
)

_LEGACY_MODEL_EXPORTS: dict[str, object] = {}
for _task_module in _TASK_MODULES:
for _export_name in getattr(_task_module, "__all__", ()):
for _export_name in getattr(
_task_module, "MODEL_EXPORTS", getattr(_task_module, "__all__", ())
):
if _export_name in _LEGACY_MODEL_EXPORTS:
raise RuntimeError(
f"Duplicate vision export detected for '{_export_name}'."
Expand Down
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_RN50_Baseline_DukeMTMC.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#DEFAULT
file_cfg:
repo_id: mobilint/CLIP_ReID_RN50_Baseline_DukeMTMC
filename: clip_reid_rn50_baseline_dukemtmc.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: dukemtmc-reid
embedding_dim: 3072
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_RN50_Baseline_DukeMTMC/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_RN50_Baseline_DukeMTMC/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_RN50_Baseline_Market1501.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#DEFAULT
file_cfg:
repo_id: mobilint/CLIP_ReID_RN50_Baseline_Market1501
filename: clip_reid_rn50_baseline_market1501.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: market1501
embedding_dim: 3072
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_RN50_Baseline_Market1501/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_RN50_Baseline_Market1501/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_RN50_Baseline_OccDuke.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#DEFAULT
file_cfg:
repo_id: mobilint/CLIP_ReID_RN50_Baseline_OccDuke
filename: clip_reid_rn50_baseline_occduke.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: occluded-duke
embedding_dim: 3072
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_RN50_Baseline_OccDuke/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_RN50_Baseline_OccDuke/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_RN50_DukeMTMC.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#DEFAULT
file_cfg:
repo_id: mobilint/CLIP_ReID_RN50_DukeMTMC
filename: clip_reid_rn50_dukemtmc.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: dukemtmc-reid
embedding_dim: 3072
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_RN50_DukeMTMC/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_RN50_DukeMTMC/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_RN50_Market1501.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#DEFAULT
file_cfg:
repo_id: mobilint/CLIP_ReID_RN50_Market1501
filename: clip_reid_rn50_market1501.mxq
revision: main
Comment thread
parkjinman98 marked this conversation as resolved.
Resolved
onnx_local_artifact_only: true
post_cfg:
dataset: market1501
embedding_dim: 3072
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_RN50_Market1501/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_RN50_Market1501/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_RN50_OccDuke.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#DEFAULT
file_cfg:
repo_id: mobilint/CLIP_ReID_RN50_OccDuke
filename: clip_reid_rn50_occduke.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: occluded-duke
embedding_dim: 3072
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_RN50_OccDuke/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_RN50_OccDuke/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_ViT_B_16_Baseline_DukeMTMC.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#VIT
file_cfg:
repo_id: mobilint/CLIP_ReID_ViT_B_16_Baseline_DukeMTMC
filename: clip_reid_vit_b_16_baseline_dukemtmc.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: dukemtmc-reid
embedding_dim: 1280
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_ViT_B_16_Baseline_DukeMTMC/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_ViT_B_16_Baseline_DukeMTMC/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_ViT_B_16_Baseline_Market1501.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#VIT
file_cfg:
repo_id: mobilint/CLIP_ReID_ViT_B_16_Baseline_Market1501
filename: clip_reid_vit_b_16_baseline_market1501.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: market1501
embedding_dim: 1280
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_ViT_B_16_Baseline_Market1501/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_ViT_B_16_Baseline_Market1501/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_ViT_B_16_Baseline_OccDuke.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#VIT
file_cfg:
repo_id: mobilint/CLIP_ReID_ViT_B_16_Baseline_OccDuke
filename: clip_reid_vit_b_16_baseline_occduke.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: occluded-duke
embedding_dim: 1280
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_ViT_B_16_Baseline_OccDuke/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_ViT_B_16_Baseline_OccDuke/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_ViT_B_16_DukeMTMC.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#VIT
file_cfg:
repo_id: mobilint/CLIP_ReID_ViT_B_16_DukeMTMC
filename: clip_reid_vit_b_16_dukemtmc.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: dukemtmc-reid
embedding_dim: 1280
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_ViT_B_16_DukeMTMC/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_ViT_B_16_DukeMTMC/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_ViT_B_16_Market1501.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#VIT
file_cfg:
repo_id: mobilint/CLIP_ReID_ViT_B_16_Market1501
filename: clip_reid_vit_b_16_market1501.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: market1501
embedding_dim: 1280
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_ViT_B_16_Market1501/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_ViT_B_16_Market1501/_source/predict_float.input.json
approved_hf_revision: not recorded
17 changes: 17 additions & 0 deletions mblt_vision/models/CLIP_ReID_ViT_B_16_OccDuke.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Approval HF commit: not recorded; main retained by explicit project policy.
DEFAULT:
extends: bases/person_reid.yaml#VIT
file_cfg:
repo_id: mobilint/CLIP_ReID_ViT_B_16_OccDuke
filename: clip_reid_vit_b_16_occduke.mxq
revision: main
onnx_local_artifact_only: true
post_cfg:
dataset: occluded-duke
embedding_dim: 1280
source:
repository: https://git.mobilint.com/algorithm-team/testing/mblt-model-ops
revision: ec537764e36ca10da963fcb7afab157ea60ca022
distribution_path: models/person_reid/CLIP_ReID_ViT_B_16_OccDuke/distribution.yaml
pre_cfg_path: models/person_reid/CLIP_ReID_ViT_B_16_OccDuke/_source/predict_float.input.json
approved_hf_revision: not recorded
6 changes: 6 additions & 0 deletions mblt_vision/models/bases/person_reid.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,9 @@ OCCLUDED_DUKE:
extends: person_reid.yaml#DEFAULT
post_cfg:
dataset: occluded-duke
VIT:
extends: person_reid.yaml#DEFAULT
pre_cfg:
Normalize:
mean: [0.5, 0.5, 0.5]
std: [0.5, 0.5, 0.5]
48 changes: 48 additions & 0 deletions mblt_vision/person_reid/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Person retrieval utilities; published model wrappers are added separately."""

from .._compat import create_model_class
from ..utils.datasets.reid import (
DukeMTMCReIDDataset,
Market1501Dataset,
Expand Down Expand Up @@ -32,3 +33,50 @@
"RetrievalResult",
"extract_embeddings",
]

# Concrete published single-input models; utilities above remain explicit exports.
CLIP_ReID_RN50_Baseline_DukeMTMC = create_model_class(
"CLIP_ReID_RN50_Baseline_DukeMTMC", __name__
)
CLIP_ReID_RN50_Baseline_Market1501 = create_model_class(
"CLIP_ReID_RN50_Baseline_Market1501", __name__
)
CLIP_ReID_RN50_Baseline_OccDuke = create_model_class(
"CLIP_ReID_RN50_Baseline_OccDuke", __name__
)
CLIP_ReID_RN50_DukeMTMC = create_model_class("CLIP_ReID_RN50_DukeMTMC", __name__)
CLIP_ReID_RN50_Market1501 = create_model_class("CLIP_ReID_RN50_Market1501", __name__)
CLIP_ReID_RN50_OccDuke = create_model_class("CLIP_ReID_RN50_OccDuke", __name__)
CLIP_ReID_ViT_B_16_Baseline_DukeMTMC = create_model_class(
"CLIP_ReID_ViT_B_16_Baseline_DukeMTMC", __name__
)
CLIP_ReID_ViT_B_16_Baseline_Market1501 = create_model_class(
"CLIP_ReID_ViT_B_16_Baseline_Market1501", __name__
)
CLIP_ReID_ViT_B_16_Baseline_OccDuke = create_model_class(
"CLIP_ReID_ViT_B_16_Baseline_OccDuke", __name__
)
CLIP_ReID_ViT_B_16_DukeMTMC = create_model_class(
"CLIP_ReID_ViT_B_16_DukeMTMC", __name__
)
CLIP_ReID_ViT_B_16_Market1501 = create_model_class(
"CLIP_ReID_ViT_B_16_Market1501", __name__
)
CLIP_ReID_ViT_B_16_OccDuke = create_model_class("CLIP_ReID_ViT_B_16_OccDuke", __name__)

MODEL_EXPORTS = [
"CLIP_ReID_RN50_Baseline_DukeMTMC",
"CLIP_ReID_RN50_Baseline_Market1501",
"CLIP_ReID_RN50_Baseline_OccDuke",
"CLIP_ReID_RN50_DukeMTMC",
"CLIP_ReID_RN50_Market1501",
"CLIP_ReID_RN50_OccDuke",
"CLIP_ReID_ViT_B_16_Baseline_DukeMTMC",
"CLIP_ReID_ViT_B_16_Baseline_Market1501",
"CLIP_ReID_ViT_B_16_Baseline_OccDuke",
"CLIP_ReID_ViT_B_16_DukeMTMC",
"CLIP_ReID_ViT_B_16_Market1501",
"CLIP_ReID_ViT_B_16_OccDuke",
]

__all__ += MODEL_EXPORTS
1 change: 1 addition & 0 deletions tests/test_model_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"object_detection": {"coco"},
"obb": {"dotav1"},
"pose_estimation": {"coco"},
"person_reid": {"market1501", "dukemtmc-reid", "occluded-duke"},
"semantic_segmentation": {"ade20k", "cityscapes"},
}

Expand Down
Loading
Loading