Inference - PocketPose 0.0.1 documentation

Hide navigation sidebar
Hide table of contents sidebar
Back to top
Edit this page
Toggle table of contents sidebar

# Inference

PocketPose provides the inference interface through the `PoseInferencer` class, which can be used to perform pose estimation on images using any of the pre-trained models available in the library with just a few lines of code.

    import pocketpose as pp

    image_path = "path/to/image.jpg"  # JPEG or PNG
    inferencer = pp.PoseInferencer(model_name="model-alias")
    keypoints = inferencer.infer(image_path)
    print(keypoints)

    [(86, 36, 0.49550787), (92, 28, 0.46823704), (81, 31, 0.5882008), (103, 31, 0.49060246), (76, 36, 0.40824494), (119, 67, 0.4409393), (81, 80, 0.6457721), (159, 105, 0.5388895), (54, 116, 0.6067148), (165, 112, 0.14356694), (23, 135, 0.41521636), (148, 168, 0.6924157), (117, 173, 0.5583147), (152, 248, 0.7444087), (86, 225, 0.39080128), (199, 315, 0.5521312), (121, 290, 0.46033904)]

This returns a list of keypoints, where each keypoint is a tuple of `(x, y, confidence)` values. To visualize the keypoints on the image, you can use the `return_vis` parameter when creating the `PoseInferencer` object.

    inferencer = pp.PoseInferencer(model_name="model-alias", return_vis=True)
    keypoints, visualization = inferencer.infer(image_path)
    visualization.show()

In this case, `visualization` is a `pp.graphics.PoseVisualizer` object which can be used to draw the keypoints on the image. You can also save the visualization to a file or change the appearance of the keypoints using additional parameters in the `PoseInferencer` constructor.

    class PoseInferencer:
        """ PoseInferencer provides a unified interface to infer poses from images.

        Args:
            model_name (str): Name of the model to use
            radius (float): Sets the visualization keypoint radius.
            thickness (int): Determines the link thickness for visualization.
            kpt_thr (float): Sets the keypoint score threshold. Keypoints with scores exceeding
                             this threshold will be displayed.
            draw_bbox (bool): Decides whether to display the bounding boxes of instances.
            return_vis (bool): Decides whether to include visualization images in the results.
            vis_out_dir (str): Defines the folder path to save the visualization images. If unset,
                               the visualization images will not be saved.
        """
        def __init__(self, model_name, radius: float = 5, thickness: int = 3,
                     kpt_thr: float = 0.3, draw_bbox: bool = False, return_vis: bool = False,
                     vis_out_dir: Optional[str] = None):