CINXE.COM
Pose landmark detection guide for Python | Google AI Edge | Google AI for Developers
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google AI for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1967d2"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/googledevai/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png"><link rel="canonical" href="https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker/python"><link rel="search" type="application/opensearchdescription+xml" title="Google AI for Developers" href="https://ai.google.dev/s/opensearch.xml"> <title>Pose landmark detection guide for Python | Google AI Edge | Google AI for Developers</title> <meta property="og:title" content="Pose landmark detection guide for Python | Google AI Edge | Google AI for Developers"><meta property="og:url" content="https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker/python"><meta property="og:image" content="https://ai.google.dev/static/site-assets/images/share.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Pose landmark detection guide for Python" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google AI Edge", "item": "https://ai.google.dev/edge" },{ "@type": "ListItem", "position": 2, "name": "Pose landmark detection guide for Python", "item": "https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker/python" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="googledevai-theme" type="article" layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner" keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleAIEdge" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://ai.google.dev/_static/googledevai/images/lockup-new.svg" class="devsite-site-logo" alt="Google AI Edge"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://ai.google.dev/gemini-api" track-metadata-eventdetail="https://ai.google.dev/gemini-api" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - gemini api" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Gemini API" track-name="gemini api" > Gemini API </a> </tab> <tab > <a href="https://ai.google.dev/gemma" track-metadata-eventdetail="https://ai.google.dev/gemma" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - gemma" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Gemma" track-name="gemma" > Gemma </a> </tab> <tab class="devsite-active"> <a href="https://ai.google.dev/edge" track-metadata-eventdetail="https://ai.google.dev/edge" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google ai edge" track-metadata-module="primary nav" aria-label="Google AI Edge, selected" data-category="Site-Wide Custom Events" data-label="Tab: Google AI Edge" track-name="google ai edge" > Google AI Edge </a> </tab> <tab class="devsite-dropdown "> <span class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - tools" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > Tools </span> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Tools" track-type="nav" track-metadata-eventdetail="" track-metadata-position="nav - tools" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://ai.google.dev/responsible" track-type="nav" track-metadata-eventdetail="https://ai.google.dev/responsible" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Responsible GenAI Toolkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://colab.google/" track-type="nav" track-metadata-eventdetail="https://colab.google/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Colab </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/genkit" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/genkit" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Firebase Genkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://jax.readthedocs.io/" track-type="nav" track-metadata-eventdetail="https://jax.readthedocs.io/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> JAX </div> </a> </li> <li class="devsite-nav-item"> <a href="https://keras.io/" track-type="nav" track-metadata-eventdetail="https://keras.io/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Keras </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> TensorFlow </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://discuss.ai.google.dev/" track-metadata-eventdetail="https://discuss.ai.google.dev/" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Google AI Edge" tenant-name="Google AI for Developers" > <form class="devsite-search-form" action="https://ai.google.dev/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://ai.google.dev/edge" track-metadata-eventdetail="https://ai.google.dev/edge" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-dropdown "> <span class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - mediapipe" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" > MediaPipe </span> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for MediaPipe" track-type="nav" track-metadata-eventdetail="" track-metadata-position="nav - mediapipe" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://ai.google.dev/edge/mediapipe/solutions/guide" track-type="nav" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/solutions/guide" track-metadata-position="nav - mediapipe" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> MediaPipe Solutions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://ai.google.dev/edge/mediapipe/framework" track-type="nav" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/framework" track-metadata-position="nav - mediapipe" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> MediaPipe Framework </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://ai.google.dev/edge/litert" track-metadata-eventdetail="https://ai.google.dev/edge/litert" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - litert" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: LiteRT" track-name="litert" > LiteRT </a> </tab> <tab class="devsite-active"> <a href="https://ai.google.dev/edge/mediapipe/solutions/guide" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/solutions/guide" class="devsite-tabs-content gc-analytics-event gemini-hidden-tab" track-type="nav" track-metadata-position="nav - solutions" track-metadata-module="primary nav" aria-label="Solutions, selected" data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" > Solutions </a> </tab> <tab > <a href="https://ai.google.dev/edge/mediapipe/framework" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/framework" class="devsite-tabs-content gc-analytics-event gemini-hidden-tab" track-type="nav" track-metadata-position="nav - framework" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Framework" track-name="framework" > Framework </a> </tab> <tab > <a href="https://ai.google.dev/edge/model-explorer" track-metadata-eventdetail="https://ai.google.dev/edge/model-explorer" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - model explorer" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Model Explorer" track-name="model explorer" > Model Explorer </a> </tab> <tab > <a href="https://ai.google.dev/edge/api" track-metadata-eventdetail="https://ai.google.dev/edge/api" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - api reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: API Reference" track-name="api reference" > API Reference </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleAIEdge" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://ai.google.dev/_static/googledevai/images/lockup-new.svg" class="devsite-site-logo" alt="Google AI Edge"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/gemini-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Gemini API" track-name="gemini api" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gemini API" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gemini API </span> </a> </li> <li class="devsite-nav-item"> <a href="/gemma" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Gemma" track-name="gemma" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gemma" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gemma </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Google AI Edge" track-name="google ai edge" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google AI Edge" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google AI Edge </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/edge" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" > <span class="devsite-nav-text" tooltip > MediaPipe </span> </span> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" > <span class="devsite-nav-text" tooltip menu="MediaPipe"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="MediaPipe"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/edge/litert" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: LiteRT" track-name="litert" data-category="Site-Wide Custom Events" data-label="Responsive Tab: LiteRT" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > LiteRT </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/mediapipe/solutions/guide" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solutions" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Solutions </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/mediapipe/framework" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Framework" track-name="framework" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Framework" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Framework </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/model-explorer" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Model Explorer" track-name="model explorer" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Model Explorer" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Model Explorer </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/api" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: API Reference" track-name="api reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: API Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > API Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > <span class="devsite-nav-text" tooltip > Tools </span> </span> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > <span class="devsite-nav-text" tooltip menu="Tools"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Tools"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="https://discuss.ai.google.dev/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/guide" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/about" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/about" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/about" ><span class="devsite-nav-text" tooltip>About the Preview</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/tasks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/tasks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/tasks" ><span class="devsite-nav-text" tooltip>Tasks</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/model_maker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/model_maker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/model_maker" ><span class="devsite-nav-text" tooltip>Model Maker</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/studio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/studio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/studio" ><span class="devsite-nav-text" tooltip>Studio</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Vision tasks</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Object detection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/object_detector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/object_detector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/object_detector" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/object_detector/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/object_detector/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/object_detector/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/object_detector/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/object_detector/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/object_detector/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/object_detector/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/object_detector/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/object_detector/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/object_detector/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/object_detector/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/object_detector/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/customization/object_detector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/customization/object_detector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/customization/object_detector" ><span class="devsite-nav-text" tooltip>Customize</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Image classification</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_classifier" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_classifier/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_classifier/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_classifier/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_classifier/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_classifier/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_classifier/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_classifier/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_classifier/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_classifier/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_classifier/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_classifier/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_classifier/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/customization/image_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/customization/image_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/customization/image_classifier" ><span class="devsite-nav-text" tooltip>Customize</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Image segmentation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_segmenter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_segmenter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_segmenter" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_segmenter/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_segmenter/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_segmenter/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_segmenter/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_segmenter/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_segmenter/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_segmenter/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_segmenter/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_segmenter/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_segmenter/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_segmenter/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_segmenter/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Interactive segmentation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/interactive_segmenter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/interactive_segmenter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/interactive_segmenter" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/interactive_segmenter/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/interactive_segmenter/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/interactive_segmenter/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/interactive_segmenter/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/interactive_segmenter/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/interactive_segmenter/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/interactive_segmenter/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/interactive_segmenter/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/interactive_segmenter/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Gesture recognition</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/gesture_recognizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/gesture_recognizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/gesture_recognizer" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/gesture_recognizer/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/gesture_recognizer/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/gesture_recognizer/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/gesture_recognizer/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/gesture_recognizer/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/gesture_recognizer/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/gesture_recognizer/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/gesture_recognizer/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/gesture_recognizer/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/gesture_recognizer/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/gesture_recognizer/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/gesture_recognizer/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/customization/gesture_recognizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/customization/gesture_recognizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/customization/gesture_recognizer" ><span class="devsite-nav-text" tooltip>Customize</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Hand landmark detection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/hand_landmarker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/hand_landmarker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/hand_landmarker" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/hand_landmarker/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/hand_landmarker/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/hand_landmarker/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/hand_landmarker/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/hand_landmarker/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/hand_landmarker/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/hand_landmarker/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/hand_landmarker/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/hand_landmarker/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/hand_landmarker/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/hand_landmarker/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/hand_landmarker/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Image embedding</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_embedder" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_embedder" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_embedder" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_embedder/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_embedder/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_embedder/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_embedder/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_embedder/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_embedder/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_embedder/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_embedder/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_embedder/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_embedder/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_embedder/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_embedder/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Face detection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_detector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_detector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_detector" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_detector/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_detector/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_detector/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_detector/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_detector/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_detector/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_detector/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_detector/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_detector/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_detector/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_detector/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_detector/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Face landmark detection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_landmarker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_landmarker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_landmarker" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_landmarker/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_landmarker/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_landmarker/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_landmarker/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_landmarker/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_landmarker/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_landmarker/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_landmarker/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_landmarker/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_landmarker/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_landmarker/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_landmarker/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Pose landmark detection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/pose_landmarker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/pose_landmarker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/pose_landmarker" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/pose_landmarker/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/pose_landmarker/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/pose_landmarker/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/pose_landmarker/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/pose_landmarker/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/pose_landmarker/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/pose_landmarker/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/pose_landmarker/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/pose_landmarker/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/pose_landmarker/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/pose_landmarker/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/pose_landmarker/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-experimental"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Face stylization</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_stylizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_stylizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_stylizer" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_stylizer/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_stylizer/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_stylizer/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_stylizer/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_stylizer/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_stylizer/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/face_stylizer/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/face_stylizer/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/face_stylizer/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/customization/face_stylizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/customization/face_stylizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/customization/face_stylizer" ><span class="devsite-nav-text" tooltip>Customize</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/holistic_landmarker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/holistic_landmarker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/holistic_landmarker" ><span class="devsite-nav-text" tooltip>Holistic landmark detection</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Text tasks</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Text classification</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_classifier" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_classifier/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_classifier/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_classifier/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_classifier/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_classifier/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_classifier/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_classifier/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_classifier/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_classifier/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_classifier/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_classifier/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_classifier/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/customization/text_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/customization/text_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/customization/text_classifier" ><span class="devsite-nav-text" tooltip>Customize</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Text embedding</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_embedder" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_embedder" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_embedder" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_embedder/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_embedder/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_embedder/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_embedder/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_embedder/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_embedder/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_embedder/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_embedder/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_embedder/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/text_embedder/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/text_embedder/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/text_embedder/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Language detection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/language_detector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/language_detector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/language_detector" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/language_detector/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/language_detector/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/language_detector/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/language_detector/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/language_detector/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/language_detector/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/text/language_detector/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/text/language_detector/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/text/language_detector/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Audio tasks</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Audio classification</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/audio/audio_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/audio/audio_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/audio/audio_classifier" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/audio/audio_classifier/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/audio/audio_classifier/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/audio/audio_classifier/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/audio/audio_classifier/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/audio/audio_classifier/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/audio/audio_classifier/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/audio/audio_classifier/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/audio/audio_classifier/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/audio/audio_classifier/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Generative AI tasks</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-experimental"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Image generation</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_generator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_generator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_generator" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/vision/image_generator/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/vision/image_generator/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/vision/image_generator/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_mediapipe_image_generation.ipynb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_mediapipe_image_generation.ipynb" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_mediapipe_image_generation.ipynb" ><span class="devsite-nav-text" tooltip>Customize</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-experimental"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>LLM Inference</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/genai/llm_inference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/genai/llm_inference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/genai/llm_inference" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/genai/llm_inference/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/genai/llm_inference/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/genai/llm_inference/android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/genai/llm_inference/web_js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/genai/llm_inference/web_js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/genai/llm_inference/web_js" ><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/genai/llm_inference/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/genai/llm_inference/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/genai/llm_inference/ios" ><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Platform setup guides</span> </div></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/setup_android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/setup_android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/setup_android" ><span class="devsite-nav-text" tooltip>Android setup</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/setup_python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/setup_python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/setup_python" ><span class="devsite-nav-text" tooltip>Python setup</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/setup_web" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/setup_web" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/setup_web" ><span class="devsite-nav-text" tooltip>Web setup</span></a></li> <li class="devsite-nav-item"><a href="/edge/mediapipe/solutions/setup_ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/mediapipe/solutions/setup_ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/mediapipe/solutions/setup_ios" ><span class="devsite-nav-text" tooltip>iOS setup</span></a></li> </ul> <ul class="devsite-nav-list" menu="Tools" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/responsible" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Responsible GenAI Toolkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Responsible GenAI Toolkit </span> </a> </li> <li class="devsite-nav-item"> <a href="https://colab.google/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Colab" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Colab </span> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/genkit" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase Genkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firebase Genkit </span> </a> </li> <li class="devsite-nav-item"> <a href="https://jax.readthedocs.io/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: JAX" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > JAX </span> </a> </li> <li class="devsite-nav-item"> <a href="https://keras.io/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Keras" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Keras </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="MediaPipe" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/edge/mediapipe/solutions/guide" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: MediaPipe Solutions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > MediaPipe Solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/mediapipe/framework" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: MediaPipe Framework" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > MediaPipe Framework </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-banner devsite-banner-announcement nocontent" background="google-blue" > <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <b>Introducing LiteRT</b>: Google's high-performance runtime for on-device AI, formerly known as TensorFlow Lite. <a class="button button-primary" href="https://developers.googleblog.com/en/tensorflow-lite-is-now-litert">Learn more</a> </div> </div> </div> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://ai.google.dev/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://ai.google.dev/edge" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google AI Edge" > Google AI Edge </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://ai.google.dev/edge/mediapipe/solutions/guide" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="" > Solutions </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Google AI Edge" product-id="5336252" bucket="documentation" context="" version="t-devsite-webserver-20241114-r00-rc02.464921008191574316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Pose landmark detection guide for Python </h1> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p> </p> <p>The MediaPipe Pose Landmarker task lets you detect landmarks of human bodies in an image or video. You can use this task to identify key body locations, analyze posture, and categorize movements. This task uses machine learning (ML) models that work with single images or video. The task outputs body pose landmarks in image coordinates and in 3-dimensional world coordinates.</p> <p>The code sample described in these instructions is available on <a href="https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/pose_landmarker/python">GitHub</a>. For more information about the capabilities, models, and configuration options of this task, see the <a href="https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker/index">Overview</a>.</p> <h2 id="code_example" data-text="Code example" tabindex="-1">Code example</h2> <p>The example code for Pose Landmarker provides a complete implementation of this task in Python for your reference. This code helps you test this task and get started on building your own pose landmarker. You can view, run, and edit the <a href="https://colab.research.google.com/github/googlesamples/mediapipe/blob/main/examples/pose_landmarker/python/%5BMediaPipe_Python_Tasks%5D_Pose_Landmarker.ipynb">Pose Landmarker example code</a> using just your web browser.</p> <p>If you are implementing the Pose Landmarker for Raspberry Pi, refer to the <a href="https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/pose_landmarker/raspberry_pi">Raspberry Pi example app</a>.</p> <h2 id="setup" data-text="Setup" tabindex="-1">Setup</h2> <p>This section describes key steps for setting up your development environment and code projects specifically to use Pose Landmarker. For general information on setting up your development environment for using MediaPipe tasks, including platform version requirements, see the <a href="/mediapipe/solutions/setup_python">Setup guide for Python</a>.</p> <aside class="experimental"> <b>Attention:</b> This MediaPipe Solutions Preview is an early release. <a href="/edge/mediapipe/solutions/about#notice">Learn more</a>. </aside> <h3 id="packages" data-text="Packages" tabindex="-1">Packages</h3> <p>The MediaPipe Pose Landmarker task requires the mediapipe PyPI package. You can install and import these dependencies with the following:</p> <pre class="prettyprint lang-bash" translate="no" dir="ltr"><code translate="no" dir="ltr">$ python -m pip install mediapipe </code></pre> <h3 id="imports" data-text="Imports" tabindex="-1">Imports</h3> <p>Import the following classes to access the Pose Landmarker task functions:</p> <pre class="prettyprint lang-python" translate="no" dir="ltr"><code translate="no" dir="ltr">import mediapipe as mp from mediapipe.tasks import python from mediapipe.tasks.python import vision </code></pre> <h3 id="model" data-text="Model" tabindex="-1">Model</h3> <p>The MediaPipe Pose Landmarker task requires a trained model that is compatible with this task. For more information on available trained models for Pose Landmarker, see the task overview <a href="https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker/index#models">Models section</a>.</p> <p>Select and download the model, and then store it in a local directory:</p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">model_path = '/absolute/path/to/pose_landmarker.task' </code></pre> <p>Use the <code translate="no" dir="ltr">BaseOptions</code> object <code translate="no" dir="ltr">model_asset_path</code> parameter to specify the path of the model to use. For a code example, see the next section.</p> <h2 id="create_the_task" data-text="Create the task" tabindex="-1">Create the task</h2> <p>The MediaPipe Pose Landmarker task uses the <code translate="no" dir="ltr">create_from_options</code> function to set up the task. The <code translate="no" dir="ltr">create_from_options</code> function accepts values for configuration options to handle. For more information, see <a href="#configuration_options">Configuration options</a>.</p> <p>The following code demonstrates how to build and configure this task.</p> <p>These samples also show the variations of the task construction for images, video files, and live stream.</p> <div> <devsite-selector> <section> <h3 id="image" data-text="Image" tabindex="-1">Image</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> import mediapipe as mp BaseOptions = mp.tasks.BaseOptions PoseLandmarker = mp.tasks.vision.PoseLandmarker PoseLandmarkerOptions = mp.tasks.vision.PoseLandmarkerOptions VisionRunningMode = mp.tasks.vision.RunningMode options = PoseLandmarkerOptions( base_options=BaseOptions(model_asset_path=model_path), running_mode=VisionRunningMode.IMAGE) with PoseLandmarker.create_from_options(options) as landmarker: # The landmarker is initialized. Use it here. # ... </pre> </section> <section> <h3 id="video" data-text="Video" tabindex="-1">Video</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> import mediapipe as mp BaseOptions = mp.tasks.BaseOptions PoseLandmarker = mp.tasks.vision.PoseLandmarker PoseLandmarkerOptions = mp.tasks.vision.PoseLandmarkerOptions VisionRunningMode = mp.tasks.vision.RunningMode # Create a pose landmarker instance with the video mode: options = PoseLandmarkerOptions( base_options=BaseOptions(model_asset_path=model_path), running_mode=VisionRunningMode.VIDEO) with PoseLandmarker.create_from_options(options) as landmarker: # The landmarker is initialized. Use it here. # ... </pre> </section> <section> <h3 id="live-stream" data-text="Live stream" tabindex="-1">Live stream</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> import mediapipe as mp BaseOptions = mp.tasks.BaseOptions PoseLandmarker = mp.tasks.vision.PoseLandmarker PoseLandmarkerOptions = mp.tasks.vision.PoseLandmarkerOptions PoseLandmarkerResult = mp.tasks.vision.PoseLandmarkerResult VisionRunningMode = mp.tasks.vision.RunningMode # Create a pose landmarker instance with the live stream mode: def print_result(result: PoseLandmarkerResult, output_image: mp.Image, timestamp_ms: int): print('pose landmarker result: {}'.format(result)) options = PoseLandmarkerOptions( base_options=BaseOptions(model_asset_path=model_path), running_mode=VisionRunningMode.LIVE_STREAM, result_callback=print_result) with PoseLandmarker.create_from_options(options) as landmarker: # The landmarker is initialized. Use it here. # ... </pre> </section> </devsite-selector> </div> <aside class="note"><strong>Note:</strong><span> If you use the video mode or live stream mode, Pose Landmarker uses tracking to avoid triggering the model on every frame, which helps reduce latency.</span></aside> <p>For a complete example of creating a Pose Landmarker for use with an image, see the <a href="https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/pose_landmarker/python">code example</a>.</p> <h3 id="configuration_options" data-text="Configuration options" tabindex="-1">Configuration options</h3> <p>This task has the following configuration options for Python applications:</p> <table> <thead> <tr> <th>Option Name</th> <th>Description</th> <th>Value Range</th> <th>Default Value</th> </tr> </thead> <tbody> <tr> <td><code translate="no" dir="ltr">running_mode</code></td> <td>Sets the running mode for the task. There are three modes:<br> <br> IMAGE: The mode for single image inputs.<br> <br> VIDEO: The mode for decoded frames of a video.<br> <br> LIVE_STREAM: The mode for a livestream of input data, such as from a camera. In this mode, resultListener must be called to set up a listener to receive results asynchronously. </td> <td>{<code translate="no" dir="ltr">IMAGE, VIDEO, LIVE_STREAM</code>}</td> <td><code translate="no" dir="ltr">IMAGE</code></td> </tr> <tr> <td><code translate="no" dir="ltr">num_poses</code></td> <td>The maximum number of poses that can be detected by the Pose Landmarker. </td> <td><code translate="no" dir="ltr">Integer > 0</code></td> <td><code translate="no" dir="ltr">1</code></td> </tr> <tr> <td><code translate="no" dir="ltr">min_pose_detection_confidence</code></td> <td>The minimum confidence score for the pose detection to be considered successful.</td> <td><code translate="no" dir="ltr">Float [0.0,1.0]</code></td> <td><code translate="no" dir="ltr">0.5</code></td> </tr> <tr> <td><code translate="no" dir="ltr">min_pose_presence_confidence</code></td> <td>The minimum confidence score of pose presence score in the pose landmark detection.</td> <td><code translate="no" dir="ltr">Float [0.0,1.0]</code></td> <td><code translate="no" dir="ltr">0.5</code></td> </tr> <tr> <td><code translate="no" dir="ltr">min_tracking_confidence</code></td> <td>The minimum confidence score for the pose tracking to be considered successful.</td> <td><code translate="no" dir="ltr">Float [0.0,1.0]</code></td> <td><code translate="no" dir="ltr">0.5</code></td> </tr> <tr> <td><code translate="no" dir="ltr">output_segmentation_masks</code></td> <td>Whether Pose Landmarker outputs a segmentation mask for the detected pose.</td> <td><code translate="no" dir="ltr">Boolean</code></td> <td><code translate="no" dir="ltr">False</code></td> </tr> <tr> <td><code translate="no" dir="ltr">result_callback</code></td> <td>Sets the result listener to receive the landmarker results asynchronously when Pose Landmarker is in the live stream mode. Can only be used when running mode is set to <code translate="no" dir="ltr">LIVE_STREAM</code></td> <td><code translate="no" dir="ltr">ResultListener<poseLandmarkerResult, Image></code></td> <td><code translate="no" dir="ltr">N/A</code></td> </tr> </tbody> </table> <h2 id="prepare_data" data-text="Prepare data" tabindex="-1">Prepare data</h2> <p>Prepare your input as an image file or a numpy array, then convert it to a <code translate="no" dir="ltr">mediapipe.Image</code> object. If your input is a video file or live stream from a webcam, you can use an external library such as <a href="https://github.com/opencv/opencv">OpenCV</a> to load your input frames as numpy arrays.</p> <div> <devsite-selector> <section> <h3 id="image_1" data-text="Image" tabindex="-1">Image</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> import mediapipe as mp # Load the input image from an image file. mp_image = mp.Image.create_from_file('/path/to/image') # Load the input image from a numpy array. mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image) </pre> </section> <section> <h3 id="video_1" data-text="Video" tabindex="-1">Video</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> import mediapipe as mp # Use OpenCV鈥檚 VideoCapture to load the input video. # Load the frame rate of the video using OpenCV鈥檚 CV_CAP_PROP_FPS # You鈥檒l need it to calculate the timestamp for each frame. # Loop through each frame in the video using VideoCapture#read() # Convert the frame received from OpenCV to a MediaPipe鈥檚 Image object. mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_frame_from_opencv) </pre> </section> <section> <h3 id="live-stream_1" data-text="Live stream" tabindex="-1">Live stream</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> import mediapipe as mp # Use OpenCV鈥檚 VideoCapture to start capturing from the webcam. # Create a loop to read the latest frame from the camera using VideoCapture#read() # Convert the frame received from OpenCV to a MediaPipe鈥檚 Image object. mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_frame_from_opencv) </pre> </section> </devsite-selector> </div> <h2 id="run_the_task" data-text="Run the task" tabindex="-1">Run the task</h2> <p>The Pose Landmarker uses the <code translate="no" dir="ltr">detect</code>, <code translate="no" dir="ltr">detect_for_video</code> and <code translate="no" dir="ltr">detect_async</code> functions to trigger inferences. For pose landmarking, this involves preprocessing input data and detecting poses in the image.</p> <p>The following code demonstrates how to execute the processing with the task model.</p> <div> <devsite-selector> <section> <h3 id="image_2" data-text="Image" tabindex="-1">Image</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> # Perform pose landmarking on the provided single image. # The pose landmarker must be created with the image mode. pose_landmarker_result = landmarker.detect(mp_image) </pre> </section> <section> <h3 id="video_2" data-text="Video" tabindex="-1">Video</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> # Perform pose landmarking on the provided single image. # The pose landmarker must be created with the video mode. pose_landmarker_result = landmarker.detect_for_video(mp_image, frame_timestamp_ms) </pre> </section> <section> <h3 id="live-stream_2" data-text="Live stream" tabindex="-1">Live stream</h3> <pre class="prettyprint lang-py" translate="no" dir="ltr"> # Send live image data to perform pose landmarking. # The results are accessible via the `result_callback` provided in # the `PoseLandmarkerOptions` object. # The pose landmarker must be created with the live stream mode. landmarker.detect_async(mp_image, frame_timestamp_ms) </pre> </section> </devsite-selector> </div> <p>Note the following:</p> <ul> <li>When running in the video mode or the live stream mode, also provide the Pose Landmarker task the timestamp of the input frame.</li> <li>When running in the image or the video model, the Pose Landmarker task blocks the current thread until it finishes processing the input image or frame.</li> <li>When running in the live stream mode, the Pose Landmarker task returns immediately and doesn鈥檛 block the current thread. It will invoke the result listener with the detection result every time it finishes processing an input frame. If the detection function is called when the Pose Landmarker task is busy processing another frame, the task will ignore the new input frame.</li> </ul> <p>For a complete example of running an Pose Landmarker on an image, see the <a href="https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/pose_landmarker/python">code example</a> for details.</p> <h2 id="handle_and_display_results" data-text="Handle and display results" tabindex="-1">Handle and display results</h2> <p>The Pose Landmarker returns a <code translate="no" dir="ltr">poseLandmarkerResult</code> object for each detection run. The result object contains coordinates for each pose landmark.</p> <p>The following shows an example of the output data from this task:</p> <pre class="devsite-click-to-copy" translate="no" dir="ltr"><code translate="no" dir="ltr">PoseLandmarkerResult: Landmarks: Landmark #0: x : 0.638852 y : 0.671197 z : 0.129959 visibility : 0.9999997615814209 presence : 0.9999984502792358 Landmark #1: x : 0.634599 y : 0.536441 z : -0.06984 visibility : 0.999909 presence : 0.999958 ... (33 landmarks per pose) WorldLandmarks: Landmark #0: x : 0.067485 y : 0.031084 z : 0.055223 visibility : 0.9999997615814209 presence : 0.9999984502792358 Landmark #1: x : 0.063209 y : -0.00382 z : 0.020920 visibility : 0.999976 presence : 0.999998 ... (33 world landmarks per pose) SegmentationMasks: ... (pictured below) </code></pre> <p>The output contains both normalized coordinates (<code translate="no" dir="ltr">Landmarks</code>) and world coordinates (<code translate="no" dir="ltr">WorldLandmarks</code>) for each landmark.</p> <p>The output contains the following normalized coordinates (<code translate="no" dir="ltr">Landmarks</code>):</p> <ul> <li><p><code translate="no" dir="ltr">x</code> and <code translate="no" dir="ltr">y</code>: Landmark coordinates normalized between 0.0 and 1.0 by the image width (<code translate="no" dir="ltr">x</code>) and height (<code translate="no" dir="ltr">y</code>).</p></li> <li><p><code translate="no" dir="ltr">z</code>: The landmark depth, with the depth at the midpoint of the hips as the origin. The smaller the value, the closer the landmark is to the camera. The magnitude of z uses roughly the same scale as <code translate="no" dir="ltr">x</code>.</p></li> <li><p><code translate="no" dir="ltr">visibility</code>: The likelihood of the landmark being visible within the image.</p></li> </ul> <p>The output contains the following world coordinates (<code translate="no" dir="ltr">WorldLandmarks</code>):</p> <ul> <li><p><code translate="no" dir="ltr">x</code>, <code translate="no" dir="ltr">y</code>, and <code translate="no" dir="ltr">z</code>: Real-world 3-dimensional coordinates in meters, with the midpoint of the hips as the origin.</p></li> <li><p><code translate="no" dir="ltr">visibility</code>: The likelihood of the landmark being visible within the image.</p></li> </ul> <p>The following image shows a visualization of the task output:</p> <p><img src="/static/mediapipe/images/solutions/examples/pose_detector.png" alt width="400px"></p> <p>The optional segmentation mask represents the likelihood of each pixel belonging to a detected person. The following image is a segmentation mask of the task output:</p> <p><img src="/static/mediapipe/images/solutions/pose_detector_mask.png" alt width="400px"></p> <p>The Pose Landmarker example code demonstrates how to display the results returned from the task, see the <a href="https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/pose_landmarker/python">code example</a> for details.</p> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Google AI Edge" product-id="5336252" bucket="documentation" context="" version="t-devsite-webserver-20241114-r00-rc02.464921008191574316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-08-06 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Google AI Edge" product-id="5336252" bucket="documentation" context="" version="t-devsite-webserver-20241114-r00-rc02.464921008191574316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> </ul> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [], "ga4p": [], "gtm": [{"id": "GTM-TC2MQKS8", "purpose": 0}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Google AI Edge", "signedIn": "False", "tenant": "googledevai", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="DBaXK6a+dXlZFlxO+xURK8Ynq19hGn"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/js/app_loader.js', '[59,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai","https://googledevai-dot-devsite-v2-prod-3p.appspot.com",null,null,["/_pwa/googledevai/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/favicon-new.png","/_static/googledevai/images/lockup-new.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyCNm9YxQumEXwGJgTDjxoxXK6m1F-9720Q","AIzaSyCc76DZePGtoyUjqKrLdsMGk_ry7sljLbY","ai.google.dev","AIzaSyB9bqgQ2t11WJsOX8qNsCQ6U-w91mmqF-I","AIzaSyAdYnStPdzjcJJtQ0mvIaeaMKj7_t6J_Fg",null,null,null,["Cloud__enable_cloud_shell","EngEduTelemetry__enable_engedu_telemetry","Profiles__enable_profile_collections","Profiles__enable_dashboard_curated_recommendations","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloudx_ping","MiscFeatureFlags__enable_variable_operator","Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_shell_fte_user_flow","Profiles__enable_complete_playlist_endpoint","DevPro__enable_cloud_innovators_plus","Profiles__enable_awarding_url","Cloud__enable_legacy_calculator_redirect","TpcFeatures__enable_mirror_tenant_redirects","Search__enable_suggestions_from_borg","MiscFeatureFlags__enable_view_transitions","CloudShell__cloud_shell_button","Experiments__reqs_query_experiments","Profiles__enable_completecodelab_endpoint","Search__enable_ai_eligibility_checks","Concierge__enable_pushui","MiscFeatureFlags__developers_footer_dark_image","MiscFeatureFlags__developers_footer_image","Search__enable_page_map","Profiles__enable_public_developer_profiles","Profiles__enable_recognition_badges","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__enable_firebase_utm","Profiles__enable_developer_profiles_callout","Cloud__enable_llm_concierge_chat","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__emergency_css","Cloud__enable_free_trial_server_call","Profiles__enable_page_saving","BookNav__enable_tenant_cache_key","DevPro__enable_developer_subscriptions","Cloud__enable_cloud_dlp_service","TpcFeatures__enable_required_headers","OnSwitch__enable","MiscFeatureFlags__enable_explain_this_code","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__enable_project_variables","Analytics__enable_clearcut_logging","Profiles__enable_release_notes_notifications"],null,null,"AIzaSyA58TaKli1DculwmAmbpzLVGuWc8eCQgQc","https://developerscontentserving-pa.googleapis.com","AIzaSyDWBU60w0P9hEkr29kkksYs8Z7gvZ8u_wc","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[59,"googledevai","Google AI for Developers","ai.google.dev",null,"googledevai-dot-devsite-v2-prod-3p.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],null,null,null,null,[1],[1,1,null,1,1]],null,[73,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,1,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],[1,1]],[[null,null,null,null,null,["GTM-TC2MQKS8"],null,null,null,null,null,[["GTM-TC2MQKS8",1]],1]],null,4]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>