Extracting Wind Turbine Blade Tips as Keypoints

My project is looking to estimate the yaw angle of a Wind Turbine relative to the camera. My idea was to extract the Blade Tips as Keypoints, which I can then use to calculate the excentricity of an elllipse formed by the rotating tips and relate the excentricity to the angle. However I am not able to get my keypoint detection accurate enough, see pics:


The training metrics: Imgur: The magic of the Internet

I already tried a Hyperparameter Tuning, that didn’t help. The annotation is looking like this: Imgur: The magic of the Internet

Could the problem result from the rotational symmetry?
Or do you have a more straight forward idea for how to extract the relative angle?
Thank you

Each keypoint is like a class of its own. So the model will try to learn what makes one keypoint distinct from the other within the same object. In your case, there’s no distinction between the keypoints and the assignment is arbitrary. You can try labeling each blade as a new object instead.

I’m gonna try that out, thank you

Hello Nikelnack,

It’s great to see your project applying keypoint detection to estimate the yaw angle of wind turbines!

Regarding the accuracy of your keypoint detection, the rotational symmetry could indeed be a factor influencing the results. The similarity between blade tips might make it challenging for the model to distinguish each tip uniquely.

Since you are looking to improve keypoint detection, I recommend reviewing the Keypoints class documentation, where you can find detailed information on attributes and methods for handling keypoint data which includes coordinate manipulation and confidence values. You can also explore the calculate_keypoints_loss function to get a better understanding of how the keypoint loss is computed, which can be helpful.

Additionally, the Ultralytics pose/keypoint estimation task guide might provide more useful insights.

The YOLO community and the Ultralytics team are always working on improving and refining these tools, so your feedback is valuable.

Hello,

Just a quick update on this: The problem was indeed, as suspected here, the rotational symmetry.

In a research project, we solved this problem by treating the keypoints as an unordered set and implementing a permutation-invariant loss function. This way, it doesn’t matter to the model which tip is identified as which, as long as the positions of all tips are correct.

We have published the method and the results in a paper. If you’re interested, you can have a look here:

Best regards
Jakob Gebler

1 Like

Very cool! Thanks for sharing the publication and glad to hear you were able to get it sorted out.

1 Like