lzccccc / SMOKE

SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation
MIT License
696 stars 177 forks source link

为什么要用loc_center计算proj_point而不是直接用(x,y,z)呢? #39

Closed sdu2011 closed 3 years ago

sdu2011 commented 3 years ago
    loc_center = np.array([x, y - h / 2, z])  
    proj_point = np.matmul(K, loc_center) ##
    proj_point = proj_point[:2] / proj_point[2]

为什么要用loc_center计算proj_point而不是直接用(x,y,z)呢? 假如目标是个人的话,就相当于y方向用了头顶那点的坐标而不是腰部的坐标?

owphoo commented 3 years ago
    loc_center = np.array([x, y - h / 2, z])  
    proj_point = np.matmul(K, loc_center) ##
    proj_point = proj_point[:2] / proj_point[2]

为什么要用loc_center计算proj_point而不是直接用(x,y,z)呢? 假如目标是个人的话,就相当于y方向用了头顶那点的坐标而不是腰部的坐标?

kitti标注的xyz中的y应该是底部的值(接触地面的y坐标), - h/2 后就是中心的坐标, 这里有说明https://europe.naverlabs.com/research/computer-vision/proxy-virtual-worlds-vkitti-1/

sdu2011 commented 3 years ago
    loc_center = np.array([x, y - h / 2, z])  
    proj_point = np.matmul(K, loc_center) ##
    proj_point = proj_point[:2] / proj_point[2]

为什么要用loc_center计算proj_point而不是直接用(x,y,z)呢? 假如目标是个人的话,就相当于y方向用了头顶那点的坐标而不是腰部的坐标?

kitti标注的xyz中的y应该是底部的值(接触地面的y坐标), - h/2 后就是中心的坐标, 这里有说明https://europe.naverlabs.com/research/computer-vision/proxy-virtual-worlds-vkitti-1/

非常感谢!我之前理解错了,以为xyz就是目标中心坐标.