# qtimlvclassification
Source: [https://docs.qualcomm.com/doc/80-70014-50/topic/qtimlvclassification.html](https://docs.qualcomm.com/doc/80-70014-50/topic/qtimlvclassification.html)
The qtimlvclassification plugin processes output tensors of an image classification
model from the ML inference plugin (such as qtimltflite, qtimlsnpe and qtimlqnn) into result
of predictions.
The negotiated [GstCaps](https://gstreamer.freedesktop.org/documentation/gstreamer/gstcaps.html) determines the processed output on the
plug-in output. It can be either of the following:
- An image mask (GstCaps: video/x-raw), which can be applied over the original image
using qtivcomposer.
- A GStreamer formatted text (GstCaps: text/x-raw) containing the prediction results.
The qtimlvclassification plugin uses the CPU-based [Cairo](https://www.cairographics.org) 2D
graphics library for image overlay mask. The image overlay mask enables it 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.
In the versatile text format, the prediction results are parsed into GStreamer-formatted
string inside the buffers allocated using the regular system memory.
The module and labels properties of the plugin determine the method used for
postprocessing operations.
- The module property specifies the post-process module, which is populated and runs
dynamically at run-time with the available libraries at `in
/usr/lib/gstreamer-1.0/ml/modules/` containing the prefix
`ml-vclassification-`
- The labels property is a customized text file different for each machine learning
detection model that you need to provide for the prediction labels.
Optional properties are available for adjusting the prediction results. Use results to
control the number of results displayed and use threshold to set a confidence threshold
for prediction, results with confidence below the threshold are not displayed.
Figure : Postprocessing for object detection architecture

Figure : qtimlvclassification in pipeline

## 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) →
GstMLVideoClassification
The following tables provide information on pad templates and element properties of
qtimlsnpe. For use cases, see the classification use cases in [TensorFlow Lite use cases](https://docs.qualcomm.com/doc/80-70014-50/topic/tensorflow-lite-use-cases.html) and [Qualcomm Neural Processing SDK use cases](https://docs.qualcomm.com/doc/80-70014-50/topic/qualcomm-neural-processing-sdk-use-cases.html).
## Pad configuration
| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'
*Availability:* On request
*Direction:* sink | neural-network/tensors | – | – |
| SRC template: 'src'
*Availability:* Always
*Direction:* source | video/x-raw | format: | { (string)BGRA, (string)BGRx, (string)BGR16 } |
| SRC template: 'src'
*Availability:* Always
*Direction:* source | video/x-raw(memory:GBM) | format: | { (string)BGRA, (string)BGRx, (string)BGR16 } |
| SRC template: 'src'
*Availability:* Always
*Direction:* source | text/x-raw | format: | { (string)utf8 } |
| | | | |
| | | | |
## Element configuration
Table : Element properties of qtimlvclassification
| Property | Description |
| --- | --- |
| name |