# qtimlvclassification
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/qtimlvclassification.html](https://docs.qualcomm.com/doc/80-70020-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 a
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 is 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 allows 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 postprocessing module, which runs dynamically at
runtime with the available libraries at `in
/usr/lib/gstreamer-1.0/ml/modules/` containing the prefix
`ml-aclassification-`
- 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 : 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 [LiteRT use cases](https://docs.qualcomm.com/doc/80-70020-50/topic/tensorflow-lite-use-cases.html) and [Qualcomm Neural Processing SDK use cases](https://docs.qualcomm.com/doc/80-70020-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 | 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 | The name of the object.