# Image classification and display with TFLite

Source: [https://docs.qualcomm.com/doc/80-70015-50/topic/single-camera-stream-with-image-classification-and-display.html](https://docs.qualcomm.com/doc/80-70015-50/topic/single-camera-stream-with-image-classification-and-display.html)

The use cases use the Inceptionv3 TFLite model to classify scenes from a single
        camera stream and either overlay or compose the classification labels.

## Variant 1: Use qtioverlay plugin to apply classification overlay

Run this use
                case:

    setprop persist.overlay.use_c2d_blit 2Copy to clipboard

    gst-launch-1.0 -e --gst-debug=2 qtiqmmfsrc name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc ! queue ! tee name=split split. ! queue ! qtimetamux name=metamux ! queue ! qtioverlay ! queue ! waylandsink fullscreen=true split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/opt/inceptionv3.tflite ! queue ! qtimlvclassification threshold=40.0 results=2 module=mobilenet labels=/opt/classification.labels ! text/x-raw ! queue ! metamux.Copy to clipboard

To stop the use case, press CTRL + C.

Figure : Pipeline for classification overlay
                
                ![](data:image/png;base64,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)

The 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.

The table provides the sequential processing stages of the pipeline execution:

| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70015-50/topic/qtiqmmfsrc.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_l2f_zgm_vbc"><br>                                    <li class="li">Collects the video stream (source) and creates two copies of<br>                                        the source:<ul class="ul" id="single-camera-stream-with-image-classification-and-display__ol_m2f_zgm_vbc"><br>                                            <li class="li">One stream is sent to the qtimetamux plugin to<br>                                                retain the video stream.</li><br><br>                                            <li class="li">The other stream is sent to an ML inferencing<br>                                                pipeline.</li><br><br>                                        </ul><br></li><br><br>                                </ol> |
| **Preprocessing** | **Preprocessing** |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvconverter.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_xsf_q5l_vbc"><br>                                    <li class="li">Receives the video stream on its sink pad.</li><br><br>                                    <li class="li">Performs preprocessing:<ul class="ul" id="single-camera-stream-with-image-classification-and-display__ul_ff2_twl_vbc"><br>                                            <li class="li">Color conversion</li><br><br>                                            <li class="li">Scaling down/up</li><br><br>                                            <li class="li">Normalization on the stream data when the model<br>                                                expects the floating point values as an input</li><br><br>                                        </ul><br></li><br><br>                                    <li class="li">Converts the video stream to a tensor stream on its source<br>                                            pad.<p class="p">The classification model uses this tensor stream<br>                                            for inferencing.</p><br></li><br><br>                                </ol> |
| **Inferencing** | **Inferencing** |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimltflite.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_bwn_s5l_vbc"><br>                                    <li class="li">Loads the model.</li><br><br>                                    <li class="li">Modifies the graph for the chosen delegate.</li><br><br>                                    <li class="li">Receives the tensor stream on its sinkpad.</li><br><br>                                    <li class="li">Runs the inference and produces a tensor stream with the<br>                                        inference results on its source pad.</li><br><br>                                </ol> |
| **Postprocessing** | **Postprocessing** |
| [qtimlvclassification](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvclassification.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_gr1_w5l_vbc"><br>                                    <li class="li">Receives the inference tensors from a classification model<br>                                        on its sinkpad.</li><br><br>                                    <li class="li">Converts the tensors into formats such as video or text that<br>                                        the multimedia plugins can process later. </li><br><br>                                    <li class="li">Applies the threshold to the chosen number of results.</li><br><br>                                    <li class="li">Loads the corresponding modules of the classification<br>                                        models. <p class="p">In this use case, qtimlvclassification does the<br>                                            following:</p><ol class="ol" type="a" id="single-camera-stream-with-image-classification-and-display__ol_rrb_1xl_vbc"><br>                                            <li class="li">Loads the submodule of the model.</li><br><br>                                            <li class="li">Produces results as structures of text.</li><br><br>                                            <li class="li">Sends them to the sinkpad of qtimetamux.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| [qtimetamux](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimetamux.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_ll3_x5l_vbc"><br>                                    <li class="li">Receives the video stream and text stream with<br>                                        classification results corresponding to the video stream on<br>                                        its sinkpads.</li><br><br>                                    <li class="li">Produces GST buffers with the contents of video stream on<br>                                        its sink pad.</li><br><br>                                    <li class="li">Adds classification result from data sinkpad to GST buffer<br>                                        meta (meta muxing) on its source pad.</li><br><br>                                </ol> |
| [qtioverlay](https://docs.qualcomm.com/doc/80-70015-50/topic/qtioverlay.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_wst_y5l_vbc"><br>                                    <li class="li">Receives the multiplexed stream.</li><br><br>                                    <li class="li">Overlays the classification labels on the VideoFrame using<br>                                        CL. </li><br><br>                                    <li class="li">Produces GST buffers with overlays in its source pad.</li><br><br>                                </ol> |
| **Output** | **Output** |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70015-50/topic/waylandsink.html) | <ol class="ol"><br>                                    <li class="li">Receives the video stream on its sinkpad.</li><br><br>                                    <li class="li">Submits the video stream to Weston. </li><br><br>                                    <li class="li">Weston renders the video stream and possible classifications<br>                                        generated for that scene on a local display device.</li><br><br>                                </ol> |

## Variant 2: Use qtivcomposer to mix original frame with classification
                mask

Runs this use
                case:

    gst-launch-1.0 -e --gst-debug=2 qtiqmmfsrc name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc ! queue ! tee name=split split. ! queue ! qtivcomposer name=mixer sink_1::position="<30, 30>" sink_1::dimensions="<320, 180>" ! queue ! waylandsink fullscreen=true  split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/opt/inceptionv3.tflite ! queue ! qtimlvclassification threshold=40.0 results=2 module=mobilenet labels=/opt/classification.labels ! video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer.Copy to clipboard

To stop the use case, press CTRL + C.

Figure : Pipeline for classification with qtivcomposer
                
                ![](data:image/png;base64,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)

The figure depicts 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.

The table provides the sequential processing stages of the pipeline execution:

| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70015-50/topic/qtiqmmfsrc.html) | <ol class="ol"><br>                                    <li class="li">Collects the video stream (source) and creates two copies of<br>                                        the source:<ul class="ul" id="single-camera-stream-with-image-classification-and-display__ul_n44_nwl_vbc"><br>                                            <li class="li">One stream is sent to the qtivcomposer plugin to<br>                                                retain the video stream.</li><br><br>                                            <li class="li">The other stream is sent to the ML inferencing<br>                                                branch in the pipeline.</li><br><br>                                        </ul><br></li><br><br>                                </ol> |
| **Preprocessing** | **Preprocessing** |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvconverter.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_i5w_4wl_vbc"><br>                                    <li class="li">Receives the video stream on its sink pad.</li><br><br>                                    <li class="li">Performs preprocessing:<ul class="ul" id="single-camera-stream-with-image-classification-and-display__ol_zdw_qwl_vbc"><br>                                            <li class="li">Color conversion</li><br><br>                                            <li class="li">Scaling down/up</li><br><br>                                            <li class="li">Normalization on the stream data when the model<br>                                                expects the floating point values as an input</li><br><br>                                        </ul><br></li><br><br>                                    <li class="li">Converts the video stream to a tensor stream on its source<br>                                            pad.<p class="p">The classification model uses this tensor stream<br>                                            for inferencing.</p><br></li><br><br>                                </ol> |
| **Inferencing** | **Inferencing** |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimltflite.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_u1l_cxl_vbc"><br>                                    <li class="li">Loads the model.</li><br><br>                                    <li class="li">Modifies the graph for the chosen delegate.</li><br><br>                                    <li class="li">Receives the tensor stream on its sinkpad.</li><br><br>                                    <li class="li">Runs the inference and produces a tensor stream with the<br>                                        inference results on its source pad.</li><br><br>                                </ol> |
| **Postprocessing** | **Postprocessing** |
| [qtimlvclassification](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvclassification.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_o3v_2xl_vbc"><br>                                    <li class="li">Receives the inference results from a classification model<br>                                        on its sinkpad. </li><br><br>                                    <li class="li">Converts the inference tensors into formats like video or<br>                                        text that the multimedia plugins can process later. </li><br><br>                                    <li class="li">Applies the threshold to the chosen number of results. </li><br><br>                                    <li class="li">Loads the corresponding modules for the classification<br>                                        models. <p class="p">In this use case, qtimlvclassification does the<br>                                            following: </p><ol class="ol" type="a" id="single-camera-stream-with-image-classification-and-display__ol_p3v_2xl_vbc"><br>                                            <li class="li">Loads the submodule of the model.</li><br><br>                                            <li class="li">Produces results as video frames with classification<br>                                                labels.</li><br><br>                                            <li class="li">Sends them to the sinkpad of qtivcomposer.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70015-50/topic/qtivcomposer.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_nmc_lxl_vbc"><br>                                    <li class="li">Receives the original video stream with classification<br>                                        results on its sinkpads. </li><br><br>                                    <li class="li">On its sourcepad, produces GST buffers with contents<br>                                        composed of video streams from its sinkpads.</li><br><br>                                </ol> |
| **Output** | **Output** |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70015-50/topic/waylandsink.html) | <ol class="ol" id="single-camera-stream-with-image-classification-and-display__ol_cgt_mwl_vbc"><br>                                    <li class="li">Receives the video in its sinkpad</li><br><br>                                    <li class="li">Submits the video stream to Weston. </li><br><br>                                    <li class="li">Weston renders the video stream and possible classifications<br>                                        generated for that scene on a local display device.</li><br><br>                                </ol> |

**Parent Topic:** [TensorFlow Lite use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/tensorflow-lite-use-cases.html)

Last Published: Oct 27, 2025

[Previous Topic
TensorFlow Lite use cases](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/tensorflow-lite-use-cases.md) [Next Topic
Image classification and encode with TFLite](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/single-camera-stream-with-image-classification-and-encode.md)