PVN3D
PVN3D copied to clipboard
Question about the test result on Linemod
Hi,
I used the pre-trained models and the ADD AUC for the object ape is only 84.14. The only changes are these codes below where I replaced the PCL with Open3d.
def get_normal(self, cld):
# import pcl
# cloud = pcl.PointCloud()
# cld = cld.astype(np.float32)
# cloud.from_array(cld)
# ne = cloud.make_NormalEstimation()
# kdtree = cloud.make_kdtree()
# ne.set_SearchMethod(kdtree)
# ne.set_KSearch(50)
# n = ne.compute()
# n = n.to_array()
pcd = o3d.geometry.PointCloud()
cld = cld.astype(np.float32)
pcd.points = o3d.utility.Vector3dVector(cld)
pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamKNN(knn=50))
return np.asarray(pcd.normals)[:, :3]
Has anyone tested on the Linemod dataset? Am I making any mistakes on these codes? Thank you for your help!
I don't suggest an Open3D version of normal estimation as the normal direction from it points differently on different points, with some "inward" the object surface and some "outward", which may be confusing. Apart from the PCL version, I suggest the Normal_Speed version as used in our FFB6D project. Normal from them point out the object surface according to the camera view point.