The first part of the problem that you're describing is called registration. Assuming that the displacement is indeed small, and your problem has no time limits, you can use normalized cross-correlation on the images to find the displacement. It will also take care of amount of light normalization. (That means that you are assuming that the transformation between the two images is only displacement.)
After you found the displacement, you can normalizednormalize both of the images by their mean intensity, and do some simple pixel-by-pixel comparison.
Ideas for improvement and variations:
- Use keypoints descriptors and matching to find transformation between two images, to save runtime.
- Use different models of transformation for different scenarios - rotation for in-plane camera rotation that is orthogonal, scale for zooming scenarios, perspective for out-of-plane rotations.
- Use smarter comparison between the two registered images, for example, only in the places where there are edges.
- Create a noise model by checking your camera characteristics in order to know what is a significant change. For example, more than two standard deviations of noise.