Embodied AI Glossary中文

Surface Normal Estimation

法向量估计Advanced

Computing which way each point on an object’s surface faces — the vector perpendicular to the surface there.

A surface normal is the unit vector perpendicular to an object’s surface at a given point, indicating which way that patch of surface faces. A point cloud is just a set of coordinates with no built-in notion of a “surface,” so normals have to be estimated: the most common approach takes each point’s k nearest neighbors and runs principal component analysis (PCA), where the direction of least variance is taken as the normal; because this leaves the front-versus-back direction ambiguous, normals are then reoriented consistently to face the camera or point outward. Neural networks that predict a normal for every pixel directly from a single RGB image also exist. Normals are used heavily in robotics: suction grasping needs the cup to sit flush and perpendicular to the surface, two-finger grasps often approach along the normal direction, and point-to-plane ICP registration, FPFH point cloud features, and Poisson surface reconstruction all depend on them. Normals visibly jitter when the point cloud is noisy or the neighborhood size is poorly chosen.

ExampleCalling estimate_normals on a point cloud in Open3D, then orient_normals_towards_camera_location to make them consistent, gives an approach direction for every candidate suction-grasp point.

Also called
Point Cloud Normal Estimation, Normal Estimation
Related
Point Cloud · Point Cloud Registration · Fast Point Feature Histograms · Grasp Pose Detection · Vacuum Suction Cup · Point Cloud Library (PCL)
Sources
PCL Tutorial: Estimating Surface Normals in a PointCloud
Open3D Point Cloud Tutorial (Vertex normal estimation)

See it in the full glossary →