Spaces:
Paused
Paused
# Copyright (c) Facebook, Inc. and its affiliates. | |
from dataclasses import dataclass | |
from enum import Enum | |
from detectron2.config import CfgNode | |
class DensePoseUVConfidenceType(Enum): | |
""" | |
Statistical model type for confidence learning, possible values: | |
- "iid_iso": statistically independent identically distributed residuals | |
with anisotropic covariance | |
- "indep_aniso": statistically independent residuals with anisotropic | |
covariances | |
For details, see: | |
N. Neverova, D. Novotny, A. Vedaldi "Correlated Uncertainty for Learning | |
Dense Correspondences from Noisy Labels", p. 918--926, in Proc. NIPS 2019 | |
""" | |
# fmt: off | |
IID_ISO = "iid_iso" | |
INDEP_ANISO = "indep_aniso" | |
# fmt: on | |
class DensePoseUVConfidenceConfig: | |
""" | |
Configuration options for confidence on UV data | |
""" | |
enabled: bool = False | |
# lower bound on UV confidences | |
epsilon: float = 0.01 | |
type: DensePoseUVConfidenceType = DensePoseUVConfidenceType.IID_ISO | |
class DensePoseSegmConfidenceConfig: | |
""" | |
Configuration options for confidence on segmentation | |
""" | |
enabled: bool = False | |
# lower bound on confidence values | |
epsilon: float = 0.01 | |
class DensePoseConfidenceModelConfig: | |
""" | |
Configuration options for confidence models | |
""" | |
# confidence for U and V values | |
uv_confidence: DensePoseUVConfidenceConfig | |
# segmentation confidence | |
segm_confidence: DensePoseSegmConfidenceConfig | |
def from_cfg(cfg: CfgNode) -> "DensePoseConfidenceModelConfig": | |
return DensePoseConfidenceModelConfig( | |
uv_confidence=DensePoseUVConfidenceConfig( | |
enabled=cfg.MODEL.ROI_DENSEPOSE_HEAD.UV_CONFIDENCE.ENABLED, | |
epsilon=cfg.MODEL.ROI_DENSEPOSE_HEAD.UV_CONFIDENCE.EPSILON, | |
type=DensePoseUVConfidenceType(cfg.MODEL.ROI_DENSEPOSE_HEAD.UV_CONFIDENCE.TYPE), | |
), | |
segm_confidence=DensePoseSegmConfidenceConfig( | |
enabled=cfg.MODEL.ROI_DENSEPOSE_HEAD.SEGM_CONFIDENCE.ENABLED, | |
epsilon=cfg.MODEL.ROI_DENSEPOSE_HEAD.SEGM_CONFIDENCE.EPSILON, | |
), | |
) | |