# Get started with LiteRT

This information explains how to run LiteRT models on the Qualcomm Linux development kit.

Before you get started with running LiteRT models, do the following:

1. Set up the Qualcomm Linux development kit. For instructions, see the following:

    - QCS6490/QCS5430: [Qualcomm^®^ RB3 Gen 2 Quick Start Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-253)
    - QCS9075: [Qualcomm^®^ IQ-9 Beta Evaluation Kit Quick Start Guide](https://docs.qualcomm.com/bundle/80-70015-263/resource/80-70015-263_REV_AE_Qualcomm_IQ-9_Beta_Evaluation_Kit_Quick_Start_Guide.pdf)
    - QCS8275: [Qualcomm^®^ IQ-8 Beta Evaluation Kit Quick Start Guide](https://docs.qualcomm.com/bundle/80-70017-263/resource/80-70017-263_REV_AA_Qualcomm_IQ-8_Beta_Evaluation_KitQuick_Start_Guide.pdf)

Note

The QCS9075 and QCS8275 quick start guides are available for authorized users only. To upgrade your access, go to [www.qualcomm.com/support/working-with-qualcomm](https://www.qualcomm.com/support/working-with-qualcomm).
2. Connect the Qualcomm Linux development kit to a monitor using HDMI.
3. Upgrade the Qualcomm Linux development kit to the latest available software release. For instructions, see [Download the Platform eSDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#download-the-platform-esdk).
4. Flash the image to the device. For instructions, see [Flash images](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/flash_images.html).

## Run a LiteRT model using the GStreamer-based Qualcomm IM SDK

The Qualcomm Linux development kit contains precompiled LiteRT sample applications to run sample LiteRT models.

The gst-ai-classification sample application uses the Qualcomm IM SDK plug-ins to run a LiteRT classification model on the Qualcomm Linux development kit. The sample application achieves hardware acceleration using LiteRT delegates.
The following figure shows the pipeline, which receives a video stream from a camera, does the preprocessing, runs the inference on the AI hardware, and displays the results.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export workflow-to-run-tflite-model-using-qualcomm-im-sdk.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.8802in" height="4.20833in" viewbox="0 0 927.375 303" xml:space="preserve" color-interpolation-filters="sRGB" class="st14" aria-label="../../_images/workflow-to-run-tflite-model-using-qualcomm-im-sdk.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #f7f8fa; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: none; marker-end: url("#mrkr5-8"); marker-start: url("#mrkr5-6"); stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st3 { fill: #3253dc; fill-opacity: 1; stroke: #3253dc; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-1 .st4 { fill: none; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st5 { fill: #000000; font-family: Arial; font-size: 0.75em }
.svg-1 .st6 { font-size: 1em }
.svg-1 .st7 { fill: #3253dc; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 6.375 }
.svg-1 .st8 { fill: #3253dc; fill-opacity: 1; stroke: #3253dc; stroke-opacity: 1; stroke-width: 0.71669477234401 }
.svg-1 .st9 { marker-end: url("#mrkr5-52"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st10 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-1 .st11 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st12 { marker-end: url("#mrkr5-52"); marker-start: url("#mrkr5-104"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st13 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st14 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend5">		<path d="M 2 1 L 0 0 L 1.98117 -0.993387 C 1.67173 -0.364515 1.67301 0.372641 1.98465 1.00043 " style="stroke:none"></path>	</g>	<marker id="mrkr5-6" class="st3" v:arrowtype="5" v:arrowsize="2" v:setback="6.16" refx="6.16" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(3.52) "></use>	</marker>	<marker id="mrkr5-8" class="st3" v:arrowtype="5" v:arrowsize="2" v:setback="6.16" refx="-6.16" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-3.52,-3.52) "></use>	</marker>	<marker id="mrkr5-46" class="st8" v:arrowtype="5" v:arrowsize="2" v:setback="2.44176" refx="-2.4417647058824" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-1.3952941176471,-1.3952941176471) "></use>	</marker>	<marker id="mrkr5-52" class="st10" v:arrowtype="5" v:arrowsize="2" v:setback="6.16" refx="-6.16" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-3.52,-3.52) "></use>	</marker>	<marker id="mrkr5-104" class="st10" v:arrowtype="5" v:arrowsize="2" v:setback="5.8" refx="5.8" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(3.52) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1002-1" v:mid="1002" v:groupcontext="shape" transform="translate(18.2813,-18)">		<title></title>		<rect x="0" y="36" width="891.094" height="267" class="st1"></rect>	</g>	<g id="shape1000-3" v:mid="1000" v:groupcontext="shape" transform="translate(306.562,-26.0619)">		<title></title>		<rect x="0" y="82.5" width="139.5" height="220.5" class="st2"></rect>	</g>	<g id="shape1-9" v:mid="1" v:groupcontext="shape" transform="translate(323.812,-179.437)">		<title></title>		<desc>LiteRT inferencing</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="280.5" width="99" height="45"></v:textrect>		<rect x="0" y="258" width="99" height="45" class="st4"></rect>		<text x="12.98" y="283.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LiteRT inferencing</text>		</g>	<g id="shape3-12" v:mid="3" v:groupcontext="shape" transform="translate(323.812,-107.437)">		<title></title>		<desc>Delegate (CPU, GPU, external)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="280.5" width="99" height="45"></v:textrect>		<rect x="0" y="258" width="99" height="45" class="st4"></rect>		<text x="31.49" y="277.8" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Delegate<v:lf></v:lf><tspan x="6.24" dy="1.2em" class="st6">(CPU, GPU, external)</tspan></text>		</g>	<g id="shape4-16" v:mid="4" v:groupcontext="shape" transform="translate(323.812,-35.4369)">		<title></title>		<desc>External: Qualcomm Hexagon Tensor Processor</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="280.5" width="99" height="45"></v:textrect>		<rect x="0" y="258" width="99" height="45" class="st4"></rect>		<text x="31.74" y="272.4" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>External: <v:lf></v:lf><tspan x="8.48" dy="1.2em" class="st6">Qualcomm Hexagon </tspan><tspan x="13.99" dy="1.2em" class="st6">Tensor Processor</tspan></text>		</g>	<g id="shape5-21" v:mid="5" v:groupcontext="shape" transform="translate(205.687,-179.437)">		<title></title>		<desc>Preprocessing</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.5" cy="280.5" width="81" height="45"></v:textrect>		<rect x="0" y="258" width="81" height="45" class="st4"></rect>		<text x="11.74" y="283.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Preprocessing</text>		</g>	<g id="shape6-24" v:mid="6" v:groupcontext="shape" transform="translate(205.687,-35.4369)">		<title></title>		<desc>LiteRT model</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.5" cy="280.5" width="81" height="45"></v:textrect>		<rect x="0" y="258" width="81" height="45" class="st4"></rect>		<text x="13.74" y="283.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LiteRT model</text>		</g>	<g id="shape7-27" v:mid="7" v:groupcontext="shape" transform="translate(97.6875,-179.437)">		<title></title>		<desc>Camera source</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.5" cy="280.5" width="81" height="45"></v:textrect>		<rect x="0" y="258" width="81" height="45" class="st4"></rect>		<text x="9.74" y="283.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Camera source</text>		</g>	<g id="shape8-30" v:mid="8" v:groupcontext="shape" transform="translate(458.812,-179.437)">		<title></title>		<desc>Postprocessing</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.5" cy="280.5" width="81" height="45"></v:textrect>		<rect x="0" y="258" width="81" height="45" class="st4"></rect>		<text x="9.73" y="283.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Postprocessing</text>		</g>	<g id="shape9-33" v:mid="9" v:groupcontext="shape" transform="translate(618.562,-152.437)">		<title></title>		<desc>qtivcomposer (Layer composition)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.5625" cy="258" width="91.13" height="90"></v:textrect>		<rect x="0" y="213" width="91.125" height="90" class="st4"></rect>		<text x="18.8" y="255.3" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer<v:lf></v:lf><tspan x="6.05" dy="1.2em" class="st6">(Layer composition)</tspan></text>		</g>	<g id="group19-37" transform="translate(61.6875,-184.462) scale(-1,1)" v:mid="19" v:groupcontext="group">		<title>Security Camera</title>		<g id="shape20-38" v:mid="20" v:groupcontext="shape">			<title></title>			<path d="M37.83 282.18 L26.73 290.92 L17.99 287.32 L17.99 288.1 C17.99 292.05 14.75 295.29 10.79 295.29 L3.08 295.29						 L3.08 303 L0 303 L0 268.05 L3.08 268.05 L3.08 292.21 L10.79 292.21 C13.05 292.21 14.9 290.36 14.9 288.1						 L14.9 286.09 L5.6 282.18 L10.33 270.77 L37.83 282.18 ZM16.45 283.47 C17.58 283.47 18.5 282.54 18.5 281.41						 C18.5 280.28 17.58 279.36 16.45 279.36 C15.32 279.36 14.39 280.28 14.39 281.41 C14.39 282.54 15.32 283.47						 16.45 283.47 Z" class="st7"></path>		</g>		<g id="shape21-40" v:mid="21" v:groupcontext="shape" transform="translate(32.1739,-12.1808)">			<title></title>			<path d="M4.57 297.86 L8.33 299.4 L3.75 303 L0 301.46 L4.57 297.86 Z" class="st7"></path>		</g>	</g>	<g id="group22-42" transform="translate(862.875,-181.463)" v:mid="22" v:groupcontext="group">		<title>Monitor</title>		<g id="shape23-43" v:mid="23" v:groupcontext="shape" transform="translate(0,-2.77538)">			<title></title>			<path d="M38.48 268.05 C39.59 268.05 40.5 268.98 40.5 270.11 L40.5 294.78 C40.5 295.91 39.59 296.83 38.48 296.83						 L24.3 296.83 L24.3 299.92 L29.36 299.92 L29.36 303 L11.14 303 L11.14 299.92 L16.2 299.92 L16.2 296.83						 L2.03 296.83 C0.91 296.83 0 295.91 0 294.78 L0 270.11 C0 268.98 0.91 268.05 2.03 268.05 L38.48 268.05						 ZM37.46 293.75 L37.46 271.13 L3.04 271.13 L3.04 293.75 L37.46 293.75 Z" class="st7"></path>		</g>	</g>	<g id="shape26-47" v:mid="26" v:groupcontext="shape" transform="translate(61.6875,-201.937)">		<title></title>		<path d="M0 303 L29.84 303" class="st9"></path>	</g>	<g id="shape27-53" v:mid="27" v:groupcontext="shape" v:layermember="0" transform="translate(178.688,-192.188)">		<title>Dynamic connector</title>		<path d="M0 294 L20.84 294" class="st9"></path>	</g>	<g id="shape29-58" v:mid="29" v:groupcontext="shape" v:layermember="0" transform="translate(422.812,-192.937)">		<title>Dynamic connector.29</title>		<path d="M0 294 L29.84 294" class="st9"></path>	</g>	<g id="shape30-63" v:mid="30" v:groupcontext="shape" v:layermember="0" transform="translate(539.812,-192.937)">		<title>Dynamic connector.30</title>		<path d="M0 294 L72.59 294" class="st9"></path>	</g>	<g id="shape31-68" v:mid="31" v:groupcontext="shape" transform="translate(543.187,-201.937)">		<title></title>		<desc>Classification</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="296.25" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="72" height="13.5" class="st11"></rect>		<text x="9.49" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Classification</text>		</g>	<g id="shape33-71" v:mid="33" v:groupcontext="shape" transform="translate(536.437,-185.25)">		<title></title>		<desc>Metadata</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="296.25" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="72" height="13.5" class="st11"></rect>		<text x="17.24" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Metadata</text>		</g>	<g id="shape34-74" v:mid="34" v:groupcontext="shape" transform="translate(736.687,-152.437)">		<title></title>		<desc>Waylandsink (Display rendering)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.5625" cy="258" width="91.13" height="90"></v:textrect>		<rect x="0" y="213" width="91.125" height="90" class="st4"></rect>		<text x="20.05" y="255.3" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink<v:lf></v:lf><tspan x="7.55" dy="1.2em" class="st6">(Display rendering)</tspan></text>		</g>	<g id="shape36-78" v:mid="36" v:groupcontext="shape" transform="translate(286.687,-201.937)">		<title></title>		<path d="M0 303 L30.96 303" class="st9"></path>	</g>	<g id="shape37-83" v:mid="37" v:groupcontext="shape" transform="translate(286.687,-57.9369)">		<title></title>		<path d="M0 303 L30.96 303" class="st9"></path>	</g>	<g id="shape39-88" v:mid="39" v:groupcontext="shape" transform="translate(709.687,-201.937)">		<title></title>		<path d="M0 303 L18 303 L20.84 303" class="st9"></path>	</g>	<g id="shape40-93" v:mid="40" v:groupcontext="shape" transform="translate(827.812,-201.937)">		<title></title>		<path d="M0 303 L29.5 303" class="st9"></path>	</g>	<g id="shape41-98" v:mid="41" v:groupcontext="shape" transform="translate(675.187,195.563) rotate(90)">		<title></title>		<path d="M5.8 303 L6.16 303 L20.84 303" class="st12"></path>	</g>	<g id="shape42-106" v:mid="42" v:groupcontext="shape" transform="translate(675.187,123.563) rotate(90)">		<title></title>		<path d="M5.8 303 L6.16 303 L20.84 303" class="st12"></path>	</g>	<g id="shape43-113" v:mid="43" v:groupcontext="shape" transform="translate(102.187,-225.75)">		<title></title>		<desc>qtiqmmfsrc</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="296.25" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="72" height="13.5" class="st11"></rect>		<text x="14" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtiqmmfsrc</text>		</g>	<g id="shape44-116" v:mid="44" v:groupcontext="shape" transform="translate(210.187,-225.75)">		<title></title>		<desc>qtimlvconverter</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="296.25" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="72" height="13.5" class="st11"></rect>		<text x="5.49" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="shape45-119" v:mid="45" v:groupcontext="shape" transform="translate(337.312,-225.75)">		<title></title>		<desc>qtimltflite</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="296.25" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="72" height="13.5" class="st11"></rect>		<text x="18.25" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite</text>		</g>	<g id="shape46-122" v:mid="46" v:groupcontext="shape" transform="translate(452.625,-225.75)">		<title></title>		<desc>qtiqmlvclassification</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.5625" cy="296.25" width="91.13" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="91.125" height="13.5" class="st11"></rect>		<text x="5.8" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtiqmlvclassification</text>		</g>	<g id="shape47-125" v:mid="47" v:groupcontext="shape" v:layermember="0" transform="translate(190.385,-201.937)">		<title>Dynamic connector.47</title>		<path d="M0 303 L0 240 L483.3 240" class="st13"></path>	</g>	<g id="shape48-128" v:mid="48" v:groupcontext="shape" v:layermember="0" transform="translate(664.687,-264.937)">		<title>Dynamic connector.48</title>		<path d="M9 303 L9 319.34" class="st9"></path>	</g>	<g id="shape50-133" v:mid="50" v:groupcontext="shape" transform="translate(405,-266.25)">		<title></title>		<desc>Live stream</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="296.25" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.5" width="72" height="13.5" class="st11"></rect>		<text x="12.74" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Live stream</text>		</g></g>
</svg>

**Figure: Workflow to run a LiteRT model using Qualcomm IM SDK**

The gst-ai-classification sample application does the following:

1. Opens the IMX577 camera on the Qualcomm Linux development kit with a specific resolution and frame rate; for example, 1080p at 30 fps
2. Preprocesses each camera frame to provide the input data to a classification model

    For example, the gst-ai-classification sample application:

    1. Downscales a 1080p frame to a 224 x 224 resolution
    2. Normalizes the input frame based on the model requirements
3. The qtimltflite Qualcomm IM SDK plug-in, built on top of the LiteRT C++ API, does the following:

    1. Loads the sample LiteRT classification model
    2. Performs inference on the model using hardware acceleration
4. Postprocesses the output from the inference, that is, extracts the label with the highest predicted probability within the output tensor
5. Overlays the inference result on the original camera input image and displays it on the connected monitor

### Download and copy a sample model

To download and copy a model and a label file to the device, do the following:

1. Go to [Qualcomm ^®^  AI Hub](https://aihub.qualcomm.com/iot/models/inception_v3_quantized?searchTerm=inception), and download the Inception-v3-Quantized model.

![../../_images/download--copy-sample-model.png](data:image/png;base64,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)

Note

The gst-ai-classification sample application is demonstrated for QCS6490.
2. To download the corresponding label file, run the following command:

wget https://raw.githubusercontent.com/quic/ai-hub-models/refs/heads/main/qai_hub_models/labels/imagenet_labels.txt
        Copy to clipboard

Note

The model is available on Qualcomm AI Hub and the corresponding label file is available on QUIC GitHub.
3. To copy the models and label files to the device using the secure copy protocol (SCP), run the following commands:

# For SCP, run the following command:
        ssh root@[ip-addr]
        mount -o remount,rw /usr
        cd /etc
        mkdir labels
        mkdir media
        exit
        Copy to clipboard

# Copy files securely
        scp imagenet_labels.txt root@[ip-addr]:/etc/labels
        scp inception_v3_quantized.tflite root@[ip-addr]:/etc/models
        Copy to clipboard

Note

To get the IP address of the Qualcomm Linux development kit, run the following command:

ifconfig wlan0
        Copy to clipboard

Note

When prompted for a password, enter *oelinux123*.

#### Next steps

- [Run AI/ML sample applications](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-50/ai-ml-sample-applications.html)

### Run a LiteRT model with a sample application

1. To run inference using LiteRT, run the following command:

ssh root@[ip-addr]
        Copy to clipboard

    1. To set up the Wayland Display environment, run the following command:

export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1
            Copy to clipboard

Note

If Weston is not enabled automatically, start two instances of secure shell: one to enable Weston and the other to run the application.

        1. To enable Weston, run the following command in the first shell:

export GBM_BACKEND=msm && export XDG_RUNTIME_DIR=/dev/socket/weston && mkdir -p $XDG_RUNTIME_DIR && weston --continue-without-input --idle-time=0
                Copy to clipboard
        2. To set up the Wayland Display environment, run the following command in the second shell:

export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1
                Copy to clipboard
    2. Modify the config\_classification.json file in the `/etc/configs` folder, as follows:

{
              "file-path":"/etc/media/video.mp4",
              "ml-framework": "tflite",
              "model":"/etc/models/inception_v3_quantized.tflite",
              "labels": "/etc/labels/imagenet_labels.txt",
              "constants": "Inceptionv3,q-offsets=<38.0>,q-scales=<0.17039915919303894>;"
            }
            Copy to clipboard

Note

You must push the video.mp4 file to the `/etc/media` folder. The default path for the video file is `/etc/media/video.mp4`, labels path is `/etc/labels/classification.labels`, and model is `/etc/model/inception_v3_quantized.tflite`.
    3. Run the classification sample application:

gst-ai-classification --config-file=/etc/configs/config_classification.json
            Copy to clipboard
2. To run the sample application using a custom classification model and labels file, use the following arguments:

    - `--model`
    - `--labels`

    1. Modify the config\_classification.json file in the `/etc/configs` folder, as follows:

{
              "file-path": "/etc/media/video.mp4",
              "model":"/etc/models/custom_model.tflite",
              "ml-framework": "tflite",
              "labels": "/etc/labels/custom_labels.txt"
            }
            Copy to clipboard
    2. Run the classification sample application:

gst-ai-classification --config-file=/etc/configs/config_classification.json
            Copy to clipboard
3. To stop the sample application, select CTRL+C.

When the sample application is running, it displays the video stream on the connected monitor with inference results overlaid on the frame.

## Run a LiteRT model using a native LiteRT sample application

You can run LiteRT models using a sample LiteRT application called label\_image, which
is a part of the TensorFlow repository.

The label\_image sample application and the LiteRT library are cross-compiled with Qualcomm Linux and installed on the target device.

The label\_image sample application does the following:

1. Loads a classification LiteRT model
2. Performs inference on an image using a delegate to speed up the model on Qualcomm hardware

To run a model using the label\_image sample application, do the following:

1. Download the sample model, corresponding labels, and an example image:

    - BMP file from [here](https://github.com/sourcecode369/tensorflow-1/tree/master/tensorflow/lite/examples/label_image/testdata/)
    - MobileNet LiteRT model from [here](https://github.com/emgucv/models/blob/master/mobilenet_v1_1.0_224_float_2017_11_08/mobilenet_v1_1.0_224.tflite)
2. Run the following commands on the host computer:

wget http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz
        Copy to clipboard

tar -xvf mobilenet_v1_1.0_224_quant.tgz
        Copy to clipboard

wget https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_1.0_224_frozen.tgz
        Copy to clipboard

tar -xvf mobilenet_v1_1.0_224_frozen.tgz
        Copy to clipboard

# For SCP, run the following command:
        ssh root@[ip-addr]
        mount -o remount,rw /usr
        cd /etc
        mkdir artifacts
        exit
        Copy to clipboard

scp mobilenet_v1_1.0_224_quant.tflite root@[ip-addr]:/etc/artifacts
        scp grace_hopper.bmp root@[ip-addr]:/etc/artifacts
        scp mobilenet_v1_1.0_224/labels.txt root@[ip-addr]:/etc/artifacts
        scp mobilenet_v1_1.0_224.tflite root@[ip-addr]:/etc/artifacts
        Copy to clipboard
3. To run an inference using either of the following delegates, do the following:

    - To run the model on the Arm^®^ CPU using the XNNPACK delegate:

label_image -l /etc/artifacts/labels.txt -i /etc/artifacts/grace_hopper.bmp -m /etc/artifacts/mobilenet_v1_1.0_224_quant.tflite -c 10 -p 1 --xnnpack_delegate 1
            Copy to clipboard
    - To run the model on the Qualcomm^®^ Adreno^™^ GPU using the GPU delegate:

label_image -l /etc/artifacts/labels.txt -i /etc/artifacts/grace_hopper.bmp -m /etc/artifacts/mobilenet_v1_1.0_224.tflite -c 10 -p 1 --gl_backend 1
            Copy to clipboard

**Known issue**

The LiteRT native sample application (label\_image) might crash during inferencing on the GPU or external delegate.

## Next steps

- [Run LiteRT sample applications](https://docs.qualcomm.com/doc/80-70018-54/topic/sample-applications.html#run-litert-sample-apps)

Last Published: Apr 07, 2025

[Previous Topic
LiteRT overview](https://docs.qualcomm.com/bundle/publicresource/80-70018-54/topics/tflite-landing-page.md) [Next Topic
LiteRT architecture](https://docs.qualcomm.com/bundle/publicresource/80-70018-54/topics/arch.md)