Enhancing Visual Perception In Noisy Environments Using Generative Adversarial Networks