# Face recognition

Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-recognition.html](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-recognition.html)

The **gst-ai-face-recognition** application collects the live video input from a
        camera or an RTSP stream and shares this input for face detection, facial landmarking and
        face recognition. It uses the face\_det\_quantized models for face
        detection, `facemap_3dmm_quantized` model for facial landmarking, and
            `face_attrib_net_quantized` model for face recognition
        labels.

The result is a preview of the overlaid AI model on the HDMI display.

The figure shows the pipeline, which receives the input, performs preprocessing, runs
            inferences on AI hardware, and displays the results on the screen.

Figure : gst-ai-face-recognition pipeline
            
            ![](data:image/png;base64,UklGRqRTAABXRUJQVlA4TJhTAAAvzoN4EI1AchvJkQTF+lXM/x9cbbLH7F4j+j8B/s+rwkSSmZ6KZsINJGraGIicYHMoCngQGJq0ScKgJsGa5AoYSQIIFJAuKdAWUAGFtoAFtBvizhoTgwJpQtpAusQk8ZbYmluix0R1SxVaARcBFLBlPTcuuHG693E4x47vFR2p0MfxDtok34mLQuOG6O9vQt/zNkYhpApRjSK8FRV9Uy9gIwuLyureG8N7ohtnj6ljd/m0pBlRaAq4eUFHupEraiVJuig03eheyPYAKiE1SdRETTRojEJs2pE1JA4uK6BJxoqjdwPM1M2N9YJHfLAJozaSHBWEA3D8cRWEAXGhN38Nso1UhEN4f6ohPIKato0g88fYe8YbD0L/JwDOXXKFPAgA3AKSMUYkZowYADAAAMaAJHrFwg6K6Yv5s1TPWPMvm8N2McUCQAbaSfxYh3uRwXUT5i3sVNXiuG0kR5LU+Uc9a2bPfiNiAviTPbwgPeGlrpwjMzMKqosKHs7MaBMy08C9z9xsbvX4CdqqNMOZGzzZ6/0qsRQTK1CxSiul6hZyVVa5uAAFB8GNR4d392Xa08ts9mFAFQaogDnogA6fksFWrdAqcHE/n7LnxNtXPr2+k4B3F4/3eGW3K+CW09rH4mCrVtghVmmFO5dTOR9ef/joAt59pc+Lx/2/Z7KlvMdoVDOD6bDDCjvsEO+99xASTojnhngIJyT03p0QT+PHD57GN77DxpdEj+0+7/NUPc/79vvUw5n7w+yAEKlwO5i80Zm7Amw2NmMJV8K7eDK8t52WiBrvPWlp/EzluBO1mgVMVNKT9RbwcM2pkDX4HfgiJyTvwXuW0LgTYrPGHBXR5IRz1De/eYUt4SF14TWRW8M5uibCZkRXvYMhco1p6ewB77cwjzQ7GE3eL2YFLKBPbQJpvE3ZwEjXZoQ2O3ktYELvFzBh45YxuqZYA6VH4u1lDGMesQk5tm27bbNB/SVf5+eM0vMfjYfAEuVzfgUWIdW29ritjpzpu/MPDQUNBQ0NAw3zCH2cwsLAwMDCQMNAQUFB3fkHbiIgKPJ/tAnQI/3/Is2W0yNmZmZmZmZmZmZmNpmZZTIzl/mKW8xMLW7xMFVV1gvd9b7vacFHsINjdsRftIPjpxhs2coIebLHEmXEsUa2/BLzcU/IKkFbWkNHxXizgolrVVywZCumvRRtAv+CRSjuDoTWX7SD66eYNein0NQChjLEbF13oiZOyFNct8UVMYsYMyPE0gLkTYqsWcCYJfJlMWREmwITdyBbP9EOrp+Cs4Prp+BoEUMp2gFbqbi+sC1RRVxL0Qs4Zgk8LeCaJVqDzDJ6D+poQYr2wD//LgBuI0mOpDiApbji+W/ZmTBiPQXUyLZlVc285ZVIJBKJfGEgCYHwCAP5JCE8ufljTIDe9/+fyZGcmpHrsEOGDDtkyJDhhBNOOCHDCSeccMMJGU44IUOGHTLssEOGHVKectyA1TXdJNdlH3lVOpkcg6a8zjSw6XPepZWwowEG8hIxmRzlvetk4vOug84EoqIFCgyevAGd93czIy+OzEYPFnWhFp1pFJ17Inlz/liU5wRMDw/2TxDQckWZ/Qc0YDq78upoAUYdra2wKJN1UGNwjkHla4htbCTv9UNHZ6KC0pLJvHuwQAfyrhagGMn7qHD2LyDmUOiE/8ACHS3ACdaFBDp6Hpl1ldYfsIabuv4DhidTgbw3a3pG3jYurUjeS0/C+Lzric9FC5Ts+Yv2GA0G4D8gFLBRo4NvukADlPmCybkGNmoo8ponHhAKJUWSJEmSbG6DDhMO3P+/aGBChz7nSrm2N26st7Pq7oKGgoGGhoGFhYGF85MGBgYGFgYaBhoaGvrumj0mwIq0/+8jOZpFgg0bNhQUFBQUbNiw4cCBhgMbLhzYsKGgoKCgoKCgYEPnDZOcrTV6He6QPekQzklVcwcHOUCfYPJQ5xxOsE5DB3vrX1t9iB/oLTmHoYvkrhqkCzibRRw3CTYe2MgXSKoS6EM4p3Y2Mxcbujjv/vGwzYsWZrbVN9jqa2hzPoGrequRUx/C+QKuTc3Mlrpq0x266ueAfILsDTrHJh3BSEDOF8hxqqlz6iPY1bWBmm+lZk4X0DoPN82xy7wdh/kOAr87GEiRJEmSpJjboMOA/f+XBXRoexZUAWzrRt52D0FBQ8PAwsL79IMHCwMNDQV175iA58KLAHL5YliMJLMTASTzRUg2c7Bs5iDZ7ERYNotksy39LxeGspl0Hslm0nlBNqvKZqFsFslm0nlBNivLZjnZrCqbSeehbBbJZlvuvCCbVWWzUDZb0Xkkm63oPJTNcrJZVTYryGbSeVU2k84LsllZVHTCFpBqDhcjrxeHIObeeWu8EJ4KXR2Kl0K/98ObxbwSngzw9ljvuZuC/T0qEhYPBPGJmgap1cV1VDWDQPaJIHQfJQKVruL18GL4ICxfL8L0Tk/mXPaWQ7oquy3VMrIUvCkUFeq2pne0YxQflyCpFOPagyaCwHX6zqCqVSftccyrQZy+UYJnQ9cWkhbN+8HnSJ7MOT+fc99b0/EetexX8OhIVAAKjq0T3jopFMTqOChb7VBMynq8cHbpSrptiZiC7iN+9pQzQBpivXttLXo8BVriT58JzwfApFVZyKTMXQ/F4739/93f7X8vKcTGeVVBYATd+nIopvO50FODeLXsYVq0MD2G9GraHuPYd0K3ovEszYOuSldt6Q9zYdqeNOvFKA5MbahLtW5k6TbziQkZ5qO0PeIRUBNAAJDYKaBVOeIUcdt2KaeMlyE9oyIZ6gryQP/FLJlVPNzQVhZHthgU6YfnbRHUMx3axLE+BvdwZCYYEsv98NG40/NRJ8NaThg54+JkfxsMsVjdN7hXI0f13suwVhVGA/HgpgYIiNcXTdqUz6Q81rAmkCsIimWUxvBYDOsFceTezu/FoW0urolmpthRRs9pKkOPG4x7wtUk3pFEGOrLqdIBliezOvia2bzFRDGGOwlNU6qhWaL5iaYxzCARqLcfpXKFZadp0qt4wfHr/Wb15cyRu50Qum8Y2lJ2/3bO8EPfH8wFX7DxnrVMciHOmPa6MyBPcPcgaukXsQEz8eOko87a4kBVNXVySz2DB+oT2fGNml+OsH+fQQaAaiGJPmrpJM+JbFeq9v3d8C2RAKzRgOoOONMATYfZFCOsmCbGiYC26iYegBwJ+9hcso7zesWdSgB0k158Bok4TpguxTSCcQXnCvhCXf0jKwr0F3koe8B5dvoHnB3mqsnSqaJFrzteiBNOREEwfwAb3n7EGq+b90MqgE5838MmChnmC0mI3h51DNBYfveLgA/pxK1zpQ9WDQtjrEiPDqOSob5KrVhPSV4AXIPdrqyGGiUrZ01omC6aHhpVDPchJV2/M4BNdU22RT4upFjooknq0l+R01OaPFcZ5nJ0ppnQZcprsPnVKJ4h+I6i0Gkd9wJluK/SiFYFPYu2kvQ1W5vVKEUBgfEoC/vsO4tsQ1/dJKSv67zSChAFnEkCP96X2PWEbilbhU3sWCkjF+AUuVdGjmsV5xnODcspI8er8qILzobllJFjJ54vTFKkZaWERWxdUNC7CmWoK7izQ1cQeqbhegWRVkkRDuEimTmhBW0DnCvsP8Kf80fups4CR351cb0yPdQc6eTAaS7SZ04rS/7WQ01cYpBYkjziFIxPCRUOkg5TQGpnfIb6qqupK5zh9PSuMO+R07CINSWllKIweXJdAC1QyyiQqEFI1CCkKgmlXVUaIFHQqJS/pXiLBOlsDykygBrIBL2qQFt2OduVGjQyGsVkztkxAplRxs8nldEkqtFASBRIlEQdiUKSmSIL4clVFIU8UnF5e7QoB6M5xtsqpu3dTqdtoIyGLYWjfaSCACICiKh6ckm2TQHx9b0dU7LO4aiB0krGimAalEJFY+ZkplEoKKYX6zMWGAQGCEcSCmAL3dVclDwSRWMSyBdtV8UWNpFhzv3MGU7/gn06uAIksAWoGv7/0WSFTSEz7JuyJGuyGapkwEcY9fpx5R3XKY+SdccZCY/e+zfuumUbp2osHJiIDvd4WAGQ0piwAgtg/FCcGUosLUtLPal6US+qXqx1Y11ZN6oeFnwI3iBmLntmnTWBiJe6kG8ivUVpyqHc7VaKknKYV1MEsqm+u1Juh7ZCvX72UU9NZad0HeAzkvEtvldAuLU8zlcbiBafli3RoLyZlDYyV9FWVdKt0jc77tk0exAvRVqF/gBCG0+tIHTsm5ylbEPpYjK693H56pqmlMcZRkZuo0qsbEgT3XNgLTfJ7HOtYUjGZVhx9YhpsBPqUCUDlYSZtMJIMiu74vGkcWDdGqaGyXNLQl08zgK7Cg01Lr3EUrFQPjvYbWL2aU2lS8X2CZSZqE5GjupDpbD6KfmGtrrCwFcn4yGGNVKnf9QETSIPty845eDEs8HpXusMqgYKC2CH+nUJ6C5O3exiU+QS+fz5idVVm6G9bYTF0KWqGnJVL1aluxJ7q5QZuHQDhH6ZCzmq+LeceokSaAqs4WrM9/wP2bd7LtKl6kU9WVfWlXWj6sV6sl5UvagndWMtNevGtaXmWfHsyb12pd0gHlruB4ot2P1Xno30kHfFS6AO436X/3rMp26WdjlLDFvCmqroLiXJ3ax1/fi8dxXv8irj4IB528Wpn7o6sdzNHLeVbVcg/5SOfnDUcauNssEBN1v88obmgPUf3NZvjwfP3SZd3m0if8rJweiSrGFPxdLvfNS2RWEFAW3fJCadiReSDs7mLtYRTuWDscNtW3nvuC65/JMOV2jnz+cOO0swd+hZtYKUOixzbqJlO2aDK48LIDRk6zL9g9uAbcyp1gsdklnii3VVcy4WqCT2TlyrZI/jlLq9hUzbyJb2KU0HVI67DspG+ekdtEnu05b2HJSMVDm255BcTKXBU5e8ONlZrWav+GVui07VL3lI/m0qNBYeN0jGjW8tF98RddDodFgruFpYOznBxR5657KJ6dvJdLYBoTbD1S6/yz3GNU5WOFFk1YDuhrtBsrxdkorf8d1FMFhZVdxuWa2ieoUVljmpG4aNRPSQQPh+5VVRYosBp/KbhjBD/FjLumsHrRvqglfxIogHxIt4Eu2ipN1o7UZrN1q7gHYj4kXEA+JJvGhqrgWPo7vij96s7L7HWjY9Wu6HdRoXV3udfy7Xq/X+xXsUgUR1RAE9jnFZVnCRg+7YXR18o727PWiCDS9+3OxY259W2+aG0feqvsmb8tNQsoCY/t4m3J1Y2V3qSYlk/6xj01X22+YtX+f797l6LE1d13UAIGopxkl2qwfE1aPucVL2iSlWbTgryRzyhrI9WyP9X2952LvrVQG3ghkNU+5Jl5Ce2vHojikDlWd3uJdggcCBnRyl/Hd/mqRyvhk9DmeESgQjFoimIsnjE1eO7w2Jt2+R9+ru0VeeS1V/eEKq2zrI7cie44ecy7SO42ipMqzpiPtgtIwqDl11ru/mGq9IVaiSZBHhPJcu+9/kWxRDJxKQLLqeoA7JVJIw/Rsf4u70fXK3dC3DmoNc2MGdTjm5eUlP0eZJQP/mOJAa9fJRAsjlJWgqTRrSUrXJDDRDAE5OTA0fl7afCoPuTqMINC6hiHYwlOEcUBEvIp60G63daDeeBe+ehnmJm9RFuuvuvRwX28MCaul/YzOVKiMlgIouH40uf7LXOafbqyL9stQXK+4q2ZX4/gF8x9PeNQpRBZVE4o/h5UId3nr94zJWsqw7/u6EZ9yPcjiBkHfCCo+d9jnnRvPlbNYoqrLgNlAKntOYiQpmBtD8TxUwwAwoTaXVrAkgQ0CRaZ+tuJDXWwxmravp25vOHVJXb1W2Nn0uEgwRzbRJqUkgXQnkxLTMAMFMcSrbzCZqNto427SbxtkJkSPvNMkcObpH5mK964g+GKG0bblcQ9/NNV5R3/mxPzrqb/Xv/HQANO+au6ORfBLkpeQN/gI/TC4Pa65HngJe4PVez4wVXKqZ4LFBoqvq9vZulBF0S9Kzj6luApBgAHA10AgDd9/iY08JhNaT4c/EX3F9azAUZ5KAg83QlaDsehn7PdYvAfxZbM71mv7cx7VbUhmlZqwLmobU6L9HedsMQwNuX6g0y+7M+aWJdLXbx8oZluAVHgMJyLeWbaXqW8KhLoKxS8snMackFc1+NXKhIP0lCOo0DeleVCRhmh7Pi/ncjhhHfFWiTkyZdPaJ7CaEVNYBMOrl0dC0aJNBE5uoCQCKAgWKApfnoF2dj4o0PfKLDvd+XCE5YTpdY3xjGzyk26lq4k38Ew00DQ3qotlYsiFnTcbeTtYbnmCpQGfUdmeyh5xteofUUEuPZWxRcfOtqKsq2VxjmDnc1BJ66upvld3s3aBhRuduaZAE3mqIm/QpYB5r+NOTEydfBgtZsSJINc/b8mw/ipHWm7URiOytDuGyVnL9NnydIFnIEliXDk8lJ9dT39hwyPTJlwiNinv1J0JqjcbaIUI54PTZo0rveFY7S98rD2OFXRO/qF5sgruuq6YFtMREYp/N3HpaLjbNp7SqpuwhVJ3LXS+yRH2jgagnesNmUp+Ynh67xNt7MoXJbS4x8f/xRLZ7rgcUr0FdOxSPH5TX6YvTN4ynVRCSmLpxgqVI35lgm5YIyGmzX9eu/W+TXf08A1OH1YUd5TV0rJyFuGT1n7gimSlH7uDIAeliD3h2+/pzZapn7+S6atpsPJ3Z6pCVL3FyIN0je7uaZ6fz328Lllhzbg9NzJ4KJ+O0J6rFhXM0uc4SvPUA97hjugmk3po3BZ3xl6ABYDoZZlwbhvjQBTKTO431s8Q5cDrxDSCahjC831VkdKtimt1ZuYcfv5jzk5QyiAzCzuTeSqqTThgThhSER61xw45d+zy3ITvgrjo40H58dqdS3U0yIdmZHox/f3owfD4xsOHvD1xlcQbf3Lkrnbsa/8YNkbuOWgOD1hhkRkNJuOLBs79m0A/KK6bfiPFpk8ysZwCHIHuQYyFCZg5uh+iWYVkz0XWQPaEDwRXilwDb/RUqki7eJbmEBMbCIaieyomVe2h4dlpG7W2HE/Eqw/8/YjglBkCMwS5OuBGY5z1o6wSLPFFJ6gsZ+PVw72Voi9xgdjOAzAB8d9dx4oAiDcDw/aK5RmPje+noaPM9/4xVUhc6QkfoAl0YnpjvLYQu+Lvhf8z3HjzkqgKp62H86YYBj9whkz1IXcz3+SR0weYCXaALBvlCtodlqR0/32cIRgtq3yeQOghdgM7AQhfs2kfDfQY+OM8JIHSBLtAFep/nX5vJ1B1VTiCRQAJIoDofP9uGmRznbiPRnzbf203oAl2gw+1gL0DXedr2WI9VQCKABBBAAgh0ELAsteiC9Uj5X89wH7rq9QlAtzST1QTFFfvpbM+PG9heIKDP240fawgECBAg2F8goBbB/gIQAj9/eq5EIBAgOB3WAgIE1ApAcEa7CjSDwK0ACBAgQBjebsxEJQQQCCAABKplR49sg5l8VCBAgEAI2B4QQnyU6l+desN+jqzv8yDNjmIFBXVNMniNhTolZy4ZVcqY9xeHmfhPy9TOvghCUcS+nqV1NrUz8afmqHHBxAJSKqYB+Ver9DgLoFjBd0E2qyarWGvnM4B6/kSftPZEccIYySXpOoV+DahPTPRRS48SASeyXarhYMwYGL5kDR2TVYw4jKFmDBT3jO3T9R8bMeCl+rUYCcLqCc32XeXAme2pOJrOVFmwev4LUVKJ5RKqOvhfyQcBUxYcHQ3CdPvnm2nwdthSmHZUj7ufgdkLDb1j64CKebY3i5gevCChMH2ZMFVEa+kKD6YAf6+aIVs7pdiBaRmA6ustKC+A6e/LRGJKj90R4dAvwVkgKo1+IkPQf0KlH3/jCcB0H0ZQ1zDNIao1sPwn2DKYBdmsKpsVZLMVnZdls0g2C2WzSDaTzkPZLJLNpPOCbFaWzSLREhhoGf+b6FZSHQSg2wUx31Ckg60HUNlLBYFSQZ8pJdNWoBd66fWnkXAIUGJVOV4/CkARBNCsCYE3EShEAFGIKAQQQIIAmqtacbw9itAHtVoWWkJLaZd1JYWWWKwhUlRRtYrV3VAVJ9cqPW3FhNr4aZm1QtwMuJGT7WLu7kfbNd46Kvsmn2V6Y4Ma0oxiPVuB5rpAmleiSdlPaEadNweW4pOSx9Fyk072QWJIxfEuhbvmpkluitAWsbNmlLTOLIIgb0ncerUs1pSzpUI8H+lqxTrrMC6W7W4oiBO8I06bdnrxZOLURXsZD7pP3J1xZfxm1HXQyaoX00imMRw5qseJ2XPlNWkgtHucXTu12O6N87CZLAxF4nxYZumyyWeVJloOMjvk0KxJFEooJamTyJEJKUjMNdFkpTMXCOvjOGbUaw3rVabjSd3Ek9rM1Pqz2mVtq4raQGd+vBuq4mTNGxUhs+jTLOMMHVNqdvHhaxBlGT+ZqHE/1j0nspfX1Gkb3QCs04848+hjucdTc3UxJC21t0O1REmqEh2bdpORyWjFcwJA4YiUIVSxrv14kOOIoaRbtAQD1jpxKQh2ixgVH1PhQBDELCoOlcXJcCjmhKvjUVurYHj3D9h62K6KBC/ykzU6JI0QMQNA0Vw2EVMIrFoNKrfz20qGLUyZFBkMBYTq9osmLL0Z7UAr2hoQFUUUA26CHiVYj7CoooqqixY5bdRM7G4IxQlerjR132Ef8ch/eQZ9YWV2XcOey7Gt8JfzwibvBKtD5FBuD5wyFOj5unhS9kkppJMQDKd2utm7Dd7BGQtermTrizj1UD8QcTqTJ4CHcpY7NFl0qKUoEYMzNEsSV+dFk8eVxI7Y4Uvt1mW5SWZusRuEakeay2U6guHucZP2/zBTN8dNr3r2EjVBDk7pqW6FdaIlkdU8qlsWHR5tBi25MeqPx236R61mvdTbd15iulOt37Jz3pr0jgms/9nlf6JR76U+uAGE7cfgB+A2z4ALHsDqPK1UBVFBBRUsEPhalcQ0MANFVJ2qQ9UdLjXqaEA0AoyPyN3Gq5ZhHSiXyxCqc54JBq8k0DYj9O4EFy8S6KjFhDN3yRNsSsN2GjAIAsKuj0RKMP8VABdJFolAIrAId0wEoAvQQaALdBC6GEgX6ACC9at7G58Dqd82YcwlTgEmxty8GsuvEWjmV3zs4FsjnqJ4t4Wy0BaFXxY2toVkLlXb+mWhZaFFFtZud0WS0DoviyZaZx0mocWNyzgPoyLcbEJNZ7sslIN0FlZzF2fZdOKbmCj1x1mqoLXOHbs7JwfZZROvNJ5k0wkKziFW6Na52WXVtL5Cu9R6KIqTFeMimTRuFuYIecVa4tEmtzaFJJXdFab1TduuYlz0yZfLtVfZaVtVrAsD6bqNJZrjTDayzDap213p+5tsQ+kWedZSsIm6dBKO1kWP8hwH1voxSArgs9ujdL3Nyq4X02g8bedW1hO6I41LO+N94FLllEuHVgakWRYazdO4S4VhsWQPh+l6kppsCgKoS9faFaMqJV+wp6N0PTsJDN1l2uTN2A8BxgVu6AvT9fzZIqwWJnVuGrd+UVRdmhPIsJe+74fgU9G7nYLGCfvAXNreoEWrYOL9QFkS8Jwv6niYi+SD4nVQhmn5cENbIVWusODE8WKLuL/YvOApC2eY4YeeuziFaW75oU85xtZ4e3CoDYg2tMsybM8Ma2U3lp4GBp2z1zQJL+6vR/fbySTRzAhH9GiJbH6uxI2psZ2OBDmidTbHj0P3n2TrHc90aDEYkoL7gXa8JVeGtcgNuqFMCzVl4j2Jz0Bx4paOFzd1zH5QkZxhpww3rH29OSKbuR9y+TwfYgNswV0TFPUP75Tlxm0FFmzbsYlSMMTkVYCkzVvTt7rrsJay2kJ12+KDUiAu9n8TL7K73Q1X/PGNJEDFLv0DPlgMgOaRYBML/8iHGtjX0AGRuKCpOHNuWCvQONv1AwbpucgDH6hmMllO2MqIxZ+Q5bNYz4UTPAVIonMFXPgWDhAWuVTyAms9QmRH/HXFJYb3KgVRBXef3GYb+F1XyPMhC42gcOT1eJQZzBC1wf1xhqHM65VozGxu54w3jIKdYbgPyaTYtIjvc3JdfHbOxYUK8tqxcmwEA3s9IRM/JjGGOx/m1MKC+NCnIE09YsZ0VRVTWNC0bVxXHzWJlAec/wDv5wcJ+2h5P6xdLEVkaqdn+QEnjeA5NiZ+H2jLGd2erATyRkJySz0wrGRbj0nnfga6Oj7Jf8MLnszG623+1Jf2TzbzE4FjrCXAyUPcL6IGqh6z4syFUGlLc/0aCaCMY8UIFKirSnfAvSO2D4pHRboU2T9ERGvSixdBigxxSanCBtjkCPhC3/Hwsowk9QO4BxxJv00bdmWu7jeP6yHvjwwgtk25CKhLrUaTOj6xFebEZt3JyARMGyZgOzMBGzABGzBhA9DecfCpGxJT2qJwvlUb+QLYbN0w5P8Xb8LGmIegpxF4Z+TpiW1eNJXmWIdxGIiQSQ/59QKIdJn2fOFiPCcA++9f+nKvdRBiT8UrlEftnI7v2wkbr+1bs3DB+97OPu7808xLeKFt2hvOpNfoNYCjo2tB39xpTjvNgk3j7MoI3X4tw96Ai/G0Fu2FcinJItkFxFWUqIZf36+4Lqj3H9NcEU/6sBkz3xDkECkg7TuztCKaLwTgfdesqeQ5cY6Ts11nd8o6b7YN2Oh+2kdsPf8I/EjkCvi+x3vaV3ra7gux5kWuIMfV/JvJ4w+MH+bz3mzBi3z3F54y7JX2oe1EYwZY05ix2lfdsA+xrR8vbFGG442Z1yHdLlkx7H8FT9NJOTOKx4sSRyo7RMAkc1QVgENAXBkJQEBU2WM9n2spz3cpCy5ed2vw8jOaiiJdlgW2uXLlAuBi2zYvBmyY1TE9N29Uegj4kI/9Ye1uDW5qncjmjermB/40e/2XebPJBa99/M1uOIcN0zZtCAgCgmxDzVXWoak8mC/y3ObWp0UZ/toTZN+9j//8r3W3Bd99MjKcv/dM5aVw6XVv9xY3vN3vt+3Hw7lb17zSVFHe8Uy6C67whq9UxOArXepQ46f2o+FiMYnBiKC+bcsu0KHvB3hpN2ldKt1WDd2lXUWyI0YcVOg7dumZDtFnTXKcUmu3xfuTiPcnub9zRZURPRrdggLaaixfAwvOgSj5v74F1bsvWHhh/qfa5/+dNXh1+6kuNov58w9xf5i4Fkzss23uhi0C0ofLarE9VEUAbS1I9Z/ftOFB7jB2HR7VvhZ5MaPYx5fJEeNj+PZdep3H2zp88iMfbzjf2Eddb9B8/dO2wX3xsBPT+Lfe++oExeJ73/xWfOH7PxL3Pv7zr8ElT3uNn/q+f+cR13tic+VTPN473vUQZOuCW0+bbz0//6kOlje8N7DhR5sjIxsOXbijyL4jKkfFToLyYGzt+xuld2jHc+kx/P8XL0fxfVV6tkVw9gfAQ5jQTCK5tH1UrPd4ymskRE8FOhO9QO2xqHDsTUusZjMXJEQu2zeiURWdGT9mD5hdK/XLj00OLe/t62pebtHjPEj8CT/f5lfqYxbX39JO0adMjl94w7//Br9YuclE5RUxfFopsuDWLzK8YKf9vP6tN1yw0uff2S5gqr3Oy2gi0gNhOscPJVMhim64/qfd/Ktvf5efcUzs5J+U8vdnKHjUvSfjF9J0efWp47Tr3OaV/sBN8sPXTyb3sDcd1StvtLQygD50J1cVdj0pk+cSJ/Z1xiul8r47n/Z7mC/yvjv/4udf8xZHKy+189XX/N5r0N+xzzU/1SW3+YcrD5dH/aALv0cZ3Oz4oxGMYkGd4r8yZxr9kLsanBJld7o3ZqZJSzkAS9eytFaUCpF4Qu9Khj2vWvj0FVW67xdc6k+VHeS+cMV0oHyhr1YzPEiH5SPy+JnKa8V6m+4QeSyrhTPH+rmKuJG+UjcJXNbs5rnn301ezazk//y0WZs9n/Itf+WDH6fs8Pc/1fE7/9XE+cKtj1hz8q0v+d0f4y2OO+4fFsv3eOHrHTG/8EXMT/Xc5bLgiaLPQvT52F71w5KpzZPI//yUTyQfRNy58a0Pflt5Piqfb/pq//3Vvup4ucL8H9pvehx+xppLXunT1y9E/TPf0tejqH2sn8OgtuhKAKvu1zvBQ377077I3ewX+EGx2H/9A0eO6XCbv/MxzHP/zX8/d9l/PXff31lz6TW+55o/8Nt/xs967RnwOz7v5/rfI8hc/4uvo64/srBhHjl3M0ULQAr+0r3i8OmoHHzFI3pXAGleAIGp2EeKe4g+3ittdwLCIcvMfayGpbilMCvtFQvTbkpPTEkBaC/S24tkKar63LfqM3OCa1XaavZD7pj8qZtfjI7Ef2flza4/dosx0Z8/6/zfe9b/vs0Tv92Cn/yDXuopfvsh+iu+3Dj8p36u6cpnu9tf/45b/8Dn+rvXMo9S/tdnjbb0Dm576gZQkJ8/f1V0dduRc+bZ5OffpUMZvll5vLOOmr+SeZODFOVRC/7iK336q5fdy1n/8LqQX/LJklsHsWMTriZrSRrmU2e7rvelHm/N9/zvb/jsv/3x/uL5PyP2SPt7XrrvwqftdsjX3Nz+ck81/LT2wuOAUvgZT3W75/5ZmdIps19x5T8YG73U9/cbuP61M5wBPfTiaaLR6ymcWBMAcaASEnPFonkkAZALRPORRVd8OADEgUrIBSJniec8JjRXDKomBoTh/494QdjOh3Cu2BEA7py2QjDI8HIFOmNhkvuElCLdFsIhctms6ZBzKTBVlUfDgHUn8rnW3jH5zGmyvOHBtvT1yOSL/Lp/cX1w/62/9y9PwA9X7NfeufV9//tbHHewvNLSNb5P9b4zAW/x+d/33Pu/1oJ7X3L1W03+5rNZ2V7D9l6Fh5velJ25e4dvVfyOz/cTm5X237/bBDlsfkN7Jtzs3AUv94W/4+eFDzLrD5Iz5g9/ywc+WmQQOEHFlVShg9tereTiV3rilTDX/J3HOxBg4zSCuQzttmnDBtbAhgnnNi7Tryd+55tmsdXpLtOvyq52+LS1PbD1Rcrm6eTEkZgDInmmRZVISQKQQGK9kwSAxHogASQAJJwBSKwHEnj0XZOYA0h1MrAeWA8qoe4CEgkggUQCQCJRPSrbl8CcNN52omc2HMABwBX/HwDJAJBIACSNpzlzugTPifUnzcH7i+2VJO6QMuKzTzzrRe22gLCDPIMQJqNBEqU3SrCSM9EBoUenkdRYJrZXfFBeWxrkqXes5WobXFmti1s+g/uJ61t+4eIvTv75LX+q/GTY+em3/uLX+lx+O18uf/l3v/ZByuf9Gnc7Ug6evwiue5NDle+x9WbHq3/3LaiOVp6J3Dfbs72rkJa3/9T3jEelm5bf9/fcfLMDXmTByuO/+RPdbcEMmA73Nu99qW+D5OFey5j6k33WsNRBKnAd1gwYOuA/ABB6znNCqPSaeE5U5RoAJY1Vb1eqgTA/WtK9YJq0/Gm6Z6IOgwAQn6m5wSY4J2qWBCpd7/gBlQogARfZmyQAAlVe5Ek50JxcsGzCnAKC+vuJAAHnAtVrl6ZxHMn5bQFAkhYWBADEIG5OEpw35whMQqvRZ02gwCmxt1gHCQIwmyvMm3mHphzmvIpbyLaoNTuAUC1DbmG0AKJiWtYhyhxqKW0ahU6/Gla4ljGX/6P+H40Xe2fx1+UTmbj6ab84iQrzwE7XHPeO/7Ri7Hw8mC9y6d1WvhaZ4+SrlsMP+sk3fN5HXPirbnjv137mez/E8Xvu6di9ZfhOffcJv/1/eCnGg2kZJihg4n1v86lM2zb3nQbbNPCtvn0Mybe/p7KjTwMGvebsB+a45jmo9lXAKqwCyiBXBj11Wcdwmd3fML3V4Qbx8ETqzTlUgea9GQvoT3GWkv1oxAopVBf3jRT64ZD+QoR9TZHC+LRkHBw3ct4mNryRyMipxtCIV0Lc+9d59B7nps6LznWWGvHETUlGkTSTLig3ctPmmsLEs7cDooRaiNw0n4t4mzB0z0ihjlxyA0iHd8Q0rEt9LBIlSwcE9boa4RArXnP0PUbh+1rLDDcOPluOgP48SdqQd3/Q5riGGQuXTaT4yxi6Smw+VZbieU3y7h8mGJHtcQQjkcJ+VG7dGfsNTBiWMrT9AA/4W7SyDbJgR8AAGGBgYAwGAGYGA2BmzPW1v7E2I3YV+Cg9RQEuBvCRAXNeDAC7TBvma7/FpwJs04bpbvqszyd6cfcACopava2iVtleVQVVZWcvDDQfNSP26IK2AHTx0bhTMOtwtc/lLzluvXTRm/Vk3cbNj23KTice4sUa2L5N2EaTQ1Ykm8alqRdo8QlU/cymVGe77G3fkdckKZJdEUmNCDU2Y4btPtw0edm2H0PvM3a8WmXZBEQo7J1fA/Gy8EJeTO9wz89Wn9RTO5CTKqqRnDrytkRDBeoYacvl3DW5z7bfz17e6MJt586blkTj4t//nifTg8oSjuB8B+cSVXdvcM+sqlIu422RezLCaxDVNSNiFIyoj/qDLQXSfTNquR0NuaTbe4axX3YPIJIf2VZ7WXyoswMfSGUy7pIBRPp0oJiXLyfRjcPaf/ES+9nGiqDST5V8WrkdcXUR7gjXA5gHvxY9Cyf0PwvOAZ4T5zgBnhM4B88J2CsXAOfgOQH+8Pd9NGXPHwjXdI0fAPADONkaKEfQY8/ay4yg55jTn/va1yBXej3ylWfinVlXH8ym9SQgWjx9g7WUAnSH1LSVbZCm39jyWO4Lyhf2LN7E6XV72mPZEovWVyScF6QM7FXlGQ2K5vP52b/4q/K1ejycTrLVeDxXALW3+QFRmt3qJb6ufANralLndmBdizzYGzVAQTS0qIyyWq8/pailN1o+RuWia/EmAhxFSwau71ckDQMLEY3VNu5bNtrAp3g8PAxsrtNsOdjSUGvWKZg1oezw6iaDCMnQ0Tum92bTegewaXDPu0i4aLGlsZ7kV8EWk65Bld5yDE7T/n45M6x5D6p8FQfkVQliO/hms2ARxLpL7oj54KpeRNmNpo1KfaMcCOqVf9BLCvgvJPS9fDloBhnMcAgAblcYQJEMuLdDR3E6S8P+YbPNFoACeJq0d4HcsC7LYIUVESqvld6o01L0v+y+QIdpnuegyDSEOHwxRT0gyDENUc0NAMxwiMkCbCspwwfsM5cCWMZwVd3aeDvOKHJB084syLmDRd4sEoJpAoBiAgyAB/xrF7phpN7+ZAqt42He5lbMXjHMyaxPA5toBw2ZQQIU0P0uHXaCbISrZ3f/7cPaH/FE0tQgrEPQ3DrKyoUVw64qB4Rz0D18yuV6qX34opG1uwaiM9WI3oEfCPxwgMRA1y5rqBYNX35tEy/edt7NBxt/OGBDZ/uU8gZR6AcRQm4vpjPEvXW27QLixBlj6C6Jw/RfXv+gL+Zz81B7sLkmNHBRql/1YxZCIIEOqNoy9Sm9BtHJsG0QqMMVrjrxhgQ1FMrAf9c5PX37QBtiQ6eGbGEDPxxEtpyDXlfOEPVEdg+RJ36BQxbGdpWkbdg2MnxRKTF4aC6pOjm2Py9Tw9c6L9kAAnagcqtsh+snUjcVcm5YG9T56KU6W5fSoQ2dxuB06Dk4rGv0dKN8ZB6F3o/P35W/tYE3GXT0HVOxvbTBz9NukvGAmGcv1CPveTNbGf2oHd3uZfrRG63sMqIM4fSMET1WX2y5NzDCDVi8RQ+ne91X+nEOjyarSriMx4vVARN1A/WmuRe9tbxhwMjErA3+cEN5Tea9K429q917DTVDrS6geHdzAVQG+4oPD2uIpioaHuCQ7F5/JuRfRtkHpNd5YB3Rh5jREF45pZOu6tssmL+pjazUQCxYVnMo2b2OEfZ0TG3KrjxDP3Z0YC+7vxmrKSiXtsFjkldc4jLDeuRuFSwgx5gUuDpWDmXHNqMG1yRqgusILBRiEIMYxCAGCGAQwCAGMQgM0QgGMUAMAkMoq124nl2L5b9sL4B1RlrLNQdtDQstFKGAGMQgdvxAyg0snR3PCAVCATGqXl8btH8GhILbA7BQiEEMYhCDGCCAQQCDwCAwQPjVv1o0MjEIYAgFxJjbYy6x35R2Xowq5ZC2Bl5XXLleHvMbqXF6KDmX2I+2x/E5PF50UmD+QN2NcwXvkaOSCMwlyU0c8P/jjvObPrhw3wyUzToMJ7LznlNqmtUAJ8Z3yNO47EqlOh8adVhuze/diEftZnBj2/dF236hOGESmmfTkBmtNR+0plKcWMmLgevdFqksva0+mkg67L+SE06AXc33poWEbpJ78TtKBn7GyPWJ9pqayvMhu5elUF58ZrdhTmDup5VzCYgrhovDfBiuDM0hLSRVc5MPdgpHyEvtsPILV/LhC/P6CmTxFfBQtsDJTVDOFoA8TbEMwMdlA5wLzkJaSC5FkAPHL74B5wYfzw2MkgEs2cALR7AYQHmaEz5eOFRTheuZOfDU2Ta2I+gWDmUfUINUWvABAbXRDsMZbegY/pisE1fhnsn3bXKCaseWnl3uQpwxnSl2pKDOeYy6MYoR05ViL0q2K9luWfB/YLjSl6mKKf05ibwZAm/rs4bs+V/+tuoKzJqSpqIzHXUxYzygrrfpyxTE1Ce2wcNFwF+dqRGNXfAQdmiXJv8A3pjpy1TF1I1xs+BxDcRrUOONzmgF4wV92lBMocYlj9waQW8kqAR+KJtFsllBNqvKZtJ5KC5MYzzYM4y9pneJS/vvM/lUmnoN5Xe6UcexeEemTEcV9TQD/f0/Pa9SSTOo1/ub+q/bUQuwXTmlV0WiYvRxuWVxSO0XyGF+prW/Yi7EFkzNo0JRUZtFwH8kABxb69j6BHh0JCqC/xyw50ezdbLxh7JZJJtJ56FsFslm0nlBNqvKZgXZrCqbSeehbCadR7JZKJtFwk+xZoSD6F9ONGPqi4VDQfC9iANr6ZFiynQcg7xwqAo+h4y7Q2tP2NK/2NUL4RB638JMys1mgiSc9k8DTH2/NsLBB57mkcg2KbbX622uBUnAUu5EV8DSd32/eIi8r9ja0W11VE+t+6u7u6rsPgjk5iamef5Aam8DsVgXDqEPQGXA0UmhbijBIB5zfgBwbkEKhSA7Vv2BTFqQzaqy2Zb+lwtD2Uw6jwSdWnNYFQo6m1ZhfDjlw40JhCT6BmUalodROd/1uCk6UiyDtUGQWtq5Sec3Hj5VfReAkg2AhG7hGsCtE/3/xe8DEABracswLTl3zR9AnXdjEBQnYckFDqEL/kshEHYTwwUOpcv+KyD+fuYCh9SRoDt7gcPqUNAdYkey2YrOQ9lMOo/8XrHII53xADvjEToj3gp+7wqHaP7Ym+LOQDY4r9kZG6TTBvvHiCdcqDnYoIWb7z/T/Z1J6zHhjmmvm5bcHQOcBaJjcA8liveAGfOYoivTKT49aemTF1f8M53JzmIh3Kt+TzeNic+AP02ixjuAvLmTmzpmzLxjvBNFBw4T76hpTJ5/2fbKNMR76PcA1b22HCvOzCvQVHnFSqydAvW84p+CiI/8H4AP4Av1RY/OezBC3QkA4AO4J+ZD9jpocPKTSDfvh9Aw6NvDJadmLdZO0ywvfVymtmRRJ4spVZnbmomYNI+UMnIscj4I62iik+jUmBwzduT7o+UxciYaTxtZjmRe5TNdhb7YSW3GfuHCFbPltN3Qrk00j8yhnyIHYVVmotXSzVKmFGjs29bINLIxcVEKrmiNLStQKQoRRFyQVW4XXYNl6O0FensXOlIkl2QAezDFbrFs4nCmuVMQRRScqVxuC5FsXk5VEUUAS6TkwcbulmVYbMC+exlqFvNgXqzckWf0h68I3JgrWzL/KETICH0UVawFCovONootQLWAAlRRtWD1QCdkhmwa5/NyNG1QUYwVMXFDU5bLuBlpiIADJ1Uxi8qpjFnsFsFmHrpwaBw4cm0267vKke1hTnKn8RWBGQFgIzrOHpmJkiCA4HgGRAAXCUEQAEEEIoAAAgE01+hKoVLrg8xLm42aiGy5iraIbbwejTPmo+VoPpqzWpOtp5md2wOdHDu0MkqDonCOFJfiUoJShSSwARprpdRKE7h5M5r5M5n522DpwD8puaPZmW0cNFeOapLcfpfdkNrrlxeYg3guSAA5JvTBiR71Bq+EQyqro8E90owslVgjDWmumBbryQkWxcwxoYSaAwo9oOSEFKZ8XtIgacQaFC2/SxgaFs0lUZG3yyB2mosw70BjYhNA5K+yLHdVZttkufHnGy0sRVut2g0H9nkZs50llICAA8eO5tmsouJDTnZJT1f6PpbW7Xed6tj9ATJZevcL8P0Gmc0VAOpvn74I5xxXo4yNTlqdOP54Y6AViUDCSSCRgHPHD8DGjXPPEsx+vgJAcfbAOcdV+Q4A7pgAAli/EUuqpWirXbAROOD/BxwiivRJ7ntk4CQAoiQVOloTQAJonU+odeKNaprUeAuC+W01YwWeNdmm5/E3pBwVGg5OPvOontCfDmbOjKh1sbS0NzQpeaxIejLe3ly6l6tkssVg1pmyRESA2JXGlZtCMIGIAyvgYmNKIyCAMY092CkztfcnLwMXtIGl0FyxH89awpFtce2BSdqzH4lvhCSOJXWeyACJmmRDGgAj5INcd/NeRgIgAwThAwFggkMEwARfCACkHgCsEKo87zAzg5CvnWiSuVjvjZkAQzYgb7t5LzETADBtBNghrhmStq4bn4d7Kb+nHREKE4zClqybACYwyecVry+HU24UAIMABgEMUT0mpjHUZNmOKvHwDXgi+3Xf57Azt9fXhqVUe3vZbPXhmSsWatcmI+4ZhKYiadOOuqf+pL79XSBN6RTp+nVPyR4TMGL1awfW/WoAWDrQ2syiQYxdFK1IZBUsqqgaV9kOEBXrmVNVxSqqLooW1RZpttQDnchLihywvVTBba6DU76DGnBWhwQXvdGzdjlp1ysNq56F2dTryM4cmV7RtW1dm8ool5MNT06SgHH2OIwBs63FfzJHympycx/iUFu6aqC2xCVySOmNkuxpNssJN+dsS04aqNsR57jXm8TuniQ5O3+mM16O8Q3iMDXihaR4yGddcGZX1EjGYYxim8dtE3sZ2dU3Z3ajpse73XApbwn0zndN0uYyOzoUAdzY0dwQRFwDyW001sNWflgan/aQPLihr1mDZfXX8eryWk6DJqpFvavuoWlQPGxQN8nVPmBEO0ahABD4gVERjXWEmOV9Vsemussnnbyrr+tdGt9+rLNueY8PoIcIMZoPEQPY9x8W4k2Pc+2zwMwW3uI0E0cyb31xFcan9Ms6k4S6g6bTMhHfkTgq6nHm+62/zKIDnZAXiuyCRaMg0qUiIO374H6gG/4RFHs55f8XDMTyf4Dw8n9YB2L5E4teFVtkhW9WYhQGByZn4T61dgR6LqONLM81hwWNp+Y8k7PuvcF/DN18atOblNX6epbHpeWFN9h34vK1p/ja9EhYS069SXOvliLqiQd74a/lzrKTh5NoNEIQEGRDNPIbe9WDcQOr9rz8gKpuqtPjmVTnmNycgZ2TxuIlaWZ8MLYjWEKt25zcEXJBt41cnMBy+qNx16CUnaBIPnyqtMWt04RTFMnsXat71v78C9gqnL7D4Py0mzppcHcm3/zrJp9VzaKvYLVNfl+5OnQn7G/JpM+Ch7guCFtx1kpUMyE1t1mwBqAdYFYU6lPUTmg3//k90fJaTz3yY83a8h7Db+SSRcF3arguZzHAbxQyQMGH4drnQFJ4IuU4c41XACEVVFADBBCqQAMjGBGv6G5iDgPXEgxWmIFUu+gtwOQVQDx5U0G2QXZ6PlI+01HRHgbYXIVzSsr1A33IRkcB6J5cn6XnlsG/usuSBndf4eNMPinyWANHZK416OteHesOyVafm3bTb2l0Dw1q2S1fK1tRrTPqKF0koy0hVKqLhQIoUHCaxWirSL/LeV99rfoQf3QUpKiepG5JXrNxqabWb+7naD11MK2+fdZodMHGua3c6egbgAuc7oQIvsu7bNayskoCpG454jyG9xz+voQl34aXLKtpnlw2E9nxLrum3Ml3+JnHjBoMco+leH3VoaZPCQDWurGqvQRwMqUS9I70h5RRK765lgYIuixUeVmnV49yj963P92owmjpyq9rNkc9N9dLG+uimVySEwDtHA/AElzZqjeQ1LDdwoFzxItj4FAcijUoohRZ7Q+yjZNlGE6UBiop9ihhSM9xThwe1dKNztBhJOsMKD4GwMxgBkyzvDbcttx/WJYpnTpy/68no37csOQYR+20li8/T7LGThjtjUeljjNqUsMVanTvYOwhCiuV6N//sjkKoMj89+Lq+q1G+13JimQw2GgaCrgdzAozwIr8nsFx6cNoNxUFYFOBy6P7u8MWSBo+D+7BjvqTqToGFwkAKKU3Hf4+Nwz+/4zU9rBC/8zKw06gMe+2Qe/PT619LE3d1OWJ/I3GHFdHvXncXQU9KNd3K9Pw54XqDJg5HaMC0AAADXA8E0Z3GMgo4rY4xn+2QRFQxJ/VcccAcNr/TAZx1GElDORzcB7yIjPluGzrZI4cZ7aFTTu0lbWV26lWY3AhpPq5JyJID2tmPhPhjKPW9piB0WCn3E4yqAMUyvrjY+7cZ6aRFSKWaZYQHStQ5gYOyeR6lutdnYS9P/aHD7Y1Fspr7vM6QX4cQ+ly4AjDx0DO9UNeNxLz4aJivVmWSYYIgfz+dHNv4YQi6aDYyUg3kgxZbndFgTRME9AdUVq2n5CKyer+0qa0oJDn2w5aJyz2ecc6Pm5LeK3mHg6rhTxfd0tP/rT7TyONjKdiB9ZXA2A1NTWzMGZQSyjAopMCtw0c8He4beBP3jaAhOPr6rYBJJxcHycFFp0USODAv3fHM0uu+HrAFf8OP64ViQCqUtM64WA/4sUoLlfjPJrNwmpWlMeJW9uo4QQfhoCi0o3hoH11Vr8uQkAv1Ax0hTLMYSUEBBFbgjzHhA8hHwhMAsawP+QThMcqq8mZM8Y89AA6Bv2TDhWPDx4Lj9wStA89l1Tt18WsCRCmWJjUDXJ4OPuA4RNzHRlCOLtuj9HQ4HOF2F9xiR3mi451SFeSMyn/T6FeQT5BPkFDFDKIdqe3kgwlKGJQgoh95N1wHpj9eIV5dO4YmC8CA3cMIAAEgAAQQJWuQgBzBjBn4yCScki8LMsOy+k0HDvYIgYB3InuMfDeutHd+JvSONshANBKciuhlWQQgPXAG7dCoLsbzsWjVwHEmFOOYtaPqGlAbq0in8HXuxu3unG2AgCtH5E7uZXkVsqC3G6dZAadECKECNUo7EJFpr4hkFvBqhBWwalQACCeXs0ABB59wMMHBGZ7hXlZHNuo4ErqIhZPC//AqMCLUVzm87zDbNaKq9tI2wRt4xPb4+PsAGh1CDeAFThtBVox93ZzN9CKuXaVwi1gBc5b0QqnHPWAAWBVK7oxz7MKQAGuj6s4Fxq7Y2Cs2mWYWLWlKcQV0o6WvhwQcXNizCJdRMmywyKDxWouVKPKndC2d9EdMfcHApgHEwigKhMBzEcXnRRAlSYQuDIv2xi7nEbL6bSOFnZUKsuJSXMto4VyQFzlRd9invpgRgBhycn3jrgSGUDVBjA/vWMAV5EW+bycrZ2CTZJGmJnRBlANklAOikLOaKR4lJPQ1TwVg1hAQUEcol2gnJJt4nFpAxutc2Bd20xaf5OvpxWaB3IKljTrIoy1bmuhWVjBNmXgF42jKZQD4iitBtMAEgJUFGUo4GYAAaeCF0sIoMPAxNFZFUClKToMFGecyDtSYtbQMzFyIf4Zk451RHveOQE4azpTDBxjQFbvrKy5I3Y6q0gwlLpXE++jaXhgp2pYwEV+7w/iyQy4q26KgHyrdo1iBub56WxzvVhdwQvtrBZvvn//q4C/VwHF2+POCd6OHQpv1AKu4Pc0uOwskG0Ed9eUPELEV/3eGj55Ya6WthL6Pfkwks1C2SySzaTzUDaTziPZLJTNItlMOg9lsxWdR7JZKJtJ5zk/MJRiJmgyhi3jeVYpidu/lX3A8I8Op5JS2W0gULL2t8B0bDBc8bh21lIq5/G+LfK+bdqraGJUKgH/fvlAqZSoxRBb6IoreVx+N2h3aPZtPnBiQSG16/2B0v4jR/9RMYatPK5ASlSsFuzbC55X68cdkRQDNgZJ/fD94VpLQd4eY/bvVc9DDYH+Gv8Xz4FmzD6+7H3pnzUaup9bhNO/gsaqbBbKZjnZTDovy2aRbCadF2SzsmwWyWbSeSib5WSzsmwmnUeymXReSEvTfblyutd0otsx1JdL+16HHDBG6V0lHu+XAWb7bmne9ajtEy1Og+/3srOn7LuF6V1uSd/5EgiWvVCDrH2pnwDIJVjTIydt9V60LLqiXMv+jejbR2lhq0z0NsA6JRyEBG7vm48G3QoF+vphWphf0d/v86WHz9SD9PmitDBxHvb/YVrYgWIkm4XeNz+VYpvvhRsKlDYc2mCsPkfn0A0N5uqzL09p2rJiEtkv+cCdHu6UZia17m96590QKO108vuZAWPdkRYNnaHHBGcGRrFlEin6j8HVqBSTuMSGnYziA7Mdb6qjo3VST6l7uR+19EAFSmjqyS31TDHlMO296ChHR8Umuan7RIOxeM+a6wJ01aUZRsbsm3PeZ95x/Dv+NYW+AgGzExg4tpgaz4Oyadh1jCG4rXrfOID1KRRI/x9LMIoSlHGs2FIBTjqgcz0xlVRHwFSQW0gDEMxl2SxK9zDCQToPZTPpPJLNpPNQNotks1A2k85zspl0XpXNQtksJ5tVhd04GpWHUqEP0wFR+7BZEpa3/jjhFPkv/QMjwVBFkXUIkv8jnEIf9uaPO7BBkBigXcSlcIr8V3Hi5XUQpOO3B1UYvxbtmISTH88iIC5nBpQ0YGWCoabmcDpkr9X4ZBMQn/15XCOxKJ4NhWXASMpDEWwUVTl27BYicd6OjGpkrV8UlbEbKjJC2WgZt4V1LjJVoaUtnI0jZw4XhHWVGV2V8SqMrV1rOKpsFCzK2Qodh6jk4q/TvAhyV63H0WIZZaNVkDec0lywYhNVkoyhHNlRU8yjdUobJwbKKNIyiKcE64UToAxGy/jUmJAZFUFU6RbUqRV1KQtrkTyJrRVB6K2KFcupsREzpZ2VfiXTDQqgoHG1MlEgE99pWxpFUIFys4ok2qyyTXVKTIEZaTYtiyTRQF0qLpQyNLOpzqi0HU0ktbElsNSmbIpUNPRDYfDptDHSCcMmwUYkABWuwlW4GjABVEAJMVQQ0NNnGycvgzJcYG3xuFyeP9nrn5JsasEJ2JmforPQBirvBdkYubgWbmV2gFDZ3TYCVHuoAptr4ZRXGR9ganUc5pO4Y7pStKqOAxuJBj8/psfOnZFXonPoBWMzamp4Qefu9KCzUBNtbDt2eTtTvEvxl07zFPB9w5Uljw8sXfn71nsCxZkYiXcSr6tPB/FwW09ae8LMazb3aJiOEzjTu6UjcdJT/DNdk3Xsd3vFTvyJaIuY2vXxCkB6iIDLfgvu5VviphtgehzPu44zBlQdpkmPmfeZBm2DTfwbH8D3V5xtS7SFvOgg1S4Qv8vzJAzDK1ynDtY3gbOKDtSHb2IkmWod/2CUwZ+INm46YWA7Sd0g2xgdIwEWHDyRDl+o//J7cAfYmn8ANjnbhmiLeGFdkWPr8u1hi7jeaLIo3EJS2aneTkBp9WoAq1enSLAp3EJe5KU/GeXZLKuTUUwRbIqZirJHd3u5hC0EyMIt4oUIfhLkWvpEkwSEEsPeXI12fywrd4xaoSNoK3eMrBJWMX90ZtVW+NuiOGKlyuoBEzcVBQVrsUaVFrV2z8xyctk8pzrTz/LO7GqxHFxFk81ftoHPq3ne+jmKdKQ7Z008vMrJbK5ascil/vE22iicrL+qUMgLJ+IQByuRpI2WbSlmNXJ7Aq6x2GRXemFT+eUCYZL27SJ59xoVuCXuMJ95ZIyj20Tbh8bG2UWMwCDD9BMTGBREDKwYN9cIyWIdrAC+qwZFvAhFQqpGJTXG+WN1MCqEPbposvTO+8wq7lHTzMJvm+plTLCWwHx4RIrlSxt78l83Zddt1p+yYjoTjQh3vXeLOjlLS5sEffVkV2i2zYXCf8vFmyg+QnOHHmyUeWHAIM5WsQFKABezV2vK92NzS8vBNoKaosJi2tOw6xBLi676shEcqvMqgHD8ALEEgFgPpZ0AoQBLgFXAqso2ziWXv37PBv/HndJJGk+99qFndZtDmV8avsFe9SUbcmo5w6nTGwsWSxt2hy3Ah97RHfIECkpSVVTjOo77rTvQzlrydT/NQvG2Ln2gmNYC2EmxvzoPL/q6VDgRLqquVLPZrkVCRv9jIArNbKoRjKHKwHMFzSvEhjJzWhnPDwgc9FNl7BIfI07FYMD0kyvEvs8Wm/eYibTmLX4V4OJ0RXkm5RvA90zAJPZtGdkokg6CYlBoyDFkMMDMAlxF1g3A72v6+f6Pe4bUdvpLDpzyID0Zfskr3LN8Qqi2Jk3qCVuEb0bDTf+GWCpgSAZU//6lKlfDOK/CElFAc7bIN3RAo5ZCnLZFJUVRuoLCGCJpYxNROqeF2lg3qsV+qsoZhBNiL3+gl1P/ffo1vfwBSSzMIASgzZSlLhARiMjwFushgAAiAESAICIQAAIRIIhYIoAIIKqiVuPBCECQVS1VukgAE5ERCZIgIhARIIioWqJpbQYiAFqHXKPrcxCR5iUCCCCiYMQQRAQQASBCvqtXinu08lotAAYBDEkPSuElBHYIgWgu0Y2JvZHUTKnbB28eT2rt3qfcfqhr0yFuBWjbRzqNGk2qIOwnZYNUE8qrRj6T9CpGIe9NRnJUNUttfG9/5k2md5B7TpcmpP66nmj4217w69SPW1brKzRYfxrLO16ygTSrZ3mjnSyharr4krL+Jm8go/JxeybU3ZXHyTokaSkKVatR2lpbjSfZdK3pqgx1sU42s7GNo9E0Kis/b53WG39sENwx5gvZR4W8OamON03iZSOaZcRGpHi0z5Dinb5cMzskaNQAUhLNnUyIj/hIk5prIBkUzKFrJE/j0nOS99vGYYzkBOdywarpMA9Dw1UvGxEHyfu1sYGUEfT5ymvSiIEkI9kp7fJ1SZ1BoUn9cdecCMlxfosfpu5GT4aUbqQTolNvUv11Qz7BzXFwsm0XEGfDGwe3oVHy7iLkRvKCm/utjgGjgJDqh6TpbmiSqnf+lr/R54ZDOmGlJTTnXDNB/+bFK9Fv/78I+1yTm6MNVw9atQ3YBe3ssCTCdZqXo01560Qr13fdd86Zb//zI7nTC3FOtitSh7x2l445lYGK6+q68XLlx8THp6Xjl/u9liF7muPL5a4aRBtEZChDcUmUa3pTPTwsW1KjRad0RMkFPXJbBO5FoM2iUQWUZQcJNHem9JkmGS5ZIH47dS5Jl7lOXNaCr5E6ZmZmdR4Huo/y88VnnLjGrwy7ebTzAQCkXH6t9mMPy6LtGIHN/bvQaRSkut1cWDH0RblmbWpEkpqoX8v1c09drqcNgpJPyf2ddF4/qJLbt10CAvaB7hU36RUvKLT1NYcB1CXVHj31ktIKLx5i1+1Ojdwz9ZTNdQedzVezNtgkkSunmHKnIxYzf/YLX41zP0q+idtIbiAsi3uGCtNv3PSSeW+cRJEUkNyRfxOjqbMRlBsRp0rNIw55kK8nuaupoppbjDT6F+e8ak9GeN9gf4tA44mXnd4D0TOlU/Pb5rdL5IL9XcoQQJmGG3Olx9Vz+iH0Xi9Ew5cj37sPGLqqwyYZjUpWj/YNxPxs9HW0dNgUwrYLFPPk1aNufTTtg2OQICqrbfL3MQCzdISDbMFfutaspB8IH119ncVMcErMoUcDuOLjAcIHAsB6xp1pyPQa/avVD8qrC3Z2kkCzCEmqKALEn5uKSWKP4ozGbRb6HdzGVPYYzuAKcbiiKldtJepUHahwqPlr35ox1R4xdj0xy5yRNn7t6/b9SKq1LAYPZOpFeM82E+nRklOTppzLjJXXNK30xrEiqYH+LG5JTb7nkBp3SKNxJgYX630eSfvhSzcZ6Q0xdiZRAEK3SMHpaOZvFel3/jPllut/mmqDVj+QziS9DXvqhoEV2b9R/xCm0qa9yGP1WGyFK/rhfHVxguNwmkW4kn7I4QErChXqgKoOw5zR8FO+dXZsQALc0LrKa9JDNjxLmgGK2ckkMVRCKn2Rwn49O2AaubLaGf1ojNGwtkcdjLcng49VYfgJu7BybCCJys2ZcNYheB1owP3Vrinfjvu5bSDRY2dy5uCKkNMkXXAQ3M4KM2AiC31oGfK+mtHVPVjKisKKwmRoKwyO7Ml3Earc8nBeAOQG0kuw6r0DifWrAlgCxzPAHfAYON144P93JD4MXxOgjWJYnCG7MlA6JQEdtE6FYxQCxFsYzMLXtiiUZLak2PiKOEVsLEuJq6nzCwEEVRlN1/upyH9dva2lpwOUytuJiNAOAhACZABwiG2NW2vWAZlOYZKJTMgg1hERtWba7YnihwMQHBotm+mKIFSqz0R/MCgKCus1yP/5z/S/oR0dRFgKASg/nEQHAUAjE4UI9MMhgBBct+ffyR2i3wL+7Ou9njM8sP3DbUI75pSJSAgA/ndpHpf2XQ2ibBZQNCa06+sMKel5g2fapGJOAYVsN60wCE4bGSRshgyCi/aaR/xDAMq6MOoy3a93zv3g96hHIGmyy85ALc1eH6JqP1TqI6gEd/Z9TvSK7ELkNq+Iu2OIIR1FzHTXdqasJJaX1TbxHQD7Ttkg6XWSNuFdBiBGtQZ+daAVrUr2WS5iuF4jCFKhf7yuqDNjZgQNTmKaTX2MzUyDgtBWi3ZmTaSpJhooQZlWM7Of8uH2294sPVYdXBBmwtmvnmFAJHYiZE0CgwEGHGIvldR9kfpY2ru/4LYjp/K7MIMVuTZSO6tSyziReSlCbf06GfkUOQJc/GpfHo9jXN34d9R+T8hXzH3PhWfCr20Ct5tQTAVsK5Jad9OPkxK8FGY7GEq7K2gOxgg2+E39FLjHDS/kc++n9xTq2kSoaxu4naEA4I6hEtvqy5aOWvnOwmUdZt02nomaSi6oFomRw9nbWAEvg4/0C+5584aUScxk5JjdFLFNVWFwuwswj/tdIH4x2gN+7dWgSZ4E5pyzVl44Bq+PwqyGaY+bwm4Ky+pYb4aiXxchAzKgsK7wZiCTCY+pYXj24DEABIO6elYh7ElWVh0D0hFeJXCYBKq0itstMqggAWLwIQBIgJgYYhdLWe2nQv/l0VUhbE6r5KsfGzGjbOnvqVtpC9F6jJbX0vVFgnWZUOincDIc3YC6TFrXWV9plNUyK5WwO27p+oAy0KCpGQnrxCC5cO6bXvBQps3zAM7hUTzLSD6tWAvPPEWXtyJ7exGtTw+m1HW70n57jy1u79d1XqmzKxUQunHqQOnPaiZHaUwjjQS3jvqMz6bqrFvRPSemM6VELAxLckP0XTgs7+pVPZAarEHNtxcW6TLqs4P9XfW6EdEGY3KvptbLx0YwJq+UWa/lRGXw49WI+urYpAJK5QqRDv5kIMInAwigj8Qt09mzH6+AEJDG7NcrQAACBCw5G0uIcH1C1S6dcGK+4Mm7qTks1lGCZyW6nA7PI0Rmi2XFPHC3QG2BJ8xWBpweu1xlOXO5zh6LPR7IGZmx5doeWAsZWzLQL8+EKIwqru/EBTx/FyW9nA7LDHoWMHELy4Nwb4GVoZbTN0NeLNOgbFns8bhEHDc8ARjQmtJJK5ijlytggk/3+DwebGlBeDMr1rUzhBZP+gF7wwvpWS73sLp8jDHIHvBixmLHUFgeA8CLAXD6AVB8LQp7dARcQNVdGjE4W+BuBFahG+gGugOA0oo5FRz4+A4XuxV0A3gMqthwshVz0JDzb/LlGLCVjWcJKczMYICh8B2ZwQyAfQrAPgYzmAEGwD4GKwAz2McAV9Xj4ywDt7KxVzAABgMMMJjB+ViYfACDGcyozksMzEbHH4kxADDADGYwgxlgHwPM8DErYB9DYQYYDDDAAMAAwADQzegGd4MZrtNjOxlzXh9X2z0R8m9cGAStSKMV892zbGMr0mhFFZKMeZfSmC92A+jGMVWq7vD6PD5uO1txpbIVV04Lt3KfIpgUbuJbuEWymfh+7t5C2axPaDhjKBkoRjR6JjbI88+kZdndhsDZrK1TsInVdKqYudpedUpq+B+UBwxfSMBFfu+JSCLZMb6/AncTGk3h+rHcdeyvwGz++nSMetz9jYEHDu83Lt58f/p54HDmlmwt9YFo4g2H2EGGztxBR08DTyy9Y2wenK0j2kK/59+VLR7hAiCenfsQhuAsUMmshUe+1mWRbn0BLlGsTYO3G+GVl4Vwj3yfdFiQzcqy2YrOI9kslM0i2Uw6D2WznGxWlc1C2WxF5znZrCqbhbJZ5AOy359iWnLwgz+8j0olTf2v5FDwvpVvHCNI7b2m5QYf2AnD9RRDRm4oe59sGok+k80blt6Rnsnm2dJZarJXZB8l/LfvrApMZ7enlYi7pfvRO4Jt05WG2nHaDBvW7p8Koq+rFjGGLWyv6RhHdoz9DKwn0tASyUqMiNs3lQXf5rkGY/VvorP24WBZGuZQouRGFoyK2TeJ/j1mb44wRnt2DBys0cGVrOyjI8G3EZyu8WDLUYayWU42q8pmoWyWk82k87JsFslmBdmsLJtJ55FsFspmOdmsLJudjO2RbBbKZis6j2Qz)

For information about the plugins used in the pipeline flow, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-recognition.html#gst-ai-face-recognition__section_mrl_x4m_qdc).

## Sample model and label files

Table : Sample model and label files for gst-ai-face-detection

| Runtime | Model files | Label files |
| :--- | :--- | :--- |
| Qualcomm AI Engine direct and LiteRT | <ul class="ul" id="gst-ai-face-recognition__ul_bdk_hwm_qdc"><br>                                    <li class="li"><var class="keyword varname">face_det_lite_quantized.tflite</var></li><br><br>                                    <li class="li"><var class="keyword varname">facemap_3dmm_quantized.tflite</var></li><br><br>                                    <li class="li"><var class="keyword varname">face_attrib_net_quantized.tflite</var></li><br><br>                                    <li class="li"><var class="keyword varname">face_det_lite_quantized.bin</var></li><br><br>                                    <li class="li"><var class="keyword varname">facemap_3dmm_quantized.bin</var></li><br><br>                                    <li class="li"><var class="keyword varname">face_attrib_net_quantized.bin</var></li><br><br>                                </ul> | <ul class="ul" id="gst-ai-face-recognition__ul_q4l_kwm_qdc"><br>                                    <li class="li"><var class="keyword varname">face_detection.labels</var></li><br><br>                                    <li class="li"><var class="keyword varname">face_recognition.labels</var></li><br><br>                                    <li class="li"><var class="keyword varname">face_landmark.labels</var></li><br><br>                                </ul> |

## Prerequisites

- If not already done so, [Download and install eSDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-51/install-sdk.html#download-and-install-esdk-).
- [Download model and label files](https://docs.qualcomm.com/doc/80-70018-50/topic/download-model-and-label-files.html).
- To access your host computer, enable SSH. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#use-ssh).
Note: If SSH is already enabled, you can skip this
                        step.
- Push the model files from the Linux host
                    computer.

        scp <model_filename> root@<IP address of target device>:/etc/modelsCopy to clipboard
- Note that the [downloaded
                        script](https://docs.qualcomm.com/doc/80-70018-50/topic/download-model-and-label-files.html) downloads the sample video.mp4 video to
                    the /etc/media directory. If you are using a custom video,
                    then ensure that you push the video to /etc/media and
                    update the file path in the application config.JSON file.
- Connect the display to the device using the HDMI port. For instructions, see
                        [Set up HDMI display](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-18/samples.html).
- Enable the
                    display:

        export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard

If you face issues while enabling camera or display, see [Camera troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-17/troubleshooting.html) and [Display troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-18/debug.html).

- Download the following Qualcomm AI Engine direct models:
    - [face_det_quantized](https://aihub.qualcomm.com/iot/models/face_det_lite_quantized?searchTerm=face)
    - [face_attrib_net_quantized](https://aihub.qualcomm.com/iot/models/face_attrib_net_quantized?searchTerm=face)
- Push these models to the /etc/models directory on the
                    target
                    device.

        scp face_det_lite_quantized.bin root@<IP address of target device>:/etc/modelsCopy to clipboard

        scp face_attrib_net_quantized.bin root@<IP address of target device>:/etc/modelsCopy to clipboard

## Register a face for facial recognition

Before running the gst-ai-face-recognition application, you can register a face for
                secure verification and authentication.

1. To register a face, use the following gst-pipeline on the target device shell:

        gst-pipeline-app -e \
        qtimlvconverter name=stage_01_preproc mode=image-batch-non-cumulative \
        qtimlqnn name=stage_01_inference model=/etc/models/face_det_lite_quantized.bin backend=/usr/lib/libQnnHtp.so \
        qtimlvdetection name=stage_01_postproc stabilization=false threshold=40.0 results=4 module=qfd labels=/etc/labels/face_detection.labels \
        qtimlvconverter name=stage_03_preproc mode=roi-batch-cumulative \
        qtimlqnn name=stage_03_inference model=/etc/models/face_attrib_net_quantized.bin backend=/usr/lib/libQnnHtp.so \
        qtiqmmfsrc video_0::type=video name=camsrc ! video/x-raw,format=NV12,width=1920,height=1080 ! queue ! waylandsink fullscreen=true sync=false \
        camsrc.image_1 ! video/x-raw,width=1920,height=1080 ! qtivtransform ! video/x-raw,format=NV12 ! tee name=t_split_1 \
        t_split_1. ! queue ! metamux_1. \
        t_split_1. ! queue ! stage_01_preproc. stage_01_preproc. ! queue ! stage_01_inference. stage_01_inference. ! queue ! stage_01_postproc. stage_01_postproc. ! text/x-raw ! queue ! metamux_1. \
        qtimetamux name=metamux_1 ! queue ! tee name=t_split_3 \
        t_split_3. ! queue ! stage_03_preproc. stage_03_preproc. ! queue ! stage_03_inference. stage_03_inference. ! queue ! multifilesink location=/etc/data/tensor_%d.bin sync=true async=false enable-last-sample=falseCopy to clipboard

    A
                        list of options is displayed.
2. To prepare for capturing a facial image, do the following:
    1. Select the following options from the list:
        1. `(3)PLAYING`: Move the pipeline to the Playing
                                    state.
        2. `(p)Plugin Mode` ➔ `(26)camsrc`➔
                                        `(37)capture-image`: Capture the image using
                                    a camera source.
    2. Using the live preview on the display, face the camera and ensure that
                            the camera is pointed straight and there is only one person in the
                            frame.
    3. In the terminal, enter 1 for the following values:
        1. `GstImageCaptureMode` for
                                    `arg0`.
        2. `guint` for `arg1`.
3. To capture all the sides of your face, select `capture-image`do
                    the following for each side:
    1. Left and right: Turn your head left by 40° while keeping the landmarks
                            visible, then repeat steps 3 and 4. Turn your head right (by 40°) and
                            repeat.
    2. Up and down: Raise your head by 30° while keeping the landmarks visible,
                            then repeat steps 3 and 4. Lower your head (by 30°) and repeat.
4. To stop the pipeline, use `(b)Back` and
                        `(q)Quit`.
    After running the pipeline, five individual
                        tensor bins are created (tensor\_0.bin to
                            tensor\_4.bin) with facial properties recorded for
                        each side of the face.
5. On the target device, go to /etc/data/, find the tensor
                    bins. To pull the bins from the target device to the Linux host computer, run
                    the following
                    commands:

        scp root@<IP-Address>:/etc/data/tensor_0.bin .Copy to clipboard

        scp root@<IP-Address>:/etc/data/tensor_1.bin .Copy to clipboard

        scp root@<IP-Address>:/etc/data/tensor_2.bin .Copy to clipboard

        scp root@<IP-Address>:/etc/data/tensor_3.bin .Copy to clipboard

        scp root@<IP-Address>:/etc/data/tensor_4.bin .Copy to clipboard
6. To merge the tensor bins with all the facial properties into a cohesive image,
                    download and run the facedb.pyscript in the same directory
                    as the tensor bins on the Linux host computer.
    1. Download the facedb.py
                            script:

            curl -L -O https://raw.githubusercontent.com/quic/sample-apps-for-qualcomm-linux/refs/heads/main/qualcomm-linux/scripts/facedb.pyCopy to clipboard
    2. Run the script. Note that <var class="keyword varname">&lt;Name of the person&gt;</var> is
                            case and style sensitive. Ensure that you use the same name
                            consistently.

            python3 ./facedb.py "<Name of the person>" 512 32 tensor_0.bin tensor_1.bin tensor_2.bin tensor_3.bin tensor_4.binCopy to clipboard

    A face.bin binary is created.
7. Push the face.bin binary to
                            /etc/data directory and rename it to
                            face0.bin.

        scp face.bin root@<IP address of target device>:/etc/data/face0.binCopy to clipboard
8. To generate the face\_recognition.labels file and register
                    the new person into the database, use the following reference label file for
                    two-person registered
                        face:

        (structure)"<Name of the person>,id=(guint)0x0,database=(string)/etc/data/face0.bin,color=(guint)0x00FF00FF;"Copy to clipboard

        (structure)"<Name of the person>,id=(guint)0x01,database=(string)/etc/data/face1.bin,color=(guint)0x00FF00FF;"Copy to clipboard

Note: Update the ID field according to the number in the
                        list. If more faces are registered, add the structure in a new line within
                            face\_recognition.labels.
9. To save the labels, push the updated
                        face\_recognition.labels file to the
                        /etc/labels directory on the target
                    device.

        scp face_recognition.labels root@<IP address of target device>:/etc/labelsCopy to clipboard

## Run the application

Note: The following commands provide the default model and label
                paths. If you have a different folder structure, replace the default paths in the
                command-line parameters. See [Sample model and label files](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-recognition.html#gst-ai-face-recognition__section_bxr_x4m_qdc).

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

To create your own config JSON file, use [config-face-recognition.json](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/tree/imsdk.lnx.2.0.0.r2-rel/gst-sample-apps/gst-ai-face-recognition?ref_type=heads)as a
                    reference.
1. Use the following format of the
                            `/etc/configs/config-face-recognition.json`
                            file:

        {
        "ml-framework": "<qnn or tflite>",
        "face-detection-model": "<path for face detection model file>", 
        "face-landmark-model":"<path for face landmark model file>",
        “face-recognition-model”:”<path for face recognition model file>”,
        "face-detection-labels":”<path for face detection labels file>”,
        "face-landmark-labels":”<path for face landmark labels file>”,
        "face-recognition-labels":”<path for face recognition labels file>”,
        "face-detection-constants":”<Model-constants-for-face-detection-litert models>”,
        "face-landmark-constants":”<Model-constants-for-face-landmark-litert-model>”,
        "face-recognition-constants":”<Model-constants for-face-recognition-litert-model>”
        }Copy to clipboard

Note: 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-70018-50/topic/gst-ai-face-recognition.html#gst-ai-face-recognition__section_qjx_hqq_32c).

    For
                            example, run the application using LiteRT, custom models, custom labels
                            file:

        {
          "ml-framework":"tflite",
          "face-detection-model":"/etc/models/face_det_lite_quantized.tflite",
          "face-landmark-model":"/etc/models/facemap_3dmm_quantized.tflite",
          "face-recognition-model":"/etc/models/face_attrib_net_quantized.tflite",
          "face-detection-labels": "/etc/labels/face_detection.labels",
          "face-landmark-labels": "/etc/labels/face_landmark.labels",
          "face-recognition-labels": "/etc/labels/face_recognition.labels",
          "face-detection-constants": "DET,q-offsets=<178.0, 0.0, 102.0>,q-scales=<0.034
          "face-landmark-constants":"DMM,q-offsets=<211.0>,q-scales=<0.06002333015203476
          "face-recognition-constants":"qfr,q-offsets=<124.0, 153.0, 125.0, 133.0, 126.0
        }Copy to clipboard
2. Run the gst-ai-face-recognition
                        application:

        gst-ai-face-recognition --config-file=/etc/configs/config-face-recognition.jsonCopy to clipboard

To display the available help options, run the following commands in the SSH
                shell:

    gst-ai-face-recognition -hCopy to clipboard

To stop the use case, use CTRL + C.

## Expected output
![](data:image/jpeg;base64,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)

## Pipeline flow

The table lists the plugins used in the face recognition pipeline:| Plugin | Description |
| --- | --- |
| Camera source:[qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70018-50/topic/qtiqmmfsrc.html) | <ul class="ul" id="gst-ai-face-recognition__ul_zyl_gj1_mcc"><br>                                    <li class="li">Captures the live stream from camera.</li><br><br>                                    <li class="li">Uses tee to split the stream for inferencing.</li><br><br>                                </ul> |
| File source: filesrc | <ul class="ul" id="gst-ai-face-recognition__ul_z1z_x4f_w1c"><br>                                    <li class="li">Captures the video stream using filesrc, followed by<br>                                        qtdemux, which demultiplexes the stream.</li><br><br>                                    <li class="li">Uses tee to split the stream for inferencing.</li><br><br>                                </ul> |
| RTSP source: rtspsrc | <ul class="ul" id="gst-ai-face-recognition__ul_vsj_2r4_tbc"><br>                                    <li class="li">Captures the RTSP stream using rtspsrc, followed by<br>                                        rtph264depay for video extraction.</li><br><br>                                    <li class="li">Uses tee to split the stream for inferencing.</li><br><br>                                </ul> |
| h264parse | Parses the H.264 video. |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70018-50/topic/v4l2h264dec.html) | Decodes the video. |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvconverter.html) | <ol class="ol" id="gst-ai-face-recognition__ol_j34_ddg_q1c"><br>                                    <li class="li">Receives the video stream on its sink pad.</li><br><br>                                    <li class="li">Performs the following preprocessing on the stream data.<br>                                        This preprocessing is done when the model expects<br>                                        floating-point values as input.<ol class="ol" type="a" id="gst-ai-face-recognition__ol_m5z_cpr_lbc"><br>                                            <li class="li">Color conversion</li><br><br>                                            <li class="li">Scaling (up or down)</li><br><br>                                            <li class="li">Normalization</li><br><br>                                        </ol><br></li><br><br>                                    <li class="li">Converts the preprocessed video stream to a tensor stream on<br>                                        its source pad. </li><br><br>                                </ol><br><br>                                <br>The tensor stream is used for inferencing in the later stages of<br>                                    the pipeline. |
| [qtimlqnn](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlqnn.html) | Acts as the inferencing plugin for Qualcomm Neural Network<br>                                    model.<ol class="ol" id="gst-ai-face-recognition__ol_mbk_pl3_4dc"><br>                                    <li class="li">After the inference runtime receives the tensor stream on<br>                                        its sink pad, it runs the inference.</li><br><br>                                    <li class="li">Produces a tensor stream with the inference results on its<br>                                        source pad.</li><br><br>                                </ol> |
| [qtimlvdetection](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvdetection.html) | <ul class="ul" id="gst-ai-face-recognition__ul_lwr_xl3_4dc"><br>                                    <li class="li">Handles inference results from any face detection<br>                                        model.</li><br><br>                                    <li class="li">Applies a threshold to the chosen number of results.</li><br><br>                                </ul> |
| [qtimetamux](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimetamux.html) | <ul class="ul" id="gst-ai-face-recognition__ul_cvw_j3n_qdc"><br>                                    <li class="li">Receives the output of the face detection models from<br>                                        qtimlvdetection and multiplexes it.</li><br><br>                                    <li class="li">Receives the output of facial pose from qtimlvpose and<br>                                        multiplexes it.</li><br><br>                                </ul> |
| tee | Splits the stream for inferencing. |
| [qtimlvpose](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvpose.html) | Performs the facial pose recognition. |
| [qtimlvclassification](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvclassification.html) | Receives the stream from qtimetamux and classifies the<br>                                face. |
| [qtivoverlay](https://docs.qualcomm.com/doc/80-70018-50/topic/qtioverlay.html) | <ol class="ol" id="gst-ai-face-recognition__ol_wst_y5l_vbc"><br>                                    <li class="li">Receives the multiplexed stream.</li><br><br>                                    <li class="li">Overlays the bounding boxes on the stream.</li><br><br>                                </ol> |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70018-50/topic/waylandsink.html) | <ol class="ol" id="gst-ai-face-recognition__ol_kjr_fvr_lbc"><br>                                    <li class="li">Waylandsink submits the video stream received on its sink<br>                                        pad to Weston.</li><br><br>                                    <li class="li">Weston renders the video stream on a local display.</li><br><br>                                </ol> |

## Config JSON field description

Table : Field description–config-face-recognition.json file

| Field | Values/description |
| :--- | :--- |
| **ml-framework** | Use one of the following models:<ul class="ul" id="gst-ai-face-recognition__ul_prm_gck_32c"><br>                                    <li class="li"><code class="ph codeph">tflite</code>–LiteRT</li><br><br>                                    <li class="li"><code class="ph codeph">qnn</code>–Qualcomm AI Engine direct</li><br><br>                                </ul> |
| **Models and labels** | See [Sample model and label files](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-recognition.html#gst-ai-face-recognition__section_bxr_x4m_qdc).<ul class="ul" id="gst-ai-face-recognition__ul_c31_nfr_32c"><br>                                    <li class="li"><strong class="ph b">face-detection-model</strong>: The path to the face detection<br>                                        model.</li><br><br>                                    <li class="li"><strong class="ph b">face-landmark-model</strong>: The path to the face landmark<br>                                        model.</li><br><br>                                    <li class="li"><strong class="ph b">face-recognition-model</strong>: The path to the face<br>                                        recognition model.</li><br><br>                                    <li class="li"><strong class="ph b">face-detection-labels</strong>: The path to the face detection<br>                                        labels.</li><br><br>                                    <li class="li"><strong class="ph b">face-landmark-labels</strong>: The path to the face landmark<br>                                        labels.</li><br><br>                                    <li class="li"><strong class="ph b">face-recognition-labels</strong>: The path to the face<br>                                        recognition labels.</li><br><br>                                </ul> |
| **Constants** | <ul class="ul" id="gst-ai-face-recognition__ul_pbc_nrs_52c"><br>                                    <li class="li"><strong class="ph b">face-detection-constants</strong>: The face detection model<br>                                        constants.</li><br><br>                                    <li class="li"><strong class="ph b">face-landmark-constants</strong>: The face landmark model<br>                                        constants.</li><br><br>                                    <li class="li"><strong class="ph b">face-recognition-constants</strong> The face recognition model<br>                                        constants.</li><br><br>                                </ul> |

## Known issues

The 3D facial landmark isn't observed with LiteRT models.

**Parent Topic:** [Run AI/ML sample applications](https://docs.qualcomm.com/doc/80-70018-50/topic/ai-ml-sample-applications.html)

**Related Resources**  

- [Object detection](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-object-detection.html)
- [Pose detection](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-pose-detection.html)

Last Published: Jan 30, 2026

[Previous Topic
Face detection](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/gst-ai-face-detection.md) [Next Topic
Audio classification](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/audio-classification.md)