# Object detection, classification, and segmentation

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/object-detection-classification-and-segmentation-python-sample-app.html](https://docs.qualcomm.com/doc/80-70022-50/topic/object-detection-classification-and-segmentation-python-sample-app.html)

The **gst-filesrc-2detection-classification-segmentation-side-by-side.py** script
        identifies an object from a scene in a camera stream, overlays the bounding boxes over the
        detected objects, classifies scenes from the video stream, and produces semantic
        segmentation for the video. The output is displayed side by side on a screen.

Figure : Pipeline for object detection, image classification, and segmentation
            
            <!--?xml version="1.0" encoding="UTF-8"?-->
<svg xmlns="http://www.w3.org/2000/svg" width="1441.04034423828125" height="376.009979248046875" viewbox="0 0 1441.04034423828125 376.009979248046875">
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x=".5001220703125" y=".499664306640625" width="1440.0400390625" height="375.009765625" rx="7.499999999999888" ry="7.499999999999888" style="fill: #fafafa;"></rect>
      <path d="M1433.04034423828125,1c3.85980224609375,0,7,3.140182495117188,7,7v360.009979248046875c0,3.85986328125-3.14019775390625,7-7,7H8c-3.85980224609375,0-7-3.14013671875-7-7V8c0-3.859817504882812,3.14019775390625-7,7-7h1425.04034423828125M1433.04034423828125,0H8C3.581787109375,0,0,3.581634521484375,0,8v360.009979248046875c0,4.418212890625,3.581787109375,8,8,8h1425.04034423828125c4.418212890625,0,8-3.581787109375,8-8V8c0-4.418365478515625-3.581787109375-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <g>
      <g>
        <text transform="translate(1243.968292236328125 352.101470947265625)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="1223.717308667532052" y="340.009979248046875" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1342.550094604492188 352.101470947265625)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="1322.299090080385213" y="340.009979248046875" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_3" data-name="Layer 3">
    <g>
      <rect x="1209.957507491262731" y="19.999937430256978" width="102.724690919185377" height="300.054743773536757" rx="3.999999999999997" ry="3.999999999999997" style="fill: #2a2aea;"></rect>
      <text transform="translate(1221.622060775756836 173.826629638671875)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
      <path d="M47.802791973133935,28.309053468157799h-21.896578853826213c-2.687365748401135,0-4.865906411961987,2.178540663559033-4.865906411961987,4.865906411960168v38.927251295692258c0,2.687368068647629,2.178540663560852,4.865906411961987,4.865906411961987,4.865906411961987h29.195438471767375c2.687368068648539,0,4.865906411961987-2.178538343314358,4.865906411961987-4.865906411961987v-31.628391677750187l-12.164766029903149-12.164766029902239Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M45.369838767153851,28.309053468157799v9.731812823923974c0,2.687365748401135,2.178540663559033,4.865906411960168,4.865906411959259,4.865906411960168h9.731812823923974" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M35.638025943229877,50.205632321984012l12.164766029904058,7.298859617942071-12.164766029904058,7.298859617942071v-14.597719235884142Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <rect x="74.635915315389866" y="20.199209448222973" width="60.553502015518461" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="135.189422607421875" y1="52.638580322265625" x2="149.327484130859375" y2="52.638580322265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="148.1602783203125 56.627655029296875 155.068450927734375 52.638580322265625 148.1602783203125 48.649520874023438 148.1602783203125 56.627655029296875"></polygon>
      </g>
      <line x1="60.936807130841771" y1="52.638585527965915" x2="74.635915315389866" y2="52.638585527965915" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="155.143392792011582" y="20.199209448222973" width="70.285314839441526" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="225.428710937499091" y1="52.638580322265625" x2="239.5667724609375" y2="52.638580322265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="238.399566650390625 56.627655029296875 245.3077392578125 52.638580322265625 238.399566650390625 48.649520874023438 238.399566650390625 56.627655029296875"></polygon>
      </g>
      <rect x="245.382683092559091" y="20.199209448222973" width="81.098440199355537" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="326.481124877929688" y1="52.638580322265625" x2="340.619186401367188" y2="52.638580322265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="339.451995849609375 56.627655029296875 346.36016845703125 52.638580322265625 339.451995849609375 48.649520874023438 339.451995849609375 56.627655029296875"></polygon>
      </g>
      <rect x="346.435098753017883" y="20.199209448222973" width="91.911565559272276" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="438.346664428710938" y1="52.638580322265625" x2="452.484725952148438" y2="52.638580322265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="451.317527770996094 56.627655029296875 458.2257080078125 52.638580322265625 451.317527770996094 48.649520874023438 451.317527770996094 56.627655029296875"></polygon>
      </g>
      <text transform="translate(87.104087829589844 56.447418212890625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(164.857017517089844 57.063629150390625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(255.224205017089844 57.063140869140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(354.336021423339844 56.430328369140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <path d="M47.802791973133935,106.634626666853364h-21.896578853826213c-2.687365748401135,0-4.865906411961987,2.178540663555395-4.865906411961987,4.865906411961987v38.927251295690439c0,2.687368068647629,2.178540663560852,4.865906411961987,4.865906411961987,4.865906411961987h29.195438471767375c2.687368068648539,0,4.865906411961987-2.178538343314358,4.865906411961987-4.865906411961987v-31.628391677748368l-12.164766029903149-12.164766029904058Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M45.369838767153851,106.634626666853364v9.731812823922155c0,2.687365748402954,2.178540663559033,4.865906411961987,4.865906411959259,4.865906411961987h9.731812823923974" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M35.638025943229877,128.531205520679578l12.164766029904058,7.298859617942071-12.164766029904058,7.298859617942071v-14.597719235884142Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <rect x="74.635915315389866" y="98.524782646916719" width="60.553502015518461" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="135.189422607421875" y1="130.96417236328125" x2="149.327484130859375" y2="130.96417236328125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="148.1602783203125 134.953216552734375 155.068450927734375 130.96417236328125 148.1602783203125 126.97509765625 148.1602783203125 134.953216552734375"></polygon>
      </g>
      <line x1="60.936807130841771" y1="130.964158726659662" x2="74.635915315389866" y2="130.964158726659662" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="155.143392792011582" y="98.524782646916719" width="70.285314839441526" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="225.428710937499091" y1="130.96417236328125" x2="239.5667724609375" y2="130.96417236328125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="238.399566650390625 134.953216552734375 245.3077392578125 130.96417236328125 238.399566650390625 126.97509765625 238.399566650390625 134.953216552734375"></polygon>
      </g>
      <rect x="245.382683092559091" y="98.524782646916719" width="81.098440199355537" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="326.481124877929688" y1="130.96417236328125" x2="340.619186401367188" y2="130.96417236328125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="339.451995849609375 134.953216552734375 346.36016845703125 130.96417236328125 339.451995849609375 126.97509765625 339.451995849609375 134.953216552734375"></polygon>
      </g>
      <rect x="346.435098753017883" y="98.524782646916719" width="91.911565559272276" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="438.346664428710938" y1="130.96417236328125" x2="452.484725952148438" y2="130.96417236328125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="451.317527770996094 134.953216552734375 458.2257080078125 130.96417236328125 451.317527770996094 126.97509765625 451.317527770996094 134.953216552734375"></polygon>
      </g>
      <text transform="translate(87.104087829589844 134.773101806640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(164.857017517089844 135.389312744140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(255.224205017089844 135.389312744140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(354.336021423339844 134.756500244140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <path d="M47.802791973133935,184.96019986554893h-21.896578853826213c-2.687365748401135,0-4.865906411961987,2.178540663559033-4.865906411961987,4.865906411960168v38.927251295692258c0,2.687368068647629,2.178540663560852,4.865906411961987,4.865906411961987,4.865906411961987h29.195438471767375c2.687368068648539,0,4.865906411961987-2.178538343314358,4.865906411961987-4.865906411961987v-31.628391677750187l-12.164766029903149-12.164766029902239Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M45.369838767153851,184.96019986554893v9.731812823922155c0,2.687365748402954,2.178540663559033,4.865906411961987,4.865906411959259,4.865906411961987h9.731812823923974" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M35.638025943229877,206.856778719375143l12.164766029904058,7.298859617942071-12.164766029904058,7.298859617942071v-14.597719235884142Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <rect x="74.635915315389866" y="176.850355845612285" width="60.553502015518461" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="135.189422607421875" y1="209.28973388671875" x2="149.327484130859375" y2="209.28973388671875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="148.1602783203125 213.27880859375 155.068450927734375 209.28973388671875 148.1602783203125 205.3006591796875 148.1602783203125 213.27880859375"></polygon>
      </g>
      <line x1="60.936807130841771" y1="209.289731925355227" x2="74.635915315389866" y2="209.289731925355227" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="155.143392792011582" y="176.850355845612285" width="70.285314839441526" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="225.428710937499091" y1="209.28973388671875" x2="239.5667724609375" y2="209.28973388671875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="238.399566650390625 213.27880859375 245.3077392578125 209.28973388671875 238.399566650390625 205.3006591796875 238.399566650390625 213.27880859375"></polygon>
      </g>
      <rect x="245.382683092559091" y="176.850355845612285" width="81.098440199355537" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="326.481124877929688" y1="209.28973388671875" x2="340.619186401367188" y2="209.28973388671875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="339.451995849609375 213.27880859375 346.36016845703125 209.28973388671875 339.451995849609375 205.3006591796875 339.451995849609375 213.27880859375"></polygon>
      </g>
      <rect x="346.435098753017883" y="176.850355845612285" width="91.911565559272276" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="438.346664428710938" y1="209.28973388671875" x2="452.484725952148438" y2="209.28973388671875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="451.317527770996094 213.27880859375 458.2257080078125 209.28973388671875 451.317527770996094 205.3006591796875 451.317527770996094 213.27880859375"></polygon>
      </g>
      <text transform="translate(87.104087829589844 213.098297119140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(164.857017517089844 213.714508056640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(255.224205017089844 213.714508056640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(354.336021423339844 213.081695556640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <path d="M47.802791973133935,263.285773064244495h-21.896578853826213c-2.687365748401135,0-4.865906411961987,2.178540663557214-4.865906411961987,4.865906411960168v38.927251295692258c0,2.687368068647629,2.178540663560852,4.865906411960168,4.865906411961987,4.865906411960168h29.195438471767375c2.687368068648539,0,4.865906411961987-2.178538343312539,4.865906411961987-4.865906411960168v-31.628391677750187l-12.164766029903149-12.164766029902239Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M45.369838767153851,263.285773064244495v9.731812823922155c0,2.687365748402954,2.178540663559033,4.865906411961987,4.865906411959259,4.865906411961987h9.731812823923974" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <path d="M35.638025943229877,285.182351918070708l12.164766029904058,7.298859617942071-12.164766029904058,7.298859617942071v-14.597719235884142Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <rect x="74.635915315389866" y="255.17592904430785" width="60.553502015518461" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="135.189422607421875" y1="287.61529541015625" x2="149.327484130859375" y2="287.61529541015625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="148.1602783203125 291.6043701171875 155.068450927734375 287.61529541015625 148.1602783203125 283.626251220703125 148.1602783203125 291.6043701171875"></polygon>
      </g>
      <line x1="60.936807130841771" y1="287.615305124050792" x2="74.635915315389866" y2="287.615305124050792" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="155.143392792011582" y="255.17592904430785" width="70.285314839441526" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="225.428710937499091" y1="287.61529541015625" x2="239.5667724609375" y2="287.61529541015625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="238.399566650390625 291.6043701171875 245.3077392578125 287.61529541015625 238.399566650390625 283.626251220703125 238.399566650390625 291.6043701171875"></polygon>
      </g>
      <rect x="245.382683092559091" y="255.17592904430785" width="81.098440199355537" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="326.481124877929688" y1="287.61529541015625" x2="340.619186401367188" y2="287.61529541015625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="339.451995849609375 291.6043701171875 346.36016845703125 287.61529541015625 339.451995849609375 283.626251220703125 339.451995849609375 291.6043701171875"></polygon>
      </g>
      <rect x="346.435098753017883" y="255.17592904430785" width="91.911565559272276" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="438.346664428710938" y1="287.61529541015625" x2="452.484725952148438" y2="287.61529541015625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="451.317527770996094 291.6043701171875 458.2257080078125 287.61529541015625 451.317527770996094 283.626251220703125 451.317527770996094 291.6043701171875"></polygon>
      </g>
      <text transform="translate(87.104087829589844 291.424468994140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(164.857017517089844 292.039703369140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(255.224205017089844 292.039703369140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(354.336021423339844 291.406890869140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <g>
        <rect x="458.300639773393414" y="20.199209448222973" width="64.878752159487703" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(481.729087829589844 56.430816650390625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">tee</tspan></text>
        <text transform="translate(1164.128501892089844 44.410797119140625)" style="font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">sink_0</tspan></text>
        <g>
          <line x1="523.147350311279297" y1="59.696975708007812" x2="537.285408735275269" y2="59.696975708007812" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="536.118216753005981 63.68603515625 543.026392698287964 59.696975708007812 536.118216753005981 55.707916259765625 536.118216753005981 63.68603515625"></polygon>
        </g>
        <g>
          <line x1="523.179391860961914" y1="28.650436401367188" x2="920.762847900390625" y2="28.650436401367188" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="919.59564208984375 32.639495849609375 926.503814697265625 28.650436401367188 919.59564208984375 24.661376953125 919.59564208984375 32.639495849609375"></polygon>
        </g>
        <g>
          <line x1="650.839492797851562" y1="59.696975708007812" x2="664.977546691894531" y2="59.696975708007812" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="663.810356140136719 63.68603515625 670.718536376953125 59.696975708007812 663.810356140136719 55.707916259765625 663.810356140136719 63.68603515625"></polygon>
        </g>
        <rect x="670.793465197537444" y="34.286130683400188" width="75.113754513184176" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <rect x="543.294283206245382" y="34.286130683400188" width="108.131253599149204" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(552.287681579589844 63.489410400390625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
        </g>
        <g>
          <line x1="745.907226562500909" y1="59.696975708007812" x2="760.045272827148438" y2="59.696975708007812" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="758.878082275390625 63.68603515625 765.7862548828125 59.696975708007812 758.878082275390625 55.707916259765625 758.878082275390625 63.68603515625"></polygon>
        </g>
        <g>
          <line x1="906.624786376953125" y1="59.696975708007812" x2="920.762847900390625" y2="59.696975708007812" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="919.59564208984375 63.68603515625 926.503814697265625 59.696975708007812 919.59564208984375 55.707916259765625 919.59564208984375 63.68603515625"></polygon>
        </g>
        <g>
          <rect x="766.05415209270177" y="34.286130683400188" width="140.570629678892146" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(785.738853454589844 63.489410400390625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
        </g>
        <g>
          <line x1="1034.63507080078125" y1="52.653518676757812" x2="1048.77313232421875" y2="52.653518676757812" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1047.60595703125 56.642578125 1054.51409912109375 52.653518676757812 1047.60595703125 48.664443969726562 1047.60595703125 56.642578125"></polygon>
        </g>
        <g>
          <rect x="926.50382375625486" y="20.199209448222973" width="108.131253599151023" height="64.908610426773521" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(945.872642517089844 56.445953369140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimetamux</tspan></text>
        </g>
        <g>
          <line x1="1162.6453857421875" y1="52.653518676757812" x2="1204.216552734375" y2="52.653518676757812" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1203.04931640625 56.642578125 1209.95751953125 52.653518676757812 1203.04931640625 48.664443969726562 1203.04931640625 56.642578125"></polygon>
        </g>
        <g>
          <rect x="1054.514119340066827" y="20.199209448222973" width="108.131253599151023" height="64.908610426773521" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(1080.497642517089844 56.445953369140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtioverlay</tspan></text>
        </g>
        <text transform="translate(680.579185485839844 63.489410400390625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      </g>
      <g>
        <rect x="458.300639773393414" y="98.50985351327472" width="64.878752159487703" height="64.878752159484065" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(481.729087829589844 134.741851806640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">tee</tspan></text>
        <text transform="translate(1164.128501892089844 122.721343994140625)" style="font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">sink_1</tspan></text>
        <g>
          <line x1="523.147350311279297" y1="138.00762939453125" x2="537.285408735275269" y2="138.00762939453125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="536.118216753005981 141.996673583984375 543.026392698287964 138.00762939453125 536.118216753005981 134.0185546875 536.118216753005981 141.996673583984375"></polygon>
        </g>
        <g>
          <line x1="523.179391860961914" y1="106.961090087890625" x2="920.762847900390625" y2="106.961090087890625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="919.59564208984375 110.95013427734375 926.503814697265625 106.961090087890625 919.59564208984375 102.972015380859375 919.59564208984375 110.95013427734375"></polygon>
        </g>
        <g>
          <line x1="650.839492797851562" y1="138.00762939453125" x2="664.977546691894531" y2="138.00762939453125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="663.810356140136719 141.996673583984375 670.718536376953125 138.00762939453125 663.810356140136719 134.0185546875 663.810356140136719 141.996673583984375"></polygon>
        </g>
        <rect x="670.793465197537444" y="112.596774748451935" width="75.113754513184176" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <rect x="543.294283206245382" y="112.596774748451935" width="108.131253599149204" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(552.287681579589844 141.799468994140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
        </g>
        <g>
          <line x1="745.907226562500909" y1="138.00762939453125" x2="760.045272827148438" y2="138.00762939453125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="758.878082275390625 141.996673583984375 765.7862548828125 138.00762939453125 758.878082275390625 134.0185546875 758.878082275390625 141.996673583984375"></polygon>
        </g>
        <g>
          <line x1="906.624786376953125" y1="138.00762939453125" x2="920.762847900390625" y2="138.00762939453125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="919.59564208984375 141.996673583984375 926.503814697265625 138.00762939453125 919.59564208984375 134.0185546875 919.59564208984375 141.996673583984375"></polygon>
        </g>
        <g>
          <rect x="766.05415209270177" y="112.596774748451935" width="140.570629678892146" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(785.738853454589844 141.799468994140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
        </g>
        <g>
          <line x1="1034.63507080078125" y1="130.96417236328125" x2="1048.77313232421875" y2="130.96417236328125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1047.60595703125 134.953216552734375 1054.51409912109375 130.96417236328125 1047.60595703125 126.97509765625 1047.60595703125 134.953216552734375"></polygon>
        </g>
        <g>
          <rect x="926.50382375625486" y="98.50985351327472" width="108.131253599151023" height="64.908610426773521" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(945.872642517089844 134.756500244140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimetamux</tspan></text>
        </g>
        <g>
          <line x1="1162.6453857421875" y1="130.96417236328125" x2="1204.216552734375" y2="130.96417236328125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1203.04931640625 134.953216552734375 1209.95751953125 130.96417236328125 1203.04931640625 126.97509765625 1203.04931640625 134.953216552734375"></polygon>
        </g>
        <g>
          <rect x="1054.514119340066827" y="98.50985351327472" width="108.131253599151023" height="64.908610426773521" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(1080.497642517089844 134.756500244140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtioverlay</tspan></text>
        </g>
        <text transform="translate(680.579185485839844 141.800445556640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      </g>
      <g>
        <rect x="458.300639773393414" y="176.820497578324648" width="64.878752159487703" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(481.729087829589844 213.052398681640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">tee</tspan></text>
        <text transform="translate(1164.128501892089844 201.031890869140625)" style="font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">sink_2</tspan></text>
        <text transform="translate(1164.128501892089844 255.131500244140625)" style="font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">sink_3</tspan></text>
        <text transform="translate(1164.128501892089844 288.559234619140625)" style="font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">sink_4</tspan></text>
        <g>
          <line x1="523.147350311279297" y1="216.318267822265625" x2="537.285408735275269" y2="216.318267822265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="536.118216753005981 220.307342529296875 543.026392698287964 216.318267822265625 536.118216753005981 212.329193115234375 536.118216753005981 220.307342529296875"></polygon>
        </g>
        <g>
          <line x1="523.179391860961914" y1="185.271728515625" x2="920.762847900390625" y2="185.271728515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="919.59564208984375 189.26080322265625 926.503814697265625 185.271728515625 919.59564208984375 181.28265380859375 919.59564208984375 189.26080322265625"></polygon>
        </g>
        <g>
          <line x1="650.839492797851562" y1="216.318267822265625" x2="664.977546691894531" y2="216.318267822265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="663.810356140136719 220.307342529296875 670.718536376953125 216.318267822265625 663.810356140136719 212.329193115234375 663.810356140136719 220.307342529296875"></polygon>
        </g>
        <rect x="670.793465197537444" y="190.907418813503682" width="75.113754513184176" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <rect x="543.294283206245382" y="190.907418813503682" width="108.131253599149204" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(552.287681579589844 220.110992431640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
        </g>
        <g>
          <line x1="745.907226562500909" y1="216.318267822265625" x2="760.045272827148438" y2="216.318267822265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="758.878082275390625 220.307342529296875 765.7862548828125 216.318267822265625 758.878082275390625 212.329193115234375 758.878082275390625 220.307342529296875"></polygon>
        </g>
        <g>
          <line x1="906.624786376953125" y1="216.318267822265625" x2="920.762847900390625" y2="216.318267822265625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="919.59564208984375 220.307342529296875 926.503814697265625 216.318267822265625 919.59564208984375 212.329193115234375 919.59564208984375 220.307342529296875"></polygon>
        </g>
        <g>
          <rect x="766.05415209270177" y="190.907418813503682" width="140.570629678892146" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(785.738853454589844 220.110992431640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
        </g>
        <g>
          <line x1="1034.63507080078125" y1="209.274810791015625" x2="1048.77313232421875" y2="209.274810791015625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1047.60595703125 213.26385498046875 1054.51409912109375 209.274810791015625 1047.60595703125 205.285736083984375 1047.60595703125 213.26385498046875"></polygon>
        </g>
        <g>
          <rect x="926.50382375625486" y="176.820497578324648" width="108.131253599151023" height="64.90861042677534" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(945.872642517089844 213.067047119140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimetamux</tspan></text>
        </g>
        <g>
          <line x1="1162.6453857421875" y1="209.274810791015625" x2="1204.216552734375" y2="209.274810791015625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1203.04931640625 213.26385498046875 1209.95751953125 209.274810791015625 1203.04931640625 205.285736083984375 1203.04931640625 213.26385498046875"></polygon>
        </g>
        <g>
          <rect x="1054.514119340066827" y="176.820497578324648" width="108.131253599151023" height="64.90861042677534" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(1080.497642517089844 213.067047119140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtioverlay</tspan></text>
        </g>
        <text transform="translate(680.579185485839844 220.110992431640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      </g>
      <g>
        <rect x="458.300639773393414" y="255.131141643376395" width="64.878752159487703" height="64.878752159485884" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(481.729087829589844 291.362945556640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">tee</tspan></text>
        <g>
          <line x1="523.147350311279297" y1="294.62890625" x2="537.285408735275269" y2="294.62890625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="536.118216753005981 298.61798095703125 543.026392698287964 294.62890625 536.118216753005981 290.63983154296875 536.118216753005981 298.61798095703125"></polygon>
        </g>
        <g>
          <line x1="523.179391860961914" y1="263.582366943359375" x2="1204.216552734375" y2="263.582366943359375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1203.04931640625 267.571441650390625 1209.95751953125 263.582366943359375 1203.04931640625 259.593292236328125 1203.04931640625 267.571441650390625"></polygon>
        </g>
        <g>
          <line x1="650.839492797851562" y1="294.62890625" x2="664.977546691894531" y2="294.62890625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="663.810356140136719 298.61798095703125 670.718536376953125 294.62890625 663.810356140136719 290.63983154296875 663.810356140136719 298.61798095703125"></polygon>
        </g>
        <rect x="670.793465197537444" y="269.218062878555429" width="75.113754513184176" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <rect x="543.294283206245382" y="269.218062878555429" width="108.131253599149204" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(552.287681579589844 298.421539306640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
        </g>
        <g>
          <line x1="745.907226562500909" y1="294.62890625" x2="760.045272827148438" y2="294.62890625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="758.878082275390625 298.61798095703125 765.7862548828125 294.62890625 758.878082275390625 290.63983154296875 758.878082275390625 298.61798095703125"></polygon>
        </g>
        <g>
          <line x1="906.624786376953125" y1="294.62890625" x2="1204.216552734375" y2="294.62890625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="1203.04931640625 298.61798095703125 1209.95751953125 294.62890625 1203.04931640625 290.63983154296875 1203.04931640625 298.61798095703125"></polygon>
        </g>
        <g>
          <rect x="766.05415209270177" y="269.218062878555429" width="140.570629678892146" height="50.821689191596306" rx="4" ry="4" style="fill: #2a2aea;"></rect>
          <text transform="translate(785.738853454589844 298.421539306640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
        </g>
        <text transform="translate(680.579185485839844 298.421539306640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      </g>
      <rect x="1332.561240395109053" y="140.48600320485275" width="88.479066312236682" height="59.227966424215992" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(1340.247642517089844 173.899307250976562)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 13px;"><tspan x="0" y="0">Waylandsink</tspan></text>
      <g>
        <rect x="1357.337147903381265" y="89.153677587401035" width="38.927251295692258" height="27.249075906987855" rx="4" ry="4" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
        <line x1="1369.015323292085668" y1="124.188203753525158" x2="1384.586223810358206" y2="124.188203753525158" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
        <line x1="1376.800773551227394" y1="116.40275349438889" x2="1376.800773551227394" y2="124.188203753525158" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
      </g>
      <line x1="1376.800773551227394" y1="126.881468083953223" x2="1376.800773551227394" y2="140.48600320485275" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <g>
        <line x1="1312.68218994140625" y1="170.027313232421875" x2="1326.82025146484375" y2="170.027313232421875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1325.653076171875 174.016387939453125 1332.56121826171875 170.027313232421875 1325.653076171875 166.038238525390625 1325.653076171875 174.016387939453125"></polygon>
      </g>
    </g>
  </g>
</svg>

For information about the plugins used in this pipeline, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70022-50/topic/object-detection-classification-and-segmentation-python-sample-app.html#object-detection-classification-and-segmentation-python-sample-app__section_mty_hyk_bdc).

## Model files

Table : Models used for detection and classification

| Purpose | LiteRT model | Description |
| :--- | :--- | :--- |
| Object detection | YOLOX | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ul_cfw_r4k_bdc"><br>                                    <li class="li">Identify the object in a scene from a camera stream.</li><br><br>                                    <li class="li">Overlay the bounding boxes over the detected objects.</li><br><br>                                </ol> |
| Image classification | InceptionV3 | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_jll_v4k_bdc"><br>                                    <li class="li">Classify a scene from a camera stream.</li><br><br>                                    <li class="li">Overlay the classification labels on the screen.</li><br><br>                                </ol> |
| Image segmentation | Deeplab\_plus\_mobilenet | Produce semantic segmentations for the video file. |

## Run the application on the target device

1. Ensure that you complete the [Prerequisites](https://docs.qualcomm.com/doc/80-70022-50/topic/prerequisites-for-python-sample-applications.html).
2. Run the detection, classification, and segmentation script on the target
                    device:

        gst-filesrc-2detection-classification-segmentation-side-by-side.pyCopy to clipboard
3. To display the available help options, run the following
                    command:

        gst-filesrc-2detection-classification-segmentation-side-by-side.py -hCopy to clipboard

The following are the input videos:

| Input video | Directory |
| --- | --- |
| Object detection | /etc/media/video.mp4 |
| Image classification | /etc/media/video.mp4 |
| Image segmentation | /etc/media/video.mp4 |

The default file paths in the Python script are as follows:

Table : Default directories for model and label files

| Model and label files | Directory |
| :--- | :--- |
| Detection model | /etc/models/yolox\_quantized.tflite |
| Detection labels | /etc/labels/yolox.json |
| Classification model | /etc/models/inception\_v3\_quantized.tflite |
| Classification labels | /etc/labels/classification.json |
| Segmentation model | /etc/models/deeplabv3\_plus\_mobilenet\_quantized.tflite |
| Segmentation labels | /etc/labels/deeplabv3\_resnet50.json |

## Expected output

The four streams can be previewed side by side on a local display.

## Pipeline flow

| Process | Description |
| --- | --- |
| filesrc | Reads the video data from a file. |
| qtdemux | Demultiplexes the video data. |
| h264parse | Parses the H.264 video. |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70022-50/topic/v4l2h264dec.html) | Decodes the H.264 video. |
| **Preprocessing** | **Preprocessing** |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimlvconverter.html) | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_i5w_4wl_vbc"><br>                                    <li class="li">Receives the video stream on its sink pad.</li><br><br>                                    <li class="li">Performs preprocessing:<ul class="ul" id="object-detection-classification-and-segmentation-python-sample-app__ol_zdw_qwl_vbc"><br>                                            <li class="li">Color conversion</li><br><br>                                            <li class="li">Scaling down/up</li><br><br>                                            <li class="li">Normalization on the stream data when the model<br>                                                expects the floating point values as an input</li><br><br>                                        </ul><br></li><br><br>                                    <li class="li">Converts the video stream to a tensor stream on its source<br>                                            pad.<p class="p">The object detection, classification, and<br>                                            segmentation models use this tensor stream for<br>                                            inferencing.</p><br></li><br><br>                                </ol> |
| **Inferencing** | **Inferencing** |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimltflite.html) | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_u1l_cxl_vbc"><br>                                    <li class="li">Loads the model.</li><br><br>                                    <li class="li">Modifies the graph for the chosen delegate.</li><br><br>                                    <li class="li">Receives the tensor stream on its sinkpad.</li><br><br>                                    <li class="li">Runs the inference and produces a tensor stream with the<br>                                        inference results on its source pad.</li><br><br>                                </ol> |
| **Postprocessing** | **Postprocessing** |
| qtimlpostprocess | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_ky5_grn_vbc"><br>                                    <li class="li"> Receives the inference tensors from the object detection<br>                                        model.</li><br><br>                                    <li class="li">Converts the inference tensors on its sinkpad into formats<br>                                        such as video or text that the multimedia plugins can<br>                                        process later.</li><br><br>                                    <li class="li">Applies the threshold to the chosen number of results.</li><br><br>                                    <li class="li">Loads the corresponding modules for detection models. <p class="p">In<br>                                            this use case, qtimlpostprocess does the following:<br>                                            </p><ol class="ol" type="a" id="object-detection-classification-and-segmentation-python-sample-app__ol_jcd_wnk_5bc"><br>                                            <li class="li">Loads the YOLOv8 submodule.</li><br><br>                                            <li class="li">Produces results as structures of text.</li><br><br>                                            <li class="li">Sends them to the sinkpad of qtimetamux.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| qtimlpostprocess | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_o3v_2xl_vbc"><br>                                    <li class="li">Receives the inference results from a classification model<br>                                        on its sinkpad. </li><br><br>                                    <li class="li">Converts the inference tensors into formats like video or<br>                                        text that the multimedia plugins can process later. </li><br><br>                                    <li class="li">Applies the threshold to the chosen number of results.</li><br><br>                                    <li class="li">Loads the corresponding modules for the classification<br>                                        models. <p class="p">In this use case, qtimlpostprocess does the<br>                                            following: </p><ol class="ol" type="a" id="object-detection-classification-and-segmentation-python-sample-app__ol_p3v_2xl_vbc"><br>                                            <li class="li">Loads the submodule of the model.</li><br><br>                                            <li class="li">Produces results as video frames with classification<br>                                                labels.</li><br><br>                                            <li class="li">Sends them to the sinkpad of qtivcomposer.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| qtimlpostprocess | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_mtr_k5n_vbc"><br>                                    <li class="li">Receives the inference tensors on its sinkpad.</li><br><br>                                    <li class="li">Converts the inference tensors into video formats that the<br>                                        multimedia plugins can process later.</li><br><br>                                    <li class="li">Produces the semantic segmentations for the frame.</li><br><br>                                    <li class="li">Loads the corresponding modules for the segmentation<br>                                            models.<p class="p">In this use case, qtimlpostprocess does the<br>                                            following: </p><ol class="ol" type="a" id="object-detection-classification-and-segmentation-python-sample-app__ol_ntr_k5n_vbc"><br>                                            <li class="li">Loads the deeplab-argmax submodule.</li><br><br>                                            <li class="li">Produces video frames with segmentation masks.</li><br><br>                                            <li class="li">Sends them to the sinkpad of qtivcomposer.</li><br><br>                                        </ol><br><br>                                    </li><br><br>                                </ol> |
| [qtimetamux](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimetamux.html) | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_ll3_x5l_vbc"><br>                                    <li class="li">Receives video stream and text stream with bounding box<br>                                        results corresponding to the video stream on its<br>                                        sinkpads.</li><br><br>                                    <li class="li">Produces GST buffers with contents of the video stream from<br>                                        its sink pad.</li><br><br>                                    <li class="li">Adds bounding boxes as GstVideoRegionOfInterest from data<br>                                        sinkpad to GST buffers meta (meta muxing) on its source<br>                                        pad.</li><br><br>                                </ol> |
| [qtivoverlay](https://docs.qualcomm.com/doc/80-70022-50/topic/qtioverlay.html) | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_wst_y5l_vbc"><br>                                    <li class="li">Receives the multiplexed stream.</li><br><br>                                    <li class="li">Overlays the bounding boxes on the VideoFrame using CL.</li><br><br>                                    <li class="li">Produces GST buffers with overlays in its source pad.</li><br><br>                                </ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70022-50/topic/qtivcomposer.html) | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_nmc_lxl_vbc"><br>                                    <li class="li">Receives the original video stream with classification<br>                                        results on its sinkpads. </li><br><br>                                    <li class="li">On its sourcepad, produces GST buffers with contents<br>                                        composed of video streams from its sinkpads.</li><br><br>                                </ol> |
| **Output** | **Output** |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50/topic/waylandsink.html) | <ol class="ol" id="object-detection-classification-and-segmentation-python-sample-app__ol_cgt_mwl_vbc"><br>                                    <li class="li">Receives the video in its sinkpad</li><br><br>                                    <li class="li">Submits the video stream to Weston. </li><br><br>                                    <li class="li">Weston renders the video stream on a local display<br>                                        device.</li><br><br>                                </ol> |
|  |  |
|  |  |

## Related information

- [Object detection](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-object-detection.html)
- [Image classification](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-classification.html)
- [Image segmentation](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-segmentation.html)

**Parent Topic:** [Run Python-based applications](https://docs.qualcomm.com/doc/80-70022-50/topic/python-sample-applications.html)

Last Published: Feb 20, 2026

[Previous Topic
Camera encode, object detection, and display](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/camera-encode-file-detection-yolov8-overlay-display.md) [Next Topic
Parallel inference using Python](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/parallel-inference-using-python.md)