Source code for xrmocap.data_structure.limbs

# yapf: disable
import logging
import numpy as np
import torch
from typing import List, Union
from xrprimer.data_structure import Limbs as XRPrimerLimbs

# yapf: enable


[docs]class Limbs(XRPrimerLimbs): deprecation_warned = False """A class for person limbs data, recording connection vectors between keypoints. Connections are the only necessary data, while human parts, points are optional. """ def __init__(self, connections: Union[np.ndarray, torch.Tensor], connection_names: Union[List[str], None] = None, parts: Union[List[List[int]], None] = None, part_names: Union[List[str], None] = None, points: Union[np.ndarray, torch.Tensor, None] = None, logger: Union[None, str, logging.Logger] = None) -> None: """A class for person limbs data, recording connection vectors between keypoints. Connections are the only necessary data. Connections record point indice, while parts record connection indice. Args: connections (Union[np.ndarray, torch.Tensor]): A tensor or ndarray for connections, in shape [n_conn, 2], conn[:, 0] are start point indice and conn[:, 1] are end point indice. connection_names (Union[List[str], None], optional): A list of connections names. If given, len(connection_names)==len(conn), else default names will be returned when getting connections. Defaults to None. parts (Union[List[List[int]], None], optional): A nested list, len(parts) is part number, and len(parts[0]) is connection number of the first part. Each element in parts[i] is an index of one connection. part_names (Union[List[str], None], optional): A list of part names. If given, len(part_names)==len(parts), else default names will be returned when getting parts. Defaults to None. points (Union[np.ndarray, torch.Tensor, None], optional): A tensor or ndarray for points, in shape [n_point, point_dim]. Defaults to None. logger (Union[None, str, logging.Logger], optional): Logger for logging. If None, root logger will be selected. Defaults to None. """ XRPrimerLimbs.__init__( self, connections=connections, connection_names=connection_names, parts=parts, part_names=part_names, points=points, logger=logger) if not self.__class__.deprecation_warned: self.__class__.deprecation_warned = True self.logger.warning( 'Limbs defined in XRMoCap is deprecated,' + ' use `from xrprimer.data_structure import Limbs` instead.' + ' This class will be removed from XRMoCap before v0.9.0.')