hwjiang1510 / GraspTTA

Code for paper 'Hand-Object Contact Consistency Reasoning for Human Grasps Generation' at ICCV 2021
85 stars 15 forks source link

buggy implementation of intersection volume metric? #2

Closed zehongs closed 2 years ago

zehongs commented 2 years ago

Hi, I think the metric of intersection volume is not correct. The function intersect_vox is supposed to compute the intersection volume. However, vox=mesh.voxelized() and vox.points are only giving the surface points. So it is not offering a solid volume. The mesh.contains(points) is giving a smaller estimate of intersection volume.

https://github.com/hwjiang1510/GraspTTA/blob/cecb9642e6d63670d4e954cf420d03f1a93b5a90/metric/intersect.py#L7-L12

obj

hwjiang1510 commented 2 years ago

Hi, thanks for the great question!

The implementation is inherited from previous papers, which are widely used. In detail, the previous works are obman [19] and GanHand [9]. https://github.com/hassony2/obman_train/blob/master/mano_train/netscripts/intersect.py#L18 https://github.com/enriccorona/GanHand/blob/master/utils/obman_utils.py#L22

On one hand, the max interpenetration depth between hand-object is small (according to Table. 1 in our paper), which are 0.46, 1.05, and 1.58 cm on the three datasets. It matches the pitch size we use in voxelization, and the method works when the interpenetration is shallow. On the other hand, there will also be many voxelized points where the intersection depth is actually smaller than 1 cm but got voxelized, causing a larger intersection volume. Overall, the intersection volume will be roughly correct.