I have a project that my team should implement an algorithm about detecting a sphere from point clouds, but I really don't know how to start it and where I can learn the knowledge. Would you recommend me some relevant articles or papers? Thank you very muych!
Regularly Spread?
You could try PCA and look at the eigenvalues of the covariance matrix. If they are roughly the same then this means the data is spread roughly the same in each direction. This means it's probably a sphere but could be a cube...
Sphere vs Cube
How to tell if it's a sphere or a cube? This is pretty tough. The only thing I can think of would be to take the distance of the farthest point from the center in several different directions and see if they are all roughly the same (low variance) then it's likely a sphere. If the distances vary a lot, maybe you're getting the corners or sides that are closer to the center, then it's probably a cube (or maybe some other polygon).
Spheres in CV
Something sort of related to this is the (Circle) Hough Transform which is used in Computer Vision to detect circles. Basically works doing a sort of polar transform with edges and can also find lines.
How to find what to test
How to find what points to look at? You can try some kind of clustering like k-means. If you don't know how many clusters, DBSCAN is interesting and might be worth checking out. Basic idea is to take the points and expand ε-balls around them to see what other balls they connect to. Eventually most things are connected and you have the clusters and outliers.