Closed zehongs closed 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.
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()
andvox.points
are only giving the surface points. So it is not offering a solid volume. Themesh.contains(points)
is giving a smaller estimate of intersection volume.https://github.com/hwjiang1510/GraspTTA/blob/cecb9642e6d63670d4e954cf420d03f1a93b5a90/metric/intersect.py#L7-L12