# qtimlvpose
The qtimlvpose plugin processes output tensors of a pose estimation model from the ML inference plugin (such as qtimltflite, qtimlsnpe, and qtimlqnn) into result of predictions.
Note
This plugin is going to be deprecated.
## Postprocessing
**Figure : Postprocessing for pose estimation architecture**
The negotiated [GstCaps](https://gstreamer.freedesktop.org/documentation/gstreamer/gstcaps.html) on the plugin output determines the processed output, which can be either of the following:
- An image mask (GstCaps: video/x-raw) that's applied over the original image using qtivcomposer.
- The element uses the CPU-based [Cairo](https://www.cairographics.org) 2D graphics library to draw the prediction results in ION/DMA buffers.
- The GstImageBufferPool custom buffer pool class allocates the ION/DMA buffers through IOCTL commands to the kernel.
- A GStreamer-formatted text (GstCaps: text/x-raw) containing the prediction results.
The prediction results are parsed into GStreamer-formatted string inside buffers allocated using regular system memory.
The module and labels properties of the plugin determine the method for the postprocessing operations.
- The module property specifies the postprocessing module and is populated dynamically at run time with the libraries available in `/usr/lib/gstreamer-1.0/ml/modules/` containing the prefix "`ml-vpose`-".
- The labels property is a customized text file different for each machine learning detection model that you must provide for the prediction labels.
Optional properties are available for adjusting the prediction results.
- Use the results property to control the number of results that are displayed
- Use the threshold property to set a confidence threshold for prediction. The results with low confidence aren't displayed.
**Figure : GstBuffer workflow with qtimlvpose**
## Inheritance chain
[GObject](https://docs.gtk.org/gobject/) → [GstObject](https://gstreamer.freedesktop.org/documentation/gstreamer/gstobject.html?gi-language=c) → [GstElement](https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c) → [GstBaseTransform](https://gstreamer.freedesktop.org/documentation/base/gstbasetransform.html?gi-language=c) → GstMLVideoPose
The following tables provide information on pad templates and element properties of qtimlvpose. For use cases, see the pose estimation use cases in [LiteRT use cases](https://docs.qualcomm.com/doc/80-70029-50/topic/tensorflow-lite-use-cases.html).
## Pad configuration
| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'
Availability: On request
Direction: sink
Availability: Always
Direction: source
Availability: Always
Direction: source
flags: readable, writable
String. Default: "mlvideopose0"
flags: readable, writable
Object of type "GstObject"
flags: readable, writable
Boolean. Default: false
flags: readable, writable
Enum "GstMLVideoPoseModules" Default: 0, "none"
(0): none - No module, default invalid mode
(1): posenet - ml-vpose-posenet
flags: readable, writable
String. Default: null
flags: readable, writable
Unsigned Integer. Range: 0 - 10 Default: 5
flags: readable, writable
Double. Range: 10.0 - 100.0 Default: 50.0