Calculate the size of a gameobject on screen

I have several spheres, all different sizes. Some are relatively nearby, some are far away. Because you cannot or only barely see the ones that are far away I have a guitexture following each sphere. The texture is a cross-hair, so this way there is always a pointer to each sphere.

Now my problem: I only want the crosshairs to point to sphere's that, on your screen, appear 'small'. How would I calculate the size of a sphere with size r at distance d (and camera FoV x) on my screen? Or how would you guys solve my problem?

Also, the sphere moves and rotates constantly, so I can't send a raycast from the edges.

So, in short: how would I get information about the current size on screen of a GameObject? Is this even possible? How would you guys work around this if it's not?

See this question: http://answers.unity3d.com/questions/43850/is-there-an-easy-way-to-get-on-screen-render-size-bounds

If you are really just using spheres it shouldn't be too hard to get the size. Arbitrary meshes, that's different.

I would take my largest sphere, let's say it has a radius of 8 and find the z that makes it appear small...perhaps it was > 100. then I would do that for the smallest. let's say the smallest had a radius of 2 and it looked small at > 30. I would just get these 2 values in the viewport real quick. In code I would do a simple linear fit of the each sphere radius between 2 and 8 to a distance of 30 to 100 to determine the max z. Once a sphere reaches its max z I would add it to the crosshair list. If the z becomes less than the max z I would remove it from the list.