$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Badanie to zostało przeprowadzone jako seria przypadków, wykorzystując reprezentatywne wyniki od czwórki dzieci do wykazania wykonalności protokołu, a nie wnioskowania statystycznego. W badaniu uczestniczyło dwoje dzieci rozwijających się typowo (chłopiec 4 lata, 100 cm, 14,5 kg; chłopiec 10 lat, 144 cm, 40,8 kg) oraz dwoje dzieci z porażeniem mózgowym. W badaniu uczestniczyło Gross Motor Function Classification System III (dziewczynka 4 lata, 93 cm, 13,8 kg; chłopiec 4 lata, 102 cm, 16,7 kg). Rodzice/opiekunowie prawni oraz dzieci wyrazili świadomą zgodę/zgodę przed udziałem, zgodnie z naszym protokołem badawczym zatwierdzonym przez Instytucjonalną Radę Recenzyjną (IRB-FY2024-33).
UWAGA: Chociaż protokół ten opisuje procedury zarówno dla systemów 3D opartych na markerach, jak i 2D bezmarkerowych systemów motion capture, głównym celem badania jest wdrożenie podejścia 2D bez markerów, które stanowi podstawowe kliniczne i praktyczne zastosowanie tej pracy. Główna implementacja obecnego protokołu wymaga systemu rejestracji ruchu opartego na markerach (minimum 8 kamer) do akwizycji kinematycznych 3D oraz jednej kamery RGB (minimalna rozdzielczość 1920 × 1080 pikseli, 50 Hz) ustawionej prostopadle do płaszczyzny strzałkowej do dwuwymiarowego rejestrowania bez markerów. Metoda ta nadaje się do kontrolowanych środowisk klinicznych lub laboratoryjnych, przy odpowiednim oświetleniu (> 500 luksów) i minimalnym zakłóceniu tła. Aby poprawić odporność w nieidealnych środowiskach, zestaw narzędzi vailá integruje narzędzia do wstępnego przetwarzania (np. maskowanie drawboxa, kadrowanie/zmianę rozmiaru wideo), które pozwalają użytkownikom izolować uczestnika od rozpraszaczy w tle lub dostosować nieoptymalne kadrowanie kamery. Kluczowe ograniczenia to mniejsza dokładność dla podejścia z jedną kamerą i bez markerów dla dzieci wykazujących znaczące ruchy poza płaszczyzną, ponieważ to podejście nie jest w stanie uchwycić informacji o głębokości lub ruchach poza polem widzenia kamery. Użytkownicy powinni upewnić się, że uczestnicy pozostają w określonej objętości przechwytu i utrzymują wyrównanie płaszczyzny strzałkowej podczas wykonywania zadania, aby zoptymalizować wydajność śledzenia bez markerów.
1. Testy wstępne
- Włącz i rozgrzej system kamery do rejestrowania ruchu na podczerwień oraz kamerę wideo. System rejestrowania ruchu w podczerwieni wymaga około 30-60 minut rozgrzewania, aby osiągnąć stabilizację termiczną przed kalibracją i zbieraniem danych. Zweryfikowaj częstotliwość próbkowania na 100Hz (kamery na podczerwień dla systemów markerowych) i 50Hz (kamera wideo dla systemu bez markerów).
- Usuń i/lub zakryj obiekty odbijające z objętości rejestrującej.
2. Rozmieszczenie kamery
- System oparty na markerach (system kamery 3D)
- Kamery pozycjonują około 1,5-2,5 m od centrum obszaru ruchu, zamontowane na wysokości od 0,5 do 2,5 m. Upewnij się, że kamery są równomiernie rozmieszczone wokół objętości rejestracji, aby zoptymalizować widoczność markerów i zminimalizować zasłonę podczas zadania typu siedząc-to-stand. Alternatywne podnoszenia pozycji kamery, aby poprawić dokładność triangulacji i zmniejszyć zakłócenia w linii widzenia.
- Każdy punkt w objętości docelowej (gdzie dziecko wykona zadanie) musi być widoczny przez co najmniej dwie kamery przez cały czas, zgodnie ze standardowymi zaleceniami dotyczącymi optymalnego przechwytywania danych 3D. Zdefiniuj objętość przechwytu na podstawie antropometrii uczestników pediatrycznych oraz ocenianego zadania.
UWAGA: Przestrzeń robocza była wyśrodkowana na wysokości około 0,80 m nad podłogą.
- Wykorzystaj narzędzia oprogramowania opartego na markerach, aby dopracować trzy główne ustawienia optyczne (zoom, przysłona, ostrość), aby zapewnić niskie rezydualności kalibracji i wysoką spójność śledzenia markerów we wszystkich próbach.
- System bez markerów (kamera 2D)
- Umieść kamerę boczną w odległości 3,0 m od uczestnika (lub bliżej, jeśli to możliwe, pod warunkiem, że całe ciało obiektu jest widoczne przez cały czas trwania zadania, od siedzenia do stania), wycentrowane na wysokości miednicy, gdy uczestnik stoi, prostopadle do płaszczyzny strzałkowej.
- Wypoziomuj oś optyczną (bez rolowania) i wyrównaj linię środkową obrazu z centralnym obszarem stawu biodrowego.
- Konfiguruj kamerę z stałymi parametrami obrazowania dla wszystkich nagrań.
- Ustaw region akwizycji na obszar zainteresowania 1920 × 1200 px, aby zdefiniować efektywną rozdzielczość. Używaj obiektywu ogniskowego 20 mm i utrzymuj stałą przysłonę (wystarczający kontrast między środowiskiem a uczestnikiem) przez cały eksperyment.
- Ustaw liczbę klatek na 50 Hz i ustaw czas migawki na 5 ms. Zastosuj następujące ustawienia sprzętowe i nie modyfikuj ich podczas zbierania danych: wzmocnienie 9,998, gamma 0,4, poziom czerni 0, nasycenie 1.
- Wyłącz wszystkie automatyczne regulacje ekspozycji i balansu bieli, aby zapobiec dryfowi czasowemu w wyglądzie obrazu.
UWAGA: Aby dostosować ostrość, można użyć znaku z krótką frazą napisaną czcionką Calibri, pogrubioną formą, rozmiar 48, umieszczoną tam, gdzie uczestnik wykona zadanie. W polu widzenia aparatu litery powinny być ostre, bez widocznego rozmycia.
- Przy użyciu dowolnego obiektywu o zauważalnych zniekształceniach przygotuj Charuco/Checkerboard18,19 do kalibracji/odkształcenia (opcjonalnie dla ściśle strzałkowych, stacjonarnych zadań).
UWAGA: Zarówno systemy kamer wideo oparte na markerach, jak i bezmarkerowe użyte są na Rysunku 1.

Rysunek 1: Zbliżenie dwóch systemów kamer użytych w tym badaniu. Zastosowano kamerę podczerwieni systemu 3D (po lewej), w której system stanowiło 12 kamer do podejścia opartego na markerach, a jedna kamera wideo (po prawej) do podejścia bez markerów. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
3. Synchronizacja
UWAGA: Ten krok jest potrzebny tylko przy jednoczesnym korzystaniu z różnych systemów. Synchronizacja między systemami nie jest konieczna, gdy używa się tylko jednego systemu kinematycznego (2D lub 3D).
- Podłącz LockLab (lub równoważną jednostkę sterującą/synchronizacyjną), aby wysłać wyzwalacz tranzystor-tranzystor logiczny (TTL) do obu systemów na początku każdego testu.
- Jeśli wyzwalacze sprzętowe są niedostępne, użyj lampy lampowej LED (preferowa) lub dźwiękowego klaśnięcia zarejestrowanego przez oba systemy do późniejszego wyrównania.
4. Kalibracja objętości rejestrowania (system oparty na markerach)
- Wizualnie sprawdź pole widzenia kamer (zarówno kamer na podczerwień, jak i wideo), aby usunąć niepotrzebne obiekty z każdego widoku. W oprogramowaniu systemu opartego na markerach maskuje się obiekty odbijające, których nie można było usunąć z pola widzenia kamery (np. inne kamery).
- Wykonaj kalibrację różdżki w miejscu, gdzie zadanie zostanie wykonane. Przesuwaj różdżkę przez cały objętość przechwytu, aby mieć pewność, że cała przestrzeń jest pokryta. Akceptować kalibrację tylko wtedy, gdy dokładność przestrzenna ≤ 1 mm (średnia reszta).
UWAGA: Sprawdź, czy co najmniej trzy kamery jednocześnie oglądają różdżkę kalibracyjną podczas tego procesu. Przesuwaj różdżkę przez objętość przechwytywania z prędkością zbliżoną do ruchu oczekiwanego w zadaniu eksperymentalnym: W zadaniach o dużej prędkości poruszaj różdżką szybko; Przy wolniejszych ruchach machaj różdżką wolniej. Po zakończeniu kalibracji sprawdź wskaźniki oprogramowania pod kątem kamer, które nie uchwyciły wystarczającej liczby zdjęć różdżki, i wykonaj dodatkowe ukierunkowane ruchy różdżką w polu widzenia tych kamer przed zakończeniem kalibracji. Błędy pozostałości po kalibracji różdżki zwykle wynoszą od 0,3 do 0,8 mm, gdy przejście różdżki jest płynne, objętość przechwytu jest równomiernie oświetlona, a wszystkie aparaty mają niezakłócony widok.
- Ustaw początek objętości, umieszczając rurkę kalibracyjną w wyznaczonym miejscu początkowym w wyznaczonym obszarze testowym. Zdefiniuj planinę podłogi zgodnie z instrukcjami producenta.
5. Umieszczanie markerów (system oparty na markerach)
- Umieść markery retrorefleksyjne zgodnie z modelem Plug-in Gait 20,21,22 (Rysunek 2) przez wykwalifikowanego egzaminatora.
- Sprawdź widoczność obustronnych markerów bioder, kolan i tułowia podczas krótkiego ruchu testowego przed zbieraniem statycznego testu (wymaganego w systemach opartych na markerach 3D).

Rysunek 2: Model chodu typu plug-in dostosowany do niniejszego badania. Standardowy zestaw markerów został zastosowany do określenia kończyn dolnych, miednicy, tułowia i segmentów głowy. Markery kończyn górnych zostały usunięte, aby skupić się wyłącznie na kinematyce dolnej części ciała i tułowia. Ta adaptacja zachowuje integralność oryginalnego modelu Plug-in Gait pełnego ciała, wykluczając ruch ramion z analizy. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
6. Przewodniczący i środowisko
- Użyj krzesła bez podłokietników i dostosuj wysokość siedziska tak, aby kąt bioder i kolan wynosił ~90°, z stopami płasko na podłodze. Zapisz wysokość miejsca (cm) dla każdego uczestnika.
- Zapewnienie jednolitego oświetlenia; Unikaj podświetlenia i zasłon w widoku strzałkowym. Zadbaj o jednolite, kontrastowe tło.
7. Szkolenie uczestników i bezpieczeństwo
- Potwierdzaj, że pliki nagrań nie zawierają żadnych identyfikowalnych informacji (jedynie nieidentyfikowalne kody alfanumeryczne dla każdego uczestnika).
- W przypadku prób typu sit-to-stand upewnij się, że uczestnicy znają właściwe instrukcje i procedury.
- Instruuj uczestników rozwijających się typowo (TD), aby trzymali ręce na biodrach.
- Dla dzieci z porażeniem mózgowym (GMFCS III) zapewnij wsparcie manualne w razie potrzeby, aby osiągnąć pionową postawę bez kompromisów w bezpieczeństwie.
UWAGA: Chociaż pacjenci pediatryczni mogą wymagać wsparcia manualnego, aby zapewnić bezpieczeństwo i wykonanie zadań, należy zadbać o minimalizację zatkania segmentów ciała lub markerów, ponieważ może to obniżyć jakość danych.
- Ruch zawołaj werbalnie ("w górę") i pozwól na samodzielnie wybraną komfortową prędkość podczas prób siedzącej-stojącej.
8. Pozyskiwanie prób
- Przed uchwyceniem prób dynamicznych wykonaj statyczny test kalibracyjny, w którym uczestnik stoi w pozycji neutralnej z nogami na szerokość ramion i ramionami pod kątem 90° abdukcji.
- Upewnij się, że wszystkie markery są widoczne dla co najmniej dwóch kamer; Sprawdź w oprogramowaniu do akwizycji systemu opartego na markerach, że ≥ 95% markerów jest wykrywanych we wszystkich kamerach. Rekord 2-3 sekund. Jedna klatka z perspektywą 3D musi mieć wszystkie znaczniki.
- W oprogramowaniu systemu opartym na markerach zastosuj statyczny model Plug-in Gait, aby zdefiniować centra stawów i układy współrzędnych segmentów. Zweryfikować prawidłowe dopasowanie modelu, analizując wizualizację szkieletu 3D i potwierdzając anatomicznie wiarygodne położenie centrum stawów.
UWAGA: Ten statyczny test dostarcza parametrów modelu biomechanicznego wymaganych do dalszego przetwarzania dynamicznego 3D. W tym etapie należy wprowadzić antropometryczne miary uczestnika (np. wagę, wzrost, długość nóg itp.) do oprogramowania systemu opartego na markerach. Gdy podczas badania statycznego potrzebne jest wsparcie ręczne dla pacjentów pediatrycznych, należy zachować ostrożność, aby uniknąć okluzji markerów, która może zaburzyć jakość danych.
- Rekord trzech prób z siedzenia na stojąco,23 na uczestnika. Okres odpoczynku między próbami może być dostosowany do potrzeb uczestnika, ponieważ nie jest to zadanie wymagające fizycznie.
- Stosuj ustandaryzowaną konwencję nazewnictwa plików, obejmującą grupę (np. TD, CP), alfanumeryczne identyfikatory uczestnika oraz numer próby.
- W oprogramowaniu systemu opartym na markerach rekonstruuje się trajektorie markerów za pomocą skalibrowanego systemu kamery.
- Oznacz każdy marker zgodnie z nazewnictwem zestawu markerów Plug-in Gait. Do krótkich zasłon używaj automatycznego wypełniania luk (maksymalny rozmiar szczeliny: 10 klatek).
- Sprawdź dokładność etykietowania, oglądając szkielet wizualnie w perspektywie 3D. Gdy wszystkie markery zostaną poprawnie oznaczone, a trajektorie są ciągłe, eksportuj próbę jako plik .c3d do analizy w narzędziu vailá .
- Zapisuj dane optyczne jako .c3d oraz klatki wideo lub strumieniowanie jako pliki bezstratne lub o wysokiej przepływności.
9. Przetwarzanie danych
UWAGA: Toolbox vailá (v0.10.21)24 jest wieloplatformowy (Windows, macOS, Linux) i wymaga Pythona 3.12 lub nowszego. Moduły analizy bez markerów (np. MediaPipe25) są zoptymalizowane do efektywnego działania na standardowych procesorach, zapewniając dostępność w środowiskach klinicznych bez specjalistycznego sprzętu. Karta graficzna obsługująca CUDA jest opcjonalna i używana tylko wtedy, gdy użytkownik wybierze alternatywne silniki o wysokiej prędkości (np. YOLO-Pose) dla szybszego przetwarzania. Aby uzyskać szczegółowe polecenia wykonawcze, przewodniki krok po kroku oraz pełną dokumentację, użytkownicy są kierowani do zasobów online i zintegrowanych plików pomocy zestawu narzędzi, dostępnych pod adresem: https://github.com/vaila-multimodaltoolbox/vaila/tree/main/docs/modules/markerless-analysis.
- Podejście oparte na markerach: W oprogramowaniu systemu opartego na markerach przetwarza się próby statyczne i dynamiczne. Zastosuj model dynamicznego chodu wtyczkowego do oznaczonych trajektorii markerów (patrz krok 7.4), aby obliczyć szeregi czasowe kąta łączenia.
- Wyeksportuj przetworzone dane próbne jako plik .c3d. Upewnij się, że obliczone szeregi czasowe kąta stawu (np. kąty biodra, kolana, kostki) są uwzględnione w eksporcie.
- Zaimportuj przetworzony plik .c3d do skrzynki narzędzi vailá za pomocą funkcji vaila.load_c3d(). Toolbox automatycznie wyodrębnia wstępnie obliczone dane szeregowe o kątach łączenia z pliku.
- Zastosuj dolnoprzepustowy filtr Butterwortha o zerowym opóźnieniu rzędu 4 (odcięcie 6 Hz) do danych kątów stawu za pomocą zintegrowanych funkcji filtrowania (opisanego w kroku 9.2.4 poniżej), aby zapewnić spójne przetwarzanie danych bezmarkerowych.
- Następnie w vailá przeprowadza się kolejne analizy (np. generowanie cyklogramów, obliczanie metryk koordynacyjnych).
- Podejście bez markerów: Załaduj moduł estymacji pozycji MediaPipe (v0.10.21) w ramach vailá. Ustaw następujące parametry: static_image_mode = Fałszywe, model_complexity = 1-2 (użyj poziomu 2, gdy zasoby GPU/CPU pozwalają na większą dokładność), smooth_landmarks = Prawda, min_detection_confidence = 0,6, min_tracking_confidence = 0,6.
UWAGA: Alternatywne ramy do estymacji pozycji, takie jak OpenPose, można tu wykorzystać.
- Przetworz każdą klatkę wideo, aby wyodrębnić punkty orientacyjne MediaPipe 33 (Rysunek 3). Odrzucać klatki z pewnością detekcji poniżej progu lub stosować interpolację dla brakujących danych.
UWAGA: MediaPipe wykrywa 33 punkty orientacyjne ciała, w tym twarz, tułów i punkty kluczowe (Rysunek 3). W obecnym protokole użyto tylko punktów orientacyjnych tułowia i dolnej części ciała istotnych dla analizy pozycji siedzącej do stania: Ramię [punkty orientacyjne 11 (lewe ramię) i 12 (prawe ramię)], biodro [punkty orientacyjne 23 (lewe biodro) i 24 (prawe biodro)], kolano [punkty orientacyjne 25 (lewe kolano) i 26 (prawe kolano)] oraz kostka [punkty orientacyjne 27 (lewa kostka) i 28 (prawa kostka)]. Te punkty orientacyjne są automatycznie wykrywane na podstawie wideo RGB i szacowane na podstawie cech wizualnych (zamiast pozycji markerów retrorefleksyjnych stosowanych w modelu Plug-in Gait).
- Potwierdź, że wszystkie kluczowe punkty orientacyjne (bark, biodro, kolano, kostka) są wykrywane z pewnością ≥ 0,7.
- (Opcjonalnie) Jeśli zniekształcenie obiektywu jest istotne, odzniekształc klatki za pomocą parametrów kalibracyjnych (macierz kamery i współczynniki zniekształceń) przed uruchomieniem MediaPipe.
- YOLO-Pose: Równolegle załaduj moduł YOLO-Pose zintegrowany w vailá.
- Konfiguruj model z domyślnymi wagami do wykrywania szkieletu ludzkiego (zestaw punktów kluczowych zgodny z formatem COCO). Każda klatka jest przetwarzana w celu wykrywania kluczowych punktów szkieletowych za pomocą szkieletu YOLO, zoptymalizowanego pod kątem solidnych wyników przy rozmyciu ruchu, zasłonach lub złożonych tłach.
- Stosuj filtry wygładzające czasowe, aby zmniejszyć drgania klatka do klatki i wyrównać wykryte punkty kluczowe z systemem współrzędnych używanym w MediaPipe.
- Dla filtra wygładzania temporalnego należy zastosować dolnoprzepustowy filtr Butterwortha rzędu 4 rzędu o częstotliwości odcięcia 6 Hz (ruchy siedzącej-stojącej mają dominującą zawartość częstotliwości poniżej 5 Hz) do wszystkich danych z zakresu czasowych kątów złącznych, zarówno opartych na markerach, jak i bezmarkerowych, aby usunąć szumy wysokie częstotliwości przy zachowaniu sygnału ruchu.
- Zaimplementuj ten filtr, używając funkcji scipy.signal.butter() i scipy.signal.filtfilt() w Pythonie, stosując zerowe filtrowanie do przodu i do tyłu, aby uniknąć przesunięcia czasowych.
- Obsługa danych w vailá: Eksport trajektorii przełomowych z obu potoków (MediaPipe i YOLO-Pose) w standaryzowanym formacie .csv lub .json. Przechowuj metadane (numer klatki, znacznik czasu, pewność wykrywania) razem z współrzędnymi punktu kluczowego. Zapewnia to porównywalność między metodami oraz powtarzalność analiz.
- Definicje współrzędnych i kąty stawów: Zdefiniuj kąty zgięcia biodra i kolana na płaszczyźnie strzałkowej z dodatnimi wartościami zgięcia.
- Dla danych bez markerów wyprowadz się centrum/segmenty stawów z punktów orientacyjnych MediaPipe (np. biodro: miednica proxy; kolano: kość udowa-piszczelowa; tułów: segment bark-biodro) i oblicz kąty strzałkowe za pomocą spójnego układu współrzędnych stawów.
UWAGA: Kąty stawów na płaszczyźnie strzałkowej obliczane są geometrycznie na podstawie dwuwymiarowych współrzędnych orientacyjnych. Zestaw narzędziowy vailá oblicza kąt (θ) między dwoma wektorami segmentów (wektor a i wektor b) na podstawie arccosinusa ich iloczynu skalarnego: θ = arccos((a · b) / (|a| |b|)). Zgięcie biodra definiuje się jako kąt między wektorem "tułowia" (wektor łączący punkty orientacyjne MediaPipe 11/12 [bark] i 23/24 [biodro]) a wektorem "uda" (wektor łączący 23/24 [biodro] i 25/26 [kolano]). Zgięcie kolana definiuje się jako kąt pomiędzy wektorem "uda" (wektor łączący 23/24 [biodro] i 25/26 [kolano]) a wektorem "trzpienia" (wektor łączący 25/26 [kolano] i 27/28 [kostka]).
- Zastosuj tę samą konwencję znaków i filtrowanie (jeśli jest to potrzebne) dla obu podejść, aby ułatwić porównanie.
- Synchronizacja czasowa: Wyrównanie danych z obu podejść za pomocą znacznika czasu wyzwalania LockLab; W przeciwnym razie wyrównaj pierwszą widoczną klatkę flash/clap między strumieniami danych.
- W razie potrzeby ponowne próbkowanie szeregów czasowych do wspólnej bazy czasowej przed porównaniem.
- Zdefiniuj cykl ruchu:
- Zdefiniuj cykl siedzącego do stania od początku pochylenia tułowia do przodu (dodatnia prędkość kątowa płąka) do stabilnej pozycji wyprostowanej u dzieci typowo rozwijających się (prędkość kątowa tułowia ~0 i pełne wyprostowanie kolana) oraz, u dzieci z porażeniem mózgowym, stabilnej pozycji pionowej i najwyższej pozycji markera szyjnego (system oparty na markerze).
- U dzieci z porażeniem mózgowym, które mogą nie osiągnąć pełnego wyprostowania (tj. z tułowiem ustawionym do miednicy, biodrem pod kątem 0°, kolanami w pełnym wyprostowaniu), jak u dzieci typowo rozwijających się, definiuj koniec cyklu jako najbardziej wyprostowaną postawę osiągniętą zgodnie ze statyczną próbą stojącą i potwierdzoną przez wizualną kontrolę zapewniającą stabilną postawę przed kolejnym testem.
- Nie normalizuj czasu dla reprezentatywnych wykresów; Raportuj rzeczywisty czas trwania zadania na każde badanie. (Analizy normalizowane w czasie mogą być udostępnione jako uzupełnienie, jeśli jest to pożądane.)
- Obliczenia cyklogramu i metryki: Narysuj kąty bioder (oś x) vs. kolana (oś y) dla każdego próby, aby wygenerować cyklogramy bioder i kolana.
- Eksperymenty nakładkowe i podejścia (oparte na markerach vs. bezmarkerowe) do porównania wizualnego.
- Oblicz opcjonalne metryki podsumowujące: zakresy ruchu bioder/kolana, powierzchnię pętli, orientację pętli (kąt osi głównej) oraz długość ścieżki.
- Eksportuj przetworzone szeregi czasowe i metryki .csv do analizy statystycznej.

Rysunek 3: 33 punkty orientacyjne MediaPipe. W tym badaniu wykorzystaliśmy tylko punkty orientacyjne istotne dla zadania siadzenia do stania, w szczególności punkty orientacyjne 11 i 12 (barki), 23 i 24 (biodra), 25 i 26 (kolana) oraz 27 i 28 (kostki). Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.