# 目标检测与显示

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/camera-detection-display.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/camera-detection-display.html)

**gst-ai-object-detection.py** 应用程序可以检测摄像头流或文件流中的目标并显示结果或将输出保存到文件中。

Figure : 目标检测和预览的pipeline
            
            <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export pipeline_object_detection_and_preview.svg pipeline_object_detection_and_p -->
<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="13.3579in" height="4.02722in" viewbox="0 0 961.77 289.96" xml:space="preserve" color-interpolation-filters="sRGB" class="st16"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-1 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st3 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st5 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st6 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st7 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st8 { fill: none; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st9 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st10 { fill: none }
.svg-1 .st11 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st12 { fill: #000000; font-family: SimHei; font-size: 1.00001em }
.svg-1 .st13 { fill: none; stroke: #4d4d4d; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st14 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-1 .st15 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-1 .st16 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>pipeline_object_detection_and_p</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape3-1" v:mid="3" v:groupcontext="shape" transform="translate(0.375092,-0.374771)">		<title>Sheet.3</title>		<path d="M0 284.33 A5.62513 5.62513 -180 0 0 5.62 289.96 L955.39 289.96 A5.62513 5.62513 -180 0 0 961.02 284.33 L961.02					 6.37 A5.62513 5.62513 -180 0 0 955.39 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.37 L0 284.33 Z" class="st1"></path>	</g>	<g id="shape4-3" v:mid="4" v:groupcontext="shape">		<title>Sheet.4</title>		<path d="M955.77 0.75 C958.66 0.75 961.02 3.11 961.02 6 L961.02 283.96 C961.02 286.85 958.66 289.21 955.77 289.21 L6					 289.21 C3.11 289.21 0.75 286.85 0.75 283.96 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L955.77 0.75 ZM955.77 0					 L6 0 C2.69 0 0 2.69 0 6 L0 283.96 C0 287.27 2.69 289.96 6 289.96 L955.77 289.96 C959.08 289.96 961.77 287.27					 961.77 283.96 L961.77 6 C961.77 2.69 959.08 0 955.77 0 Z" class="st2"></path>	</g>	<g id="shape13-5" v:mid="13" v:groupcontext="shape" transform="translate(123.239,-122.154)">		<title>Sheet.13</title>		<desc>tee</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="28.35" cy="257.358" width="56.71" height="65.2045"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L53.7 289.96 A3.00007 3.00007 -180 0 0 56.7 286.96 L56.7 227.76					 A3.00007 3.00007 -180 0 0 53.7 224.76 L3 224.76 A3.00007 3.00007 -180 0 0 -0 227.76 L0 286.96 Z" class="st3"></path>		<text x="20.03" y="260.96" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>tee</text>		</g>	<g id="shape15-8" v:mid="15" v:groupcontext="shape" transform="translate(519.207,-121.682)">		<title>Sheet.15</title>		<desc>qtimetamux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="47.25" cy="256.885" width="94.5" height="66.15"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L91.5 289.96 A3.00007 3.00007 -180 0 0 94.5 286.96 L94.5 226.81					 A3.00007 3.00007 -180 0 0 91.5 223.81 L3 223.81 A3.00007 3.00007 -180 0 0 0 226.81 L0 286.96 Z" class="st5"></path>		<text x="15.22" y="260.48" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimetamux</text>		</g>	<g id="shape17-11" v:mid="17" v:groupcontext="shape" transform="translate(631.225,-121.682)">		<title>Sheet.17</title>		<desc>qtivoverlay</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="47.25" cy="256.885" width="94.5" height="66.15"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L91.5 289.96 A3.00007 3.00007 -180 0 0 94.5 286.96 L94.5 226.81					 A3.00007 3.00007 -180 0 0 91.5 223.81 L3 223.81 A3.00007 3.00007 -180 0 0 0 226.81 L0 286.96 Z" class="st5"></path>		<text x="18.42" y="260.48" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivoverlay</text>		</g>	<g id="shape20-14" v:mid="20" v:groupcontext="shape" transform="translate(105.801,-159.009)">		<title>Sheet.20</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape21-17" v:mid="21" v:groupcontext="shape" transform="translate(117.993,-156.017)">		<title>Sheet.21</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape23-19" v:mid="23" v:groupcontext="shape" transform="translate(179.939,-175.656)">		<title>Sheet.23</title>		<path d="M0 289.96 L334.96 289.96" class="st6"></path>	</g>	<g id="shape24-22" v:mid="24" v:groupcontext="shape" transform="translate(514.026,-172.664)">		<title>Sheet.24</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape26-24" v:mid="26" v:groupcontext="shape" transform="translate(837.598,-158.48)">		<title>Sheet.26</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape27-27" v:mid="27" v:groupcontext="shape" transform="translate(849.79,-155.488)">		<title>Sheet.27</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape30-29" v:mid="30" v:groupcontext="shape" transform="translate(862.783,-97.8136)">		<title>Sheet.30</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="38.6626" cy="264.079" width="77.33" height="51.7616"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L74.33 289.96 A3.00007 3.00007 -180 0 0 77.33 286.96 L77.33 241.2					 A3.00007 3.00007 -180 0 0 74.33 238.2 L3 238.2 A3.00007 3.00007 -180 0 0 0 241.2 L0 286.96 Z" class="st3"></path>		<text x="19.59" y="267.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="shape33-32" v:mid="33" v:groupcontext="shape" transform="translate(862.783,-166.793)">		<title>Sheet.33</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="38.6626" cy="264.079" width="77.33" height="51.7616"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L74.33 289.96 A3.00007 3.00007 -180 0 0 77.33 286.96 L77.33 241.2					 A3.00007 3.00007 -180 0 0 74.33 238.2 L3 238.2 A3.00007 3.00007 -180 0 0 0 241.2 L0 286.96 Z" class="st3"></path>		<text x="4.92" y="267.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape37-35" v:mid="37" v:groupcontext="shape" transform="translate(884.436,-239.602)">		<title>Sheet.37</title>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L31.02 289.96 A3.00007 3.00007 -180 0 0 34.02 286.96 L34.02 269.15					 A3.00007 3.00007 -180 0 0 31.02 266.15 L3 266.15 A3.00007 3.00007 -180 0 0 -0 269.15 L0 286.96 Z" class="st8"></path>	</g>	<g id="shape38-37" v:mid="38" v:groupcontext="shape" transform="translate(894.642,-232.798)">		<title>Sheet.38</title>		<path d="M0 289.96 L13.61 289.96" class="st9"></path>	</g>	<g id="shape39-40" v:mid="39" v:groupcontext="shape" transform="translate(1191.41,50.3575) rotate(90)">		<title>Sheet.39</title>		<path d="M0 289.96 L6.8 289.96" class="st9"></path>	</g>	<g id="shape41-43" v:mid="41" v:groupcontext="shape" transform="translate(889.199,-53.5435)">		<title>Sheet.41</title>		<path d="M16.84 259.34 L3.06 259.34 C1.37 259.34 0 260.71 0 262.4 L0 286.9 C0 288.59 1.37 289.96 3.06 289.96 L21.43 289.96					 C23.12 289.96 24.49 288.59 24.49 286.9 L24.49 267 L16.84 259.34 Z" class="st8"></path>	</g>	<g id="shape42-45" v:mid="42" v:groupcontext="shape" transform="translate(904.508,-74.9761)">		<title>Sheet.42</title>		<path d="M0 280.77 L0 286.9 C0 288.59 1.37 289.96 3.06 289.96 L9.19 289.96 L0 280.77 Z" class="st10"></path>		<path d="M0 280.77 L0 286.9 C0 288.59 1.37 289.96 3.06 289.96 L9.19 289.96" class="st9"></path>	</g>	<g id="shape43-48" v:mid="43" v:groupcontext="shape" transform="translate(898.384,-61.198)">		<title>Sheet.43</title>		<path d="M0 280.77 L7.65 285.37 L0 289.96 L0 280.77 Z" class="st8"></path>	</g>	<g id="shape44-50" v:mid="44" v:groupcontext="shape" transform="translate(1191.41,192.146) rotate(90)">		<title>Sheet.44</title>		<path d="M0 289.96 L11.89 289.96" class="st6"></path>	</g>	<g id="shape45-53" v:mid="45" v:groupcontext="shape" transform="translate(1191.41,59.5153) rotate(90)">		<title>Sheet.45</title>		<path d="M0 289.96 L11.89 289.96" class="st6"></path>	</g>	<g id="shape46-56" v:mid="46" v:groupcontext="shape" transform="translate(895.993,-150.3)">		<title>Sheet.46</title>		<desc>或</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="6" cy="282.76" width="12" height="14.4"></v:textrect>		<rect x="0" y="275.56" width="12" height="14.4" class="st11"></rect>		<text x="0" y="286.75" class="st12" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>或</text>		</g>	<g id="shape47-59" v:mid="47" v:groupcontext="shape" transform="translate(856.122,-42)">		<title>Sheet.47</title>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L87.65 289.96 A3.00007 3.00007 -180 0 0 90.65 286.96 L90.65 60					 A3.00007 3.00007 -180 0 0 87.65 57 L3 57 A3.00007 3.00007 -180 0 0 -0 60 L0 286.96 Z" class="st13"></path>	</g>	<g id="shape50-61" v:mid="50" v:groupcontext="shape" transform="translate(21.8143,-97.8136)">		<title>Sheet.50</title>		<desc>filesrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="38.6626" cy="264.079" width="77.33" height="51.7616"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L74.33 289.96 A3.00007 3.00007 -180 0 0 77.33 286.96 L77.33 241.2					 A3.00007 3.00007 -180 0 0 74.33 238.2 L3 238.2 A3.00007 3.00007 -180 0 0 0 241.2 L0 286.96 Z" class="st3"></path>		<text x="22.22" y="267.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesrc</text>		</g>	<g id="shape53-64" v:mid="53" v:groupcontext="shape" transform="translate(21.8143,-166.793)">		<title>Sheet.53</title>		<desc>qtiqmmfsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="38.6626" cy="264.079" width="77.33" height="51.7616"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L74.33 289.96 A3.00007 3.00007 -180 0 0 77.33 286.96 L77.33 241.2					 A3.00007 3.00007 -180 0 0 74.33 238.2 L3 238.2 A3.00007 3.00007 -180 0 0 0 241.2 L0 286.96 Z" class="st5"></path>		<text x="7.56" y="267.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtiqmmfsrc</text>		</g>	<g id="shape56-67" v:mid="56" v:groupcontext="shape" transform="translate(48.2297,-53.5435)">		<title>Sheet.56</title>		<path d="M16.84 259.34 L3.06 259.34 C1.37 259.34 0 260.71 0 262.4 L0 286.9 C0 288.59 1.37 289.96 3.06 289.96 L21.43 289.96					 C23.12 289.96 24.49 288.59 24.49 286.9 L24.49 267 L16.84 259.34 Z" class="st8"></path>	</g>	<g id="shape57-69" v:mid="57" v:groupcontext="shape" transform="translate(63.5387,-74.9761)">		<title>Sheet.57</title>		<path d="M0 280.77 L0 286.9 C0 288.59 1.37 289.96 3.06 289.96 L9.19 289.96 L0 280.77 Z" class="st10"></path>		<path d="M0 280.77 L0 286.9 C0 288.59 1.37 289.96 3.06 289.96 L9.19 289.96" class="st9"></path>	</g>	<g id="shape58-72" v:mid="58" v:groupcontext="shape" transform="translate(57.4151,-61.198)">		<title>Sheet.58</title>		<path d="M0 280.77 L7.65 285.37 L0 289.96 L0 280.77 Z" class="st8"></path>	</g>	<g id="shape59-74" v:mid="59" v:groupcontext="shape" transform="translate(350.437,192.146) rotate(90)">		<title>Sheet.59</title>		<path d="M0 289.96 L11.89 289.96" class="st6"></path>	</g>	<g id="shape60-77" v:mid="60" v:groupcontext="shape" transform="translate(350.437,58.7653) rotate(90)">		<title>Sheet.60</title>		<path d="M0 289.96 L12.64 289.96" class="st6"></path>	</g>	<g id="shape61-80" v:mid="61" v:groupcontext="shape" transform="translate(55.0245,-150.3)">		<title>Sheet.61</title>		<desc>或</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="6" cy="282.76" width="12" height="14.4"></v:textrect>		<rect x="0" y="275.56" width="12" height="14.4" class="st11"></rect>		<text x="0" y="286.75" class="st12" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>或</text>		</g>	<g id="shape63-83" v:mid="63" v:groupcontext="shape" transform="translate(45.7338,-232.798)">		<title>Sheet.63</title>		<path d="M18.43 266.37 L11.06 266.37 L7.37 270.79 L2.95 270.79 C1.32 270.79 0 272.11 0 273.74 L0 287.01 C0 288.64 1.32					 289.96 2.95 289.96 L26.54 289.96 C28.17 289.96 29.49 288.64 29.49 287.01 L29.49 273.74 C29.49 272.11 28.17					 270.79 26.54 270.79 L22.11 270.79 L18.43 266.37 Z" class="st8"></path>	</g>	<g id="shape64-85" v:mid="64" v:groupcontext="shape" transform="translate(56.054,-240.17)">		<title>Sheet.64</title>		<ellipse cx="4.42293" cy="285.537" rx="4.42293" ry="4.42293" class="st8"></ellipse>	</g>	<g id="shape65-87" v:mid="65" v:groupcontext="shape" transform="translate(15.153,-42)">		<title>Sheet.65</title>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L87.65 289.96 A3.00007 3.00007 -180 0 0 90.65 286.96 L90.65 60					 A3.00007 3.00007 -180 0 0 87.65 57 L3 57 A3.00007 3.00007 -180 0 0 0 60 L0 286.96 Z" class="st13"></path>	</g>	<g id="shape67-89" v:mid="67" v:groupcontext="shape" transform="translate(179.939,-142.944)">		<title>Sheet.67</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape68-92" v:mid="68" v:groupcontext="shape" transform="translate(192.131,-139.953)">		<title>Sheet.68</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape69-94" v:mid="69" v:groupcontext="shape" transform="translate(197.378,-122.154)">		<title>Sheet.69</title>		<desc>qtimlvconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="51" cy="267.752" width="102.01" height="44.415"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L99 289.96 A3.00007 3.00007 -180 0 0 102 286.96 L102 248.54 A3.00007					 3.00007 -180 0 0 99 245.54 L3 245.54 A3.00007 3.00007 -180 0 0 0 248.54 L0 286.96 Z" class="st5"></path>		<text x="9.39" y="271.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="shape71-97" v:mid="71" v:groupcontext="shape" transform="translate(299.378,-142.944)">		<title>Sheet.71</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape72-100" v:mid="72" v:groupcontext="shape" transform="translate(311.57,-139.953)">		<title>Sheet.72</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape73-102" v:mid="73" v:groupcontext="shape" transform="translate(316.817,-122.154)">		<title>Sheet.73</title>		<desc>qtimltflite</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="32.8224" cy="267.752" width="65.65" height="44.415"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L62.64 289.96 A3.00007 3.00007 -180 0 0 65.64 286.96 L65.64 248.54					 A3.00007 3.00007 -180 0 0 62.64 245.54 L3 245.54 A3.00007 3.00007 -180 0 0 0 248.54 L0 286.96 Z" class="st5"></path>		<text x="7.19" y="271.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite</text>		</g>	<g id="shape75-105" v:mid="75" v:groupcontext="shape" transform="translate(382.461,-142.944)">		<title>Sheet.75</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape76-108" v:mid="76" v:groupcontext="shape" transform="translate(394.653,-139.953)">		<title>Sheet.76</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape78-110" v:mid="78" v:groupcontext="shape" transform="translate(501.834,-142.944)">		<title>Sheet.78</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape79-113" v:mid="79" v:groupcontext="shape" transform="translate(514.026,-139.953)">		<title>Sheet.79</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape81-115" v:mid="81" v:groupcontext="shape" transform="translate(613.852,-154.757)">		<title>Sheet.81</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape82-118" v:mid="82" v:groupcontext="shape" transform="translate(626.044,-151.765)">		<title>Sheet.82</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape83-120" v:mid="83" v:groupcontext="shape" transform="translate(743.098,-121.682)">		<title>Sheet.83</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="47.25" cy="256.885" width="94.5" height="66.15"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L91.5 289.96 A3.00007 3.00007 -180 0 0 94.5 286.96 L94.5 226.81					 A3.00007 3.00007 -180 0 0 91.5 223.81 L3 223.81 A3.00007 3.00007 -180 0 0 0 226.81 L0 286.96 Z" class="st5"></path>		<text x="10.6" y="260.48" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape86-123" v:mid="86" v:groupcontext="shape" transform="translate(725.725,-154.757)">		<title>Sheet.86</title>		<path d="M0 289.96 L13.07 289.96" class="st6"></path>	</g>	<g id="shape87-126" v:mid="87" v:groupcontext="shape" transform="translate(737.917,-151.765)">		<title>Sheet.87</title>		<path d="M0 289.96 L5.18 286.97 L0 283.98 L0 289.96 Z" class="st7"></path>	</g>	<g id="shape89-128" v:mid="89" v:groupcontext="shape" transform="translate(399.834,-122.154)">		<title>Sheet.89</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="51" cy="267.752" width="102.01" height="44.415"></v:textrect>		<path d="M0 286.96 A3.00007 3.00007 -180 0 0 3 289.96 L99 289.96 A3.00007 3.00007 -180 0 0 102 286.96 L102 248.54 A3.00007					 3.00007 -180 0 0 99 245.54 L3 245.54 A3.00007 3.00007 -180 0 0 0 248.54 L0 286.96 Z" class="st5"></path>		<text x="4.29" y="271.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess</text>		</g>	<g id="group103-131" transform="translate(836.645,-14.7814)" v:mid="103" v:groupcontext="group">		<title>Sheet.103</title>		<g id="shape7-132" v:mid="7" v:groupcontext="shape" transform="translate(15.1882,0)">			<title>Sheet.7</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="26.9391" cy="283.66" width="53.88" height="12.6"></v:textrect>			<rect x="0" y="277.36" width="53.8782" height="12.6" class="st11"></rect>			<text x="0" y="286.81" class="st14" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape8-135" v:mid="8" v:groupcontext="shape" transform="translate(6.29496E-14,-0.218619)">			<title>Sheet.8</title>			<path d="M0 288.46 A1.50003 1.50003 -180 0 0 1.5 289.96 L10.5 289.96 A1.50003 1.50003 -180 0 0 12 288.46 L12 279.46						 A1.50003 1.50003 -180 0 0 10.5 277.96 L1.5 277.96 A1.50003 1.50003 -180 0 0 -0 279.46 L0 288.46 Z" class="st5"></path>		</g>		<g id="shape10-137" v:mid="10" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.10</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="283.66" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="277.36" width="21" height="12.6" class="st11"></rect>			<text x="0" y="287.15" class="st15" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape11-140" v:mid="11" v:groupcontext="shape" transform="translate(73.9363,-0.218619)">			<title>Sheet.11</title>			<path d="M0 288.46 A1.50003 1.50003 -180 0 0 1.5 289.96 L10.5 289.96 A1.50003 1.50003 -180 0 0 12 288.46 L12 279.46						 A1.50003 1.50003 -180 0 0 10.5 277.96 L1.5 277.96 A1.50003 1.50003 -180 0 0 -0 279.46 L0 288.46 Z" class="st3"></path>		</g>	</g></g>
</svg>

有关该 pipeline 中使用的插件的信息，请参见 [Pipeline 流](https://docs.qualcomm.com/doc/80-70022-50SC/topic/camera-detection-display.html#camera-detection-display__section_jbz_cbk_bdc)。

## 在目标设备上运行应用程序

1. 确保您已完成[前提条件](https://docs.qualcomm.com/doc/80-70022-50SC/topic/prerequisites-for-python-sample-applications.html)。
2. 运行以下任意用例：
    - 分别用主摄像头和辅助摄像头进行显示：
        - gst-ai-object-detection.py -c 0 -f 2 -m /etc/models/yolox_quantized.tflite -l /etc/labels/yolox.json -ml "yolov8"Copy to clipboard
        - gst-ai-object-detection.py -c 1 -f 2 -m /etc/models/yolox_quantized.tflite -l /etc/labels/yolox.json -ml "yolov8"Copy to clipboard
    - 使用视频文件输入进行显示：

            gst-ai-object-detection.py -s /etc/media/video.mp4 -f 2 -m /etc/models/yolox_quantized.tflite -l /etc/labels/yolox.json -ml "yolov8"Copy to clipboard
    - 带有 Qualcomm Neural Processing SDK runtime 的 YOLO-NAS：

            gst-ai-object-detection.py -f 1 -m /etc/models/yolonas.dlc -l /etc/labels/yolonas.json -ml "yolo-nas" --layers="/heads/Mul,/heads/Sigmoid"Copy to clipboard
    - YOLOv8 与 LiteRT：

            gst-ai-object-detection.py -f 2 -m /etc/models/yolov8_det_quantized.tflite -l /etc/labels/yolov8.json -ml "yolov8" Copy to clipboard
    - Note: `yolox_quantized.tflite` 和 `yolov8_det_quantized.tflite` 模型文件均使用 Yolov8 模块。

Table : 用于目标检测和显示的 python 应用程序的示例模型和标签文件

    | Runtime | 模型 | 标签 |
    | :--- | :--- | :--- |
    | LiteRT | <ul class="ul" id="camera-detection-display__ul_apq_cdm_pgc"><br>                                            <li class="li"><var class="keyword varname">yolov8_det_quantized.tflite</var></li><br><br>                                            <li class="li"><code class="ph codeph">yolox_quantized.tflite</code></li><br><br>                                        </ul> | <ul class="ul" id="camera-detection-display__ul_u2j_hdm_pgc"><br>                                            <li class="li"><em class="ph i"><code class="ph codeph">yolov8.json</code></em></li><br><br>                                            <li class="li"><em class="ph i"><code class="ph codeph">yolox.json</code></em></li><br><br>                                        </ul> |
    | Qualcomm Neural Processing SDK | <var class="keyword varname">yolonas.dlc</var> | <var class="keyword varname">yolonas.json</var> |
3. 要显示可用的帮助选项，请运行以下命令：

        gst-ai-object-detection.py -hCopy to clipboard

## 预期输出

Figure : 目标检测和显示应用程序的预期输出 - 预览
                
                ![](data:image/png;base64,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)

## Pipeline 流

| 处理过程 | 说明 |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtiqmmfsrc.html) | <ol class="ol" id="camera-detection-display__ol_l2f_zgm_vbc"><br>                                    <li class="li">采集视频流（源）并创建源的两个副本：<ul class="ul" id="camera-detection-display__ol_m2f_zgm_vbc"><br>                                            <li class="li">一个视频流被发送到 <a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimetamux.html">qtimetamux</a> 插件以保留视频流。</li><br><br>                                            <li class="li">另一个视频流被发送到 ML 推理 pipeline。</li><br><br>                                        </ul><br></li><br><br>                                </ol> |
| filesrc | 读取视频数据。 |
| **预处理** | **预处理** |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimlvconverter.html) | <ol class="ol" id="camera-detection-display__ol_xsf_q5l_vbc"><br>                                    <li class="li">在其接收端口上接收视频流。</li><br><br>                                    <li class="li">执行预处理：<ul class="ul" id="camera-detection-display__ul_ff2_twl_vbc"><br>                                            <li class="li">颜色转换</li><br><br>                                            <li class="li">缩小/放大</li><br><br>                                            <li class="li">在模型需要浮点值作为输入时，对流数据进行归一化</li><br><br>                                        </ul><br></li><br><br>                                    <li class="li">在其发送端口上将视频流转换为张量数据。<p class="p">目标检测模型使用此张量数据进行推理。</p><br></li><br><br>                                </ol> |
| **推理** | **推理** |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimltflite.html) | <ol class="ol" id="camera-detection-display__ol_ufn_2lm_vbc"><br>                                    <li class="li">加载目标检测模型。</li><br><br>                                    <li class="li">为选择的 delegate 修改图。</li><br><br>                                    <li class="li">在其接收端口上接收张量数据。</li><br><br>                                    <li class="li">运行推理并在其发送端上生成带有目标检测结果的张量数据。</li><br><br>                                </ol> |
| **后处理** | **后处理** |
| qtimlpostprocess | <ol class="ol" id="camera-detection-display__ol_w4p_bck_bdc"><br>                                    <li class="li"> 接收来自目标检测的推理张量。 </li><br><br>                                    <li class="li">将其接收端口上的推理张量转换为多媒体插件稍后可以处理的视频或文本等格式。</li><br><br>                                    <li class="li">将阈值应用于所选的结果数。 </li><br><br>                                    <li class="li">加载检测模型的相应模块。 <p class="p">在此用例中，qtimlpostprocess 执行以下操作：<br>                                            </p><ol class="ol" type="a" id="camera-detection-display__ol_jcd_wnk_5bc"><br>                                            <li class="li">加载 YOLOv8 子模块。 </li><br><br>                                            <li class="li">将结果生成为文本结构。</li><br><br>                                            <li class="li">接着发送到 qtimetamux 的接收端口。</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| [qtimetamux](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimetamux.html) | <ol class="ol" id="camera-detection-display__ol_ll3_x5l_vbc"><br>                                    <li class="li">在接收端口上接收视频流和文本流，以及与视频流相对应的边框结果。</li><br><br>                                    <li class="li">使用接收端口上的视频流内容生成 GST 缓存。</li><br><br>                                    <li class="li">将边框作为 GstVideoRegionOfInterest 从数据接收端添加到其发送端口上的 GST 缓存元数据（元复用）。</li><br><br>                                </ol> |
| [qtivoverlay](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtioverlay.html) | <ol class="ol" id="camera-detection-display__ol_wst_y5l_vbc"><br>                                    <li class="li">接收多路复用流。</li><br><br>                                    <li class="li">使用 CL 将边框叠加在 VideoFrame 上。 </li><br><br>                                    <li class="li">在其发送端口上生成带有叠加层的 GST 缓存。</li><br><br>                                </ol> |
| **输出** | **输出** |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50SC/topic/waylandsink.html) | <ol class="ol" id="camera-detection-display__ol_dyv_1lm_vbc"><br>                                    <li class="li">在其接收端口上接收视频流。</li><br><br>                                    <li class="li">将视频流提交到 Weston。 </li><br><br>                                    <li class="li">Weston 在本地显示设备上对该场景的目标生成的视频流和边框进行渲染。</li><br><br>                                </ol> |
| Filesink | 将视频写入文件。 |

## 相关信息

[目标检测](https://docs.qualcomm.com/doc/80-70022-50SC/topic/gst-ai-object-detection.html)

**Parent Topic:** [运行基于 Python 的应用程序](https://docs.qualcomm.com/doc/80-70022-50SC/topic/python-sample-applications.html)

Last Published: Nov 05, 2025

[Previous Topic
使用 Python 的多摄像头流](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/multi-camera-streaming-python-sample-app.md) [Next Topic
使用 RTSP 流进行解码和目标检测](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/rts-decode-ai-detection-yolo-v8-overlay-display.md)