# Pose estimation and display with TFLite

Source: [https://docs.qualcomm.com/doc/80-70015-50/topic/single-camera-stream-with-pose-estimation-and-display.html](https://docs.qualcomm.com/doc/80-70015-50/topic/single-camera-stream-with-pose-estimation-and-display.html)

The use cases use the PoseNet TFLite model to process a single camera stream with
        pose estimation.

## Variant 1: Use qtioverlay plugin to apply pose estimation overlay

Run the use
                case:

    setprop persist.overlay.use_c2d_blit 2Copy to clipboard

    gst-launch-1.0 -e \
    qtiqmmfsrc name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc ! queue ! tee name=split \
    split. ! queue ! qtimetamux name=metamux ! queue ! qtioverlay ! queue ! waylandsink fullscreen=true sync=false \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/opt/posenet_mobilenet_v1.tflite ! queue ! qtimlvpose threshold=51.0 results=2 module=posenet labels=/opt/posenet_mobilenet_v1.labels constants="Posenet,q-offsets=<128.0,128.0,117.0>,q-scales=<0.0784313753247261,0.0784313753247261,1.3875764608383179>;" ! text/x-raw ! queue ! metamux.Copy to clipboard

To stop the use case, press CTRL + C.

Figure : Pipeline for pose estimation overlay
                
                ![](data:image/png;base64,UklGRmAcAABXRUJQVlA4TFMcAAAvzoM/AGph3LaRI7H/svdyvl9ETEBP2QKZgClsY3JirEwO++vndCjTA1SZPsS2erZ24/935MhZEybMNddcc02Ya8KEefrGXBMmTJhjwhwTJkyYMNdcEyZMmGPCXO/qZl6/fq/7PaDRuKpXNRTIhj6K/mRAYWtrUzktg6IM4RKgVjkwgxW92VwCtC4HyjFp6QQYgjwZALX4V1GldAlQnQKu6p/IaQthsOrUEFTAczeNjoBqA4B1Rc25QtXJWM5iAFoTK5s6Bh2L1jKW85oqC21pObFQJvDPAQa2bZW0D8NwD//hwzAcDMNwMAzD8MMwDMNwcHAwDMMwHFxbF9S2B9XFi8MwDIfhMByGYRiG4Y/DYRgOw2E4HA6Hw9nbf0lsIzmSxMCOQ2M7M7tr98yafntO/9+PZMn/3BpbxooxYUwYM9qMu6xlLXs5y172sncDEVJkVmXeO0UtD4K06W2IILhutRVJuXhX40dyLBQEHOsSCoF4Q9jR9hQJAiF4u9N2XBAIgYaTb1vSloEgQKhRkb4lBIgIJCVpXBCQkCKgnYv5PwK5dQyYHZLadkIOUhCHGEQgAhGQyMknJyeRyEkkco7j//dfgttGkiQxd2v6mhlHZObc1Q/Y48tIc4z/jP+M/4z/jP/M0/KT7M541qJixjssAwufzG5WbArtht6LIKc784rN+mR8vH/ghf7OK8Y365NX9BS80J3Q67i8zzvntTBaOEqmssOD9/n1Qc0qNoalwIeDnA5HM2A1SjOjr+GF3hOt5vCJXMAL41rNoXKed76OmEFUDMLAxC+g2BQqywtBTs5jQZ/sgKAnPmBBo1Q6CS88Vac5IH7dSzv9sMsPKsZXpFKCH9InniFt4h3SJpNe2+UX9eIzhboPgmJd4hWN5uAZjeZg/Gf8Z5BApDc/x0GkI2M+JNE5wxENmYiGBZjvdRJfQkT6Mg+WdkifiUBK8qlXdkwzw80OSkMjAqBhAALYBUG7AwdIfGVoyhg092hRsm0Ca4F0Y5CZzjlHM8iM5hwNIYgszpBiqJDie3LbARE5i+LXQtqgxFrgtM+2HKgRG7QRZgSdgXZNccG6n4yOlcE5XfmVOapzlEnkL6FxIDFRq+Lk+2Kha26f3JXBVLf5zeBemCLYRlwbZQuiqKho1gbmHSdcJskitAYytM3I2DO84vvLBMUiFEIEAMV5A7MDcu6AKYItil8LkCYI4TvzsMsDR/sxOxUKzhwnIWDrxhPebE/b49urFQDinIzOMxWnq10R3ilJ3MoIgDiVMFUow6BlyPwHGaupsSo6l4VzGkS8tYPQ2xhYvYa8wpiVRQrg9EdujTJro5NPfUyziicAtiCwbZo/hPcKyRIIeezJNl07/IA9mbE2hQUAUgbzwd3ahIDdwQzaKLIWwVqLM0wxEUBkI2sBrLUWSAUlb/x4xYlFpm8EooQdDgVQJTGOkzCKto1VnwXTNUSL1toErY2ALQohms7P3t97hMAUCDP8yiCyOFOsJLIRAFqbkCKsq49pWUCsatM1cC4La5lpoGNlzICNogq+sH/0GiJTKFMT+6d+/9EMssNESKzFhNOXMcjMe0fba4XIIrNOCSL7rG39O4EkLYE6rdG2uxOsrrz7NkRrkZRB9Pd1UeREHBeWd6D9ICh8raIiJ5J/V/pFETCVUeC/EedFkcvOXLxSLvtcvvOrygO//63xkW+KokBGotzSlHvz6aktXB3J9c8iwCDHRZFvPV3v3iFfRDEFvo6KnLAoGkLCbVHECovB8TWXhV8ETLqo8mJL6BclY+nfEMX+zVvREMWFX5H5aI767IqWJJi/zSkv/Ldtc7OButFR3Enyi6JhLHIyFBe5dWcwYRQEfrl3KsZtUfgV50VMhvLiIgzczR3dFCVS48eEebGgt8IvNN9M6+q8Qr+TjpYUFYWvGcst+kVEnZFBsS2GZ+SmKAotqcxJb5ugKG54IlC6KCoiNRjC9A8fgFhT4wCAyHgrhgHgrgYQBTcjAAwRb8QALYYAIEJCc7bZ1Osss3sDqGZlO8u9txzC03oA0LoFgKQhqgWAWFf0YZZXgplmbRfAf+lmOpJf7cYgBw6AgOctAPyjyyFVBzgC7LITQBswrgDAyeMe4Nfc//0DAEO5jGDcAdQrgMHjDRTMNWyL3W83UgnUeIbz5CwWehFObf7s7UmU6ayrD+oUBGx8SDneAMAQ0DDEpFLwybIzMlUNw+8u2KwcvLkFAFjpLaSK4mFAMh9dluTAvlH4DHIOI6oNrNXil75ZAwCM6MEKiZxrfZo4AABcLeQGEgAomP6hvQZw3ZN1a48BjwNHoh0ARs3pLqY9rC+RGo5RsHHzH5YhaprjUOU9pN6/iX6b7UZOIWoKd6UOMPdvMjjm3r7PJZoz9fd2lNfJ2L2RqQamGvlwdWfxfa1J3uT9/3uL0Y3iTFzxVqziYANbRvMBbHdqIg2uXn1UUEj/rOIH4P/vLDey4fe57LK2uiDtuH5wC8+Y7U5xLNYqBXeb9WIMbqFWKdRx3vY30eDk8fEYNHk/Ug4i3DrgRGtI1Z3wmUMRLWvIItgw3c/We7XV+VndspqXzzRJUy5PtPozv8pfLYisd7n9p/DeBFELdZVCVhW7Na9gE/h/CI7OYKuqLw5v/7QKgkTkNIc0aPYOZWIdNCn8NztjpbYQ0gUcWv2xANQSObeTHJW+mXtDpx5xhFuld+vY3cRxBikmvebcvVvuncXWPTTxK7zKAwy5NzgYu4Ofj3CrR/ct/s0oUvUODuc9HIIUfJW6wUEUikysBGPoOASKUes49oImcct8d8sqBH+JozORNURIG3e7xGMfK0Zd0TkOuRQydvM4mX17ZH0hH8uHLZE6S3cGO8VSLw8nVf56aIJy75Z3bhQExfAeH/YCM/rJ2FWgwxazLlXLgzcEhOxgtlU77JtoQRP10+u3X4hDs3A7PDqPQZlD9sjkjKpx0xdt4S9p7BfLcpdK51gGwVrU1fzIWjdlkM8HnUOhlhtRKnRv2U52ST88VWTMw0y5GFv9fq5blrmDk1Z3bNjYyMfTD/tyi1m6UhZb73zn5krlol76EC//e1eX7kiKQ4i0e8e5qLuT6weBLw7kjDi9GbUuy8aHWq1Fzne7Rp7ro5Pt8G35FbuP0H28EvlGvXzpRHu8WnWOOFCthZdft0MQiaLSQdkU/RNnonhM3ZwTR8fTWjNxoIMIlFr1QShelfL6lR53UUxU8cSbu+JlINaU7p7c1+k9ivgzOVcKkYj1NwCAYeKOKRS5wnGgYAQ4ZTFv3EjFw1gREpF5uPgrNym/czHq4/+1XXKTakioEGAZxQYsY9BkPvKVFe1rp6uUBoQc1RbOvUULajG2fOml3+g6ng7X3W4yiLiT7cilm6obizeF3x2UpTjoASxjpdsjct4CADgTW+ZNj7Lq93iwIRn3omE0D7P1dcZKbtmbk1JvT4/ccw5LhD5wRf9GBdf7aSDiUtQqg0D99y6M3JS6aRBaDVUo4sUcLOMpbq+QcO/g4vVXAIBwGYiwGlZ4zo9O1/vs+ltJpGkz9WsubQC1VJkdtsD7rI0ycn/TF33mbg9DwFkPAJCQdhJ6amn6EBUKAIAD3bla0srNUzeXMrh+pqAF2BQ0FbkpcyluuzWA8BVeJt9Vh8T4XYTb6Hs/sbHgCVTob1v4QdDdlGMh6d5cuJUf7rDoMR2//PpK6fu8AGnk+9uoOvW+X/hRPrn+sbWT7B0UnHCgsP83gGrR9q57p1MVETyfLWKbVPdj5Bd+1MTtkfRw7W+L9pcJ/ywqm8pcsSY6k9yHu0dOHMi8LKojDmY7yI49UT/6u2KedLodCt/3o7JyvltQBs/+NoNaYTIvdr66iIes/3L9XifmV805LMz498fu+A638+CX9XtzxW8wRtuw36NazYu+Jrl3Fj5cRVEtpuIZeAKXelu7UCuLw9Sm+0+oj44mvDxXvve5Uhh4u5V6UauzVHG8fKFjH6RuxJi45aPSpSZz8a92154zltLUCyqGw/LlBWO6E/nLi9LxB3qC2E1g0DeyuCxJVw2Fglw2Mcg5hI9q4Uzs0hd9lgM78+7lRcbVxNIX6csLjsMZulpsX9QBItW4ycH64qO92uoTz0hTcRuxXSrfonnJdvXNcMRHXsNWxfPRzVS32sUvL+pmYYcbV7+8BFAzZ+44j8k8XIAmOb86v5rb/3d3ctUPdbca3LU6iO3fpC/B8A3ZH8Y+lhPVxg1eXvLd3QyhqJWK+p8XgV4uF8P8cbZ0tyjFhuiCuXwGcF63e7Gd97W/ggkxBVaJCIuin1d3E+yDkxVzd/qQH8Wfr1S/O4bX+ATronD6phTDq5/CLZL5lCOVKddNWlEXDjxz7I5RYzda3D3WkPj+CbLFvC+ioS2KERwb14JyOEUHEDldCS++brVEcwl+322QctH64Q5qVcAmKMRaHeDKr2GuiTcwlJIj4RTFAVK0+PYXWUNaZC6ELMsBNowXobel1e5fjWYoEpAvC3BLLiDxQwcSJHRgX5HcD1UNKz+8hoNdpPs+zHq4jZ0+9NewUrPcdqmI1UHkjKSIf6HQBegL2vYA/S829dSXa4rnANCWvNlFTOi7AL0/nYwfgwO6A0CECQA4EUt/AIBVRfhJ7MFQ0AKcnO+MT7CLdmt1sBhQemKjaC0AdjXxAaDIBcAwDDO5T0gHgGG18zeQSs7gSdPFELnLBEAiai4H2G/FmhdrADjGjJxBQl1Hfg8AqcZhnHgaUI8AcAs1d7QS2QeQjIiqvw5U7rZEMgUAp/+G1G0g405+G7ROAKAVd7TZTZzEVhU9gOM+Y+AAwCrm7wNHu7up1UTA+i99TkDKfPlK4+UxWd9SXFZVGVOnvYqwCZC153mau7hc0D1xk3uxRPNwqUjded6CsfS8G8ZOxp5X4vT/pzHLesPjKLvYC6pSU+wtLOuQqjImosDLGyLSnqc58Lw4DrDyFkRxiQbLBgm9/AZL7eVIHZb54nJ4MERBHnuiJmy8eFHqjqiclo6mq8obMoY49rySCIMGDTYBSu15JZaakDdORZfmb8UxCNBaG5HnlXHTIFHaB4zUBEgLzyt1EGNcorHsWGq8Mg5i5BvP81BSE1jnrypjvCmxk3EeE6nzteKSWXb3nWSWJImY0BDTPUqJSMz2HMagZMtZPT8OsSFmstdt7AEePo09WKe5nSCWxHRvWYck0RLgniSzNOaemAklM5HsrMl4ggmRmImYJFv2tqT7y+HBdJJVOUHSUtas1WjI+pZQMjMhSpog+75hwkftPJN5uDSkpHuSEs29pS5Jnaqcq44MkuyMrVZD3BnLju2kJZx9FyNJtM4fk2WHW1Io48HMPuUDjbH8lfw0iC2NPYc94cOPxcPMumc05+FT2YMx2JEzgYjTNThrHc46H2gaDs9YrtPH2ZaLNQmisa2fh0vBUgLnsCZbWQ8zlqVlY5yxh8zMdYuE2Siiy8PeWnvhiFQV30XGOKNgtMyApeszt7S9K2dMkz2Iit+YaQ1gSTYNYkszI8eP7MRMtu+zT8z8RGabZzpeyW462+aMdTh7ERjzIct1GmJWusviwSB7bk0zC7UXZc7YQ7MeZ2kcVQ7U8tKYXZat7aS/wAbJzK71YfZUnHVi86yuzcj1z/OTGn1aezCodWd+ep6jzHSoKzQXsCj1DZG5xE+bYFDfXPQm+gzmwRCZn6KnHDQX1I5pWPNwiT0Ymk7SZ04Pxvw0PIOoKuMwk7QX7iPU9blN8P2BwMZ/BlgB4VpAg5Dh1LWABoMr9Q1AhqNX6nveXEXJzNn3+SQ/qCiWT3w4yPFflEZ5lkfX0V3RKJ+Y8uQ6urU6LnPneXhd+W+oKpk3VFfe+GTgpqpYnnxekLNfpxrlDbOe/IFRqzk8+QNeuEC34xIUEngMo2L8Z/xn/Gf8Z/xn/Gf8Z/xn/Gf8Z/ynqs+MECjtPVRky78OHBFwaTvJaJZkiEg2uuMvKY0EyCV/4L+GjhyVjgR4dVd90iEkIwNONP4z/jP+M/4z/jP+M/4z/jP+M/4z/hvp8JJZzcOl70y+6mPvuowlZPGdqKZzoPY+OW/QYyZ4gaR1VNM8+LuQRXUO9Y6keT1mUvmdpK9zqHkqF4ctKkAaB0HSk7WYCdgLZFWAtA7YMEasbTygw0w8Emsc4z/jP+O/B3N2HPPTxJy/W2Y6Js26VHwYwedDxjwYRHNWlO7itoUxl5U5RzMs3bLUabBDxGmuSY4fAXOeFhiDaD4XMkQGiWlmIGuOC/vcT+ZSMobO0QzTSYmGyBhillJ2HRMaMuayM3887zyh+ezHdq4+Vh2t3yMg+1fKxiDl75CRJaEtibHntMW1xDk7mK0KPCsJ+c1YRocVSn8syPIp2VjSkN7cIVaIpE/Hw2Gj9dxnrBCtsS6c7AiyMZ/O04wWND+vO1unH8yMbp/vHXy+YgxaBt/OUR6OAeF0WNNwAXfS8uHAnsSYB9s7MGgLaAkxI5gtF6+HnMwZEckXAsPJ+lgVTkaIBm23Uzy0lDsp0QaGVTvEeiiWUe8xWhtx0WRGEPZa1U5EiGhrAcrc/daRtfcGbd22T9TZ7+DzkKPcGSSeDlomAxMrIpaSmYiZiX03ZSZjOmayBCQ0nSUmomRpCcBM9/fE0loAWXMtU5GzLQnakpK01XsLEBhOBppJSWQmZtkxM1HcHjnfbR553nZydBpW9BhB+WhvhPmY9l7tTmYENVQsFXUzWyC964SURGPri7Vse9vJ9g5QWqfhs5Ajr/qyC4Mcb/ar9C7/2runMruL9aoo9iuPNklaTazfkjciXN/G6i1JEo+JwyTZaEnhwb9NDhrTO00UrELGNNmnRNV/ruvTyhHHSC3S/T5d8GJdnf/WU1Fedw3feEhJEAFV6f6UbiK/FaPv3Ua8Xuf7pOBwv2o4bsdgFMPdxu2T6MmJF6s8OsKXTNK0bKR78xFduoNZO6JbLcmgXBymLcgLR4zb6LasDmG0P215nWxi9q5XZVJ01IWroF4X+6RGIhnuk01FhPU+WeWy4yhJkoDRfJ7x6CP4NiyA38Zze3tOXzwLxa3odyCKZyH6aCXKRojBhXHsBRymckikvIHvXSFEL8QbHcDt4VjxCVzXhVs8QM6cQihP0LtwpbGFXT/shMhoFL0LY6XbsRtsmUcih1lRd21kQ/0bR6z8tDcIweob9C5AXQsh6gzW6gi9C8NV78IRdTvm10K0jhBu9uToGMLMFeKACbgunJA+pjMWo25g6vePzq+adkdk0GK0tCBcC7EL1+AvBrjuof3e7yCh8noV9C0SDs7iCVx3Bwfk1DJRMR92fQ9urnwhetEXEs35qQskrT7w8GG8l557IjerLq1fevqjsi7Zl7AxdAuFio8iUsmActUHTd9HdIAvGDvt9Ir67lQyE4V2h4CD53UBScUhrHgD40019joQKdG3gV9FtlSZCPHLLkR5cLe83vnTJK/6uGUKgRytHgA9RzpRMDdZ+Bjrl17zi4wOOzyaO4KohgNXJwhVCIF63dVqFGv0hbvF1a9at0eK3A2hM69wnHpdFpA/huJVqUyECo2ArlQeIth6O8ki1JdeWm+SprO4XKhWxhrWvEggU19/jdV6t104bsY1DHE19hhcJyrdxRzt1urbLkV93MVbeEYZwoquvygVjR4OIy5121b0IV955Ch31ftEqYweP5y/Oeqzo1kSXu5VUN/B2tY9zvwG2nnqaLLZomUyEE/t7h5VBJ5SySCnapGpLy2G8KqImH7eBUx8dPRt7ylKRSOTgXJ3w6tdmqZ37jE+zjVz6kY89ndpunGf9PHG3E/NBF0lZqOMXiKUqwrKTWreQXkh9udBk/JEuMwgtvjiMGuRqscQyglL4eQc0eZlCyW9x+6QpgfxjHSej0udMX9WsPUjN9br5Y3ZeHX4Is508h1+WZDKIVvWv2qLYVQcQ6Ye11BN8NZNl5s+5nGOUhV/Cu9EzETHoRndTS2X/AZX6SE9ioLRnF/Wf4UjI5PRf6WhQc6995ee33O+13+xmmVYKeTQerDaMPuQM+/7Kdb9XdVvlutdwWgI32NoJNE7DM3mumRKIViGIshE0O1BTMbuvWq+tDfEhynY/SrELtHH7TWG9JP6O+/1jvs8uSLkyuGOczE9NNaDQzIWteIQIttBkjO3W/pQVnNrI640GQ+fTDSAmjjwjMITGeOckbeQPda/xjbEAWSsUgvC+YjzkWlsNbHvpqe+kYTJdXmTgNuutC8so88mPuRKWJLjm9Vyy1Jhk9n2ElX2Qeh0vBveOBSZQlLyr33MyKOzmBwsuHFO+yNSMuhKL4gWc7tju6h0RWQnvclDVhX//esNggYkLi3imdYfBo+DrnRFiB/z5uddvf6M4iZyHCSVW+jz6Th10j4jGucVKV9kB3d6eBriF1rEc1hHEKLWSPghN/PFoYm+nrekqZvvbv5SfbNgPp2HlJHbHzvZiBGXVV1kkPIyF8+PKzv+q+uGrNYQLpddXeijxS5aHqBWS137H81RzP/eCd4cIFzKg/Xm5bmpM738J2TLZVX7H9XhJ6SptI3IXmgz8RXiZXoushn6QUsae29JK1hEkPIyEj/HX6Pl8kY8N/0Rl8voa0AfJkSJ2zuiNzE8t7B7UysY85VbNrCyeXKlLw5S3gyQElEKznMLYTXC+LzrA07cnOkwQa8gcibd/unq6gjrqnVi4jUMdeCI8dmBTLfXLvLxy1cI48F9HmEiAyfL4KuaDxOwVqqecFoqe3fVOC3icbiJIVxuof1608J41cKazGX68xVDTe8+HwEyFYKTfYXt4vo49WpRuvuO8AgJEu3hl+cj/CfhFYxXuz6vBnF1dRQF1zC/uhJO/JkK+0P/fBAR+21ffP3SxO2a+c0pmTdHepvXRN3aacj8mcLfu37ImPCHqe/nJVP6JZBUOw3R4rhCQqmTvncyiUmiiRZP/7rB+Oe+d3ylkwvAZ8DlvD+uRcjNtz6N2oxXT0TayZgLJ9fJCekwtOXphLj6pm+cQsXf+p9ZP/e9E+Elg5y30xZkHDz166LNq6cVycbxmWunasZDR5Q5ERONzqnvUybCVd/PA5Lx2PdDRkTh0PcrLfFzlJgQk6RycmkcERNIEmBehwSALQKACBMktsAEkdkBIlBSrIkpDBGRCNiCsFgQFasDR4kISUIU+ykmQGQ2QcQkAWY4xA7HUQRhkjA7cAwrwSThDCL2legIIsiIqMNztoAwQSD86/YHYII442ifwHHgODugOIwSEyHaIppEogOYZ0RI5CyiuPLJUSASMTuYJIqZmoipZJKpjlMQU8Ukckqk4iM/MT1PYpFzOOzr6JwQ0+EBbL8HMKUU63MOQr2vFZ9Eu4Vs5jw92FvAFMEcJ2IhkbN95rgww3EcQIrDJS6n7fzYZvbEZp/xtmPLcxTp8g1JLgVSzC/IUQT/e5Z84zKc8bF553Acr7vPxDkst7Z9Jlq2D+GHzlPBjf80jW7Hg8jlAIVZnvrXtyINcj/UiCB6xl+f6stw1BR5Y/TBLSCsfrgmN6YQS0yAtvA2KBEZjn78GwFBFCUUh2aEfnjR4ERgOBrycQQEhdrDOnFM8SDFfTg68nMERHFIJcD/QGDjP+O/ocfw69JeQxk4iJnXYiZYkYd6w0ro4lmocyKU9axB4Tq69T4uiOGL2d+cp3e+OhjM5Jd+HhddxjLSHOM/4z/jP+M/4z/jv73QSQEA)

The figure shows the flow of the use case execution:

1. Identify poses of people in scenes from a video stream, which is coming through
                    a camera source.
2. Overlay the available poses using overlaylib.
3. Display the results.

The table provides the sequential processing stages of the pipeline execution:

| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70015-50/topic/qtiqmmfsrc.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_l2f_zgm_vbc"><br>                                    <li class="li">Collects the video stream (source) and creates two copies of<br>                                        the source:<ol class="ol" type="a" id="single-camera-stream-with-pose-estimation-and-display__ol_m2f_zgm_vbc"><br>                                            <li class="li">One is sent to the qtimetamux plugin to retain the<br>                                                video stream.</li><br><br>                                            <li class="li">The other is sent to an ML inferencing<br>                                                pipeline.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| **Preprocessing** | **Preprocessing** |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvconverter.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_xsf_q5l_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="single-camera-stream-with-pose-estimation-and-display__ul_ff2_twl_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 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 PoseNet model uses this tensor stream for<br>                                            inferencing.</p><br></li><br><br>                                </ol> |
| **Inferencing** | **Inferencing** |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimltflite.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_bwn_s5l_vbc"><br>                                    <li class="li">Loads the PoseNet 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>                                        pose estimation results on its source pad.</li><br><br>                                </ol> |
| **Postprocessing** | **Postprocessing** |
| [qtimlvpose](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvpose.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_gr1_w5l_vbc"><br>                                    <li class="li">Receives the inference tensors from a PoseNet model on its<br>                                        sinkpad.</li><br><br>                                    <li class="li">Converts the tensors into formats such as video or text that<br>                                        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 of the pose estimation<br>                                        models. <p class="p">In this use case, qtimlvpose does the<br>                                            following:</p><ol class="ol" type="a" id="single-camera-stream-with-pose-estimation-and-display__ol_lyh_txn_vbc"><br>                                            <li class="li">Loads the PoseNet 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> |
| [qtimetamux](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimetamux.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_ll3_x5l_vbc"><br>                                    <li class="li">Receives the video and text streams with pose results<br>                                        corresponding to the video stream on its sinkpads.</li><br><br>                                    <li class="li">Produces GST buffers with the contents of video stream on<br>                                        its sink pad.</li><br><br>                                    <li class="li">Adds poses from data sinkpad to GST buffer meta (meta<br>                                        muxing) on its source pad.</li><br><br>                                </ol> |
| [qtioverlay](https://docs.qualcomm.com/doc/80-70015-50/topic/qtioverlay.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_wst_y5l_vbc"><br>                                    <li class="li">Receives the multiplexed stream.</li><br><br>                                    <li class="li">Overlays the poses on the VideoFrame using CL.</li><br><br>                                    <li class="li">Produces GST buffers with overlays in its source pad.</li><br><br>                                </ol> |
| **Output** | **Output** |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70015-50/topic/waylandsink.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_pxz_4xn_vbc"><br>                                    <li class="li">Receives the video stream on its sinkpad.</li><br><br>                                    <li class="li">Submits the video stream to Weston.</li><br><br>                                    <li class="li">Weston renders the following on a local display device:<ol class="ol" type="a" id="single-camera-stream-with-pose-estimation-and-display__ol_uxg_yxn_vbc"><br>                                            <li class="li">The video stream captured from the camera.</li><br><br>                                            <li class="li">The poses generated for multiple people in that<br>                                                scene.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |

## **Variant 2: Use qtivcomposer to mix original frame with pose estimation                    mask**

Run the use
                case:

    gst-launch-1.0 -e --gst-debug=2 \
    qtiqmmfsrc name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc ! queue ! tee name=split \
    split. ! queue ! qtivcomposer name=mixer ! queue ! waylandsink fullscreen=true sync=false \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/opt/posenet_mobilenet_v1.tflite ! queue ! qtimlvpose threshold=51.0 results=2 module=posenet labels=/opt/posenet_mobilenet_v1.labels constants="Posenet,q-offsets=<128.0,128.0,117.0>,q-scales=<0.0784313753247261,0.0784313753247261,1.3875764608383179>;" ! video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer.Copy to clipboard

To stop the use case, press CTRL + C.

Figure : Pipeline for pose estimation mask using qtivcomposer
                
                ![](data:image/png;base64,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)

The figure shows the flow of the use case execution:

1. Identify poses of people in the scenes from a video stream, which is coming
                    through a camera source.
2. Compose the poses and video stream using qtivcomposer.
3. Display the results.

The table provides the sequential processing stages of the pipeline execution:

| Process | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70015-50/topic/qtiqmmfsrc.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_gqx_gzn_vbc"><br>                                    <li class="li">Collects the video stream (source) and creates two copies of<br>                                        the source:<ul class="ul" id="single-camera-stream-with-pose-estimation-and-display__ol_hqx_gzn_vbc"><br>                                            <li class="li">One is sent to the qtimetamux plugin to retain the<br>                                                video stream.</li><br><br>                                            <li class="li">The other is sent to an ML inferencing<br>                                                pipeline.</li><br><br>                                        </ul><br></li><br><br>                                </ol> |
| **Preprocessing** | **Preprocessing** |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvconverter.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_iqx_gzn_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="single-camera-stream-with-pose-estimation-and-display__ul_jqx_gzn_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 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 PoseNet model uses this tensor stream for<br>                                            inferencing.</p><br></li><br><br>                                </ol> |
| **Inferencing** | **Inferencing** |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimltflite.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_kqx_gzn_vbc"><br>                                    <li class="li">Loads the PoseNet 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>                                        pose estimation results on its source pad.</li><br><br>                                </ol> |
| **Postprocessing** | **Postprocessing** |
| [qtimlvpose](https://docs.qualcomm.com/doc/80-70015-50/topic/qtimlvpose.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_lqx_gzn_vbc"><br>                                    <li class="li">Receives the inference tensors from a PoseNet model on its<br>                                        sinkpad.</li><br><br>                                    <li class="li">Converts the tensors into formats such as video or text that<br>                                        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 of the pose estimation<br>                                        models. <p class="p">In this use case, qtimlvpose does the<br>                                            following:</p><ol class="ol" type="a" id="single-camera-stream-with-pose-estimation-and-display__ol_mqx_gzn_vbc"><br>                                            <li class="li">Loads the PoseNet submodule.</li><br><br>                                            <li class="li">Produces results as video frames with poses<br>                                                drawn.</li><br><br>                                            <li class="li">Sends them to the sinkpad of qtivcomposer.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70015-50/topic/qtivcomposer.html) | <ol class="ol"><br>                                    <li class="li"> Receives the original video stream and the video stream of<br>                                        poses on its sinkpads.</li><br><br>                                    <li class="li">On its sourcepad, produces the GST buffers with the contents<br>                                        composed of video streams from its sinkpads.</li><br><br>                                </ol> |
| **Output** | **Output** |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70015-50/topic/waylandsink.html) | <ol class="ol" id="single-camera-stream-with-pose-estimation-and-display__ol_pqx_gzn_vbc"><br>                                    <li class="li">Receives the video stream on its sinkpad.</li><br><br>                                    <li class="li">Submits the video stream to Weston.</li><br><br>                                    <li class="li">Weston renders the following on a local display device:<ol class="ol" type="a" id="single-camera-stream-with-pose-estimation-and-display__ol_qqx_gzn_vbc"><br>                                            <li class="li">The video stream captured from the camera.</li><br><br>                                            <li class="li">The poses generated for multiple people in that<br>                                                scene.</li><br><br>                                        </ol><br></li><br><br>                                </ol> |

**Parent Topic:** [TensorFlow Lite use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/tensorflow-lite-use-cases.html)

Last Published: Oct 27, 2025

[Previous Topic
Image segmentation and encode with TFLite](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/single-camera-stream-with-image-segmentation-and-encode.md) [Next Topic
Pose estimation and encode with TFLite](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/single-camera-stream-with-pose-estimation-and-encode.md)