Panduan praktis markerless 3D kinematics menggunakan Pose2Sim, RTMPose, dan OpenSim. Setup di Google Colab, konfigurasi pipeline, dan analisis gerakan manusia tanpa marker fisik.
Pernah penasaran gimana cara kerja motion capture tanpa pakai marker berwarna-warni di tubuh? Di tutorial ini, kamu akan belajar membangun pipeline lengkap pakai Pose2Sim di Google Colab. Kita mulai dari nol: setup environment, konfigurasi untuk runtime headless, terus jalanin step by step mulai kalibrasi kamera sampai dapetin sudut sendi dari OpenSim.
Yang kerennya, kita nggak cuma eksekusi kode doang. Tiap tahapan bakal kita lihat outputnya, visualisasi trajektori, dan pahami gimana raw video berubah jadi data biomekanik yang bermakna. Siap? Let's go!
Pertama, kita install Pose2Sim dan cek dependency. Kode di bawah ini bakal install library utama, coba install OpenSim Python bindings (opsional di Colab), dan cek apakah GPU tersedia buat accelerate pose estimation.
Kalau OpenSim gagal install di Colab, jangan panik. Tutorial tetap jalan sampai step filtering dan augmentation. Buat kinematics lengkap, kamu bisa pindah ke local conda environment nanti.
Setelah install, kita copy demo project ke working directory. Struktur folder yang bakal kamu lihat: calibration/ buat file kalibrasi kamera, videos/ buat input video, pose/ buat hasil 2D pose estimation, pose-3d/ buat koordinat 3D dalam format .trc, dan kinematics/ buat sudut sendi OpenSim dalam format .mot.
File Config.toml adalah jantung pipeline ini. Semua parameter ada di situ, dari project settings sampai filtering options. Kita perlu modifikasi beberapa parameter biar jalan lancar di Colab yang headless.
Misalnya, synchronization_gui di-set false, display_detection juga false, dan mode pose diubah ke balanced buat kompromi antara speed dan akurasi. Konfigurasi ini disave otomatis ke Config.toml.
Sekarang kita mulai jalanin pipeline step by step. Step 1: Camera Calibration. Ini convert parameter kamera (intrinsics + extrinsics) ke format Pose2Sim. Demo pakai mode convert dari data Qualisys yang sudah ada. Buat data sendiri, kamu bisa calculate from scratch pakai checkerboard.
Step 2: 2D Pose Estimation pakai RTMPose. Model yang dipakai adalah balanced mode dengan YOLOX detection dan body model Body_with_feet (26 keypoints dari dataset HALPE). Outputnya JSON files per frame per kamera. Kalau GPU tersedia, prosesnya bakal jauh lebih cepat.
Step 3: Camera Synchronization. Ini align frames antar kamera dengan mengkorelasikan vertical keypoint speeds. Hasilnya time offset antar kamera. Kalau kamera kamu sudah hardware-synchronized, step ini bisa diskip.
Step 4: Person Association. Mengasosiasikan orang yang terdeteksi di berbagai view kamera. Mode single-person pilih orang dengan reprojection error terendah. Mode multi-person pakai epipolar geometry buat matching.
Step 5: 3D Triangulation. Mengubah 2D keypoints dari multiple cameras jadi koordinat 3D. Prosesnya weighted by detection confidence, remove kamera kalau reprojection error kelewat threshold, dan interpolate missing values. Outputnya file .trc yang compatible dengan OpenSim.
Step 6: 3D Coordinate Filtering. Nge-smooth trajektori 3D biar noise berkurang. Pilihan filternya ada Butterworth low-pass (default), Kalman predictive smoothing, Butterworth on speed, Gaussian, LOESS, dan Median. Parameter diatur di Config.toml bagian filtering.
Step 7: Marker Augmentation. Pakai LSTM dari Stanford buat predict 47 virtual markers dari keypoints yang sudah ditemukan. Marker tambahan ini bisa improve OpenSim model scaling dan inverse kinematics. Tapi catatan: hasilnya nggak selalu lebih baik, sekitar 50/50. Pipeline ini bikin kamu bisa bandingkan with dan without augmentation.
Step 8: OpenSim Kinematics. Melakukan automatic model scaling dan inverse kinematics. Scaling adjust generic OpenSim model ke dimensi partisipan berdasarkan segment lengths dari frame paling lambat dan stabil. IK compute 3D joint angles dengan fit model ke markers. Outputnya scaled .osim model file dan joint angles .mot file.
Kalau OpenSim nggak available di runtime, step ini diskip otomatis. Buat jalanin locally, install via conda install -c opensim-org opensim.
Setelah pipeline selesai, kita bisa visualisasi hasilnya. Kita parse file .trc dan extract marker trajectories. Visualisasi yang dibuat: 3D keypoints di frame tertentu, vertical motion dari body parts kunci (ankle, wrist, nose), dan marker speeds buat analisis kualitas sinyal.
Kalau kinematics berhasil, kita juga parse file .mot dan plot joint angles kunci: hip flexion kanan-kiri, knee angle kanan-kiri, dan ankle angle kanan-kiri. Ini bantu kita paham pola gerakan yang direkonstruksi.
Kita juga evaluasi data quality dengan measure marker completeness dan estimate smoothness pakai inter-frame jitter. Ini kasih sense seberapa stabil dan reliable trajektori yang dihasilkan, siap atau nggak buat interpretasi biomekanik yang bermakna.
Buat advanced usage, kamu bisa modifikasi Config.toml programmatically. Ini berguna buat batch experiments atau parameter sweeps. Contoh: ganti filter type ke Kalman, tighten triangulation quality thresholds, pake lightweight mode buat faster processing, enable multi-person analysis, atau process specific frames only.
Alternatifnya, kamu bisa jalanin seluruh pipeline dalam satu line: Pose2Sim.runAll(). Atau selective steps dengan specify boolean flags buat tiap tahapan. Lebih concise buat production workflows.
Buat download hasil di Colab, pakai google.colab.files.download() atau zip dulu folder pose-3d dan kinematics. File .trc bisa dibuka di OpenSim GUI, dan kamu juga bisa visualisasi di Blender pakai add-on Pose2Sim_Blender.
Practical takeaway dari tutorial ini: kamu sekarang punya pipeline reusable dan adaptable buat analisis gerakan tanpa marker. Bisa extend ke dataset sendiri, refine buat akurasi lebih tinggi, dan jadi fondasi buat motion analysis dan markerless biomechanics research yang lebih dalam.
Next steps yang recommended: coba dengan video multi-kamera kamu sendiri, eksperimen performance mode buat akurasi lebih tinggi, coba multi-person mode, visualisasi di OpenSim GUI atau Blender, pakai custom DeepLabCut models buat animal tracking, atau batch processing multiple trials.
AI Updates lagi bergerak cepat, jadi jangan cuma lihat headline.
MarkTechPost
Catatan redaksi
Kalau lo cuma ambil satu hal dari artikel ini
AI Updates update dari MarkTechPost.
Sumber asli
Artikel ini merupakan rewrite editorial dari laporan MarkTechPost.
Baca artikel asli di MarkTechPost→


