# Object detection and classification
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/camera-ai-detection-overlay-composer-display.html](https://docs.qualcomm.com/doc/80-70020-50/topic/camera-ai-detection-overlay-composer-display.html)
The **gst-camera-two-stream-detection-and-classification-side-by-side.py**
application uses a YOLOv8 LiteRT model to detect and classify objects in the scene displayed
by the AI overlay composer.
Figure : Pipeline for object detection and classification
For information about the plugins used in this pipeline, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70020-50/topic/camera-ai-detection-overlay-composer-display.html#camera-ai-detection-overlay-composer-display__section_l1h_cpk_bdc).
## Model files
Table : Models used for detection and classification
| Purpose | LiteRT model | Description |
| :--- | :--- | :--- |
| Object detection | YOLOv8 |
Identify the object in a scene from a camera stream.
Overlay the bounding boxes over the detected objects.
|
| Image classification | Resnet101 |
Classify a scene from a camera stream.
Overlay the classification labels on the screen.
|
## Run the application on the target device
1. Ensure that you complete the [Prerequisites](https://docs.qualcomm.com/doc/80-70020-50/topic/prerequisites-for-python-sample-applications.html).
2. Export the YOLOv8 model and download the `Resnet101` having w8a8
precision model from AI Hub. Update the model name in the commands with the
appropriate model name as downloaded through AI Hub.
3. Run the detection and classification script on the target
device:
gst-camera-two-stream-detection-and-classification-side-by-side.pyCopy to clipboard
4. To display the available help options, run the following
command:
gst-camera-two-stream-detection-and-classification-side-by-side.py -hCopy to clipboard
Table : Default directories for model and label files for object detection and
classification python application
| Model and label files | Directory |
| :--- | :--- |
| Detection model | /etc/models/YoloV8N\_Detection\_Quantized.tflite |
| Detection labels | /etc/labels/yolov8n.labels |
| Classification model | /etc/models/Resnet101\_Quantized.tflite |
| Classification labels | /etc/labels/resnet101.labels |
## Expected output
The images are shown side by side on the display.
## Pipeline flow
| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70020-50/topic/qtiqmmfsrc.html) | Collects two video streams from the camera:
Stream for detection is split using tee and sent to the following:
qtimetamux to retain the video stream.
qtimlvconverter to convert the video stream to input tensors for the detection inference.
Stream for classification is split using tee and sent to the following:
qtimetamux to retain the video stream.
qtimlvconverter to convert the video stream to input tensors for the classification inference.
Weston renders the video stream on a local display device.
|
## Related information
- [Object detection](https://docs.qualcomm.com/doc/80-70020-50/topic/gst-ai-object-detection.html)
- [Image classification](https://docs.qualcomm.com/doc/80-70020-50/topic/gst-ai-classification.html)
**Parent Topic:** [Python applications](https://docs.qualcomm.com/doc/80-70020-50/topic/python-sample-applications.html)
Last Published: Jan 30, 2026
[Previous Topic
Decode JPEG images using Python](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/decode-jpeg-images-using-python.md) [Next Topic
Transform and encode a camera stream](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/camera-transform-downscale-and-rotate-encode.md)