# Customize reference application

Source: [https://docs.qualcomm.com/doc/80-70014-15B/topic/customize-reference-app.html](https://docs.qualcomm.com/doc/80-70014-15B/topic/customize-reference-app.html)

This section outlines the steps a developer can take to modify an existing sample
        application to work with their custom trained model. This guide uses a custom-trained YoloV8
        model as an example.

The eSDK (extensible SDK) needs to be setup to develop application/plugin code. See [Compile application,
                Qualcomm IM SDK](https://docs.qualcomm.com/doc/80-70014-15B/topic/compile-app-esdk.html) for instructions on setting up the eSDK and downloading and
            compiling the source code.

See [Creating your own application](https://docs.qualcomm.com/doc/80-70014-15B/topic/esdk-create-own-app.html) for instructions on how to download the
            source code and compile custom reference apps.

Developers are required to follow [these](https://docs.qualcomm.com/doc/80-70014-15B/topic/default-reference-app.html#concept_q4t_dqx_4bc__section_kps_5wh_qbc_spyrz_06-05-24-1202-58-937) instructions before proceeding to the next steps.

## Example 1 – Custom trained YoloV8 TFLite model

Qualcomm IM SDK reference applications use the YoloV8 model for object detection. In
                this example, we explain how you can try a custom trained YoloV8 variant.

Use the following steps to run your own custom-trained YoloV8 model with the current
                reference application.

1. Replace the existing model with your new model in the reference app.
2. Modify the label files with custom labels.
3. Run the reference application with the modified model.

**Modify labels for a custom YoloV8 model**

When using Qualcomm IM SDK and its reference apps, the apps expect labels in a
                specific format. You need to update `<label_name>`,
                    `<hex_value_for_label_id>`, and
                    `<hex_value_for_color> `values for each label within this
                labels file. The format of each label within the labels file should follow the
                template shown below.

    (structure)"<label_name>,id=(guint)<hex_value_for_label_id>,color=(guint)<hex_value_for_color>;"Copy to clipboard

Examples:

    (structure)"person,id=(guint)0x0,color=(guint)0x00FF00FF;"
    (structure)"bicycle,id=(guint)0x1,color=(guint)0x00FF00FF;"
    (structure)"car,id=(guint)0x2,color=(guint)0x0000FFFF;"
    (structure)"motorcycle,id=(guint)0x3,color=(guint)0x00FF00FF;"Copy to clipboard

To run object detection models using the TFLite runtime, specify the custom trained
                model along with your custom label files in the command-line parameter and run the
                following commands.

    scp yolov8_custom.tflite root@<IP addr of the target device>:/opt/
    scp yolov8_custom.labels root@<IP addr of the target device>:/opt/
    
    # login into the device 
    ssh root@<IP addr of the target device>
    
    #run sample app 
    gst-ai-object-detection --model-type=2 --model=/opt/yolov8_custom.tflite --labels=/opt/yolov8_custom.labels --ml-framework=2Copy to clipboard

## Notes

- To display the available help options, run the following command:

        gst-ai-object-detection -hCopy to clipboard
- To stop the use case, press **CTRL + C**.

Last Published: Jan 21, 2026

[Previous Topic
Default reference application](https://docs.qualcomm.com/bundle/publicresource/80-70014-15B/topics/default-reference-app.md) [Next Topic
Develop your own application](https://docs.qualcomm.com/bundle/publicresource/80-70014-15B/topics/develop-own-app.md)