
MediaPipe Holistic to gotowy potok (pipeline) percepcji z otwartoźródłowego frameworka Google MediaPipe, który w jednym przebiegu łączy trzy modele: estymację pozy ciała (33 punkty), śledzenie obu dłoni (po 21 punktów) oraz siatkę twarzy (468 punktów). Daje to spójną topologię 543 landmarków dla całej sylwetki człowieka, wyznaczanych w czasie rzeczywistym na urządzeniu.
Potok jest wielostopniowy: najpierw model pozy lokalizuje sylwetkę i obszary zainteresowania (twarz, dłonie), następnie modele dokładnie wyznaczają punkty charakterystyczne dla każdego regionu. Rozwiązanie działa na CPU i GPU, a według Google osiąga zbliżoną do czasu rzeczywistego wydajność rzędu 18–20 klatek na sekundę na średniej klasy smartfonach.
MediaPipe Holistic udostępniono z interfejsami dla Pythona, JavaScriptu (web), Androida oraz iOS, na licencji Apache 2.0. Znajduje zastosowanie m.in. w rozpoznawaniu języka migowego, analizie gestów, aplikacjach fitness i rozszerzonej rzeczywistości. Rozwiązanie należy do tzw. MediaPipe Legacy Solutions — Google zakończyło ich wsparcie 1 marca 2023 roku, wskazując jako następcę zestaw MediaPipe Tasks.
Perception Stack obejmuje warstwy oprogramowania przetwarzające dane z kamer, LiDAR-ów, IMU, mikrofonów i innych sensorów w celu rozpoznania otoczenia, lokalizacji, detekcji obiektów i interpretacji sceny.
Biblioteka programistyczna udostępniająca API do budowy, wdrażania lub wykonywania modeli uczenia maszynowego w aplikacjach.
Computer Vision oznacza rolę oprogramowania odpowiedzialnego za przetwarzanie obrazu, analizę wideo, detekcję obiektów, segmentację, śledzenie i inne zadania oparte na danych wizualnych.
Perception oznacza rolę oprogramowania przetwarzającego dane z kamer, LiDAR-ów, IMU i innych sensorów w celu wykrywania obiektów, rozpoznawania sceny, lokalizacji, mapowania i interpretacji środowiska.
Multi-object tracking (MOT) — przypisywanie i śledzenie tożsamości obiektów między kolejnymi klatkami danych sensorycznych.
Wykorzystywane w pipeline'ach rozpoznawania języka migowego, analizie gestów, aplikacjach fitness oraz rozszerzonej rzeczywistości (AR).
C++ to język programowania szeroko wykorzystywany w robotyce, systemach embedded, middleware, sterowaniu i przetwarzaniu danych, szczególnie tam, gdzie istotna jest wydajność oraz bliska integracja ze sprzętem.
Python to wysokopoziomowy język programowania szeroko stosowany w robotyce, AI, computer vision, automatyzacji, testach i szybkiej integracji komponentów sprzętowych oraz software'owych.
JavaScript to język programowania powszechnie wykorzystywany w aplikacjach webowych, panelach administracyjnych, dashboardach, narzędziach frontendowych i lekkich warstwach integracyjnych.
Mobilny system operacyjny oparty na jądrze Linux, rozwijany przez Google.
Mobilny system operacyjny firmy Apple dla urządzeń iPhone i iPad.
Rodzina otwartych systemów operacyjnych opartych na jądrze Linux, powszechna na serwerach, w chmurze i w robotyce.
System operacyjny firmy Apple dla komputerów Mac.
Rodzina systemów operacyjnych firmy Microsoft dla komputerów osobistych i serwerów.
Wymaga strumienia obrazu z kamery. Google nie publikuje formalnych minimalnych wymagań sprzętowych; rozwiązanie działa w czasie zbliżonym do rzeczywistego (18–20 FPS) na średniej klasy smartfonach, a akceleracja GPU jest opcjonalna.
Menedżer pakietów Pythona. Pakiet onnxruntime dystrybuowany jest przez PyPI.
Menedżer pakietów dla ekosystemu JavaScript/Node.js. Pakiety onnxruntime-web i onnxruntime-node dystrybuowane są przez npm.
64-bitowa architektura procesorów zgodna z zestawem instrukcji x86, dominująca w komputerach i serwerach.
64-bitowa architektura procesorów ARM, powszechna w urządzeniach mobilnych, wbudowanych i coraz częściej w serwerach.
WebAssembly (WASM) – binarny format instrukcji dla stosu wirtualnego, umożliwiający uruchamianie kodu w przeglądarce internetowej lub przez runtime WASM (Wasmtime, WASMer, Node.js) na dowolnej platformie (x86_64, ARM64, RISC-V) bez rekompilacji. Nie jest architekturą CPU – jest przenośnym celem kompilacji (compilation target) dla C, C++, Rust, Go, Python. Rosnące znaczenie w ekosystemie robotycznym: webowe interfejsy operatorskie dla robotów (RViz2 web przez ros2-wasm lub Foxglove), algorytmy robotyczne uruchamiane w przeglądarce dla demonstracji i edukacji, WASM jako runtime dla pluginów w systemach edge (bezpieczna izolacja kodu pluginów), przetwarzanie danych sensorycznych w przeglądarce (SLAM visualization, point cloud rendering przez WebGL + WASM). ros2-wasm: projekt eksperymentalny portujący rclcpp na WASM. Robotics Simulator w przeglądarce: symulatory 3D oparte na Three.js/WebGL + WASM dla planowania tras i demonstracji. WASM WASI (WebAssembly System Interface): rozszerzenie umożliwiające uruchamianie WASM poza przeglądarką jako przenośny runtime na serwerach edge i IoT – potencjalnie interesujące dla dystrybucji przenośnych komponentów robotycznych. Specyficzny przypadek użycia – nie zastępuje natywnych architektur, lecz uzupełnia je w scenariuszach webowych i cross-platform.
Klasa miękkiego czasu rzeczywistego 20–100 ms – deadline'y wymagane statystycznie, sporadyczne przekroczenia akceptowalne. Realizowany na standardowym Linux z priorytetem SCHED_FIFO. Komunikacja przez Ethernet GbE, DDS/RTPS, ROS 2 topics. Zastosowania: nawigacja AMR (Nav2: 20–50 Hz), high-level sterowanie humanoidów (Unitree SDK2: 50 Hz), planowanie trajektorii (MoveIt 2 servo), integracja sensorów (LiDAR SLAM: 10–20 Hz). Wystarczający dla większości algorytmów nawigacyjnych i SLAM.
Wdrożenie lokalne na urządzeniu brzegowym lub wbudowanym, bez zależności od chmury.
Wdrożenie na urządzeniach mobilnych (iOS, Android).
Wykonywanie w przeglądarce internetowej (np. przez WebAssembly / WebGPU).
Rodzina licencji: Licencja permisywna
Permissive licencja open source opracowana przez Apache Software Foundation. Zawiera jawne udzielenie praw patentowych przez kontrybutorów (patent grant) oraz klauzulę retaliation (utrata licencji przy pozwie patentowym). Wymaga zachowania tekstu licencji, NOTICE file i informacji o zmianach w modyfikowanych plikach.
Oficjalna licencja Open Robotics dla rdzenia ROS 2 i większości pakietów tier-1. Standard de facto dla oprogramowania robotycznego open source. Klauzula patentowa chroni użytkowników przed pozwami ze strony kontrybutorów – preferowana nad MIT w projektach korporacyjnych. Kompatybilna z GPL v3 (ale nie GPL v2).
Zaliczone do MediaPipe Legacy Solutions; Google zakończyło wsparcie i wskazało MediaPipe Tasks jako następcę. Kod pozostaje dostępny „as-is”.
Premiera rozwiązania łączącego pozę, dłonie i twarz w jednym potoku (543 landmarki) z działaniem na urządzeniu.