facebookresearch / multiface

Hosts the Multiface dataset, which is a multi-view dataset of multiple identities performing a sequence of facial expressions.
Other
718 stars 50 forks source link

interpretation of KRT (camera extrinsics/intrinsics) #27

Closed treder closed 1 year ago

treder commented 1 year ago

EDIT: I just noticed a related closed issue which resolves my questions 1, 2, 4. I've marked the unresolved questions in bold below.

I have questions regarding the camera intrinsics/extrinsics. For instance, the folder m--20180105--0000--002539136--GHS contains a KRT file with 40 entries of the form

400067
7695.228 0.0 819.0538
0.0 7693.029 962.58496
0.0 0.0 1.0
0.0 0.0 0.0 0.0 0.0
0.63021725 0.46384037 -0.62263817 710.42523
-0.09101093 0.8405402 0.5340498 -684.87476
0.7710663 -0.27990055 0.57193744 476.83365

A few questions:

1. I assume the first 3 rows are the 3x3 intrinsics K matrix with $f_x = 7695.228, f_y = 7693.029$ focal lengths and $p_x= 819.0538, p_y = 962.58496$, correct? 2. I ignore the row of zeros that follows. The next is the 3x4 extrinsics matrix [R | t]. 3. Why are the focal lengths and principal points different per camera? 4. Can anything be said about the units for $f_x, f_y$ (pixels?) and $t$ (mm?) 5. I assume the cameras were fixed (within Mugsy v1 and v2) so why is there not a single global set of cameras with fixed names across all subjects? 6. Are the cameras across different subjects all in the same world coordinate space, so the data can be naively merged? 7. Is the origin in world coordinates centered on the head?

alexanderrichard commented 1 year ago

(3) This is the result of calibration.

(5) The cameras were fixed for Mugsy v1 but Mugsy v2 has different cameras. The KRTs for all v1 captures will be similar but there can be small differences. We calibrate after every capture and create fresh KRT files.

(6) See answer to (5). Merging all v1 captures can work but the KRTs are still slightly different as there might be small differences between two captures that were done on different days.

(7) No, it's defined by a reference camera. But there is a transform for headpose in the tracked_mesh directory if you want to transform into head-centric coordinates.

treder commented 1 year ago

Brilliant, thanks for the clear answer.