# Daisy chain detection and pose estimation
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/daisy-chain-detection-and-pose-detection.html](https://docs.qualcomm.com/doc/80-70018-50/topic/daisy-chain-detection-and-pose-detection.html)
The **gst-ai-daisychain-detection-pose** application allows you to perform
cascaded object detection and pose detection with a camera, file source, or an RTSP stream.
The use cases involve detecting objects and estimating the body poses of the subject in an
image or a video.
The figures show the application workflow, which receives the source, performs
postprocessing, conducts inference on the AI hardware, and displays the results on the
screen.
For information about the plugins used in the pipeline flow, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70018-50/topic/daisy-chain-detection-and-pose-detection.html#daisy-chain-detection-and-pose-detection__section_pqq_1ny_kbc).
Figure : gst-ai-daisychain-detection-pose pipeline

## Sample model and label files
Table : Sample model and label files for gst-ai-daisychain-detection-pose
| Runtime | Model files | Label files |
| :--- | :--- | :--- |
| LiteRT |
- Detection:
yolov8_det_quantized.tflite
- Pose:
hrnet_pose_quantized.tflite
|
- Detection: yolov8.labels
- Pose: hrnet_pose.labels
|
## Prerequisites
- If not already done so, [Download and install eSDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-51/install-sdk.html#download-and-install-esdk-).
- [Download model and label files](https://docs.qualcomm.com/doc/80-70018-50/topic/download-model-and-label-files.html).
- To access your host device, enable SSH. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#use-ssh).
Note: If SSH is already enabled, you can skip this
step.
- Connect the display to the device using the HDMI port. For instructions, see
[Set up HDMI display](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-18/samples.html).
- Enable the
display:
export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard
- Rename the label files on the Linux host
computer:
cp /etc/labels/yolonas.labels /etc/labels/yolov8.labelsCopy to clipboard
- Push the model files from the Linux host
computer:
scp root@:/etc/modelsCopy to clipboard
If you face issues while enabling camera or display, see [Camera troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-17/troubleshooting.html) and [Display troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-18/debug.html).
## Run the application
For model and label files, see [Sample model and label files](https://docs.qualcomm.com/doc/80-70018-50/topic/daisy-chain-detection-and-pose-detection.html#daisy-chain-detection-and-pose-detection__section_uvq_rsg_4dc).
To run the application, use the following syntax:
gst-ai-daisychain-detection-pose [OPTION?]Copy to clipboard
- Use a camera stream and see the output on the Wayland
display:
gst-ai-daisychain-detection-pose -c -dCopy to clipboard
- Use a file stream and save the output as a file:
Push the
video.mp4 file to the
/etc/media folder before running the
command:
gst-ai-daisychain-detection-pose --input-file=/etc/media/video.mp4 -o /etc/media/out.mp4Copy to clipboard
- Use an RTSP stream and see the output on the Wayland
display:
gst-ai-daisychain-detection-pose --rtsp-ip-port="rtsp://:port/" --displayCopy to clipboard
To display the available help options, run the following command in the SSH
shell:
gst-ai-daisychain-detection-pose -hCopy to clipboard
To stop the use case, use CTRL + C.
## Expected output
Figure : Expected output for gst-ai-daisychain-detection-pose application

## Pipeline flow
The table lists the plugins used in the daisy chain detection and pose
estimation pipeline:| Plugin | Description |
| --- | --- |
| Camera source:[qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70018-50/topic/qtiqmmfsrc.html) |
- Captures the live stream from camera.
- Uses tee to split the stream for inferencing.
|
| File source: filesrc |
- Captures the video stream using filesrc, followed by
qtdemux, which demultiplexes the stream.
- Uses tee to split the stream for inferencing.
|
| RTSP source: rtspsrc |
- Captures the RTSP stream using rtspsrc, followed by
rtph264depay for video extraction.
- Uses tee to split the stream for inferencing.
|
| [qtimetamux](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimetamux.html) | Multiplexes the stream. |
| h264parse | Parses the H.264 video. |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70018-50/topic/v4l2h264dec.html) | Decodes the H.264 video stream. |
| [qtivsplit](https://docs.qualcomm.com/doc/80-70018-50/topic/qtivsplit.html) | Crops full frame into smaller frames based on the detected
bounding boxes detected (maximum 4). |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvconverter.html) | Used by AI processing stream for preprocessing:
- Receives the video stream on its sink pad.
- Performs the following preprocessing on the stream data.
This preprocessing is done when the model expects
floating-point values as input.
- Color conversion
- Scaling (up or down)
- Normalization
- Converts the preprocessed video stream to a tensor stream on
its source pad.
The tensor stream is used for inferencing in the later
stages of the pipeline. |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimltflite.html) |
- After the inference runtime receives the tensor stream on
its sink pad, it runs the inference.
- Produces a tensor stream with the inference results on its
source pad.
|
| [qtimlvdetection](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvdetection.html) | Handles inference results from any object detection model.
- Applies a threshold to the chosen number of results.
- Loads the YOLOv8 module.
- Generates results in the form of video frames with detection
labels.
- Produces video frames with only bounding boxes that can be
cropped.
|
| [qtimlvpose](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvpose.html) | |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70018-50/topic/qtivcomposer.html) |
- Composes frames by combining the contents from its sink
pads.
- Pushes the GStreamer buffers containing the composed frames
onto its source pad.
|
| [Waylandsink](https://docs.qualcomm.com/doc/80-70018-50/topic/waylandsink.html) |
- Forwards the video stream received on its sink pad to
Weston.
- Weston renders the video stream on a local display.
|
**Parent Topic:** [Run AI/ML sample applications](https://docs.qualcomm.com/doc/80-70018-50/topic/ai-ml-sample-applications.html)
**Related Resources**
- [Daisy chain detection and pose detection using Python](https://docs.qualcomm.com/doc/80-70018-50/topic/daisy-chain-detection-and-pose-detection-using-python.html)
- [Object detection](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-object-detection.html)
Last Published: Jan 30, 2026
[Previous Topic
Daisy chain detection and classification](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/daisy-chain-detection-and-classification.md) [Next Topic
Monodepth from video](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/mono-depth-from-video.md)