# Parallel inferencing

The **gst-ai-parallel-inference** application allows you to perform object detection, object classification, pose detection, and image segmentation on an input stream from different sources such as a camera, a file, or an RTSP network. The use cases implement the LiteRT models for object detection, image segmentation, classification, and pose detection.

The following figure shows the pipeline, which receives input streams from a camera, file, or an RTSP stream, performs the parallel inferencing for the four use cases, and displays the results side by side on the screen.

For information about the plugins used in the pipeline flow, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70029-50/topic/parallel-inference-using-python.html#section-gcg-r3s-lbc).

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1302.5560302734375" height="407.485677719116211" viewbox="0 0 1302.5560302734375 407.485677719116211" aria-label="../../_images/gst_ai_parallel_inference_pipeline.svg">
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x=".49981689453125" y=".500020980834961" width="1301.55615234375" height="406.48583984375" rx="7.499999999999998" ry="7.499999999999998" style="fill: #fafafa;"></rect>
      <path d="M1294.5560302734375,1c3.85980224609375,0,7,3.140167236328125,7,7v391.485677719116211c0,3.859832763671875-3.14019775390625,7-7,7H8c-3.859832763671875,0-7-3.140167236328125-7-7V8c0-3.859832763671875,3.140167236328125-7,7-7h1286.5560302734375M1294.5560302734375,0H8C3.5816650390625,0,0,3.58183479309082,0,8v391.485677719116211c0,4.4183349609375,3.5816650390625,8,8,8h1286.5560302734375c4.41827392578125,0,8-3.5816650390625,8-8V8c0-4.41816520690918-3.58172607421875-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <g>
      <g>
        <text transform="translate(1105.48394775390625 383.577169418334961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="1085.232955067245712" y="371.485677719116211" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1204.06573486328125 383.577169418334961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="1183.814736480098873" y="371.485677719116211" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_3" data-name="Layer 3">
    <rect x="515.288651923177895" y="20.000034158514609" width="60.000000000001819" height="331.485615546111148" rx="4" ry="4" style="fill: #007884;"></rect>
    <rect x="1060.102557882606561" y="20.000034158514609" width="104.000000000003638" height="331.485615546111148" rx="8" ry="8" style="fill: #2a2aea;"></rect>
    <g>
      <line x1="1164.1025390625" y1="185.742849349975586" x2="1176.7457275390625" y2="185.742849349975586" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="1175.57855224609375 189.731908798217773 1182.48675537109375 185.742849349975586 1175.57855224609375 181.753774642944336 1175.57855224609375 189.731908798217773"></polygon>
    </g>
    <line x1="1232.556034372464637" y1="158.165272719739733" x2="1232.556034372464637" y2="142.66898996263626" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <rect x="1182.556034372462818" y="158.355770917030895" width="100.000000000003638" height="54.774142029076756" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(535.58502197265625 195.946920394897461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">tee</tspan></text>
    <text transform="translate(1069.3504638671875 189.834127426147461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
    <text transform="translate(1193.33843994140625 189.833944320678711)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Waylandsink</tspan></text>
    <g>
      <g>
        <rect x="1211.556034372464637" y="102.009953094076081" width="42" height="29.400000000002365" rx="4" ry="4" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
        <line x1="1224.156034372459544" y1="139.809953094074444" x2="1240.956034372456998" y2="139.809953094074444" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
      </g>
      <line x1="1232.556034372464637" y1="131.409953094078446" x2="1232.556034372464637" y2="139.809953094074444" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="71.921689987182617" x2="587.931838989257812" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 75.910749435424805 593.672836303710938 71.921689987182617 586.7646484375 67.932622909545898 586.7646484375 75.910749435424805"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="38.086484909057617" x2="1054.29229736328125" y2="38.086484909057617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 42.07554817199707 1060.03326416015625 38.086484909057617 1053.12506103515625 34.097421646118164 1053.12506103515625 42.07554817199707"></polygon>
      </g>
      <rect x="593.742128413034152" y="46.921688518450537" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="71.921689987182617" x2="726.38531494140625" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 75.910749435424805 732.126312255859375 71.921689987182617 725.2181396484375 67.932622909545898 725.2181396484375 75.910749435424805"></polygon>
      </g>
      <rect x="732.195604902894047" y="46.921688518450537" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="71.921689987182617" x2="854.83880615234375" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 75.910749435424805 860.57977294921875 71.921689987182617 853.671600341796875 67.932622909545898 853.671600341796875 75.910749435424805"></polygon>
      </g>
      <rect x="860.649081392750304" y="46.921688518450537" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="71.921689987182617" x2="1054.29229736328125" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 75.910749435424805 1060.03326416015625 71.921689987182617 1053.12506103515625 67.932622909545898 1053.12506103515625 75.910749435424805"></polygon>
      </g>
      <text transform="translate(605.20355224609375 76.012746810913086)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 76.013174057006836)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 76.012746810913086)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 67.344808578491211)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_1</tspan></text>
      <text transform="translate(1010.41265869140625 31.395040512084961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_0</tspan></text>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="156.776342391967773" x2="587.931838989257812" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 160.765417098999023 593.672836303710938 156.776342391967773 586.7646484375 152.787282943725586 586.7646484375 160.765417098999023"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="122.941137313842773" x2="1054.29229736328125" y2="122.941137313842773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 126.930212020874023 1060.03326416015625 122.941137313842773 1053.12506103515625 118.952077865600586 1053.12506103515625 126.930212020874023"></polygon>
      </g>
      <rect x="593.742128413034152" y="131.776346299640863" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="156.776342391967773" x2="726.38531494140625" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 160.765417098999023 732.126312255859375 156.776342391967773 725.2181396484375 152.787282943725586 725.2181396484375 160.765417098999023"></polygon>
      </g>
      <rect x="732.195604902894047" y="131.776346299640863" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="156.776342391967773" x2="854.83880615234375" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 160.765417098999023 860.57977294921875 156.776342391967773 853.671600341796875 152.787282943725586 853.671600341796875 160.765417098999023"></polygon>
      </g>
      <rect x="860.649081392750304" y="131.776346299640863" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="156.776342391967773" x2="1054.29229736328125" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 160.765417098999023 1060.03326416015625 156.776342391967773 1053.12506103515625 152.787282943725586 1053.12506103515625 160.765417098999023"></polygon>
      </g>
      <text transform="translate(605.20355224609375 160.867422103881836)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 160.867849349975586)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 160.867422103881836)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 152.199483871459961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_3</tspan></text>
      <text transform="translate(1010.41265869140625 116.249715805053711)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_2</tspan></text>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="241.630727767944336" x2="587.931838989257812" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 245.619771957397461 593.672836303710938 241.630727767944336 586.7646484375 237.641653060913086 586.7646484375 245.619771957397461"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="207.795522689819336" x2="1054.29229736328125" y2="207.795522689819336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 211.784582138061523 1060.03326416015625 207.795522689819336 1053.12506103515625 203.806447982788086 1053.12506103515625 211.784582138061523"></polygon>
      </g>
      <rect x="593.742128413034152" y="216.630721114013795" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="241.630727767944336" x2="726.38531494140625" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 245.619771957397461 732.126312255859375 241.630727767944336 725.2181396484375 237.641653060913086 725.2181396484375 245.619771957397461"></polygon>
      </g>
      <rect x="732.195604902894047" y="216.630721114013795" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="241.630727767944336" x2="854.83880615234375" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 245.619771957397461 860.57977294921875 241.630727767944336 853.671600341796875 237.641653060913086 853.671600341796875 245.619771957397461"></polygon>
      </g>
      <rect x="860.649081392750304" y="216.630721114013795" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="241.630727767944336" x2="1054.29229736328125" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 245.619771957397461 1060.03326416015625 241.630727767944336 1053.12506103515625 237.641653060913086 1053.12506103515625 245.619771957397461"></polygon>
      </g>
      <text transform="translate(605.20355224609375 245.721822738647461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 245.722249984741211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 245.721822738647461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 237.053915023803711)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_5</tspan></text>
      <text transform="translate(1010.41265869140625 201.104146957397461)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_4</tspan></text>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="326.485647201538086" x2="587.931838989257812" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 330.474721908569336 593.672836303710938 326.485647201538086 586.7646484375 322.496572494506836 586.7646484375 330.474721908569336"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="292.650442123413086" x2="1054.29229736328125" y2="292.650442123413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 296.639516830444336 1060.03326416015625 292.650442123413086 1053.12506103515625 288.661367416381836 1053.12506103515625 296.639516830444336"></polygon>
      </g>
      <rect x="593.742128413034152" y="301.485649704625757" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="326.485647201538086" x2="726.38531494140625" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 330.474721908569336 732.126312255859375 326.485647201538086 725.2181396484375 322.496572494506836 725.2181396484375 330.474721908569336"></polygon>
      </g>
      <rect x="732.195604902894047" y="301.485649704625757" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="326.485647201538086" x2="854.83880615234375" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 330.474721908569336 860.57977294921875 326.485647201538086 853.671600341796875 322.496572494506836 853.671600341796875 330.474721908569336"></polygon>
      </g>
      <rect x="860.649081392750304" y="301.485649704625757" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="326.485647201538086" x2="1054.29229736328125" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 330.474721908569336 1060.03326416015625 326.485647201538086 1053.12506103515625 322.496572494506836 1053.12506103515625 330.474721908569336"></polygon>
      </g>
      <text transform="translate(605.20355224609375 330.576742172241211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 330.577169418334961)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 330.576742172241211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 321.908834457397461)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_7</tspan></text>
      <text transform="translate(1010.41265869140625 285.959066390991211)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_6</tspan></text>
    </g>
    <g>
      <rect x="70.474745963756504" y="279.630897401841139" width="86" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="156.4747314453125" y1="309.630910873413086" x2="169.117950439453125" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="167.95074462890625 313.619955062866211 174.858917236328125 309.630910873413086 167.95074462890625 305.641836166381836 167.95074462890625 313.619955062866211"></polygon>
      </g>
      <line x1="57.805783264653655" y1="309.630897401841139" x2="70.474745963756504" y2="309.630897401841139" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="174.928222453611852" y="279.630897401841139" width="95" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="269.92822265625" y1="309.630910873413086" x2="282.5714111328125" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="281.404220581054688 313.619955062866211 288.312393188476562 309.630910873413086 281.404220581054688 305.641836166381836 281.404220581054688 313.619955062866211"></polygon>
      </g>
      <rect x="288.3816989434672" y="279.630897401841139" width="95" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="383.381698608398438" y1="309.630910873413086" x2="396.024892807006836" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="394.857700347900391 313.619955062866211 401.765876770019531 309.630910873413086 394.857700347900391 305.641836166381836 394.857700347900391 313.619955062866211"></polygon>
      </g>
      <rect x="401.835175433323457" y="279.630897401841139" width="95" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="496.835174560546875" y1="309.630910873413086" x2="509.478370666503906" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="508.311180114746094 313.619955062866211 515.219352722167969 309.630910873413086 508.311180114746094 305.641836166381836 508.311180114746094 313.619955062866211"></polygon>
      </g>
      <text transform="translate(89.907867431640625 313.153036117553711)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">rtspsrc </tspan></text>
      <text transform="translate(196.465118408203125 306.322591781616211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">rtph264 </tspan><tspan x="5.52685546875" y="16.7998046875">depay </tspan></text>
      <text transform="translate(302.813011169433594 313.722494125366211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(408.353549957275391 313.722311019897461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <g>
        <path d="M35.30941972909568,305.980897401837865c.001393890381223-.745582866666155.606937980652219-1.348867893218994,1.352521705628533-1.347474002834133.248203468321663.000463485717773.491475105285645.069345188137959.703078651427859.199073982235859l6.595199203491575,4.048200130462646c.635238075255984.390344238281614.833762741087412,1.221743202209836.443418502807617,1.85698127746582-.110953330993652.180562019348145-.262856483459473.332465171813965-.443418502807617.443418502807617l-6.595199203491575,4.05000000000291c-.63563804626574.389691925047373-1.466832733154661.190314102170305-1.856524658203853-.445323944091797-.130368232727051-.212645530700684-.199274826049077-.457250976563955-.199075698852539-.706676673891707v-8.098199272157217Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M29.909419729096044,329.830897401841867h18" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <rect x="20.909419729096044" y="297.430897401840411" width="36" height="25.199999999998909" rx="2" ry="2" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
      </g>
    </g>
    <g>
      <g>
        <path d="M45.659419729096044,51.581189998958507h-20.25c-2.485281229017346,0-4.5,2.014718770980835-4.5,4.5v36c0,2.485283374786377,2.014718770982654,4.5,4.5,4.5h27c2.485283374786377,0,4.5-2.014716625213623,4.5-4.5v-29.25l-11.25-11.25Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M43.409419729096044,51.581189998958507v9c0,2.485281229019165,2.014718770980835,4.5,4.5,4.5h9" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M34.409419729096044,71.831189998958507l11.25,6.75-11.25,6.75v-13.5Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      </g>
      <rect x="70.474745963756504" y="44.0811899989585" width="86" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="156.4747314453125" y1="74.08119010925293" x2="169.117950439453125" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="167.95074462890625 78.070257186889648 174.858917236328125 74.08119010925293 167.95074462890625 70.092123031616211 167.95074462890625 78.070257186889648"></polygon>
      </g>
      <line x1="57.805783264653655" y1="74.081189998958507" x2="70.474745963756504" y2="74.081189998958507" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="174.928222453611852" y="44.0811899989585" width="95" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="269.92822265625" y1="74.08119010925293" x2="282.5714111328125" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="281.404220581054688 78.070257186889648 288.312393188476562 74.08119010925293 281.404220581054688 70.092123031616211 281.404220581054688 78.070257186889648"></polygon>
      </g>
      <rect x="288.3816989434672" y="44.0811899989585" width="95" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="383.381698608398438" y1="74.08119010925293" x2="396.024892807006836" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="394.857700347900391 78.070257186889648 401.765876770019531 74.08119010925293 394.857700347900391 70.092123031616211 394.857700347900391 78.070257186889648"></polygon>
      </g>
      <rect x="401.835175433323457" y="44.0811899989585" width="95" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="496.835174560546875" y1="74.08119010925293" x2="509.478370666503906" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="508.311180114746094 78.070257186889648 515.219352722167969 74.08119010925293 508.311180114746094 70.092123031616211 508.311180114746094 78.070257186889648"></polygon>
      </g>
      <text transform="translate(94.296539306640625 77.603353500366211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(195.043243408203125 78.172933578491211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(302.813011169433594 78.172811508178711)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(408.353549957275391 78.172628402709961)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
    </g>
    <text transform="translate(20.9091796875 31.394552230834961)" style="font-family: Roboto-Bold, Roboto; font-size: 14px; font-weight: 700;"><tspan x="0" y="0">File (default)</tspan></text>
    <g>
      <g>
        <g>
          <path d="M43.409419729096044,174.633704007910637h-9l-4.5,5.400000000001455h-5.400000000001455c-1.988224983215332,0-3.599999999998545,1.611775016783213-3.599999999998545,3.599999999998545v16.200000000000728c0,1.988226699828374,1.611775016783213,3.600000000002183,3.599999999998545,3.600000000002183h28.80000000000291c1.988226699828374,0,3.599999999998545-1.611773300173809,3.599999999998545-3.600000000002183v-16.200000000000728c0-1.988224983215332-1.611773300170171-3.599999999998545-3.599999999998545-3.599999999998545h-5.400000000001455l-4.5-5.400000000001455Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
          <circle cx="38.909419729096044" cy="189.033704007912092" r="5.400000000001455" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
        </g>
        <rect x="70.474745963756504" y="161.033704007912092" width="86" height="60" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <line x1="156.4747314453125" y1="191.033697128295898" x2="509.478042602539062" y2="191.033697128295898" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="508.31085205078125 195.022771835327148 515.219032287597656 191.033697128295898 508.31085205078125 187.044637680053711 508.31085205078125 195.022771835327148"></polygon>
        </g>
        <line x1="57.805783264653655" y1="191.033704007912092" x2="70.474745963756504" y2="191.033704007912092" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <text transform="translate(77.189605712890625 194.555746078491211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtiqmmfsrc</tspan></text>
      </g>
      <text transform="translate(17.71697998046875 147.985647201538086)" style="font-family: Roboto-Bold, Roboto; font-size: 14px; font-weight: 700;"><tspan x="0" y="0">Camera (optional)</tspan></text>
    </g>
    <text transform="translate(17.71710205078125 266.630331039428711)" style="font-family: Roboto-Bold, Roboto; font-size: 14px; font-weight: 700;"><tspan x="0" y="0">RTSP (optional)</tspan></text>
    <g>
      <line x1="17.716979980467841" y1="119.988866806030273" x2="21.716979980467841" y2="119.988866806030273" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <line x1="25.763031005859375" y1="119.988866806030273" x2="509.265625" y2="119.988866806030273" style="fill: none; stroke: #000; stroke-dasharray: 8.092093467712402 4.046046733856201; stroke-miterlimit: 10;"></line>
      <line x1="511.288650512695312" y1="119.988866806030273" x2="515.288650512695312" y2="119.988866806030273" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    </g>
    <g>
      <line x1="17.716979980467841" y1="237.053914856274787" x2="21.716979980467841" y2="237.053914856274787" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <line x1="25.763031005859375" y1="237.053914856274787" x2="509.265625" y2="237.053914856274787" style="fill: none; stroke: #000; stroke-dasharray: 8.092093467712402 4.046046733856201; stroke-miterlimit: 10;"></line>
      <line x1="511.288650512695312" y1="237.053914856274787" x2="515.288650512695312" y2="237.053914856274787" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    </g>
  </g>
</svg>
**Figure : gst-ai-parallel-inference pipeline**

## Sample model and label files

Table : Sample model and label files for gst-ai-parallel-inference

| Application | Model files | Label files |
| --- | --- | --- |
| Object detection | *yolox\_quantized.tflite* | *yolox.json* |
| Pose estimation | *hrnet\_pose\_quantized.tflite* | <ul class="simple"><br><li><p><em>hrnet_pose.json</em></p></li><br><li><p><em>hrnet_settings.json</em></p></li><br></ul> |
| Segmentation | *deeplabv3\_plus\_mobilenet\_quantized.tflite* | *deeplabv3\_resnet50.json* |
| Classification | *inception\_v3\_quantized.tflite* | *classification.json* |

## Run the application on the target device

Note

The commands in this section are targeted for the sample applications based on QLI GA 1.5 (PPA version 05900 in Ubuntu) or later releases. Run the `apt-cache policy gstreamer1.0-qcom-sample-apps` command to check your QIM version. If you are using sample applications from older versions, run the application with the `--help` option for more instructions.

The sample application uses the `/etc/configs/config-parallel-inference.json` file to read the input parameters.

To create your own config JSON file, use [config-parallel-inference.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-parallel-inference/config-parallel-inference.json) as a reference.

1. Ensure that you complete the [Prerequisites](https://docs.qualcomm.com/doc/80-70029-50/topic/download-model-and-label-files.html).
2. Update the config JSON file based on the model, input stream, and other properties. For more information, see [Config JSON field description](https://docs.qualcomm.com/doc/80-70029-50/topic/gst-ai-parallel-inference.html#section-hwy-xqm-nfc).

    For QCS6490, if `file-path` and `rtsp-ip-port` are *not* present in the configuration file, then the camera input is selected.
3. Use the following format of the `config-parallel-inference.json` file:

{
          "camera": "<camera-id>",
          "file-path": "<input-video-path>",
          "rtsp-ip-port": "<RTSP-IP-Port-address>",
          "detection-model": "<path-to-detection model>",
          "detection-labels": "<path-to-detection-labels>",
          "pose-model": "<path-to-pose-model>",
          "pose-labels": "<path-to-pose-label>",
          "pose-settings-path": "<path-to-pose-settings-file>",
          "segmentation-model": "<path-to-segmentation-model>",
          "segmentation-labels": "<path-to-segmentation-labels>",
          "classification-model": "<path-to-classification-model>",
          "classification-labels": "<path-to-classification-labels>"
        }
        Copy to clipboard

    For example, run the application using the custom video input file, model paths, and label paths:

{
            "file-path": "/etc/media/video.mp4",
            "detection-model": "/etc/models/yolox_quantized.tflite",
            "detection-labels": "/etc/labels/yolox.json",
            "pose-model": "/etc/models/hrnet_pose_quantized.tflite",
            "pose-labels": "/etc/labels/hrnet_pose.json",
            "pose-settings-path": "/etc/labels/hrnet_settings.json",
            "segmentation-model": "/etc/models/deeplabv3_plus_mobilenet_quantized.tflite",
            "segmentation-labels": "/etc/labels/deeplabv3_resnet50.json",
            "classification-model": "/etc/models/inception_v3_quantized.tflite",
            "classification-labels": "/etc/labels/classification.json"
        }
        Copy to clipboard
4. Run the gst-ai-parallel-inference application:

gst-ai-parallel-inference --config-file=/etc/configs/config-parallel-inference.json
        Copy to clipboard

Note

If a drop in performance is observed, you can use YOLOv8 LiteRT model. For YOLOv8 export instructions, see Step 6 in [Prerequisites](https://docs.qualcomm.com/doc/80-70029-50/topic/download-model-and-label-files.html).
5. To display the available help options, run the following command in the SSH shell:

gst-ai-parallel-inference -h
        Copy to clipboard
6. To stop the use case, use **CTRL + C**.

## Expected output

After performing the four parallel inferences, the results are displayed side by side on the screen.

![../../_images/expected_output_gst-ai-parallel-inference.png](data:image/png;base64,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)

**Figure : Expected output for gst-ai-parallel-inference application**

## Pipeline flow

The following table lists the plugins used in the parallel inference pipeline:

| Plugin | Description |
| --- | --- |
| Camera source: [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70029-50/topic/qtiqmmfsrc.html) | <ul class="simple"><br><li><p>Captures the live stream from camera.</p></li><br><li><p>Uses tee to split the stream for inferencing.</p></li><br></ul> |
| File source: filesrc | <ul class="simple"><br><li><p>Captures the video stream using filesrc, followed by qtdemux, which demultiplexes the stream.</p></li><br><li><p>Uses tee to split the stream for inferencing.</p></li><br></ul> |
| RTSP source: rtspsrc | <ul class="simple"><br><li><p>Captures the RTSP stream using rtspsrc, followed by rtph264depay for video extraction.</p></li><br><li><p>Uses tee to split the stream for inferencing.</p></li><br></ul> |
| h264parse | Parses the H.264 video. |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70029-50/topic/v4l2h264dec.html) | Decodes the video. |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70029-50/topic/qtimlvconverter.html) | <ol class="arabic simple"><br><li><p>Receives the video stream on its sink pad.</p></li><br><li><p>Performs the following preprocessing on the stream data. This preprocessing is done when the model expects floating-point values as input.</p></li><br><li><p>Color conversion</p></li><br><li><p>Scaling (up or down)</p></li><br><li><p>Normalization</p></li><br></ol><br><br>The tensor stream is used for inferencing in the later stages of the pipeline. |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70029-50/topic/qtimltflite.html) | <ol class="arabic simple"><br><li><p>After the inference runtime receives the tensor stream on its sink pad, it runs the inference.</p></li><br><li><p>Produces a tensor stream with the inference results on its source pad.</p></li><br></ol> |
| Postprocessing plugins | qtimlpostprocess handles the inference results from any object detection, classification, pose detection, and segmentation model.<br><ol class="arabic simple"><br><li><p>qtimlpostprocess for detection use case:</p><ol class="loweralpha simple"><br><li><p>Applies a threshold to the chosen number of results.</p></li><br><li><p>Loads the YOLOv8 module.</p></li><br><li><p>Produces video frames with only bounding boxes that can be overlaid on objects, sending them to the sink pad of the qtivcomposer.</p></li><br></ol><br></li><br><li><p>qtimlpostprocess for classification use case:</p><ol class="loweralpha simple"><br><li><p>Applies the threshold to the chosen number of results.</p></li><br><li><p>Loads the MobileNet-softmax module.</p></li><br><li><p>Produces results as video frames with classification labels, sending them to the sink pad of the qtivcomposer.</p></li><br></ol><br></li><br><li><p>qtimlpostprocess for pose estimation use case:</p><ol class="loweralpha simple"><br><li><p>Applies the threshold to the chosen number of results.</p></li><br><li><p>Loads the corresponding modules for various pose estimation models. For the use cases described in this section, qtimlpostprocess loads the HRNet module.</p></li><br><li><p>Produces results as video frames with poses drawn, sending them to the sink pad of the qtivcomposer.</p></li><br></ol><br></li><br><li><p>qtimlpostprocess for segmentation use case: Converts the inference tensors that it receives on its sink pad into video formats that the multimedia plugins for further processing.</p></li><br></ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70029-50/topic/qtivcomposer.html) | <ol class="arabic simple"><br><li><p>Composes frames with contents from its sink pads.</p></li><br><li><p>Pushes the GStreamer buffers containing these composed frames to its source pad.</p></li><br></ol> |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70029-50/topic/waylandsink.html) | <ol class="arabic simple"><br><li><p>Waylandsink submits the video stream received on its sink pad to Weston.</p></li><br><li><p>Weston renders the video stream on a local display.</p></li><br></ol> |

## Config JSON field description

The different parameters available to configure the JSON file and run the use case are as follows:

Table : Field description–config-parallel-inference.json file

| Field | Values/description |
| --- | --- |
| **Input source** | Use one of the following input sources:<br><ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">camera</span></code>: Primary (0) or secondary (1).</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">file-path</span></code>: The directory path to the video file.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">rtsp-ip-port</span></code>: The address of the RTSP stream: <em>rtsp://&lt;ip&gt;:&lt;port&gt;/&lt;stream&gt;</em></p></li><br></ul> |
| **Models and labels** | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">detection-model</span></code>: The path to the detection model.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">detection-labels</span></code>: The path to the detection label.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">pose-model</span></code>: The path to the pose model.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">pose-labels</span></code>: The path to the pose labels.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">segmentation-model</span></code>: The path to the segmentation model.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">segmentation-labels</span></code>: The path to the segmentation labels.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">classification-model</span></code>: The path to the classification model.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">classification-labels</span></code>: The path to the classification labels.</p></li><br></ul> |

## Known issues

- Identifies the pose of only one person even if many people are present in the frame.
- Inception V3 model doesn't include people class. This model is trained on an Imagenet dataset and is used in classification.
- Lag is observed in a long run scenario using camera source.

## Related information

- [Parallel inference using Python](https://docs.qualcomm.com/doc/80-70029-50/topic/parallel-inference-using-python.html)
- [Image classification](https://docs.qualcomm.com/doc/80-70029-50/topic/gst-ai-classification.html)
- [Object detection](https://docs.qualcomm.com/doc/80-70029-50/topic/gst-ai-object-detection.html)
- [Pose detection](https://docs.qualcomm.com/doc/80-70029-50/topic/gst-ai-pose-detection.html)
- [Image segmentation](https://docs.qualcomm.com/doc/80-70029-50/topic/gst-ai-segmentation.html)

Last Published: Apr 02, 2026

[Previous Topic
Image segmentation using Python with container](https://docs.qualcomm.com/bundle/publicresource/80-70029-50/topics/image-segmentation-using-python.md) [Next Topic
Multi input/output object detection](https://docs.qualcomm.com/bundle/publicresource/80-70029-50/topics/gst-ai-multi-input-output-object-detection.md)