Skip to content

Install MediaPipe 1.0.1 for Pose Estimation AI

Deploy MediaPipe 1.0.1 Pose Landmarker for pose estimation AI: system specs, pip install, model download, verify steps, and real install fixes.

6 min readIntermediate

By the end of this page you’ll have MediaPipe 1.0.1 installed, a Pose Landmarker .task model on disk, and a one-shot script that prints 33 body landmarks. That’s a working pose estimation AI stack on your machine – not a slide deck.

Ship Tasks Pose Landmarker, not leftover tutorial code. Normalized image coords plus world coords in meters; the stack sits on BlazePose research (arXiv:2006.10204). Legacy mp.solutions.pose still clogs search results, yet Legacy Solutions support ended March 1, 2023 (Solutions guide). Use the Tasks API.

System requirements for pose estimation AI

Official Python setup guide baseline (pin your expectations to MediaPipe 1.0.1 as of Aug 2026):

  • OS: Windows, macOS, or Linux desktop; Raspberry OS 64-bit for IoT
  • Python: 3.9 or later
  • pip: 20.3+
  • Arch: a published 1.0.1 wheel – manylinux_2_28 x86_64/aarch64, macOS 11+ arm64, Windows amd64/arm64 per PyPI files. 32-bit and musl/alpine images usually get No matching distribution

Grab opencv-python (or headless) when you feed webcam or video frames. MediaPipe does not own capture.

How much machine is “enough”? Docs never publish a neat RAM sticker. Lite + a still image is light; masks, multi-pose, or a busy LIVE_STREAM loop are where laptops start swapping. If you’re unsure, start lite, masks off, num_poses=1.

Official download sources

1.0.1 landed on PyPI Aug 14, 2026 – install from pypi.org/project/mediapipe, not a random wheel mirror.

Repo and tags: github.com/google-ai-edge/mediapipe (v1.0.0 tag Jul 28, 2026). Pose Landmarker overview lives under developers.google.com/edge/mediapipe.

Model bundles are separate. The pip wheel does not ship .task files – you download lite/full/heavy yourself:

# lite - fastest default for laptops
wget -O pose_landmarker_lite.task 
 https://storage.googleapis.com/mediapipe-models/pose_landmarker/pose_landmarker_lite/float16/1/pose_landmarker_lite.task

# full
# .../pose_landmarker_full/float16/1/pose_landmarker_full.task

# heavy - highest quality, slowest
# .../pose_landmarker_heavy/float16/1/pose_landmarker_heavy.task

PowerShell: Invoke-WebRequest -OutFile pose_landmarker_lite.task -Uri <url>.

Install MediaPipe 1.0.1 step by step

Venv first. Keeps system Python boring and recoverable.

python3 -m venv .venv-mp
# Windows: py -3.12 -m venv .venv-mp
source .venv-mp/bin/activate # Windows: .venv-mpScriptsactivate
python -m pip install --upgrade pip
python -m pip install mediapipe==1.0.1 opencv-python

Confirm the pin:

python -c "import mediapipe as mp; print(mp.__version__)"
# expect 1.0.1

First-time configuration (minimum viable)

Put the lite model beside the script (absolute path in services):

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

model_path = "pose_landmarker_lite.task"

base_options = python.BaseOptions(model_asset_path=model_path)
options = vision.PoseLandmarkerOptions(
 base_options=base_options,
 running_mode=vision.RunningMode.IMAGE,
 num_poses=1,
 min_pose_detection_confidence=0.5,
 min_pose_presence_confidence=0.5,
 min_tracking_confidence=0.5,
 output_segmentation_masks=False,
)
landmarker = vision.PoseLandmarker.create_from_options(options)

image = mp.Image.create_from_file("person.jpg") # RGB still
result = landmarker.detect(image)
if result.pose_landmarks:
 print(len(result.pose_landmarks[0]), "landmarks") # 33
 nose = result.pose_landmarks[0][0]
 print(nose.x, nose.y, nose.z, nose.visibility)
landmarker.close()

Those defaults match the Python Pose Landmarker guide. Masks on only when you need the person mask – memory and latency jump fast.

Webcam loops: RunningMode.VIDEO or LIVE_STREAM with monotonically increasing frame_timestamp_ms. IMAGE-on-a-stream “works,” then feels like slow motion because tracking assumptions never engage.

Verify the install works

  1. python -c "import mediapipe as mp; print(mp.__version__)"1.0.1
  2. python -c "from mediapipe.tasks.python import vision; print(vision.PoseLandmarker)" → class prints, no ImportError
  3. Run the snippet on a full-body photo → 33 landmarks, nose visibility usually high
  4. Optional: mediapipe-samples Colab if you want a browser check before fighting local cameras

Step 2 fails while step 1 works? Wrong venv or a half-install. Delete the env and recreate – don’t chase path hacks first.

Ever notice how “it installed” and “it runs on my camera at 30 FPS” are two different projects? The gap is almost always the model file path or the running mode, not the pip line.

Common install errors and fixes

Symptom Likely cause Fix
No matching distribution found for mediapipe Unsupported platform/arch or pip tied to wrong Python 64-bit CPython 3.9+; python -m pip inside the venv; skip alpine/32-bit unless you build wheels
ImportError: DLL load failed (Windows) Missing VC++ runtime Install current Microsoft Visual C++ Redistributable (x64), retry import
model_asset_path / file not found at create_from_options .task missing or relative path wrong wget lite/full/heavy; pass an absolute path
Video path “slow-mo” or empty results Wrong mode or bad timestamps VIDEO + real ms timestamps; LIVE_STREAM needs result_callback; don’t queue detect calls while busy

First call after create can sit a beat while the bundle maps. Long Linux loops that never close() the landmarker? Memory creeps. Idle → close. Masks off unless required.

Upgrade, migrate, uninstall

Upgrade:

python -m pip install -U mediapipe==1.0.1

Still on mp.solutions.pose? Rewrite to PoseLandmarker + a .task file. model_complexity is gone – you pick lite/full/heavy on disk; confidence knobs were renamed.

Uninstall / cleanup:

python -m pip uninstall -y mediapipe opencv-python
deactivate
rm -rf .venv-mp
rm -f pose_landmarker_*.task

PyInstaller: --add-data for the .task plus --collect-all mediapipe (: on Unix, ; on Windows). Model files are not auto-discovered – the Python setup Packaging notes call this out for a reason.

FAQ

Which model should I download first?

pose_landmarker_lite.task. Full or heavy only after lite quality fails on your hardware.

Do I need GPU drivers for MediaPipe Pose on desktop Python?

Not for a first deploy. Get IMAGE mode printing 33 points on CPU first. If a later build exposes a GPU delegate on your OS, measure end-to-end FPS (capture + infer + draw) – don’t assume drivers alone fix a slow loop.

Is mp.solutions.pose still OK in 2026?

Old notebooks may still import it. That API surface is legacy end-of-support territory. New code should call Tasks Vision PoseLandmarker with an explicit .task bundle so you stay on the maintained options and model cards. Migrating is mostly: download a bundle, map confidences, and pick IMAGE vs VIDEO vs LIVE_STREAM on purpose.

Next action: create the venv, pip install mediapipe==1.0.1, wget the lite .task, run the IMAGE-mode snippet on one photo. When 33 landmarks print, wire OpenCV capture with VIDEO mode – you’re deployed.