Hailo Surface Normal Models

Hello,

I am working on a project which involves estimating the angle of a straight surface to the camera, running on a raspberry pi with a hailo 8l accelerator.

My initial idea was to use one of the depth estimation models avaliable in the DeGirum Hailo model zoo, and compute the normals from the depth map using a depth to normal converter (i am using D2NT).

However, None of the models in the zoo have nearly enough resolution or accuracy to get meaningful results (I am getting mostly noise)

Are there any normal estimation models in the zoo for hailo 8l? Is there an easy way to make one? Or am I missing something obvious?

I am sorry if this is a stupid question, I am a complete beginner in the field.

Thank you in advance

Hi @nlkurtz

Welcome to the DeGirum community. Your observation about accuracy of depth estimation models is correct. Did you try the same models on OPENVINO and see if the accuracy is good enough?

Hello @shashi

What is OPENVINO? and how do I try it there?

Sorry again for my lack of knowledge…

Hi @nlkurtz

Apologies for the delayed response. Our expertise in normal estimation is very limited. So, we would like to first know if the method you outlined works on CPU. In other words, does computing normal from depth estimation work on non-Hailo system? The reason for this question is that we need to be sure that the results you are observing are Hailo specific (coming from quantization loss) and not somehow related to method itself.

Hello
The depth to normal process does work on a normal CPU, but the problem is not with it. I fact, it IS running on a CPU in my project.
The problem is with the depth models themselves, that lack the needed level of accuracy.
If I run the same depth models on a CPU, they give much more accurate results, which give much better normals.
My question is if there is an easy way to run normal estimation models themselves (not from depth), which would give more accurate results as you don’t need an extra processing step (converting the depth to normals), or if there is a way to improve the accuracy on the depth models themselves.
Thank you in advance.

Hi @nlkurtz

Thanks for clarifying this. As I mentioned before, accuracy loss for these models on Hailo is a known issue, and unfortunately, we do not have a solution to this problem. You can reach out to Hailo, and hopefully they might help you with strategies to compile/finetune the model to minimize the loss. We just took the model from their zoo and integrated to PySDK. The use case for these models is also limited (among our users) and hence we did not spend as much time as we do on other models (like YOLO and variants).

Lastly, we are not aware of any easy ways to run normal estimation models. Sorry, we are unable to be of much help.