# Image classification and display with LiteRT
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/single-camera-stream-with-image-classification-and-display-with-litert.html](https://docs.qualcomm.com/doc/80-70020-50/topic/single-camera-stream-with-image-classification-and-display-with-litert.html)
The use cases use the Inceptionv3 LiteRT model to classify scenes from a single
camera stream and either overlay or compose the classification labels.
## Use qtivoverlay plugin to apply classification overlay
Run this use case on the target
device:
gst-launch-1.0 -e --gst-debug=2 qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! queue ! \
tee name=split split. ! queue ! qtimetamux name=metamux ! queue ! qtivoverlay ! queue ! waylandsink fullscreen=true \
split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/inception_v3_quantized.tflite ! queue ! \
qtimlvclassification threshold=40.0 results=2 module=mobilenet labels=/etc/labels/classification.labels \
constants="Inceptionv3,q-offsets=<38.0>,q-scales=<0.17039915919303894>;" ! text/x-raw ! queue ! metamux.Copy to clipboard
To stop the use case, use CTRL + C.
The following figure shows the flow of the use case execution:
1. Classify scenes from a video stream coming through a camera source.
2. Overlay the classification labels using overlaylib.
3. Display the results.
Figure : Pipeline for classification overlay
The following table provides the sequential processing stages of the pipeline
execution:
| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70020-50/topic/qtiqmmfsrc.html) |
Collects the video stream (source) and creates two copies of the source:
One stream is sent to the qtimetamux plugin to retain the video stream.
The other stream is sent to an ML inferencing pipeline.
Weston renders the video stream and possible classifications generated for that scene on a local display device.
|
## Use qtivcomposer to mix original frame with classification mask
Run this use case on the target
device:
gst-launch-1.0 -e --gst-debug=2 qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! queue ! \
tee name=split split. ! queue ! qtivcomposer name=mixer sink_1::position="<30, 30>" sink_1::dimensions="<480, 480>" ! queue ! waylandsink fullscreen=true \
split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/inception_v3_quantized.tflite ! queue ! \
qtimlvclassification threshold=40.0 results=2 module=mobilenet labels=/etc/labels/classification.labels \
constants="Inceptionv3,q-offsets=<38.0>,q-scales=<0.17039915919303894>;" ! video/x-raw,format=BGRA,width=640,height=480 ! queue ! mixer.Copy to clipboard
To stop the use case, select CTRL +
C.
The following figure shows the flow of the use case execution:
1. Classify scenes from a video stream coming through a camera source.
2. Compose classification labels and video stream using qtivcomposer.
3. Display the results.
Figure : Pipeline for classification with qtivcomposer
The following table provides the sequential processing stages of the pipeline
execution:
| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70020-50/topic/qtiqmmfsrc.html) |
Collects the video stream (source) and creates two copies of the source:
One stream is sent to the qtivcomposer plugin to retain the video stream.
The other stream is sent to the ML inferencing branch in the pipeline.
Weston renders the video stream and possible classifications generated for that scene on a local display device.
|
**Parent Topic:** [LiteRT use cases](https://docs.qualcomm.com/doc/80-70020-50/topic/tensorflow-lite-use-cases.html)
Last Published: Jan 30, 2026
[Previous Topic
LiteRT use cases](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/tensorflow-lite-use-cases.md) [Next Topic
Image classification and encode with LiteRT](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/single-camera-stream-with-image-classification-and-encode.md)