Hi,
regarding, the illumination problem, you should be robust against this or use detectors robust to this. A simple solution it to use the Retina model available in the contrib module as a preprocessing tool. Check the related tutorial to experiment on your videos, with the retina model. However, take care of the retina configuration, depending on it, you may have to retrain face detectors at its output. The critical parameter is related to mean luminance pass-trough setup, you should let it process at least some luminance data (parameter 1 > hcellsgain > 0).
Now, regarding specific "Faces with Helmets" detection problem, something you can test, depending on the data you have is to train a face detector on this specific kind of faces.
If you have a large dataset on which you label several faces, then, it can be good. But before this "hard" solution, did you test all the provided xml files describing the numerous already trained face detectors (there are frontal, side, etc. with various degrees of precision)?
Anyway, face detection is always difficult in uncontrolled datasets where faces do not perfectly face the camera... the cameraman cannot always ask actors to face him and smile ;o)