Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
| """MOD model registry for the eve_gmod demo. | |
| This is the single place that maps each selectable model name to the | |
| ``ModelConfig`` the EVE worker loads. Adding a model, or pointing an existing | |
| one at new weights, is a one-line change here — nothing else needs to move. | |
| - **GMOD Base Model** uses the EVE SDK's bundled default model, so it carries | |
| no path and no class table. | |
| - **Automotive Object Detector** and **Office Object Detector** load their | |
| ``.tflite`` from ``MOD_MODELS_DIR`` | |
| (the gated weights fetched at build time, see ``install_eve.py``; falls back to | |
| the demo-relative ``models/`` locally) and ship their own class labels (in | |
| output-index order). | |
| """ | |
| from __future__ import annotations | |
| import os | |
| from pathlib import Path | |
| from eve_messages import ModelConfig | |
| # In the Space the gated weights are fetched to MOD_MODELS_DIR by install_eve.py | |
| # at Docker build time; local runs fall back to the demo-relative ``models/``. | |
| _MODELS_DIR = Path(os.environ.get("MOD_MODELS_DIR") or Path(__file__).resolve().parent / "models") | |
| # Class labels in the order the model emits them (output index -> label). | |
| AUTOMOTIVE_CLASS_NAMES: tuple[str, ...] = ( | |
| "person", | |
| "bicycle", | |
| "car", | |
| "motorcycle", | |
| "bus", | |
| "truck", | |
| "traffic light", | |
| "stop sign", | |
| ) | |
| OFFICE_CLASS_NAMES: tuple[str, ...] = ( | |
| "bottle", | |
| "cup", | |
| "potted plant", | |
| "laptop", | |
| "mouse", | |
| "keyboard", | |
| "cell phone", | |
| "book", | |
| ) | |
| MOD_MODEL_REGISTRY: dict[str, ModelConfig] = { | |
| "GMOD Base Model": ModelConfig(name="GMOD Base Model", nms_threshold=0.2), | |
| "Automotive Object Detector": ModelConfig( | |
| name="Automotive Object Detector", | |
| model_path=str(_MODELS_DIR / "automotive-640x640.tflite"), | |
| class_names=AUTOMOTIVE_CLASS_NAMES, | |
| nms_threshold=0.4, | |
| iou_threshold=0.4 | |
| ), | |
| "Office Object Detector": ModelConfig( | |
| name="Office Object Detector", | |
| model_path=str(_MODELS_DIR / "office-640x640.tflite"), | |
| class_names=OFFICE_CLASS_NAMES, | |
| nms_threshold=0.4, | |
| iou_threshold=0.4 | |
| ), | |
| } | |
| # UI order of the selection radio; first entry is the default. | |
| MOD_MODELS: list[str] = list(MOD_MODEL_REGISTRY) | |
| DEFAULT_MOD_MODEL: str = "GMOD Base Model" | |