I have a fixed camera which captures images of a certain surface. I have a base picture of an empty surface, which is not interesting to me. The only images I'm interested in is when other objects are placed underneath.
What are some ways I could figure out if there is a "difference" between the base image (empty surface) and camera-captured frames? I was thinking about detecting of pixel-wise "similarity", but the image of empty surface could change a bit based on the illumination, weather outside, shadows, etc... I'm an OpenCV newb, so any kind of help would be greatly appreciated. Thanks in advance.
P.S. The process should be as fast as possible, so more lightweight methods are preferred, even if they are somewhat imprecise.