Inquiry Regarding YOLOv8s Pose Model Outputs on Hailo Platform

I’m currently using the YOLOv8s Pose model using the Hailo Platform to run inference. After I complete the inference, I get several outputs from the model, but I’m a bit confused about what each of these outputs actually means.

Specifically, the model produces a tensors with dimensions that differ from frame to frame. Examples of dimensions:

  • 20×20×51,

  • 20×20×64,

  • 20×20×1

  • 40×40×51,

  • 40×40×64,

  • 40×40×1

  • 80×80×51,

  • 80×80×64,

  • 80×80×1

Could you help clarify what these outputs represent? Also, is there any documentation that goes into detail about the model outputs? If there is, I would really appreciate it if you could share a link or reference to it.

All 20x20 are tensors from the P5 head, 40x40 are the tensors off the P4 head, and 80x80 are tensors off the P3 head.

Tensors with third dim size 64 are the bbox regression tensors. Tensors with the third dim size 1 are the class probability tensors. Tensors with the third dim size 51 are the keypoint tensors (17 keypoints x 3[x, y, visible] = 51).

You can understand and follow the decoding here Hailo-Application-Code-Examples/runtime/hailo-8/cpp/pose_estimation/yolov8_pose/yolov8pose_postprocess.cpp at main · hailo-ai/Hailo-Application-Code-Examples · GitHub

or if you would like a fast and hassle-free method, you can try compiling using the DeGirum cloud compiler and run inferences using DeGirum PySDK.

The cloud compiler is currently in early access but you can request access here: https://forms.degirum.com/cloud-compiler

Once you’ve compiled your model, you can run an inference via PySDK by following this example: hailo_examples/examples/002_yolov8.ipynb at main · DeGirum/hailo_examples · GitHub