PVN3D icon indicating copy to clipboard operation
PVN3D copied to clipboard

Question about the test result on Linemod

Open Jasper-Y opened this issue 4 years ago • 1 comments

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!

Jasper-Y avatar Oct 09 '21 20:10 Jasper-Y

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.

ethnhe avatar Oct 14 '21 14:10 ethnhe