Skip to content

Ikomia-hub/infer_detectron2_keypoints

Repository files navigation

Algorithm icon

infer_detectron2_keypoints


Stars Website GitHub
Discord community

Run keypoints detection models from Detectron2 framework.

Example image

🚀 Use with Ikomia API

1. Install Ikomia API

We strongly recommend using a virtual environment. If you're not sure where to start, we offer a tutorial here.

pip install ikomia

2. Create your workflow

from ikomia.dataprocess.workflow import Workflow
from ikomia.utils.displayIO import display

# Init your workflow
wf = Workflow()

# Add keypoints detection algorithm
keypts_detector = wf.add_task(name="infer_detectron2_keypoints", auto_connect=True)

# Run the workflow on image
wf.run_on(url="https://raw.githubusercontent.com/Ikomia-hub/infer_detectron2_keypoints/main/images/rugby.jpg")

# Display result
display(keypts_detector.get_image_with_graphics(), title="Detectron2 keypoints")

☀️ Use with Ikomia Studio

Ikomia Studio offers a friendly UI with the same features as the API.

  • If you haven't started using Ikomia Studio yet, download and install it from this page.

  • For additional guidance on getting started with Ikomia Studio, check out this blog post.

📝 Set algorithm parameters

from ikomia.dataprocess.workflow import Workflow

# Init your workflow
wf = Workflow()

# Add algorithm
algo = wf.add_task(name="infer_detectron2_keypoints", auto_connect=True)

algo.set_parameters({
    "model_name": "COCO-Keypoints/keypoint_rcnn_R_101_FPN_3x",
    "conf_det_thres": "0.5",
    "conf_kp_thres": "0.05",
    "cuda": "True",
    "use_custom_model": "False",
    "config_file": "",
    "model_weight_file": "",
})

# Run the workflow on image
wf.run_on(url="https://raw.githubusercontent.com/Ikomia-hub/infer_detectron2_keypoints/main/images/rugby.jpg")
  • model_name (str, default="COCO-Keypoints/keypoint_rcnn_R_101_FPN_3x"): pre-trained model name. Choose one on the list below:
    • COCO-Keypoints/keypoint_rcnn_R_50_FPN_1x
    • COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x
    • COCO-Keypoints/keypoint_rcnn_R_101_FPN_3x
    • COCO-Keypoints/keypoint_rcnn_X_101_32x8d_FPN_3x
  • conf_det_thres (float, default=0.5): object detection confidence.
  • conf_kp_thres (float, default=0.05): keypoints detection confidence.
  • cuda (bool, default=True): CUDA acceleration if True, run on CPU otherwise.
  • use_custom_model (bool, default=False): flag to enable the custom train model choice.
  • config_file (str, default=""): path to model config file (.yaml). Only for custom model.
  • model_weight_file (str, default=""): path to model weights file (.pt). Only for custom model.

Note: parameter key and value should be in string format when added to the dictionary.

🔍 Explore algorithm outputs

Every algorithm produces specific outputs, yet they can be explored them the same way using the Ikomia API. For a more in-depth understanding of managing algorithm outputs, please refer to the documentation.

from ikomia.dataprocess.workflow import Workflow

# Init your workflow
wf = Workflow()

# Add keypoints detection algorithm
keypts_detector = wf.add_task(name="infer_detectron2_keypoints", auto_connect=True)

# Run the workflow on image
wf.run_on(url="https://raw.githubusercontent.com/Ikomia-hub/infer_detectron2_keypoints/main/images/rugby.jpg")

# Iterate over outputs
for output in keypts_detector.get_outputs():
    # Print information
    print(output)
    # Export it to JSON
    output.to_json()

Detectron2 keypoints detection algorithm generates 2 outputs:

  1. Forwaded original image (CImageIO)
  2. Keypoints detection output (CKeypointsIO)