# 入门

Source: [https://docs.qualcomm.com/doc/80-70017-54SC/topic/getting-started.html](https://docs.qualcomm.com/doc/80-70017-54SC/topic/getting-started.html)

本指南介绍了如何在 Qualcomm Linux 开发套件上运行 LiteRT 模型。

开始之前，执行以下操作：

1. 设置 Qualcomm Linux 开发套件。相关说明，请参见以下内容：
    - QCS6490/QCS5430: [RB3 Gen 2 快速入门指南](bundle/publicresource/topics/80-70017-253)
    - QCS9075：[Qualcomm IQ-9100 Beta 评估套件快速入门指南](https://docs.qualcomm.com/bundle/80-70015-263/resource/80-70015-263_REV_AB_Qualcomm_IQ-9100_Beta_Evaluation_Kit_Quick_Start_Guide.pdf)
    - QCS8275：[Qualcomm IQ-8 Beta 评估套件快速入门指南](https://docs.qualcomm.com/bundle/80-70017-263/resource/80-70017-263_REV_AA_Qualcomm_IQ-8_Beta_Evaluation_KitQuick_Start_Guide.pdf)

注释： QCS9075 和 QCS8275 快速入门指南仅供授权用户使用。要升级您的访问权限，请前往 [www.qualcomm.com/support/working-with-qualcomm](https://www.qualcomm.com/support/working-with-qualcomm)。
2. 使用 HDMI 将 Qualcomm Linux开发套件连接到显示器。
3. 将 Qualcomm Linux 开发套件升级至 [CodeLinaro Artifactory Service](https://artifacts.codelinaro.org/ui/native/qli-ci/flashable-binaries/) 上提供的最新软件版本。
4. 将镜像刷写到设备。有关说明，参见[刷写镜像](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/flash_images.html)。

## 使用基于 Gstreamer 的 IM SDK 运行 LiteRT 模型

Source: [https://docs.qualcomm.com/doc/80-70017-54SC/topic/getting-started.html](https://docs.qualcomm.com/doc/80-70017-54SC/topic/getting-started.html)

Qualcomm Linux 开发套件附带预编译的 LiteRT 示例程序，用于运行示例 LiteRT 模型。

gst-ai-classification 示例应用程序使用 IM SDK 插件在 Qualcomm Linux 开发套件上运行 LiteRT 分类模型，并使用 LiteRT delegate 进行硬件加速。

Figure : 使用 IM SDK 运行 LiteRT 模型的工作流
            
            <?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 workflow-to-run-tflite-model-using-qualcomm-im-sdk -->
<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.2083in" viewbox="0 0 927.374 302.998" xml:space="preserve" color-interpolation-filters="sRGB" class="st17"><v:documentproperties v:langid="1033">	<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.749999 }
.svg-1 .st2 { marker-end: url("#mrkr5-11"); marker-start: url("#mrkr5-9"); stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999999 }
.svg-1 .st3 { fill: #3253dc; fill-opacity: 1; stroke: #3253dc; stroke-opacity: 1; stroke-width: 0.28409074799522 }
.svg-1 .st4 { fill: none; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999999 }
.svg-1 .st5 { fill: #000000; font-family: Arial; font-size: 0.75em }
.svg-1 .st6 { font-family: Microsoft YaHei; font-size: 1em }
.svg-1 .st7 { fill: #000000; font-family: Microsoft YaHei; font-size: 0.75em }
.svg-1 .st8 { font-family: Arial; font-size: 1em }
.svg-1 .st9 { font-size: 1em }
.svg-1 .st10 { fill: #3253dc; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 6.37499 }
.svg-1 .st11 { marker-end: url("#mrkr5-60"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999999 }
.svg-1 .st12 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409074799522 }
.svg-1 .st13 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999999 }
.svg-1 .st14 { marker-end: url("#mrkr5-60"); marker-start: url("#mrkr5-114"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999999 }
.svg-1 .st15 { fill: none }
.svg-1 .st16 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999999 }
.svg-1 .st17 { 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-9" class="st3" v:arrowtype="5" v:arrowsize="2" v:setback="5.8" refx="5.8000032079233" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(3.5200019960412) "></use>	</marker>	<marker id="mrkr5-11" class="st3" v:arrowtype="5" v:arrowsize="2" v:setback="6.16" refx="-6.1600034930721" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-3.5200019960412,-3.5200019960412) "></use>	</marker>	<marker id="mrkr5-60" class="st12" v:arrowtype="5" v:arrowsize="2" v:setback="0" refx="-0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-3.5200019960412,-3.5200019960412) "></use>	</marker>	<marker id="mrkr5-114" class="st12" v:arrowtype="5" v:arrowsize="2" v:setback="0" refx="0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(3.5200019960412) "></use>	</marker></defs><g v:mid="5" v:index="3" v:groupcontext="foregroundPage">	<title>workflow-to-run-tflite-model-using-qualcomm-im-sdk</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="8.99999" v:shadowoffsety="-8.99999"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(17.9067,-18)">		<title>shape1002-1</title>		<rect x="0" y="35.9978" width="891.093" height="267" class="st1"></rect>	</g>	<g id="shape2-3" v:mid="2" v:groupcontext="shape" transform="translate(306.187,-26.0619)">		<title>shape1000-3</title>		<path d="M5.8 303 L6.16 303 L139.5 303 L139.5 82.5 L0 82.5 L0 296.84" class="st2"></path>	</g>	<g id="shape3-12" v:mid="3" v:groupcontext="shape" transform="translate(323.437,-179.437)">		<title>shape1-9</title>		<desc>LiteRT inferencing</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.4999" cy="280.498" width="99" height="45"></v:textrect>		<rect x="0" y="257.998" width="98.9999" height="45" class="st4"></rect>		<text x="26" y="283.23" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LiteRT <tspan class="st6">推理</tspan></text>		</g>	<g id="shape4-16" v:mid="4" v:groupcontext="shape" transform="translate(323.437,-107.437)">		<title>shape3-12</title>		<desc>Delegate (CPU, GPU, external)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.4999" cy="280.498" width="99" height="45"></v:textrect>		<rect x="0" y="257.998" width="98.9999" height="45" class="st4"></rect>		<text x="31.49" y="272.25" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Delegate <tspan x="16.75" dy="1.212em" class="st6">（</tspan>CPU<tspan class="st6">、</tspan>GPU<tspan class="st6">、<v:lf></v:lf></tspan><tspan x="36" dy="1.216em" class="st6">外部</tspan><tspan class="st6">）</tspan></text>		</g>	<g id="shape5-24" v:mid="5" v:groupcontext="shape" transform="translate(323.437,-35.4369)">		<title>shape4-16</title>		<desc>External: Qualcomm Hexagon Tensor Processor</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.4999" cy="280.498" width="99" height="45"></v:textrect>		<rect x="0" y="257.998" width="98.9999" height="45" class="st4"></rect>		<text x="14.24" y="277.76" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>外部：<tspan class="st8">Qualcomm </tspan><tspan x="7.74" dy="1.216em" class="st8">Hexagon </tspan>张量处理器</text>		</g>	<g id="shape6-29" v:mid="6" v:groupcontext="shape" transform="translate(205.312,-179.437)">		<title>shape5-21</title>		<desc>Preprocessing</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4999" cy="280.498" width="81" height="45"></v:textrect>		<rect x="0" y="257.998" width="80.9999" height="45" class="st4"></rect>		<text x="27" y="283.2" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>预处理</text>		</g>	<g id="shape7-32" v:mid="7" v:groupcontext="shape" transform="translate(205.312,-35.4369)">		<title>shape6-24</title>		<desc>LiteRT model</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4999" cy="280.498" width="81" height="45"></v:textrect>		<rect x="0" y="257.998" width="80.9999" height="45" class="st4"></rect>		<text x="17" y="283.23" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LiteRT <tspan class="st6">模型</tspan></text>		</g>	<g id="shape8-36" v:mid="8" v:groupcontext="shape" transform="translate(97.3129,-179.437)">		<title>shape7-27</title>		<desc>Camera source</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4999" cy="280.498" width="81" height="45"></v:textrect>		<rect x="0" y="257.998" width="80.9999" height="45" class="st4"></rect>		<text x="22.5" y="283.2" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>摄像头源</text>		</g>	<g id="shape9-39" v:mid="9" v:groupcontext="shape" transform="translate(458.437,-179.437)">		<title>shape8-30</title>		<desc>Postprocessing</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4999" cy="280.498" width="81" height="45"></v:textrect>		<rect x="0" y="257.998" width="80.9999" height="45" class="st4"></rect>		<text x="27" y="283.2" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>后处理</text>		</g>	<g id="shape10-42" v:mid="10" v:groupcontext="shape" transform="translate(618.187,-152.437)">		<title>shape9-33</title>		<desc>qtivcomposer (Layer composition)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.5624" cy="257.998" width="91.13" height="89.9999"></v:textrect>		<rect x="0" y="212.998" width="91.1249" height="89.9999" class="st4"></rect>		<text x="18.8" y="255.22" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer <tspan x="29.07" dy="1.212em" class="st9">(</tspan><tspan class="st6">层构成</tspan>)</text>		</g>	<g id="group11-47" transform="translate(20.809,-184.462)" v:mid="11" v:groupcontext="group">		<title>Security Camera</title>		<g id="shape12-48" v:mid="12" v:groupcontext="shape" transform="translate(40.5039,-2.27374E-13) scale(-1,1)">			<title>shape20-38</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="st10"></path>		</g>		<g id="shape13-50" v:mid="13" v:groupcontext="shape" transform="translate(8.32999,-12.1808) scale(-1,1)">			<title>shape21-40</title>			<path d="M4.57 297.86 L8.33 299.4 L3.75 303 L0 301.46 L4.57 297.86 Z" class="st10"></path>		</g>	</g>	<g id="group14-52" transform="translate(862.5,-184.238)" v:mid="14" v:groupcontext="group">		<title>Monitor</title>		<g id="shape15-53" v:mid="15" v:groupcontext="shape">			<title>shape23-43</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="st10"></path>		</g>	</g>	<g id="shape16-55" v:mid="16" v:groupcontext="shape" transform="translate(61.3129,-201.937)">		<title>shape26-47</title>		<path d="M0 303 L29.84 303 L36 303" class="st11"></path>	</g>	<g id="shape17-61" v:mid="17" v:groupcontext="shape" v:layermember="0" transform="translate(178.313,-201.188)">		<title>Dynamic connector</title>		<path d="M0 303 L20.84 303 L27 303" class="st11"></path>	</g>	<g id="shape18-66" v:mid="18" v:groupcontext="shape" v:layermember="0" transform="translate(422.437,-201.937)">		<title>Dynamic connector.29</title>		<path d="M0 303 L29.84 303 L36 303" class="st11"></path>	</g>	<g id="shape19-71" v:mid="19" v:groupcontext="shape" v:layermember="0" transform="translate(539.437,-201.937)">		<title>Dynamic connector.30</title>		<path d="M0 303 L72.59 303 L78.75 303" class="st11"></path>	</g>	<g id="shape20-76" v:mid="20" v:groupcontext="shape" transform="translate(540,-201.937)">		<title>shape31-68</title>		<desc>Classification</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9999" cy="296.248" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="71.9999" height="13.5" class="st13"></rect>		<text x="27" y="298.95" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>分类</text>		</g>	<g id="shape21-79" v:mid="21" v:groupcontext="shape" transform="translate(540,-185.25)">		<title>shape33-71</title>		<desc>Metadata</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9999" cy="296.248" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="71.9999" height="13.5" class="st13"></rect>		<text x="22.5" y="298.95" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>元数据</text>		</g>	<g id="shape22-82" v:mid="22" v:groupcontext="shape" transform="translate(736.312,-152.437)">		<title>shape34-74</title>		<desc>Waylandsink (Display rendering)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.5624" cy="257.998" width="91.13" height="89.9999"></v:textrect>		<rect x="0" y="212.998" width="91.1249" height="89.9999" class="st4"></rect>		<text x="20.05" y="255.22" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink<v:lf></v:lf><tspan x="18.56" dy="1.212em" class="st6">（</tspan><tspan class="st6">显示渲染</tspan><tspan class="st6">）</tspan></text>		</g>	<g id="shape23-88" v:mid="23" v:groupcontext="shape" transform="translate(286.312,-201.937)">		<title>shape36-78</title>		<path d="M0 303 L30.96 303 L37.12 303" class="st11"></path>	</g>	<g id="shape24-93" v:mid="24" v:groupcontext="shape" transform="translate(286.312,-57.9369)">		<title>shape37-83</title>		<path d="M0 303 L30.96 303 L37.12 303" class="st11"></path>	</g>	<g id="shape25-98" v:mid="25" v:groupcontext="shape" transform="translate(709.312,-201.937)">		<title>shape39-88</title>		<path d="M0 303 L18 303 L20.84 303 L27 303" class="st11"></path>	</g>	<g id="shape26-103" v:mid="26" v:groupcontext="shape" transform="translate(827.437,-201.937)">		<title>shape40-93</title>		<path d="M0 303 L29.5 303 L35.66 303" class="st11"></path>	</g>	<g id="shape27-108" v:mid="27" v:groupcontext="shape" transform="translate(674.81,195.561) rotate(90)">		<title>shape41-98</title>		<path d="M0 303 L5.8 303 L6.16 303 L20.84 303 L27 303" class="st14"></path>	</g>	<g id="shape28-116" v:mid="28" v:groupcontext="shape" transform="translate(674.81,123.561) rotate(90)">		<title>shape42-106</title>		<path d="M0 303 L5.8 303 L6.16 303 L20.84 303 L27 303" class="st14"></path>	</g>	<g id="shape29-123" v:mid="29" v:groupcontext="shape" transform="translate(101.812,-225.75)">		<title>shape43-113</title>		<desc>qtiqmmfsrc</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9999" cy="296.248" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="71.9999" height="13.5" class="st13"></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="shape30-126" v:mid="30" v:groupcontext="shape" transform="translate(207,-225.75)">		<title>shape44-116</title>		<desc>qtimlvconverter</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.0938" cy="296.248" width="78.19" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="78.1877" height="13.5" class="st13"></rect>		<text x="8.58" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="shape31-129" v:mid="31" v:groupcontext="shape" transform="translate(336.937,-225.75)">		<title>shape45-119</title>		<desc>qtimltflite</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9999" cy="296.248" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="71.9999" height="13.5" class="st13"></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="shape32-132" v:mid="32" v:groupcontext="shape" transform="translate(446.13,-225.75)">		<title>shape46-122</title>		<desc>qtiqmlvclassification</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="52.8749" cy="296.248" width="105.76" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="105.75" height="13.5" class="st13"></rect>		<text x="13.11" y="298.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtiqmlvclassification</text>		</g>	<g id="shape33-135" v:mid="33" v:groupcontext="shape" v:layermember="0" transform="translate(190.01,-201.937)">		<title>Dynamic connector.47</title>		<path d="M0 303 L0 240 L483.3 240 L0 303 Z" class="st15"></path>		<path d="M0 303 L0 240 L483.3 240" class="st16"></path>	</g>	<g id="shape34-138" v:mid="34" v:groupcontext="shape" v:layermember="0" transform="translate(673.312,-242.437)">		<title>Dynamic connector.48</title>		<path d="M0 280.5 L0 296.84 L0 303" class="st11"></path>	</g>	<g id="shape35-143" v:mid="35" v:groupcontext="shape" transform="translate(404.625,-266.25)">		<title>shape50-133</title>		<desc>Live stream</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9999" cy="296.248" width="72" height="13.5"></v:textrect>		<rect x="0" y="289.498" width="71.9999" height="13.5" class="st13"></rect>		<text x="22.5" y="298.95" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>实时流</text>		</g></g>
</svg>

Gst-ai-classification 示例程序执行以下操作：

1. 打开 Qualcomm Linux 开发套件上的 IMX577 摄像头，并设置特定的分辨率和帧率，例如 1080p 分辨率，30 fps
2. 对每个摄像头的每一帧进行预处理，以向分类模型提供输入数据。
    例如，gst-ai-classification 示例程序：

    1. 将 1080p 帧缩小至 224 x 224 分辨率
    2. 根据模型要求对输入帧进行归一化处理
3. qtimltflite IM SDK插件是基于LiteRT C++ API 编写的，可执行以下操作：
    1. 加载示例 LiteRT 分类模型
    2. 使用硬件加速对模型进行推理
4. 对推理的输出进行后处理，即在输出张量中提取预测概率最高的标签。
5. 将推理结果叠加在原始摄像机输入图像上，并将其显示在连接的显示器上。

### 下载并复制示例模型

要将模型和标签文件下载并复制到设备，可执行以下操作：

1. 前往 [Qualcomm^®^ AI Hub](https://aihub.qualcomm.com/iot/models/inception_v3_quantized?searchTerm=inception) 并下载 Inception-v3-Quantized模型。![](data:image/png;base64,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)
注释： 针对 QCS6490 演示了 gst-ai-classification 示例应用程序。
2. 请运行以下命令，以便下载相应的标签文件：

        wget https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_labels.txtCopy to clipboard

注释： 该模型托管在 Qualcomm AI Hub 上，相应的标签文件托管在 QUIC GitHub 上。
3. 要使用安全复制协议 (SCP) 将模型和标签文件复制到设备，运行以下命令：

        # For SCP, run the following command:
        ssh root@[ip-addr]
        mount -o remount,rw /
        exitCopy to clipboard

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

注释： 要获取 Qualcomm Linux 开发套件的 IP 地址，请运行以下命令：

        ifconfig wlan0Copy to clipboard

注释： 当系统提示输入密码时，输入 <var class="keyword varname">oelinux123</var>。

### 使用示例应用程序执行 LiteRT 模型

1. 使用 LiteRT：运行推理

        ssh root@[ip-addr]Copy to clipboard

        # Setup Wayland Display environment
        export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard

    1. 修改 opt 文件夹下的配置\_分类.json文件，详情如下：

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

注释： 必须将 video.mp4 文件推送到 opt 文件夹。
    2. 运行分类示例应用程序：

            gst-ai-classification --config-file=/opt/config_classification.jsonCopy to clipboard
2. 请使用以下参数，以便使用自定义分类模型和标签文件运行示例应用程序：
    - `--model`
    - `--labels`

    1. 修改 opt 文件夹下的 config\_classification.json文件，详情如下：

            {
              "file-path": "/opt/video.mp4",
              "model":"/opt/custom_model.tflite",
              "ml-framework": "tflite",
              "labels": "/opt/custom_labels.txt"
            }Copy to clipboard
    2. 运行分类示例应用程序：

            gst-ai-classification --config-file=/opt/config_classification.jsonCopy to clipboard
3. 如需停止示例程序，可按下 Ctrl+C。

示例程序在运行时会在所连接的显示器上显示摄像头流，并将推理结果叠加在帧上。

## 使用本机 LiteRT 示例应用程序运行 LiteRT 模型

Source: [https://docs.qualcomm.com/doc/80-70017-54SC/topic/getting-started.html](https://docs.qualcomm.com/doc/80-70017-54SC/topic/getting-started.html)

您可以使用名为标签\_镜像的示例 LiteRT 应用程序运行 LiteRT 模型。其中，该应用程序是 TensorFlow 存储库的一部分。

label\_image 示例应用程序和 LiteRT 库与 Qualcomm Linux 一起交叉编译，并安装在目标设备上。

label\_image 示例程序执行以下操作：

1. 加载分类 LiteRT 模型
2. 使用 delegate 在 Qualcomm 硬件上加速模型，对图像进行推理

若要使用label\_image示例程序运行模型，可执行以下操作：

1. 下载示例模型、相应标签和示例图像：
    - BMP 文件可从[此处](https://github.com/sourcecode369/tensorflow-1/tree/master/tensorflow/lite/examples/label_image/testdata/)下载
    - MobileNet LiteRT 模型可从[此处](https://github.com/emgucv/models/blob/master/mobilenet_v1_1.0_224_float_2017_11_08/mobilenet_v1_1.0_224.tflite)下载
2. 在主机上运行以下命令：

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

        tar -xvf mobilenet_v1_1.0_224_quant.tgzCopy to clipboard

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

        tar -xvf mobilenet_v1_1.0_224_frozen.tgzCopy to clipboard

        # For SCP, run the following command:
        ssh root@[ip-addr]
        mount -o remount,rw /
        exitCopy to clipboard

        scp mobilenet_v1_1.0_224_quant.tflite root@[ip-addr]:/opt/
        scp grace_hopper.bmp root@[ip-addr]:/opt/
        scp mobilenet_v1_1.0_224/labels.txt root@[ip-addr]:/opt/
        scp mobilenet_v1_1.0_224.tflite root@[ip-addr]:/opt/
        Copy to clipboard
3. 要使用以下 delegate 之一进行推理，请执行以下操作：
    - 使用 XNNPACK delegate，在 Arm^®^ CPU 上运行模型：

            label_image -l /opt/labels.txt -i /opt/grace_hopper.bmp -m /opt/mobilenet_v1_1.0_224_quant.tflite -c 10 -p 1 --xnnpack_delegate 1Copy to clipboard
    - 使用 GPU delegate：在 Qualcomm^®^ Adreno™ GPU
                        上运行模型

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

Last Published: Jan 24, 2025

[Previous Topic
概述](https://docs.qualcomm.com/bundle/publicresource/80-70017-54SC/topics/tflite-landing-page.md) [Next Topic
LiteRT 架构](https://docs.qualcomm.com/bundle/publicresource/80-70017-54SC/topics/arch.md)