| | |
| |
|
| | from typing import Any |
| |
|
| | from detectron2.structures import Boxes |
| |
|
| | from ..structures import DensePoseChartResult, DensePoseChartResultWithConfidences |
| | from .base import BaseConverter |
| |
|
| |
|
| | class ToChartResultConverter(BaseConverter): |
| | """ |
| | Converts various DensePose predictor outputs to DensePose results. |
| | Each DensePose predictor output type has to register its convertion strategy. |
| | """ |
| |
|
| | registry = {} |
| | dst_type = DensePoseChartResult |
| |
|
| | @classmethod |
| | |
| | |
| | def convert(cls, predictor_outputs: Any, boxes: Boxes, *args, **kwargs) -> DensePoseChartResult: |
| | """ |
| | Convert DensePose predictor outputs to DensePoseResult using some registered |
| | converter. Does recursive lookup for base classes, so there's no need |
| | for explicit registration for derived classes. |
| | |
| | Args: |
| | densepose_predictor_outputs: DensePose predictor output to be |
| | converted to BitMasks |
| | boxes (Boxes): bounding boxes that correspond to the DensePose |
| | predictor outputs |
| | Return: |
| | An instance of DensePoseResult. If no suitable converter was found, raises KeyError |
| | """ |
| | return super(ToChartResultConverter, cls).convert(predictor_outputs, boxes, *args, **kwargs) |
| |
|
| |
|
| | class ToChartResultConverterWithConfidences(BaseConverter): |
| | """ |
| | Converts various DensePose predictor outputs to DensePose results. |
| | Each DensePose predictor output type has to register its convertion strategy. |
| | """ |
| |
|
| | registry = {} |
| | dst_type = DensePoseChartResultWithConfidences |
| |
|
| | @classmethod |
| | |
| | |
| | def convert( |
| | cls, predictor_outputs: Any, boxes: Boxes, *args, **kwargs |
| | ) -> DensePoseChartResultWithConfidences: |
| | """ |
| | Convert DensePose predictor outputs to DensePoseResult with confidences |
| | using some registered converter. Does recursive lookup for base classes, |
| | so there's no need for explicit registration for derived classes. |
| | |
| | Args: |
| | densepose_predictor_outputs: DensePose predictor output with confidences |
| | to be converted to BitMasks |
| | boxes (Boxes): bounding boxes that correspond to the DensePose |
| | predictor outputs |
| | Return: |
| | An instance of DensePoseResult. If no suitable converter was found, raises KeyError |
| | """ |
| | return super(ToChartResultConverterWithConfidences, cls).convert( |
| | predictor_outputs, boxes, *args, **kwargs |
| | ) |
| |
|