I'm working on a project which requires me to detect blank images. What I've tried until now is converting the image to grayscale and finding its standard deviation and considering the image to be empty if the standard deviation is very low:
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
mean, std = cv2.meanStdDev(gray)
This works pretty well for completely blank images with a single colour, but when I try this solution on images with shifting gradients like these it fails, as the returned standard deviation is quite high:

All these images were taken from mobile phone camera, while covering the lens/flash area. Basically my goal is to detect any blank images(with no meaningful content) uploaded by the user, clicked using their mobile camera.
Original images can be found here
Any idea fellow stackers how can this be acheived in python? P.S. I'm not constrained to using any specific library. Solutions using any libraries are welcome