Detectors & TABDet wrappers
DetectorPredParams(conf_threshold, nms_iou, max_det)
dataclass
¶
Bases: deepvisiontools.models.base.basemodel.BasePredParams
Prediction-time parameters for Detector decoding.
Controlled from global config
- current().data_box.conf_threshold
- current().data_box.nms_threshold
- current().model_max_detection (fallback 500)
DetectorSegPredParams(conf_threshold, nms_iou, max_det, mask_threshold, apply_mask_scoring, use_soft_nms, soft_nms_method, soft_nms_sigma, soft_nms_iou_thresh, soft_nms_score_thresh)
dataclass
¶
Bases: deepvisiontools.models.base.basemodel.BasePredParams
Prediction-time parameters for Detector instance segmentation decoding.
Controlled from global config
- current().data_instance_mask.conf_threshold
- current().data_instance_mask.nms_threshold
- current().data_instance_mask.mask_logits_threshold
- current().model_max_detection (fallback 500)
Extra switches for Detectron/MMDet-style decoding: - use_soft_nms + params - apply_mask_scoring (Mask Scoring R-CNN)
Detector(cfg, *, cfg_yaml_text=None, cfg_yaml_source=None, cfg_zoo_key=None)
¶
Bases: torch.nn.Module
Facade torch.nn.Module for Detector models. Detectors include several heads / necks. Detectors must preferably be built from yaml Note that detector are input size flexible only if using a CNN encoder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cfg
|
deepvisiontools.models.detectors.models.config.config.DetectorCfg
|
dataclass that configures the detector. |
required |
cfg_yaml_text
|
str | None, **optional**
|
Defaults to None. |
None
|
cfg_yaml_source
|
str | None, **optional**
|
Defaults to None. |
None
|
cfg_zoo_key
|
str | None, **optional**
|
Defaults to None. |
None
|
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | |
from_config(name, overrides=None)
staticmethod
¶
name can be:
- a zoo key
- a YAML file path
- raw YAML text
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 | |
from_yaml(source, overrides=None, _source_override=None, _zoo_key=None)
staticmethod
¶
Build from YAML file path or YAML text. Supports overrides.
Notes:
- This method only parses YAML into cfg objects.
- num_classes inference (top-level -> head -> dataset defaults) is handled
centrally in Detector.__init__, so we do NOT resolve it here.
- If YAML provides top-level num_classes, it is preserved. Otherwise it is
left unset (None) and inferred later.
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 | |
list_bbox_configs()
staticmethod
¶
Return available bbox (detection) config zoo keys.
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
442 443 444 445 | |
list_instance_mask_configs()
staticmethod
¶
Return available instance-mask (segmentation) config zoo keys.
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
447 448 449 450 | |
config_descriptions_bbox()
staticmethod
¶
Optional short descriptions for bbox configs.
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
452 453 454 455 | |
config_descriptions_instance_mask()
staticmethod
¶
Optional short descriptions for instance-mask configs.
Source code in src/deepvisiontools/models/detectors/models/facades/detectors.py
457 458 459 460 | |
TABDet(cfg, *, cfg_yaml_text=None, cfg_yaml_source=None, cfg_zoo_key=None)
¶
Bases: torch.nn.Module
Facade torch.nn.Module for TABDet models. TABDet include several heads / necks. The main difference with Detectors is that they run backbone on small patches before merging. TABDet must preferably be built from yaml Note that detector are input size flexible, even when using timm transformer encoders.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cfg
|
deepvisiontools.models.detectors.models.config.config.TABDetCfg
|
dataclass that configures the detector. |
required |
cfg_yaml_text
|
str | None, **optional**
|
Defaults to None. |
None
|
cfg_yaml_source
|
str | None, **optional**
|
Defaults to None. |
None
|
cfg_zoo_key
|
str | None, **optional**
|
Defaults to None. |
None
|
Source code in src/deepvisiontools/models/detectors/models/facades/tabdets.py
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 | |
from_yaml(source, overrides=None, _source_override=None, _zoo_key=None)
staticmethod
¶
Build from YAML file path or YAML text. Supports overrides.
Notes:
- This method only parses YAML into cfg objects.
- num_classes inference (top-level -> head -> dataset defaults) is handled
centrally in TABDet.__init__, so we do NOT resolve it here.
- If YAML provides top-level num_classes, it is preserved. Otherwise it is
left unset (None) and inferred later.
Source code in src/deepvisiontools/models/detectors/models/facades/tabdets.py
400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 | |
list_bbox_configs()
staticmethod
¶
Return available bbox (detection) config zoo keys.
Source code in src/deepvisiontools/models/detectors/models/facades/tabdets.py
485 486 487 488 | |
list_instance_mask_configs()
staticmethod
¶
Return available instance-mask (segmentation) config zoo keys.
Source code in src/deepvisiontools/models/detectors/models/facades/tabdets.py
490 491 492 493 | |
config_descriptions_bbox()
staticmethod
¶
Optional short descriptions for bbox configs.
Source code in src/deepvisiontools/models/detectors/models/facades/tabdets.py
495 496 497 498 | |
config_descriptions_instance_mask()
staticmethod
¶
Optional short descriptions for instance-mask configs.
Source code in src/deepvisiontools/models/detectors/models/facades/tabdets.py
500 501 502 503 | |
TABSegPredParams(conf_threshold, nms_iou, max_det, mask_threshold, apply_mask_scoring, use_soft_nms, soft_nms_method, soft_nms_sigma, soft_nms_iou_thresh, soft_nms_score_thresh)
dataclass
¶
Bases: deepvisiontools.models.base.basemodel.BasePredParams
Prediction-time parameters for TABSeg (TABDet facade with CascadeMaskRCNN head).
TABDetPredParams(conf_threshold, nms_iou, max_det)
dataclass
¶
Bases: deepvisiontools.models.base.basemodel.BasePredParams
Prediction-time parameters for TABDet decoding. Controlled from global config (same as bbox config).
build_detector(*, config='default_vfnet', overrides=None, num_classes=None, supports_amp=True, autocast_dtype=torch.float16, device=None, use_amp=None, pad_multiple=32, **extras)
¶
Build a DeepVision detector wrapper, registered as "detector".
This builder wraps the internal Detector facade, typically configured with a
VFNet-style detection head, inside the DeepVisionTools DeepVisionModel API.
It supports predefined zoo configs, YAML file paths and raw YAML strings.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
str
|
Detector configuration. Can be a registered config
name, a YAML file path, or raw YAML text accepted by |
'default_vfnet'
|
overrides
|
collections.abc.Mapping[str, typing.Any] | None
|
Configuration overrides passed
to |
None
|
num_classes
|
int | None
|
Number of detection classes. When provided,
it is injected into |
None
|
supports_amp
|
bool
|
Whether this backend supports autocast mixed precision. Defaults to True. |
True
|
autocast_dtype
|
torch.dtype
|
Autocast dtype used by
|
torch.float16
|
device
|
str | torch.device | None
|
Device used to place the model.
If None, device resolution is delegated to |
None
|
use_amp
|
bool | None
|
Force-enable or force-disable AMP. If None, the global/default DeepVisionTools AMP policy is used. Defaults to None. |
None
|
pad_multiple
|
int
|
Spatial multiple used by preprocessing to pad images and targets before forwarding them to the detector. Defaults to 32. |
32
|
extras
|
Additional keyword arguments kept for registry/export compatibility. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
DeepVisionModel |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
A fully wired detection model with |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
default |
Targets and export
During training, instance-mask targets are converted to bounding boxes when
needed. Exported artifacts store the effective YAML/configuration and force
"backbone.pretrained": False before reloading the saved state dict.
Usage
import torch
from deepvisiontools.models import ModelFactory
# Default VFNet-style detector
model = ModelFactory(
name="detector",
config="default_vfnet",
num_classes=3,
)
# Override parts of the detector config
model = ModelFactory(
name="detector",
config="default_vfnet",
num_classes=3,
overrides={
"backbone.name": "convnextv2_base",
"backbone.pretrained": True,
},
)
# Control device, AMP and preprocessing padding
model = ModelFactory(
name="detector",
config="default_vfnet",
num_classes=3,
device="cuda",
use_amp=True,
pad_multiple=32,
)
# Inference returns BatchData containing BboxData items.
images = torch.randn(2, 3, 512, 512)
preds = model.predict(images)
preds.data_type == "bbox"
>>> True
Source code in src/deepvisiontools/models/detectors/detector.py
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 | |
build_detector_seg(*, config='default_cascade_maskrcnn', overrides=None, num_classes=None, supports_amp=True, autocast_dtype=torch.float16, device=None, use_amp=None, pad_multiple=32, **extras)
¶
Build a DeepVision detector instance segmentation wrapper, registered as "detector-seg".
This builder wraps the internal Detector facade configured with an instance
segmentation head, typically Cascade Mask R-CNN-style, inside the
DeepVisionTools DeepVisionModel API. It supports predefined zoo configs, YAML
file paths and raw YAML strings.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
str
|
Detector segmentation configuration. Can be a
registered config name, a YAML file path, or raw YAML text accepted by
|
'default_cascade_maskrcnn'
|
overrides
|
collections.abc.Mapping[str, typing.Any] | None
|
Configuration overrides passed
to |
None
|
num_classes
|
int | None
|
Number of instance segmentation classes.
When provided, it is injected into |
None
|
supports_amp
|
bool
|
Whether this backend supports autocast mixed precision. Defaults to True. |
True
|
autocast_dtype
|
torch.dtype
|
Autocast dtype used by
|
torch.float16
|
device
|
str | torch.device | None
|
Device used to place the model.
If None, device resolution is delegated to |
None
|
use_amp
|
bool | None
|
Force-enable or force-disable AMP. If None, the global/default DeepVisionTools AMP policy is used. Defaults to None. |
None
|
pad_multiple
|
int
|
Spatial multiple used by preprocessing to pad images and instance-mask targets before forwarding them to the detector. Defaults to 32. |
32
|
extras
|
Additional keyword arguments kept for registry/export compatibility. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
DeepVisionModel |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
A fully wired instance segmentation model with |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
|
|
deepvisiontools.models.base.basemodel.DeepVisionModel
|
the current configuration. |
Export behavior
Exported artifacts store the effective YAML/configuration and force
"backbone.pretrained": False before reloading the saved state dict.
Usage
import torch
from deepvisiontools.models import ModelFactory
# Default Cascade Mask R-CNN-style detector
model = ModelFactory(
name="detector-seg",
config="default_cascade_maskrcnn",
num_classes=3,
)
# Override selected config values
model = ModelFactory(
name="detector-seg",
config="default_cascade_maskrcnn",
num_classes=3,
overrides={
"backbone.name": "convnextv2_base",
"backbone.pretrained": True,
},
)
# Control device, AMP and preprocessing padding
model = ModelFactory(
name="detector-seg",
config="default_cascade_maskrcnn",
num_classes=3,
device="cuda",
use_amp=True,
pad_multiple=32,
)
# Inference returns BatchData containing InstanceMaskData items.
images = torch.randn(2, 3, 512, 512)
preds = model.predict(images)
preds.data_type == "instance_mask"
>>> True
Source code in src/deepvisiontools/models/detectors/detector_seg.py
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 | |
build_tabdet_seg(*, config='tabdet_vit-base-patch16-dinov3_cascade_maskrcnn', overrides=None, num_classes=None, supports_amp=True, autocast_dtype=torch.float16, device=None, use_amp=None, **extras)
¶
Build a DeepVision TABDet instance segmentation wrapper, registered as "tabdet-seg".
This builder wraps the TABDet facade configured with an instance segmentation
head, typically Cascade Mask R-CNN-style, inside the DeepVisionTools
DeepVisionModel API. It supports predefined zoo configs, YAML file paths and
raw YAML strings.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
str
|
TABDet instance segmentation configuration. Can be a
registered config name, a YAML file path, or raw YAML text accepted by
|
'tabdet_vit-base-patch16-dinov3_cascade_maskrcnn'
|
overrides
|
collections.abc.Mapping[str, typing.Any] | None
|
Configuration overrides passed
to |
None
|
num_classes
|
int | None
|
Number of instance segmentation classes.
When provided, it is injected into |
None
|
supports_amp
|
bool
|
Whether this backend supports autocast mixed precision. Defaults to True. |
True
|
autocast_dtype
|
torch.dtype
|
Autocast dtype used by
|
torch.float16
|
device
|
str | torch.device | None
|
Device used to place the model.
If None, device resolution is delegated to |
None
|
use_amp
|
bool | None
|
Force-enable or force-disable AMP. If None, the global/default DeepVisionTools AMP policy is used. Defaults to None. |
None
|
extras
|
Additional keyword arguments kept for registry/export compatibility. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
DeepVisionModel |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
A fully wired instance segmentation model with |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
|
|
deepvisiontools.models.base.basemodel.DeepVisionModel
|
current configuration. |
TABDet preprocessing
TABDet-seg preprocessing uses the facade patcher padding requirements instead
of a fixed pad_multiple. This keeps image and target padding aligned with
TABDet tiling and feature aggregation.
Export behavior
Exported artifacts store the effective YAML/configuration and force
"backbone.pretrained": False before reloading the saved state dict.
Usage
import torch
from deepvisiontools.models import ModelFactory
# Default TABDet instance segmentation model
model = ModelFactory(
name="tabdet-seg",
config="tabdet_vit-base-patch16-dinov3_cascade_maskrcnn",
num_classes=3,
)
# Override selected TABDet config values
model = ModelFactory(
name="tabdet-seg",
config="tabdet_vit-base-patch16-dinov3_cascade_maskrcnn",
num_classes=3,
overrides={
"backbone.pretrained": True,
},
)
# Device and AMP control
model = ModelFactory(
name="tabdet-seg",
config="tabdet_vit-base-patch16-dinov3_cascade_maskrcnn",
num_classes=3,
device="cuda",
use_amp=True,
)
# Inference returns BatchData containing InstanceMaskData items.
images = torch.randn(2, 3, 512, 512)
preds = model.predict(images)
preds.data_type == "instance_mask"
>>> True
Source code in src/deepvisiontools/models/detectors/tab_seg.py
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 | |
build_tabdet(*, config='default_vfnet', overrides=None, num_classes=None, supports_amp=True, autocast_dtype=torch.float16, device=None, use_amp=None, **extras)
¶
Build a DeepVision TABDet detection wrapper, registered as "tabdet".
This builder wraps the TABDet facade, a tiled-aggregated-backbone detector,
inside the DeepVisionTools DeepVisionModel API. It supports predefined zoo
configs, YAML file paths and raw YAML strings.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
str
|
TABDet detection configuration. Can be a registered
config name, a YAML file path, or raw YAML text accepted by |
'default_vfnet'
|
overrides
|
collections.abc.Mapping[str, typing.Any] | None
|
Configuration overrides passed
to |
None
|
num_classes
|
int | None
|
Number of detection classes. When provided,
it is injected into |
None
|
supports_amp
|
bool
|
Whether this backend supports autocast mixed precision. Defaults to True. |
True
|
autocast_dtype
|
torch.dtype
|
Autocast dtype used by
|
torch.float16
|
device
|
str | torch.device | None
|
Device used to place the model.
If None, device resolution is delegated to |
None
|
use_amp
|
bool | None
|
Force-enable or force-disable AMP. If None, the global/default DeepVisionTools AMP policy is used. Defaults to None. |
None
|
extras
|
Additional keyword arguments kept for registry/export compatibility. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
DeepVisionModel |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
A fully wired detection model with |
deepvisiontools.models.base.basemodel.DeepVisionModel
|
default |
TABDet preprocessing
TABDet preprocessing uses the facade patcher padding requirements instead of
a fixed pad_multiple. This keeps image padding aligned with TABDet tiling
and feature aggregation.
Export behavior
Exported artifacts store the effective YAML/configuration and force
"backbone.pretrained": False before reloading the saved state dict.
Usage
import torch
from deepvisiontools.models import ModelFactory
# Default TABDet detector
model = ModelFactory(
name="tabdet",
config="default_vfnet",
num_classes=3,
)
# Use a registered TABDet config and override selected values
model = ModelFactory(
name="tabdet",
config="tabdet_vit-base-patch16-dinov3_vfnet",
num_classes=3,
overrides={
"backbone.pretrained": True,
},
)
# Device and AMP control
model = ModelFactory(
name="tabdet",
config="default_vfnet",
num_classes=3,
device="cuda",
use_amp=True,
)
# Inference returns BatchData containing BboxData items.
images = torch.randn(2, 3, 512, 512)
preds = model.predict(images)
preds.data_type == "bbox"
>>> True
Source code in src/deepvisiontools/models/detectors/tabdet.py
277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 | |