Start with the Why:
Surface normals give us a lot of information on object shapes. However, from pointclouds obtained from current depth map, it is hard to estimate the surface normal. It is because depth resolution is not small enough so that the depth map expresses the detailed depth changes of the surface.
This is because current OAK-D models have only 96 depth levels, hence the object surfaces of nearby pixels tend to have exactly the same depth, and the surface normals computed using the 3D positions of neighboring pixels tend to be almost near parallel to z axis unless smooth depth maps using filters with large karnels.


The How:
Subpixel estimation of the depth increase the disparity resolution. That helps estimating surface normals even with small kernel filters.
The What:
This feature will not only help estimating surface normals, it might also help getting more precise object distances/positions.
Start with the Why:
Surface normals give us a lot of information on object shapes. However, from pointclouds obtained from current depth map, it is hard to estimate the surface normal. It is because depth resolution is not small enough so that the depth map expresses the detailed depth changes of the surface.
This is because current OAK-D models have only 96 depth levels, hence the object surfaces of nearby pixels tend to have exactly the same depth, and the surface normals computed using the 3D positions of neighboring pixels tend to be almost near parallel to z axis unless smooth depth maps using filters with large karnels.
The How:
Subpixel estimation of the depth increase the disparity resolution. That helps estimating surface normals even with small kernel filters.
The What:
This feature will not only help estimating surface normals, it might also help getting more precise object distances/positions.