If the lightning is the problem, you could try to do following:
(the result depends on how problematic those shadows are)
1) maximize the contrast (described nicely here)
2) canny edge detector. Tweak the parameters to detect the edges correctly, process the image through the detector and do the operations (detect circles, make ROIs, detect lines in them) on the output.
3) if it is possible, a "hardware" solution would make a big difference - try to even the light conditions by adding some light to the camera. I can imagine, that it is the hardest part, but unfortunatelly, not everything can be solved by a software
You may need to combine the steps, to get reliable result.
BTW: the haar clasifier is not the best solution, but it could also work. It depends on how much samples did you provide and also on the light conditions, as mentioned above