# 目标检测

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

**gst-ai-object-detection** 应用程序可以检测图像和视频中的目标。这些用例展示了使用 Qualcomm Neural Processing SDK runtime 执行 [YOLOv5](https://github.com/ultralytics/yolov5)、[YOLOv8](https://github.com/ultralytics/ultralytics) 和 [YOLO-NAS](https://github.com/Megvii-BaseDetection/YOLOX/blob/main/README.md)，使用 Qualcomm AI Engine Direct 执行 YOLOv8，以及使用 LiteRT 执行 YOLOv5 和 YOLOv8。

下图展示了一个 pipeline：接收来自实时摄像头流、文件、USB 源或 RTSP 流的输入，对其进行预处理，然后在 AI 硬件上运行推理。结果可以显示在屏幕上，保存为编码的 MP4 文件，或通过 RTSP 服务器进行流传输。有关 pipeline 流中使用的插件的信息，请参见 [Pipeline 流](https://docs.qualcomm.com/doc/80-70022-50SC/topic/gst-ai-object-detection.html#gst-ai-object-detection__section_p2w_33y_kbc)。

Figure : gst-ai-object-detection pipeline
            
            <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export gst_ai_object_detection_pipeline.svg gst_ai_object_detection_pipelin -->
<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="14.5833in" height="5.10417in" viewbox="0 0 1050 367.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st15"><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: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #ffffff; font-family: Roboto; font-size: 0.874992em }
.svg-1 .st5 { fill: #007884; 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 { font-size: 1em }
.svg-1 .st9 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st10 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-1 .st11 { fill: none; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st12 { fill: none }
.svg-1 .st13 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st14 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-1 .st15 { 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>gst_ai_object_detection_pipelin</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape2-1" v:mid="2" v:groupcontext="shape" transform="translate(0.375092,-0.375108)">		<title>Sheet.2</title>		<path d="M0 361.88 A5.62513 5.62513 -180 0 0 5.62 367.5 L1043.62 367.5 A5.62513 5.62513 -180 0 0 1049.25 361.88 L1049.25					 6.38 A5.62513 5.62513 -180 0 0 1043.62 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 0 6.38 L0 361.88 Z" class="st1"></path>	</g>	<g id="shape3-3" v:mid="3" v:groupcontext="shape" transform="translate(1.27898E-13,-1.62725E-05)">		<title>Sheet.3</title>		<path d="M1044 0.75 C1046.89 0.75 1049.25 3.11 1049.25 6 L1049.25 361.5 C1049.25 364.39 1046.89 366.75 1044 366.75 L6					 366.75 C3.11 366.75 0.75 364.39 0.75 361.5 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L1044 0.75 ZM1044 0 L6 0					 C2.69 0 0 2.69 0 6 L0 361.5 C0 364.81 2.69 367.5 6 367.5 L1044 367.5 C1047.31 367.5 1050 364.81 1050 361.5					 L1050 6 C1050 2.69 1047.31 0 1044 0 Z" class="st2"></path>	</g>	<g id="shape5-5" v:mid="5" v:groupcontext="shape" transform="translate(796.78,-36.2843)">		<title>Sheet.5</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="39" cy="212.868" width="78.01" height="309.265"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L75 367.5 A3.00007 3.00007 -180 0 0 78 364.5 L78 61.24 A3.00007 3.00007					 -180 0 0 75 58.24 L3 58.24 A3.00007 3.00007 -180 0 0 -0 61.24 L0 364.5 Z" class="st3"></path>		<text x="6.94" y="216.47" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape6-8" v:mid="6" v:groupcontext="shape" transform="translate(388.118,-36.2843)">		<title>Sheet.6</title>		<desc>tee</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="22.526" cy="250.547" width="45.06" height="233.905"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L42.05 367.5 A3.00007 3.00007 -180 0 0 45.05 364.5 L45.05 136.59					 A3.00007 3.00007 -180 0 0 42.05 133.59 L3 133.59 A3.00007 3.00007 -180 0 0 -0 136.59 L0 364.5 Z" class="st5"></path>		<text x="15.25" y="254.15" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>tee</text>		</g>	<g id="shape7-11" v:mid="7" v:groupcontext="shape" transform="translate(54.5595,-124.615)">		<title>Sheet.7</title>		<desc>rtspsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="32.25" cy="345" width="64.5" height="45"></v:textrect>		<path d="M-0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L61.5 367.5 A3.00007 3.00007 -180 0 0 64.5 364.5 L64.5 325.5 A3.00007					 3.00007 -180 0 0 61.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="15.87" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>rtspsrc</text>		</g>	<g id="group8-14" transform="translate(119.059,-144.124)" v:mid="8" v:groupcontext="group">		<title>Sheet.8</title>		<g id="shape9-15" v:mid="9" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.9</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape10-18" v:mid="10" v:groupcontext="shape" transform="translate(8.60701,-5.68434E-14)">			<title>Sheet.10</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape11-20" v:mid="11" v:groupcontext="shape" transform="translate(45.0578,-147.115)">		<title>Sheet.11</title>		<path d="M0 367.5 L9.5 367.5" class="st6"></path>	</g>	<g id="shape12-23" v:mid="12" v:groupcontext="shape" transform="translate(132.9,-124.615)">		<title>Sheet.12</title>		<desc>rtph264 depay</desc>		<v:textblock v:margins="rect(3.6,0,0,0)"></v:textblock>		<v:textrect cx="35.625" cy="345" width="71.26" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L68.25 367.5 A3.00007 3.00007 -180 0 0 71.25 364.5 L71.25 325.5 A3.00007					 3.00007 -180 0 0 68.25 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="17.45" y="343.42" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>rtph264<v:newlinechar></v:newlinechar><tspan x="21.6" dy="1.107em" class="st8">depay </tspan> </text>		</g>	<g id="group13-27" transform="translate(204.15,-144.124)" v:mid="13" v:groupcontext="group">		<title>Sheet.13</title>		<g id="shape14-28" v:mid="14" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.14</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape15-31" v:mid="15" v:groupcontext="shape" transform="translate(8.607,-5.68434E-14)">			<title>Sheet.15</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape16-33" v:mid="16" v:groupcontext="shape" transform="translate(217.99,-124.615)">		<title>Sheet.16</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="35.625" cy="345" width="71.26" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L68.25 367.5 A3.00007 3.00007 -180 0 0 71.25 364.5 L71.25 325.5 A3.00007					 3.00007 -180 0 0 68.25 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="10.82" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="group17-36" transform="translate(289.24,-144.124)" v:mid="17" v:groupcontext="group">		<title>Sheet.17</title>		<g id="shape18-37" v:mid="18" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.18</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape19-40" v:mid="19" v:groupcontext="shape" transform="translate(8.607,-5.68434E-14)">			<title>Sheet.19</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape20-42" v:mid="20" v:groupcontext="shape" transform="translate(303.08,-124.615)">		<title>Sheet.20</title>		<desc>V4l2h264dec</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="35.625" cy="345" width="71.26" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L68.25 367.5 A3.00007 3.00007 -180 0 0 71.25 364.5 L71.25 325.5 A3.00007					 3.00007 -180 0 0 68.25 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="4.89" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>V4l2h264dec</text>		</g>	<g id="group21-45" transform="translate(374.33,-144.124)" v:mid="21" v:groupcontext="group">		<title>Sheet.21</title>		<g id="shape22-46" v:mid="22" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.22</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape23-49" v:mid="23" v:groupcontext="shape" transform="translate(8.607,-5.68434E-14)">			<title>Sheet.23</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="group24-51" transform="translate(433.17,-144.124)" v:mid="24" v:groupcontext="group">		<title>Sheet.24</title>		<g id="shape25-52" v:mid="25" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.25</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape26-55" v:mid="26" v:groupcontext="shape" transform="translate(8.607,-5.68434E-14)">			<title>Sheet.26</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape27-57" v:mid="27" v:groupcontext="shape" transform="translate(447.01,-124.615)">		<title>Sheet.27</title>		<desc>qtimlvconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="345" width="90.01" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 325.5 A3.00007 3.00007					 -180 0 0 87 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="8.6" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="group28-60" transform="translate(537.01,-144.124)" v:mid="28" v:groupcontext="group">		<title>Sheet.28</title>		<g id="shape29-61" v:mid="29" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.29</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape30-64" v:mid="30" v:groupcontext="shape" transform="translate(8.60701,-5.68434E-14)">			<title>Sheet.30</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape31-66" v:mid="31" v:groupcontext="shape" transform="translate(550.85,-124.615)">		<title>Sheet.31</title>		<desc>qtimltflite/qtimlsnpe/qtimlqnn</desc>		<v:textblock v:margins="rect(3.6,0,0,0)"></v:textblock>		<v:textrect cx="41.25" cy="345" width="82.51" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L79.5 367.5 A3.00007 3.00007 -180 0 0 82.5 364.5 L82.5 325.5 A3.00007					 3.00007 -180 0 0 79.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="16.66" y="338.18" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite/<tspan x="15.91" dy="1em" class="st8">qtimlsnpe/</tspan><tspan x="20.62" dy="1.107em" class="st8">qtimlqnn</tspan></text>		</g>	<g id="group32-71" transform="translate(633.35,-144.124)" v:mid="32" v:groupcontext="group">		<title>Sheet.32</title>		<g id="shape33-72" v:mid="33" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.33</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape34-75" v:mid="34" v:groupcontext="shape" transform="translate(8.60699,-5.68434E-14)">			<title>Sheet.34</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape35-77" v:mid="35" v:groupcontext="shape" transform="translate(647.19,-124.615)">		<title>Sheet.35</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="54.375" cy="345" width="108.75" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L105.75 367.5 A3.00007 3.00007 -180 0 0 108.75 364.5 L108.75 325.5					 A3.00007 3.00007 -180 0 0 105.75 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="13.51" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess  </text>		</g>	<g id="group36-80" transform="translate(755.94,-144.124)" v:mid="36" v:groupcontext="group">		<title>Sheet.36</title>		<g id="shape37-81" v:mid="37" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.37</title>			<path d="M0 367.5 L36.48 367.5" class="st6"></path>		</g>		<g id="shape38-84" v:mid="38" v:groupcontext="shape" transform="translate(35.607,-5.68434E-14)">			<title>Sheet.38</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape48-86" v:mid="48" v:groupcontext="shape" transform="translate(759.513,-149.4)">		<title>Sheet.48</title>		<desc>sink_1</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_1</text>		</g>	<g id="group49-89" transform="translate(433.17,-174.122)" v:mid="49" v:groupcontext="group">		<title>Sheet.49</title>		<g id="shape50-90" v:mid="50" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.50</title>			<path d="M0 367.5 L359.25 367.5" class="st6"></path>		</g>		<g id="shape51-93" v:mid="51" v:groupcontext="shape" transform="translate(358.377,1.13687E-13)">			<title>Sheet.51</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape52-95" v:mid="52" v:groupcontext="shape" transform="translate(759.513,-180)">		<title>Sheet.52</title>		<desc>sink_0</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_0</text>		</g>	<g id="group53-98" transform="translate(433.17,-55.7925)" v:mid="53" v:groupcontext="group">		<title>Sheet.53</title>		<g id="shape54-99" v:mid="54" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.54</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape55-102" v:mid="55" v:groupcontext="shape" transform="translate(8.607,-5.68434E-14)">			<title>Sheet.55</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape56-104" v:mid="56" v:groupcontext="shape" transform="translate(447.01,-36.2843)">		<title>Sheet.56</title>		<desc>qtimlvconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="345" width="90.01" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 325.5 A3.00007 3.00007					 -180 0 0 87 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="8.6" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="group57-107" transform="translate(537.01,-55.7925)" v:mid="57" v:groupcontext="group">		<title>Sheet.57</title>		<g id="shape58-108" v:mid="58" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.58</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape59-111" v:mid="59" v:groupcontext="shape" transform="translate(8.60701,-5.68434E-14)">			<title>Sheet.59</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape60-113" v:mid="60" v:groupcontext="shape" transform="translate(550.85,-36.2843)">		<title>Sheet.60</title>		<desc>qtimltflite/qtimlsnpe/qtimlqnn</desc>		<v:textblock v:margins="rect(3.6,0,0,0)"></v:textblock>		<v:textrect cx="41.25" cy="345" width="82.51" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L79.5 367.5 A3.00007 3.00007 -180 0 0 82.5 364.5 L82.5 325.5 A3.00007					 3.00007 -180 0 0 79.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="16.66" y="338.18" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite/<tspan x="15.91" dy="1em" class="st8">qtimlsnpe/</tspan><tspan x="20.62" dy="1.107em" class="st8">qtimlqnn</tspan></text>		</g>	<g id="group61-118" transform="translate(633.35,-55.7925)" v:mid="61" v:groupcontext="group">		<title>Sheet.61</title>		<g id="shape62-119" v:mid="62" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.62</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape63-122" v:mid="63" v:groupcontext="shape" transform="translate(8.60699,-5.68434E-14)">			<title>Sheet.63</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape64-124" v:mid="64" v:groupcontext="shape" transform="translate(647.19,-36.2843)">		<title>Sheet.64</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="54.375" cy="345" width="108.75" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L105.75 367.5 A3.00007 3.00007 -180 0 0 108.75 364.5 L108.75 325.5					 A3.00007 3.00007 -180 0 0 105.75 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="13.51" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess  </text>		</g>	<g id="group65-127" transform="translate(755.94,-55.7925)" v:mid="65" v:groupcontext="group">		<title>Sheet.65</title>		<g id="shape66-128" v:mid="66" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.66</title>			<path d="M0 367.5 L36.48 367.5" class="st6"></path>		</g>		<g id="shape67-131" v:mid="67" v:groupcontext="shape" transform="translate(35.607,-5.68434E-14)">			<title>Sheet.67</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape71-133" v:mid="71" v:groupcontext="shape" transform="translate(759.513,-60.5457)">		<title>Sheet.71</title>		<desc>sink_1</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_1</text>		</g>	<g id="group72-136" transform="translate(433.17,-85.7908)" v:mid="72" v:groupcontext="group">		<title>Sheet.72</title>		<g id="shape73-137" v:mid="73" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.73</title>			<path d="M0 367.5 L359.25 367.5" class="st6"></path>		</g>		<g id="shape74-140" v:mid="74" v:groupcontext="shape" transform="translate(358.377,1.13687E-13)">			<title>Sheet.74</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape75-142" v:mid="75" v:groupcontext="shape" transform="translate(759.513,-90.9)">		<title>Sheet.75</title>		<desc>sink_0</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_0</text>		</g>	<g id="shape76-145" v:mid="76" v:groupcontext="shape" transform="translate(17.3855,-312.978)">		<title>Sheet.76</title>		<path d="M16.88 345.9 L10.13 345.9 L6.75 349.95 L2.7 349.95 C1.21 349.95 0 351.16 0 352.65 L0 364.8 C0 366.29 1.21 367.5					 2.7 367.5 L24.3 367.5 C25.79 367.5 27 366.29 27 364.8 L27 352.65 C27 351.16 25.79 349.95 24.3 349.95 L20.25					 349.95 L16.88 345.9 Z" class="st11"></path>	</g>	<g id="shape77-147" v:mid="77" v:groupcontext="shape" transform="translate(26.8355,-319.728)">		<title>Sheet.77</title>		<ellipse cx="4.05" cy="363.45" rx="4.05" ry="4.05" class="st11"></ellipse>	</g>	<g id="shape78-149" v:mid="78" v:groupcontext="shape" transform="translate(17.3855,-218.572)">		<title>Sheet.78</title>		<path d="M18.56 333.75 L3.38 333.75 C1.51 333.75 0 335.26 0 337.13 L0 364.13 C0 365.99 1.51 367.5 3.38 367.5 L23.63 367.5					 C25.49 367.5 27 365.99 27 364.13 L27 342.19 L18.56 333.75 Z" class="st11"></path>	</g>	<g id="shape79-151" v:mid="79" v:groupcontext="shape" transform="translate(34.2605,-242.197)">		<title>Sheet.79</title>		<path d="M0 357.38 L0 364.13 C0 365.99 1.51 367.5 3.38 367.5 L10.13 367.5 L0 357.38 Z" class="st12"></path>		<path d="M0 357.38 L0 364.13 C0 365.99 1.51 367.5 3.38 367.5 L10.13 367.5" class="st13"></path>	</g>	<g id="shape80-154" v:mid="80" v:groupcontext="shape" transform="translate(27.5105,-227.009)">		<title>Sheet.80</title>		<path d="M0 357.38 L8.44 362.44 L0 367.5 L0 357.38 Z" class="st11"></path>	</g>	<g id="shape81-156" v:mid="81" v:groupcontext="shape" transform="translate(28.1854,-142.623)">		<title>Sheet.81</title>		<path d="M0 360.27 C0 359.71 0.46 359.26 1.01 359.26 C1.2 359.26 1.38 359.31 1.54 359.41 L6.49 362.44 C6.96 362.74 7.11					 363.36 6.82 363.84 C6.74 363.97 6.62 364.09 6.49 364.17 L1.54 367.21 C1.07 367.5 0.44 367.35 0.15 366.87					 C0.05 366.71 0 366.53 0 366.34 L0 360.27 Z" class="st11"></path>	</g>	<g id="shape82-158" v:mid="82" v:groupcontext="shape" transform="translate(24.1355,-131.965)">		<title>Sheet.82</title>		<path d="M0 367.5 L13.5 367.5 L0 367.5 Z" class="st12"></path>		<path d="M0 367.5 L13.5 367.5" class="st13"></path>	</g>	<g id="shape83-161" v:mid="83" v:groupcontext="shape" transform="translate(17.3855,-137.365)">		<title>Sheet.83</title>		<path d="M0 366 A1.50003 1.50003 -180 0 0 1.5 367.5 L25.5 367.5 A1.50003 1.50003 -180 0 0 27 366 L27 350.1 A1.50003 1.50003					 -180 0 0 25.5 348.6 L1.5 348.6 A1.50003 1.50003 -180 0 0 0 350.1 L0 366 Z" class="st11"></path>	</g>	<g id="shape84-163" v:mid="84" v:groupcontext="shape" transform="translate(54.5595,-212.947)">		<title>Sheet.84</title>		<desc>filesrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="32.25" cy="345" width="64.5" height="45"></v:textrect>		<path d="M-0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L61.5 367.5 A3.00007 3.00007 -180 0 0 64.5 364.5 L64.5 325.5 A3.00007					 3.00007 -180 0 0 61.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="17.87" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesrc</text>		</g>	<g id="group85-166" transform="translate(119.059,-232.455)" v:mid="85" v:groupcontext="group">		<title>Sheet.85</title>		<g id="shape86-167" v:mid="86" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.86</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape87-170" v:mid="87" v:groupcontext="shape" transform="translate(8.60701,1.13687E-13)">			<title>Sheet.87</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape88-172" v:mid="88" v:groupcontext="shape" transform="translate(45.0578,-235.447)">		<title>Sheet.88</title>		<path d="M0 367.5 L9.5 367.5" class="st6"></path>	</g>	<g id="shape89-175" v:mid="89" v:groupcontext="shape" transform="translate(132.9,-212.947)">		<title>Sheet.89</title>		<desc>qtdemux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="35.625" cy="345" width="71.26" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L68.25 367.5 A3.00007 3.00007 -180 0 0 71.25 364.5 L71.25 325.5 A3.00007					 3.00007 -180 0 0 68.25 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="15.09" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtdemux</text>		</g>	<g id="group90-178" transform="translate(204.15,-232.455)" v:mid="90" v:groupcontext="group">		<title>Sheet.90</title>		<g id="shape91-179" v:mid="91" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.91</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape92-182" v:mid="92" v:groupcontext="shape" transform="translate(8.607,1.13687E-13)">			<title>Sheet.92</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape93-184" v:mid="93" v:groupcontext="shape" transform="translate(217.99,-212.947)">		<title>Sheet.93</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="35.625" cy="345" width="71.26" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L68.25 367.5 A3.00007 3.00007 -180 0 0 71.25 364.5 L71.25 325.5 A3.00007					 3.00007 -180 0 0 68.25 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="10.82" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="group94-187" transform="translate(289.24,-232.455)" v:mid="94" v:groupcontext="group">		<title>Sheet.94</title>		<g id="shape95-188" v:mid="95" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.95</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape96-191" v:mid="96" v:groupcontext="shape" transform="translate(8.607,1.13687E-13)">			<title>Sheet.96</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape97-193" v:mid="97" v:groupcontext="shape" transform="translate(303.08,-212.947)">		<title>Sheet.97</title>		<desc>V4l2h264dec</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="35.625" cy="345" width="71.26" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L68.25 367.5 A3.00007 3.00007 -180 0 0 71.25 364.5 L71.25 325.5 A3.00007					 3.00007 -180 0 0 68.25 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="4.89" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>V4l2h264dec</text>		</g>	<g id="group98-196" transform="translate(374.33,-232.455)" v:mid="98" v:groupcontext="group">		<title>Sheet.98</title>		<g id="shape99-197" v:mid="99" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.99</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape100-200" v:mid="100" v:groupcontext="shape" transform="translate(8.607,1.13687E-13)">			<title>Sheet.100</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="group101-202" transform="translate(433.17,-232.455)" v:mid="101" v:groupcontext="group">		<title>Sheet.101</title>		<g id="shape102-203" v:mid="102" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.102</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape103-206" v:mid="103" v:groupcontext="shape" transform="translate(8.607,1.13687E-13)">			<title>Sheet.103</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape104-208" v:mid="104" v:groupcontext="shape" transform="translate(447.01,-212.947)">		<title>Sheet.104</title>		<desc>qtimlvconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="345" width="90.01" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 325.5 A3.00007 3.00007					 -180 0 0 87 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="8.6" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="group105-211" transform="translate(537.01,-232.455)" v:mid="105" v:groupcontext="group">		<title>Sheet.105</title>		<g id="shape106-212" v:mid="106" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.106</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape107-215" v:mid="107" v:groupcontext="shape" transform="translate(8.60701,1.13687E-13)">			<title>Sheet.107</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape108-217" v:mid="108" v:groupcontext="shape" transform="translate(550.85,-212.947)">		<title>Sheet.108</title>		<desc>qtimltflite/qtimlsnpe/qtimlqnn</desc>		<v:textblock v:margins="rect(3.6,0,0,0)"></v:textblock>		<v:textrect cx="41.25" cy="345" width="82.51" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L79.5 367.5 A3.00007 3.00007 -180 0 0 82.5 364.5 L82.5 325.5 A3.00007					 3.00007 -180 0 0 79.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="16.66" y="338.18" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite/<tspan x="15.91" dy="1em" class="st8">qtimlsnpe/</tspan><tspan x="20.62" dy="1.107em" class="st8">qtimlqnn</tspan></text>		</g>	<g id="group109-222" transform="translate(633.35,-232.455)" v:mid="109" v:groupcontext="group">		<title>Sheet.109</title>		<g id="shape110-223" v:mid="110" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.110</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape111-226" v:mid="111" v:groupcontext="shape" transform="translate(8.60699,1.13687E-13)">			<title>Sheet.111</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape112-228" v:mid="112" v:groupcontext="shape" transform="translate(647.19,-212.947)">		<title>Sheet.112</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="54.375" cy="345" width="108.75" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L105.75 367.5 A3.00007 3.00007 -180 0 0 108.75 364.5 L108.75 325.5					 A3.00007 3.00007 -180 0 0 105.75 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="13.51" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess  </text>		</g>	<g id="group113-231" transform="translate(755.94,-232.455)" v:mid="113" v:groupcontext="group">		<title>Sheet.113</title>		<g id="shape114-232" v:mid="114" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.114</title>			<path d="M0 367.5 L36.48 367.5" class="st6"></path>		</g>		<g id="shape115-235" v:mid="115" v:groupcontext="shape" transform="translate(35.607,1.13687E-13)">			<title>Sheet.115</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape123-237" v:mid="123" v:groupcontext="shape" transform="translate(759.513,-238.5)">		<title>Sheet.123</title>		<desc>sink_1</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_1</text>		</g>	<g id="group124-240" transform="translate(433.17,-262.456)" v:mid="124" v:groupcontext="group">		<title>Sheet.124</title>		<g id="shape125-241" v:mid="125" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.125</title>			<path d="M0 367.5 L359.25 367.5" class="st6"></path>		</g>		<g id="shape126-244" v:mid="126" v:groupcontext="shape" transform="translate(358.377,1.13687E-13)">			<title>Sheet.126</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape127-246" v:mid="127" v:groupcontext="shape" transform="translate(759.513,-268.2)">		<title>Sheet.127</title>		<desc>sink_0</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_0</text>		</g>	<g id="shape128-249" v:mid="128" v:groupcontext="shape" transform="translate(54.5595,-301.278)">		<title>Sheet.128</title>		<desc>qtiqmmfsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="32.25" cy="345" width="64.5" height="45"></v:textrect>		<path d="M-0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L61.5 367.5 A3.00007 3.00007 -180 0 0 64.5 364.5 L64.5 325.5 A3.00007					 3.00007 -180 0 0 61.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st3"></path>		<text x="5.04" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtiqmmfsrc</text>		</g>	<g id="shape129-252" v:mid="129" v:groupcontext="shape" transform="translate(45.0578,-323.778)">		<title>Sheet.129</title>		<path d="M0 367.5 L9.5 367.5" class="st6"></path>	</g>	<g id="shape130-255" v:mid="130" v:groupcontext="shape" transform="translate(447.01,-286.278)">		<title>Sheet.130</title>		<desc>qtimlvconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="345" width="90.01" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 325.5 A3.00007 3.00007					 -180 0 0 87 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="8.6" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlvconverter</text>		</g>	<g id="group131-258" transform="translate(537.01,-305.786)" v:mid="131" v:groupcontext="group">		<title>Sheet.131</title>		<g id="shape132-259" v:mid="132" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.132</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape133-262" v:mid="133" v:groupcontext="shape" transform="translate(8.60701,1.7053E-13)">			<title>Sheet.133</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape134-264" v:mid="134" v:groupcontext="shape" transform="translate(550.85,-286.278)">		<title>Sheet.134</title>		<desc>qtimltflite/qtimlsnpe/qtimlqnn</desc>		<v:textblock v:margins="rect(3.6,0,0,0)"></v:textblock>		<v:textrect cx="41.25" cy="345" width="82.51" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L79.5 367.5 A3.00007 3.00007 -180 0 0 82.5 364.5 L82.5 325.5 A3.00007					 3.00007 -180 0 0 79.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="16.66" y="338.18" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite/<tspan x="15.91" dy="1em" class="st8">qtimlsnpe/</tspan><tspan x="20.62" dy="1.107em" class="st8">qtimlqnn</tspan></text>		</g>	<g id="group135-269" transform="translate(633.35,-305.786)" v:mid="135" v:groupcontext="group">		<title>Sheet.135</title>		<g id="shape136-270" v:mid="136" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.136</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape137-273" v:mid="137" v:groupcontext="shape" transform="translate(8.60699,1.7053E-13)">			<title>Sheet.137</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape138-275" v:mid="138" v:groupcontext="shape" transform="translate(647.19,-286.278)">		<title>Sheet.138</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="54.375" cy="345" width="108.75" height="45"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L105.75 367.5 A3.00007 3.00007 -180 0 0 108.75 364.5 L108.75 325.5					 A3.00007 3.00007 -180 0 0 105.75 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st3"></path>		<text x="13.51" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess  </text>		</g>	<g id="group139-278" transform="translate(755.94,-305.786)" v:mid="139" v:groupcontext="group">		<title>Sheet.139</title>		<g id="shape140-279" v:mid="140" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.140</title>			<path d="M0 367.5 L36.48 367.5" class="st6"></path>		</g>		<g id="shape141-282" v:mid="141" v:groupcontext="shape" transform="translate(35.607,1.7053E-13)">			<title>Sheet.141</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape146-284" v:mid="146" v:groupcontext="shape" transform="translate(759.513,-310.5)">		<title>Sheet.146</title>		<desc>sink_1</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_1</text>		</g>	<g id="group147-287" transform="translate(119.059,-335.786)" v:mid="147" v:groupcontext="group">		<title>Sheet.147</title>		<g id="shape148-288" v:mid="148" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.148</title>			<path d="M0 367.5 L673.36 367.5" class="st6"></path>		</g>		<g id="shape149-291" v:mid="149" v:groupcontext="shape" transform="translate(672.488,1.7053E-13)">			<title>Sheet.149</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape150-293" v:mid="150" v:groupcontext="shape" transform="translate(759.513,-341.212)">		<title>Sheet.150</title>		<desc>sink_0</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="31.5" cy="361.2" width="63.01" height="12.6"></v:textrect>		<rect x="0" y="354.9" width="63" height="12.6" class="st9"></rect>		<text x="0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>sink_0</text>		</g>	<g id="shape158-296" v:mid="158" v:groupcontext="shape" transform="translate(54.5595,-36.2843)">		<title>Sheet.158</title>		<desc>v4l2src</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="32.25" cy="345" width="64.5" height="45"></v:textrect>		<path d="M-0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L61.5 367.5 A3.00007 3.00007 -180 0 0 64.5 364.5 L64.5 325.5 A3.00007					 3.00007 -180 0 0 61.5 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 -0 325.5 L0 364.5 Z" class="st5"></path>		<text x="15.31" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2src</text>		</g>	<g id="group159-299" transform="translate(119.059,-55.7926)" v:mid="159" v:groupcontext="group">		<title>Sheet.159</title>		<g id="shape160-300" v:mid="160" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.160</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape161-303" v:mid="161" v:groupcontext="shape" transform="translate(8.60701,1.13687E-13)">			<title>Sheet.161</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape162-305" v:mid="162" v:groupcontext="shape" transform="translate(45.0578,-58.7843)">		<title>Sheet.162</title>		<path d="M0 367.5 L9.5 367.5" class="st6"></path>	</g>	<g id="shape163-308" v:mid="163" v:groupcontext="shape" transform="translate(132.9,-36.2843)">		<title>Sheet.163</title>		<desc>v4l2src_caps</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="39.375" cy="345" width="78.75" height="45"></v:textrect>		<path d="M-0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L75.75 367.5 A3.00007 3.00007 -180 0 0 78.75 364.5 L78.75 325.5					 A3.00007 3.00007 -180 0 0 75.75 322.5 L3 322.5 A3.00007 3.00007 -180 0 0 0 325.5 L0 364.5 Z" class="st5"></path>		<text x="8.81" y="348.6" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2src_caps</text>		</g>	<g id="group164-311" transform="translate(211.65,-55.7926)" v:mid="164" v:groupcontext="group">		<title>Sheet.164</title>		<g id="shape165-312" v:mid="165" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.165</title>			<path d="M0 367.5 L172.16 367.5" class="st6"></path>		</g>		<g id="shape166-315" v:mid="166" v:groupcontext="shape" transform="translate(171.287,1.13687E-13)">			<title>Sheet.166</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="group169-317" transform="translate(20.532,-40.3601)" v:mid="169" v:groupcontext="group">		<title>Sheet.169</title>		<g id="shape170-318" v:mid="170" v:groupcontext="shape" transform="translate(-1.9984E-13,-6.00405)">			<title>Sheet.170</title>			<ellipse cx="12.0081" cy="355.492" rx="12.0081" ry="12.0081" class="st11"></ellipse>		</g>		<g id="shape171-320" v:mid="171" v:groupcontext="shape" transform="translate(7.50506,-13.5091)">			<title>Sheet.171</title>			<ellipse cx="4.50304" cy="362.997" rx="4.50304" ry="4.50304" class="st11"></ellipse>		</g>		<g id="shape172-322" v:mid="172" v:groupcontext="shape" transform="translate(4.50304,0)">			<title>Sheet.172</title>			<path d="M0 367.5 L15.01 367.5 L0 367.5 Z" class="st12"></path>			<path d="M0 367.5 L15.01 367.5" class="st13"></path>		</g>		<g id="shape173-325" v:mid="173" v:groupcontext="shape" transform="translate(12.0081,-5.68434E-14)">			<title>Sheet.173</title>			<path d="M0 367.5 L0 361.5 L0 367.5 Z" class="st12"></path>			<path d="M0 367.5 L0 361.5" class="st13"></path>		</g>	</g>	<g id="group176-328" transform="translate(874.832,-295.323)" v:mid="176" v:groupcontext="group">		<title>Sheet.176</title>		<g id="shape177-329" v:mid="177" v:groupcontext="shape" transform="translate(0,-2.9918)">			<title>Sheet.177</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape178-332" v:mid="178" v:groupcontext="shape" transform="translate(8.60701,1.7053E-13)">			<title>Sheet.178</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape180-334" v:mid="180" v:groupcontext="shape" transform="translate(989.324,-289.621)">		<title>Sheet.180</title>		<path d="M-0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L27 367.5 A3.00007 3.00007 -180 0 0 30 364.5 L30 349.5 A3.00007					 3.00007 -180 0 0 27 346.5 L3 346.5 A3.00007 3.00007 -180 0 0 -0 349.5 L0 364.5 Z" class="st11"></path>	</g>	<g id="shape181-336" v:mid="181" v:groupcontext="shape" transform="translate(998.324,-283.621)">		<title>Sheet.181</title>		<path d="M0 367.5 L12 367.5" class="st13"></path>	</g>	<g id="shape182-339" v:mid="182" v:groupcontext="shape" transform="translate(1371.82,77.8788) rotate(90)">		<title>Sheet.182</title>		<path d="M0 367.5 L6 367.5" class="st13"></path>	</g>	<g id="shape183-342" v:mid="183" v:groupcontext="shape" transform="translate(978.079,-298.314)">		<title>Sheet.183</title>		<path d="M0 367.5 L11.25 367.5" class="st6"></path>	</g>	<g id="shape184-345" v:mid="184" v:groupcontext="shape" transform="translate(888.672,-270.189)">		<title>Sheet.184</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="339.375" width="90.01" height="56.25"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 314.25 A3.00007					 3.00007 -180 0 0 87 311.25 L3 311.25 A3.00007 3.00007 -180 0 0 -0 314.25 L0 364.5 Z" class="st5"></path>		<text x="15.48" y="342.97" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink  </text>		</g>	<g id="group187-348" transform="translate(874.78,-187.925)" v:mid="187" v:groupcontext="group">		<title>Sheet.187</title>		<g id="shape188-349" v:mid="188" v:groupcontext="shape" transform="translate(0,-2.99178)">			<title>Sheet.188</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape189-352" v:mid="189" v:groupcontext="shape" transform="translate(8.60696,0)">			<title>Sheet.189</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape191-354" v:mid="191" v:groupcontext="shape" transform="translate(978.079,-190.917)">		<title>Sheet.191</title>		<path d="M0 367.5 L12 367.5" class="st6"></path>	</g>	<g id="shape192-357" v:mid="192" v:groupcontext="shape" transform="translate(888.672,-162.792)">		<title>Sheet.192</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="339.375" width="90.01" height="56.25"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 314.25 A3.00007					 3.00007 -180 0 0 87 311.25 L3 311.25 A3.00007 3.00007 -180 0 0 -0 314.25 L0 364.5 Z" class="st5"></path>		<text x="28.31" y="342.97" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink  </text>		</g>	<g id="shape194-360" v:mid="194" v:groupcontext="shape" transform="translate(990.824,-174.042)">		<title>Sheet.194</title>		<path d="M18.56 333.75 L3.37 333.75 C1.51 333.75 0 335.26 0 337.13 L0 364.13 C0 365.99 1.51 367.5 3.37 367.5 L23.62 367.5					 C25.49 367.5 27 365.99 27 364.13 L27 342.19 L18.56 333.75 Z" class="st11"></path>	</g>	<g id="shape195-362" v:mid="195" v:groupcontext="shape" transform="translate(1007.7,-197.667)">		<title>Sheet.195</title>		<path d="M0 357.38 L0 364.13 C0 365.99 1.51 367.5 3.37 367.5 L10.12 367.5 L0 357.38 Z" class="st12"></path>		<path d="M0 357.38 L0 364.13 C0 365.99 1.51 367.5 3.37 367.5 L10.12 367.5" class="st13"></path>	</g>	<g id="shape196-365" v:mid="196" v:groupcontext="shape" transform="translate(1000.95,-182.479)">		<title>Sheet.196</title>		<path d="M0 357.38 L8.44 362.44 L0 367.5 L0 357.38 Z" class="st11"></path>	</g>	<g id="group198-367" transform="translate(874.78,-80.5272)" v:mid="198" v:groupcontext="group">		<title>Sheet.198</title>		<g id="shape199-368" v:mid="199" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.199</title>			<path d="M0 367.5 L9.48 367.5" class="st6"></path>		</g>		<g id="shape200-371" v:mid="200" v:groupcontext="shape" transform="translate(8.60696,1.13687E-13)">			<title>Sheet.200</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="shape202-373" v:mid="202" v:groupcontext="shape" transform="translate(978.079,-83.519)">		<title>Sheet.202</title>		<path d="M0 367.5 L11.25 367.5" class="st6"></path>	</g>	<g id="shape203-376" v:mid="203" v:groupcontext="shape" transform="translate(888.672,-55.394)">		<title>Sheet.203</title>		<desc>qtirtspbin</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="339.375" width="90.01" height="56.25"></v:textrect>		<path d="M0 364.5 A3.00007 3.00007 -180 0 0 3 367.5 L87 367.5 A3.00007 3.00007 -180 0 0 90 364.5 L90 314.25 A3.00007					 3.00007 -180 0 0 87 311.25 L3 311.25 A3.00007 3.00007 -180 0 0 -0 314.25 L0 364.5 Z" class="st5"></path>		<text x="22.77" y="342.97" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtirtspbin</text>		</g>	<g id="shape205-379" v:mid="205" v:groupcontext="shape" transform="translate(1001.32,-80.6674)">		<title>Sheet.205</title>		<path d="M0 359.47 C0 358.85 0.51 358.34 1.13 358.34 C1.33 358.34 1.54 358.4 1.71 358.51 L7.21 361.88 C7.74 362.21 7.9					 362.9 7.58 363.43 C7.49 363.58 7.36 363.71 7.21 363.8 L1.71 367.18 C1.18 367.5 0.49 367.33 0.17 366.8 C0.06					 366.63 0 366.42 0 366.22 L0 359.47 Z" class="st11"></path>	</g>	<g id="shape206-381" v:mid="206" v:groupcontext="shape" transform="translate(996.824,-68.8257)">		<title>Sheet.206</title>		<path d="M0 367.5 L15 367.5 L0 367.5 Z" class="st12"></path>		<path d="M0 367.5 L15 367.5" class="st13"></path>	</g>	<g id="shape207-384" v:mid="207" v:groupcontext="shape" transform="translate(989.324,-74.8257)">		<title>Sheet.207</title>		<path d="M-0 366 A1.50003 1.50003 -180 0 0 1.5 367.5 L28.5 367.5 A1.50003 1.50003 -180 0 0 30 366 L30 348 A1.50003 1.50003					 -180 0 0 28.5 346.5 L1.5 346.5 A1.50003 1.50003 -180 0 0 -0 348 L0 366 Z" class="st11"></path>	</g>	<g id="group208-386" transform="translate(119.06,-305.786)" v:mid="208" v:groupcontext="group">		<title>Sheet.208</title>		<g id="shape209-387" v:mid="209" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.209</title>			<path d="M0 367.5 L323.59 367.5" class="st6"></path>		</g>		<g id="shape210-390" v:mid="210" v:groupcontext="shape" transform="translate(322.717,1.7053E-13)">			<title>Sheet.210</title>			<path d="M0 367.5 L5.18 364.51 L0 361.52 L0 367.5 Z" class="st7"></path>		</g>	</g>	<g id="group211-392" transform="translate(909.199,-12.0674)" v:mid="211" v:groupcontext="group">		<title>Sheet.211</title>		<g id="shape153-393" v:mid="153" v:groupcontext="shape" transform="translate(15.1882,0)">			<title>Sheet.153</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="26.99" cy="361.2" width="53.99" height="12.6"></v:textrect>			<rect x="0" y="354.9" width="53.9801" height="12.6" class="st9"></rect>			<text x="-0" y="364.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape154-396" v:mid="154" v:groupcontext="shape" transform="translate(6.29496E-14,-0.218627)">			<title>Sheet.154</title>			<path d="M0 366 A1.50003 1.50003 -180 0 0 1.5 367.5 L10.5 367.5 A1.50003 1.50003 -180 0 0 12 366 L12 357 A1.50003						 1.50003 -180 0 0 10.5 355.5 L1.5 355.5 A1.50003 1.50003 -180 0 0 0 357 L0 366 Z" class="st3"></path>		</g>		<g id="shape156-398" v:mid="156" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.156</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="361.2" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="354.9" width="21" height="12.6" class="st9"></rect>			<text x="0" y="364.69" class="st14" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape157-401" v:mid="157" v:groupcontext="shape" transform="translate(73.9363,-0.218627)">			<title>Sheet.157</title>			<path d="M0 366 A1.50003 1.50003 -180 0 0 1.5 367.5 L10.5 367.5 A1.50003 1.50003 -180 0 0 12 366 L12 357 A1.50003						 1.50003 -180 0 0 10.5 355.5 L1.5 355.5 A1.50003 1.50003 -180 0 0 0 357 L0 366 Z" class="st5"></path>		</g>	</g></g>
</svg>

## 示例模型和标签文件

| Runtime | 模型文件 | 标签文件 |
| --- | --- | --- |
| Qualcomm Neural Processing SDK | *yolonas.dlc* | <ul class="ul" id="gst-ai-object-detection__ul_qhr_1qq_32c"><br>                                    <li class="li"><em class="ph i">yolonas.json</em></li><br><br>                                    <li class="li"><em class="ph i">yolov8.json</em></li><br><br>                                    <li class="li"><em class="ph i">yolox.json</em></li><br><br>                                </ul> |
| LiteRT | *yolov8\_det\_quantized.tflite*<br><br><br>                                <br>*yolox\_quantized.tflite* | <ul class="ul" id="gst-ai-object-detection__ul_qhr_1qq_32c"><br>                                    <li class="li"><em class="ph i">yolonas.json</em></li><br><br>                                    <li class="li"><em class="ph i">yolov8.json</em></li><br><br>                                    <li class="li"><em class="ph i">yolox.json</em></li><br><br>                                </ul> |
| Qualcomm AI Engine Direct | *yolov8\_det\_quantized.bin* | <ul class="ul" id="gst-ai-object-detection__ul_qhr_1qq_32c"><br>                                    <li class="li"><em class="ph i">yolonas.json</em></li><br><br>                                    <li class="li"><em class="ph i">yolov8.json</em></li><br><br>                                    <li class="li"><em class="ph i">yolox.json</em></li><br><br>                                </ul> |
|  |  |  |
|  |  |  |

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

示例应用程序使用 /etc/configs/config\_detection.json文件读取输入参数。

要创建自己的 config JSON 文件，请使用 [config_detection.json](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/blob/imsdk.lnx.2.0.0.r2-rel/gst-sample-apps/gst-ai-object-detection/config_detection.json?ref_type=heads) 作为参考。

1. 确保您已完成[前提条件](https://docs.qualcomm.com/doc/80-70022-50SC/topic/download-model-and-label-files.html)。
2. 根据模型、输入流和其他属性更新 config JSON 文件。关于更多详细信息，请参阅 [Config JSON 字段说明](https://docs.qualcomm.com/doc/80-70022-50SC/topic/gst-ai-object-detection.html#gst-ai-object-detection__section_qjx_hqq_32c)。
3. 使用以下格式的 /etc/configs/config\_detection.json文件：

        {
          "file-path": "<input video path>",
          "ml-framework": "<snpe, or tflite or qnn framework>",
          "yolo-model-type": "<yolov8 or yolonas or yolov5 or yolox>",
          "model": "<Model Path>",
          "labels": "<Label Path>",
          "threshold": "<Post-processing threshold, integer value from 1-100>",
          "runtime": "<dsp, cpu or gpu runtime>",
          "output-type": "waylandsink or filesink or rtspsink"
        }Copy to clipboard

    例如，使用来自视频文件、LiteRT、YOLOx 模型、DSP runtime 和自定义阈值的输入运行应用程序：

        {
          "file-path": "/etc/media/video.mp4",
          "ml-framework": "tflite",
          "yolo-model-type": "yolox",
          "model": "/etc/models/yolox_quantized.tflite",
          "labels": "/etc/labels/yolox.json",
          "threshold": 40,
          "runtime": "dsp",
          "output-type": "waylandsink"
        }Copy to clipboard
4. 运行 gst-ai-object-detection 应用程序：

        gst-ai-object-detection --config-file=/etc/configs/config_detection.jsonCopy to clipboard

Note: 对于 USB 摄像头输入，在配置文件中设置
                                `video-format`、`resolution` 和
                                `framerate` 参数以匹配摄像头的功能。要查看摄像头功能，请参阅[配置 USB 摄像头](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-8/usb.html#configure-usb-camera)。

Note: 可以在 `yolo-model-type` 字段中使用 YOLOv8 值来运行 Yolo-NAS-Quantized.tflite 模型。
5. 要显示可用的帮助选项，请在 SSH shell 中运行以下命令：

        gst-ai-object-detection -hCopy to clipboard
6. 要停止用例，请按 CTRL +
                    C。

## 预期输出

Figure : gst-ai-object-detection 应用程序的预期输出
                
                ![](data:image/png;base64,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)

## Pipeline 流

下表列出了目标检测 pipeline 中使用的插件：

| 插件 | 说明 |
| --- | --- |
| 摄像头源：[qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtiqmmfsrc.html) | <ul class="ul" id="gst-ai-object-detection__ul_zyl_gj1_mcc"><br>                                    <li class="li">从摄像头采集实时流。</li><br><br>                                    <li class="li">使用 tee 拆分流进行推理。</li><br><br>                                </ul> |
| 文件源：filesrc | <ul class="ul" id="gst-ai-object-detection__ul_z1z_x4f_w1c"><br>                                    <li class="li">使用 filesrc 采集视频流，然后使用 qtdemux 对视频流进行解复用。</li><br><br>                                    <li class="li">使用 tee 拆分流进行推理。</li><br><br>                                </ul> |
| RTSP 源：rtspsrc | <ul class="ul" id="gst-ai-object-detection__ul_vsj_2r4_tbc"><br>                                    <li class="li">使用 rtspsrc 采集 RTSP 流，然后使用 rtph264depay 进行视频提取。</li><br><br>                                    <li class="li">使用 tee 拆分流进行推理。</li><br><br>                                </ul> |
| USB 摄像头源：v4l2src | <ul class="ul" id="gst-ai-object-detection__ul_ptd_t21_4gc"><br>                                    <li class="li">从 USB 摄像头采集实时流。</li><br><br>                                    <li class="li">使用 tee 拆分流进行推理。</li><br><br>                                </ul> |
| h264parse | 渲染 H.264 视频。 |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70022-50SC/topic/v4l2h264dec.html) | 解码视频 |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimlvconverter.html) | <ol class="ol" id="gst-ai-object-detection__ol_j34_ddg_q1c"><br>                                    <li class="li">在其接收端口上接收视频流。</li><br><br>                                    <li class="li">对流数据执行以下预处理。当模型需要浮点值作为输入时，会执行此预处理。<ol class="ol" type="a" id="gst-ai-object-detection__ol_m5z_cpr_lbc"><br>                                            <li class="li">颜色转换</li><br><br>                                            <li class="li">缩放（放大或缩小）</li><br><br>                                            <li class="li">归一化</li><br><br>                                        </ol><br></li><br><br>                                    <li class="li">将预处理的视频流转换为其发送端口上的张量数据流。 </li><br><br>                                </ol><br><br>                                <br>张量数据流用于 pipeline 后期的推理。 |
| 推理插件：<ul class="ul" id="gst-ai-object-detection__ul_k3l_35k_pdc"><br>                                    <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimlsnpe.html">qtimlsnpe</a></li><br><br>                                    <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimltflite.html">qtimltflite</a></li><br><br>                                    <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimlqnn.html">qtimlqnn</a></li><br><br>                                </ul> | <ol class="ol" id="gst-ai-object-detection__ol_l2x_zjq_nbc"><br>                                    <li class="li">推理 runtime 在其接收端口上接收到张量数据后，会运行推理。</li><br><br>                                    <li class="li">生成一个张量数据流，并在其发送端口上显示推理结果。</li><br><br>                                </ol> |
| qtimlpostprocess | 处理来自任何目标检测模型的推理结果。<ol class="ol" id="gst-ai-object-detection__ol_ol3_dky_kbc"><br>                                    <li class="li">将阈值应用于所选结果数。</li><br><br>                                    <li class="li">加载 YOLO（YOLOv5、YOLOv8 或 YOLO-NAS）模块。</li><br><br>                                    <li class="li">生成包含可叠加在目标上的边框的视频帧。 </li><br><br>                                    <li class="li">将这些处理后的帧发送到 qtivcomposer 的接收端口。</li><br><br>                                </ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtivcomposer.html) | <ol class="ol" id="gst-ai-object-detection__ol_dmb_2vr_lbc"><br>                                    <li class="li">将接收端口获取的内容组成帧。</li><br><br>                                    <li class="li">将包含这些组合帧的 GStreamer 缓存推送到其发送端口。</li><br><br>                                </ol> |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50SC/topic/waylandsink.html) | <ol class="ol" id="gst-ai-object-detection__ol_kjr_fvr_lbc"><br>                                    <li class="li">Waylandsink 将其接收端口上接收的视频流提交给 Weston。</li><br><br>                                    <li class="li">Weston 在本地显示器上渲染视频流。</li><br><br>                                </ol> |
| filesink | 在接收端口接收视频流并将其保存为 H.264 编码的 MP4 文件。 |
| qtirtspbin | <ol class="ol" id="gst-ai-object-detection__ol_hjm_3f1_4gc"><br>                                    <li class="li">用作网络接收器。</li><br><br>                                    <li class="li">将 UDP 数据包传输到网络。</li><br><br>                                </ol> |

## Config JSON 字段说明

可用于配置 JSON 文件和运行用例的不同参数如下：

Table : 字段说明 – config_detection.json 文件

| 字段 | 值/描述 |
| :--- | :--- |
| **ml-framework** | 请使用以下模型之一：<ul class="ul" id="gst-ai-object-detection__ul_prm_gck_32c"><br>                                    <li class="li"><code class="ph codeph">snpe</code>–Qualcomm Neural Processing SDK</li><br><br>                                    <li class="li"><code class="ph codeph">tflite</code>–LiteRT</li><br><br>                                    <li class="li"><code class="ph codeph">qnn</code>–Qualcomm AI Engine direct</li><br><br>                                </ul> |
| **yolo-model-type** | 分别运行 `yolov5`、`yolov8`、`yolox` 和 `yolonas` 模型。参见[示例模型和标签文件](https://docs.qualcomm.com/doc/80-70022-50SC/topic/gst-ai-object-detection.html#gst-ai-object-detection__section_ohr_1qq_32c)。 |
| **runtime** | 请使用以下 runtime 之一：<ul class="ul" id="gst-ai-object-detection__ul_mry_nck_32c"><br>                                    <li class="li"><code class="ph codeph">cpu</code></li><br><br>                                    <li class="li"><code class="ph codeph">gpu</code></li><br><br>                                    <li class="li"><code class="ph codeph">dsp</code></li><br><br>                                </ul> |
| **Input source** | 请使用以下输入源之一：<ul class="ul" id="gst-ai-object-detection__ul_xym_rck_32c"><br>                                    <li class="li"><code class="ph codeph">camera</code>- 主 (0) 或辅助 (1)。</li><br><br>                                    <li class="li"><code class="ph codeph">file-path</code>- 视频文件目录的路径。</li><br><br>                                    <li class="li"><code class="ph codeph">rtsp-ip-port</code>- RTSP 流的地址：<u class="ph u"><var class="keyword varname">rtsp://&lt;ip&gt;:&lt;port&gt;/&lt;stream&gt;</var></u></li><br><br>                                    <li class="li"><code class="ph codeph">enable-usb-camera</code>：设置为 TRUE 或 FALSE。</li><br><br>                                </ul> |
| **output-ip-address** | 输出服务器 IP 地址。 |
| **port** | 输出服务器端口。 |
| **output-type** | 使用以下输出类型之一：<ul class="ul" id="gst-ai-object-detection__ul_kbs_lg1_4gc"><br>                                    <li class="li"><code class="ph codeph">waylandsink</code>：在 Wayland 上显示输出。</li><br><br>                                    <li class="li"><code class="ph codeph">filesink</code>：将输出存储在文件中。</li><br><br>                                    <li class="li"><code class="ph codeph">rtspsink</code>：在服务器上进行流输出。</li><br><br>                                </ul> |
| **USB camera video-format and resolution** | 使用以下视频格式之一<ul class="ul" id="gst-ai-object-detection__ul_ss2_wg1_4gc"><br>                                        <li class="li"><code class="ph codeph">nv12</code></li><br><br>                                        <li class="li"><code class="ph codeph">yuy2</code></li><br><br>                                        <li class="li"><code class="ph codeph">mjpeg</code></li><br><br>                                    </ul><br><br><br>                                <br>使用以下分辨率字段之一：<ul class="ul" id="gst-ai-object-detection__ul_ln3_ch1_4gc"><br>                                        <li class="li"><code class="ph codeph">width</code>：输入 USB 摄像头源分辨率宽度。</li><br><br>                                        <li class="li"><code class="ph codeph">height</code>：输入 USB 摄像头源分辨率高度。</li><br><br>                                        <li class="li"><code class="ph codeph">framerate</code>：输入 USB 摄像头源帧率。</li><br><br>                                    </ul> |
| **output-file** | 输出文件名。默认输出文件为 `output_object_detection.mp4`。 |

## 已知问题

使用 YOLOv8 SNPE 模型观察到绿屏。

## 相关信息

- [使用 LiteRT 进行目标检测和显示](https://docs.qualcomm.com/doc/80-70022-50SC/topic/single-camera-stream-with-object-detection-and-display.html)
- [使用 LiteRT 进行目标检测和编码](https://docs.qualcomm.com/doc/80-70022-50SC/topic/single-camera-stream-with-object-detection-and-encode.html)
- [使用 Neural Processing SDK 进行目标检测和显示](https://docs.qualcomm.com/doc/80-70022-50SC/topic/single-camera-stream-with-object-detection-and-display-with-mobilenet-v2-ssd.html)
- [使用 Neural Processing SDK 进行目标检测和编码](https://docs.qualcomm.com/doc/80-70022-50SC/topic/single-camera-stream-with-object-detection-and-encode-with-mobilenet-v2-ssd.html)

**Parent Topic:** [运行 AI/ML 示例应用程序](https://docs.qualcomm.com/doc/80-70022-50SC/topic/ai-ml-sample-applications.html)

Last Published: Nov 05, 2025

[Previous Topic
图像分类](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/gst-ai-classification.md) [Next Topic
姿态检测](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/gst-ai-pose-detection.md)