# Add postprocessing support for a custom model

This section guides you in adding model postprocessing support in a
Qualcomm IM SDK plugin, particularly in cases where the current
Qualcomm IM SDK plugin doesn’t support postprocessing for the model.

This example explains the steps to add custom model
postprocessing to the `qtimlvdetection` plugin.

![../_images/add-post-processing.png](data:image/png;base64,UklGRkQWAABXRUJQVlA4TDcWAAAvU8cyALfluJEkRcpjfC44cP4bcBYx08xs9ZQbriPJVpV5bkQAIZEQ+fqXO3veWQiSJKuKGp+H//vfD9/FmXlfpuY/QG3YqAkbdrJRZ6GAUwA2agrAFoCNUYkIccIWgFNsoQAJF+IUI1hs2GLDCRizBzaM2MBioyZsSAMb1YPRbMCMihQhUpIgpepOjQkJEYiABClJsA2YFoGiQcCwFAjgLhRwMF10qNys70288qkBBoozDgI4DgUHiViQUoQokpQkgIGiQ8DAXUsDivPWnQjgIBwRMPAAoBAMPDJtx6bNyLQZm9Qj02Zk2lRHBBqs7noECmiwdHC36+6et6f0DYfTyfP29Lw9pftcygt9jIqH4Y/I6v8alPiwkX9V+obb+WFQNfxTZItYSvHPRvo+gLsgEKCxuImUIgTGwDQIhIN6UpKgSHR/hsUYFFv1lr0Z7TbANMjlIOf1HQRwl5NA2G+e0v9Nc5X+H5/3zeN59Pn8AYZru123baTjBEmYMr2l914kRb2kCNP7wEXFFaRN6shWM0JlBk7v0wtEkCoYVRdSkzuY/v/mnr2/vc/lPfdsIkJuRP8pQZIkuG1qI2AQIuGem+3dw2Fw2Pu6+de28Jsf/fh8ZvvNd+p55IOfeu+v/NJ8Znvvxz76Ji0fek9njrP9yice0fELH+3Mdbb3/YaO9//WfCe/+Ekdn3rXfCdv+ayOz7x9vpPO51r/af2n9Z/Wf1r/af2n9Z/Wf1r/af1n1s/C3by32/Mo3Dp22me/nTq8MWfCofPeBO3inrkSjnjvz+Ydvt33zJFw19uhXdyYH+G0IfBHHjLj9qHjp3LfDn9xI1XO+7N24FSahd57D5/MveOeOHwn3UNDh5/IfcpPHt67kO4HHPZYwG97as3CcSMc8rybJre9Jdr5JNN+2QYJP3ktSa6dtEHKL99O9SMORjgsd/p6fdmg49m5vDcf2r4k2YewwBNcT/AV2nniOANY7sKtBLl+wQopP383Se7YwW+3a8txO0wl52/tuNm46E1wxP+l8EphIT1OhYhtYLZLKf7jwuXyEZ/9Rjb95YWasieMZyZoL3p/esfNUWI5IwxqB5Njf5lyM7jtaJofGzxrh3rMmnLUl80MI9rGTptLhhjS/MnkeMISdruUIGe8IdqZmnLSW6Ld2WFzzduBs/5Cclzw5wxht/Qq0zZsUY+5PdjJVfSXd9js9aZo11LcjbJDu5veb4c32OzQrtcTP1NkB53z6957w3PXe9/6T+s/rf+0/tP6T+s/rf+0/tP6T+s/rf/8HEyWJldXJRU1RgpPo2Rui6XJaDh/St+56dwpK1vOXV2dN2XRjX/b9eZN6breoisYz/+Oc6P7T5VAFYi+K5aJlgFh+Ss3nVv/C7pDMCCvtYnE5Qdg56AMKah3pdKlzVLxnw6Q4KBBCi8ExjbGlALDe0idZx/LD2z6XdkaDcHx5/WJCwehsQrIv20RKYWnU7a7cdO5++D5Fp3rsacDrE+I0vFXS5GuVMwEr98stQyEYHXg8DIN3fyg1y+fmLjRsBqQShsSHBE1IOmOKWWUdBNbjedyBRuueSuaGjZR5Yi+K+jUSWfNtSveP79VAlVg3LiU8gw1SdcVg+Aq1+OviLvOFezVMkgWEfcMfdA/RxR3ifrnN12Bg1UihJcXVrbQSEO26tXVKGivZ3tB765qmgAqLcXyA0fa6NUrFUK7RBwvnLhJQoEj8Pr9l3n3472vW848TU26ia3Gc5lj/QZt9xucla211fxAJmE6+bJP83CjYBWQ8YCI5YeEgQn7bhoys15qoSICcFrvcsXclSxMHJ4OIbzs4KZwIIuF9/rFSgd8oNJYjMqxMRysmVYH7RJRLJZhjG6GUNgIzAKT6Ic+0tSkm9hqPJc3RkPzPxw9Ubgem6o5VIUEnmrpjE11jQf896bd0bA07GiI4YrZXgBxLZY/HsQghZcdwIZc2YoGDniVH/uwFz16vLKcCSrOoQogwZGyh2cmrgdG4OWvTNwU0w8H3xqbdBNbgedmdnRdwZ+JPjWHqoij62gL0xDtWf3RcNFNyb9EEQISj3fHIIWXGUY3XQ++272DgPujJtB9VSAAjcCLk9EQsejcX/jmZvsSa0PURavP3GR1qNJIvuiKpU1XKOpNySumpU2mRKVPr0yoc4XhYBHChsAiWPdRbLWny/DWHl10RTMDntcvlhNl1dDDR7S9m6jsLT8IZVbjQchCFMHPSFQ0Qni54ervuQKMcH8WwM6Q6r1pEvqOtF7YA0MDlt59XCWsDNcJjKkjx+7MK8wncKtTnn/DuRHJgMofS+oafd5HgrzRkIzAQA9gKbxabnDSTWyE5ZDnkHGUCiXL6T3XbGiKVmHt6dqqDNUG600RN0LtKlGi06dWJta5rmwGESR6qFnYEFgERd5qfedIiM3NogNtWvUN0AUdNSlVlT/2Xc/X50YKLzc3f0XdSDbwXwawM3C9N+fp3ZtufffuIdn1QiOj2n1cJbaV0s6CmbAjcbF3lpGGMlLS5JwrYhD7CosASHjhjAdQtRRyWNo3OYknVukk4DloHOUUJVguwnONhqZolXZ1Wm1aKHBrX/dCvSkS/u8Dv/xVVypR6tMqQ3WuLJ3jAQl4KmgWNgQUQRG2WhDK4mtq4IvPSZmFkHdEUBFNIXSt8VddLyR5Wj5tHEQ9l0/Ci6bIFsOum/J0LpUIzpDqvWFf4Ic1cI9QupSlVBKjEyiYSXAkNn1mWVENR+4+LZzvRSD3FRZCmWihuyEFlJUwxjU6qSdW4yQgXBKjnKKEWTDCc00FeK7AeMCGdZosPuaLhGzxAQslR0qTV+qLUsYP/hARPGCsWdgQWARB3GpdHl9jszQZDZECIoNDRcWx6JjoMyWhIOrm1VX6hONBHLQfsONtYniLPKscHF6GCFuZSQipps5Q9QIANhS2otKlFFGMWiBMt+BIaPq88uRmuf8kD2XjAcu4DrVXqYbwmZWvI1CM9DBJmJeandQTq3MSRRSjVCjMghGea7onui+miaZQM1XgWWDKLDEeYGhqtPr0ygrP4wIiVn73CwNRM5yKoAiCsG3Q3l6/aZE3K9w3GYOdT6hCR5BKDh4sf9Xdp5pcQTWVSdShCO9BKVQKL4x7f0GqETlCePkh9Fs4cCicMR7IYEOhbu+1LiXIYiIFdksER+Ji71zC2toVzVAGRp8IhL4inPWAFIMooW/4NDvJJ1bnJIIsJnKK6pbEeK7pfpCgnfndv/+yHqneFACi0erTK5sC4UiErBltCLRVtJDN2eCgnUIwO4TNTM+3FEAqdPD3PG44x/dYXY9qGw2jWdkEb5XL4XXpZwgBQnj5IWSDDupkr1PlDB38RzhhaF1KuoksRicQA4JXKM4lo/IFhyvzFTeURSD1Fdie/J1JsBlmZYuz9mXneo1OuomNshxBFqOcojAxnmtU0N7j+l9oEepNVWj16ZX1UPYBcmxoQ+CtkifYBIKHFlp697WtoAep0MHq8UClHkkCH8YiEc4zLIVHPzDo3j3scoTw8gP5PbJ5CaIz9LDMF7C3K11KkcWoBGqRFWeTHvOjOJRtO/RzsQWCKqDv8q6WckfDJv8h3cTGWI4ii9FNUQIRnmtYWCHel95wbqpD3GXB0GP6gr4qlAFZKBwhNmFDCCK2D1OePz5D0N7bL11W+Q2V0XU9huRSncMjBSpQGjKb0Gcq5KFsGzlzBmSc770haUQHCXQ8aHAST6x+gurjyKIUYmI817S8cIaJGQ/0FEro+Cfoi1LG1IAsIREvvAw1SxtCEKF+eLYDeY/oa+UxHIrGGRGELv/n5Sk9VBQ6Cp1ALdiRwfT5hU+7yqGM5l+PpE4uP1zZQrCgOD48SYP/SnKJjaHQUegolCg818xQRSw38JgAAteb6oYonb4YZST/6Egff9McahY2hCBC18m6PL5ZDcRiu0tX0L1O7IzoPwsKHBimlO5jSGJ0AkUER6Ji74zCByx5KMPzABohJcS+4pk0xbkmWEwMKsP1mvuJEk+sboJiSGKUU5SE3nMNC6g2XS6faYCqTRG6etN+OIEY+wSVUp9WGa5zFT4BJWjGG0LYKpodN/i52FkNbEruefq3gjNwvbeOpQka/bXuo4hidAIFBEfiYu+sQqcMYSiTPraJ6uIh6hr9RSKYaBkPGGSomgojcr/8ncYm9cTqnEQRxSinKIEIzzXe9+G8OoBI1aSg2hQiKEO40Y2JC9tYqU+rDNe5EhHs7BySZiFMLEIHCfCGc7McVsKgxBCcgQuxVZCRZlVGcApVKYrRCRTMhB0pqMsqdMoYiEPZDefWHckGGiEhihp99H8Lg6ALfwa/D2f0J56D+lFTn78p9cTqnEQRxSinKIEIzzUWvI0xrJqUfY8fqjZFCPWmgOLpTVYRrNOnVqY8z/Dao1JswobAIlSg8wz3ZzXw/svAzhAKsVVACWr3MWmSGKVAwUzQkZLpcwr/RJo4lE3RaXBRXTxEW6PPxbt3PzpAI/D6n0rf28p+p6lJPLE6JzFbSmK0U5SA3nNZW18EHMUqUZZW684KSK2vj4Y/O1uzi7V5dsD3+tLm77/1y1bn29+7ly7hi4dyz+v3LM/r92ZYLNLSqRPlWzBps2tXecfo7Nr1vXuJshyOkeWee2XOrUIqOZ9ZsXwCvHueOuSO0Ql3UgI+y3iQf0jOzQ7x26zqB//0G7SOKnnYHZND76TIqwNvAEL7wR9ZhJRyPntbV/D//N93v51K+3/4nQOVLo2zCZecuu38YQIJ/+tdu8Adc+xHvf5K/ds3Wc5/9EfW4A9eeSWpnM/Y+K9dSbZ/+N8ql8bZaPAz2mw3f5dWxr/3mjH4/D8mlfMf/bEp+O9/SWyk+9G9mRr/8U8p8s/f/89qZsk6Pdp3Rb2XnLrd/DAp/vYb1rj5yA9+Uv/2Nyjntrj5zx//5Cdp5XyG9UPqD/N733ltX3UTcJ3I/MNoREvxBwM8zHNu84eR32bW8Hudjr0BI5rN4Tm3OdxvOyuefSxlyOm3mhV+ryL6jrQePAGftD5ILy0iFZ2pT14W6vID9u37SGZCS05tDNiIlgTPPibtQqXnQ4UxmwCac0JDjU7PPpYzqN92UPCvXLIU9F5FoOVB4gV3BuBCIKVFpGKBUMTa6vJXSAhfGECZqSw5tUEgI1oF1MaI9iDkPHnix86MEfxma2peGFOro6UZgd+r+AfxEqQWHVyqJV5EqihQXiNqIcpMZMmpzcE3yxGtEmpjRJrn5iSN1gDEj52zx/MMW4pOp3r41sULm7m6qpvuC0kg/AKXMf02CVEmj0CSS0RwuUQEkyuEgUVw+IvyoKjLw+M0x3ySysM7EuIf/tk6wpYHX+knQ+dlUWAfCSTIMtNYcurDeNTGJ7BuhoGVCMM8LOaJK+0BhTs/5VU9uGYHXgRIJum6KdChAnytpCiQrREVIMus+5JTG50n33DOvfuK4AuVSZRXu06ygGvRiuUTE/CVkjGXWlP1lbPHXDo7dmi2EbqI0hhC8R7Vha8Dxlxsv4uNglg346Ou6gYX88SV9vDCnZ/yqh5cpoO+vN65/AGHdTrcRyEKBGtEVVOTJadmiT5b8kZP8IVgEoruatcDqBYNVIyhvgKkhJRAN1V95ey4nk30IXRothG6iA5YvMfB/cFc1MDFRgHWzdAUYiUCQjFPVGkPKNzhqvHFeOCLALHDzdJEvMFrRKVIMqu5gSJwGIKIvMBT8ig1zqrgC8EkjOUHzC+uwG99gzyLF5fiRSmCmyq+cvaoS2fHDs02QhdRAYv3OEIXsRZ1cLFJoGM+HoAEJQJQROEFFTQGNNGEaRqARPWpwtHQPA8La0QlyDLrvuTUBufp3WHhQ2R/BG/NQhBB06662nUFV1dZxRhiPGBSBDdpYqCgXS4guCd5VPIhjiXXSOOZkq6sS+gP1qIOLjYG2AfYTIISJWSujpqKyJTFUV2uyniQS3iKuCEkBEdIAoVloRJEmYksObWxf4VNmVpfoN1Mr7jadQkhGyoXSm6q9srZJY8KPhRiyTZCF4nf2ZSNYy9q4WKbwOpmOOiqbrTwPSZJBXERFyogl+kQhflEWnCnCF5EqigQrxGVjvaSTB4BlCt/LhavLlIIA4vQAD8X29A8/cbEhdaTfCFaJuhRXO161UhuqvbK2SWPCj4UYsk6oF9oID3HkNTCxTYB1c3QBpVUiVSjgxHLdDLMyiYvPZOBi0iVBBIRcE0VS6W0fx1CmYksObWhOeHcu3fv3j2pZPRRXO161UhukmOIQ/KoAI5lRkZVLjYXmroZrEQDE4xZmlRwA2PKLfg8wyLSIlJVJwxGa6p4ZlJOvEhmMktObVr4MbAr7CiZ5AvBMtqrXa8c5iZ1DNt2I8SSf5YmFqYGLrYJQt0MQVCyTQ+rKASrZpHKpvvqZSbVug0L6PSVvPOkvdr1baGIuHL2ih8uMAVgNvZwLVxsEYQyHIKghAxG8iBERhxBhVSjowBejAf9M7uR3JJTm5ulCabrCskyAc3VrlcOdpMihjgkj0o+hLHkG6mLUKTRr8t1mZBauNgkgLoZfiMowZfyIRTzxJX2QIgH8cV44IsAsRjJLTm1gemT/v10+Hg88oUsAsukqewGV2HGgwoQLllFjiEOyaOSD3Es2UboIhR4QTHC52JNSB1cbBNw3QwBKxEu5QMX88SV9nBAVQ+OBF9licVIbsmpDQp2THDDxPWwLwSTYOMFfUTUaMgBtWjRCAVsYgyxRF06O44l14hdhGx8OPrh4j0bUgcXmwS5bsZ7qES6lA9YzBNZ2sNAVT24TAdfZYnFSG3JqU2MZycG7roC+kIyCUJ4v4X/D7hbKgC6SY4hlqhLZ4ex5PoHoYvwsRGNfkLxng3/bPtdbMHvw+m7om5zS3OTydZUVOwSwSTNnPN8P1xNK6cYA34fzva7+KFqqivem6+kuuK9+UqqK96br6Sy4j3bY9h1Bc8G2CHnPPF1Be9Q1uzS+k/rP63/tP7T+k/rP63/tP7T+k/rP63//Lwxbnv/oh2yfn5hXoSF85aYT8505kXonLGErY7Mj7DX2+GhC9fmR+gc92bI/L7OQ2RcsgMvev/FJFk4boW/OdhJj7vhyIQd2kZibHh/1hCj3Z306jFtwbV68oT3huB2J82259R5A/zaEzTlZp9QzvlLyeX8kikOTWwYvh7T+wudenLYEq46v9BJtt26m/lGntP4dWlPJMfj3r9khpSfSdBvpy3BqZpy+7whbPV4Z6fdDnp/zgyv0fYa/b1E0u/3p3mCm3NmYH9N6RwiB1xNwMWNHTed0xZw3EvkuPvxBFN+zAxvc/lTSfrtpB3+e7KzPdjJVt5fvN3ZeXP9shmGtBT3YhfMMJ9cvp4k105bgdMb9aWz55IJOLbR2Ym3hSPnTVAfsi/RnO+7YAHOH0m2dOSQDfx2qNOpMZ3OrX2Hc9/uLnR27O3uodw77uCdhFN+52DuU37orvn9tn3MM7bWf1r/af2n9Z/Wf1r/af2n9Z/Wf1r/af2n9Z/Wf9oN+PQ75lH58K/Md/KOT+v4tQ/Md/LrH9TxyKfmOn9826ffrMO99dO/9a65zX/91U+/02nbm97/qc/NabZPf+jNbt61OQA=)

Prerequisites

`qtimlvconverter` must support preprocessing for the model. See the [README](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/blob/imsdk.lnx.2.0.0.r2-rel/gst-plugin-mlvdetection/modules/README?ref_type=heads)
for more information.

## Add YoloV8 module support to `qtimlvdetection`

1. Write a new module in the `qtimlvdetection` plugin to enable
postprocessing support.

    See the following example code as a reference:
[gst-plugin-mlvdetection/modules/ml-vdetection-yolov8.c imsdk.lnx.2.0.0.r2-rel · CodeLinaro / le / platform / vendor / qcom-opensource / gst-plugins-qti-oss GitLab](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/blob/imsdk.lnx.2.0.0.r2-rel/gst-plugin-mlvdetection/modules/ml-vdetection-yolov8.c).
2. Write a new file for your custom model. In the model postprocessing
module, the `gst_ml_module_process` function is responsible for executing
all postprocessing operations.

    Recompile the plugin, using the instructions provided in [compile and install Qualcomm IM SDK plugins](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-51/compile-install-imsdk-plugins.html).
3. Add your new files in `Cmakelists.txt`.

    See the following example as a reference:

    [gst-plugin-mlvdetection/modules/CMakeLists.txt · imsdk.lnx.2.0.0.r2-rel · CodeLinaro / le / platform / vendor / qcom-opensource / gst-plugins-qti-oss GitLab](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/blob/imsdk.lnx.2.0.0.r2-rel/gst-plugin-mlvdetection/modules/CMakeLists.txt)
4. Recompile the reference application and run it.

    See the [Qualcomm Intelligent Multimedia Software Development Kit (IM SDK) Quick Start Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-51/introduction.html)
for instructions on how to compile reference applications with the eSDK.

    See the [README](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/blob/imsdk.lnx.2.0.0.r2-rel/gst-plugin-mlvdetection/modules/README), for more detailed instructions on how to write your own plugins.

Last Published: Oct 10, 2025

[Previous Topic
Integrate an AI Hub model in an application](https://docs.qualcomm.com/bundle/publicresource/80-70020-15B/topics/integrate-ai-hub-models.md) [Next Topic
Develop a custom GStreamer plugin](https://docs.qualcomm.com/bundle/publicresource/80-70020-15B/topics/general-guidelines-for-developing-gstreamer-plugin.md)