- Python 3.9
- PyTorch 1.11.0
HAC calibrates monocular SLAM scale by leveraging human priors from HMR.
It is model-agnostic to both HMR and SLAM, compatibility with various HMR and SLAM approaches as long as you can export the following inputs:
Provide a dict (or serialized file) like:
{
"pred_rotmat": ..., # Predicted SMPL rotation matrix
"pred_shape": ..., # Predicted SMPL body shape parameters
"pred_trans": ... # Predicted camera translation
}Provide a dict (or serialized file) like:
{
"traj": ..., # camera poses represented as [tx, ty, tz, qx, qy, qz, qw]
"tstamp": ..., # timestamps
"disps": ... # disparity/depth proxy
}together with SLAM‘s output 3D point cloud:
points.plyFor SOTA comparison/evaluation, we used TRAM's setup:
- HMR: VIMO
- SLAM: Masked DroidSLAM
You can export the above inputs and points.ply from the source code and pass them directly to HAC.
-
Test on EMDB 2
python eval_emdb2.py >logs/emdb2.logs 2>&1
- Corresponding output logs can found at
logs/emdb2.logs
- Corresponding output logs can found at
-
Test on EgoBody
python eval_egobody.py >logs/egobody.logs 2>&1
- Corresponding output logs can found at
logs/egobody.logs
- Corresponding output logs can found at
If you find our paper or codes useful, please consider citing our paper:
@InProceedings{Yang_2025_ICCV,
author = {Yang, Fengyuan and Gu, Kerui and Nguyen, Ha Linh and Tse, Tze Ho Elden and Yao, Angela},
title = {Humans as Checkerboards: Calibrating Camera Motion Scale for World-Coordinate Human Mesh Recovery},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {6069-6079}
}Our codes are based on WHAM, TRAM, and SLAHMR and we really appreciate it.