Isso é muito fácil de fazer se você pode escrever em Python. Aqui está um bom artigo sobre o uso de um pacote de visão computacional de código aberto para detectar o embaçamento geral da imagem:
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
Aqui está um script rápido que classifica as imagens em diretórios desfocados / ok:
#
# Sorts pictures in current directory into two subdirs, blurred and ok
#
import os
import shutil
import cv2
FOCUS_THRESHOLD = 80
BLURRED_DIR = 'blurred'
OK_DIR = 'ok'
blur_count = 0
files = [f for f in os.listdir('.') if f.endswith('.jpg')]
try:
os.makedirs(BLURRED_DIR)
os.makedirs(OK_DIR)
except:
pass
for infile in files:
print('Processing file %s ...' % (infile))
cv_image = cv2.imread(infile)
# Covert to grayscale
gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY)
# Compute the Laplacian of the image and then the focus
# measure is simply the variance of the Laplacian
variance_of_laplacian = cv2.Laplacian(gray, cv2.CV_64F).var()
# If below threshold, it's blurry
if variance_of_laplacian < FOCUS_THRESHOLD:
shutil.move(infile, BLURRED_DIR)
blur_count += 1
else:
shutil.move(infile, OK_DIR)
print('Done. Processed %d files into %d blurred, and %d ok.' % (len(files), blur_count, len(files)-blur_count))
Seu problema mais complicado será instalar o python e o opencv no seu sistema. Google python3 para o seu sistema operacional e como instalar o pip com ele, você pode usar o pip3 para instalar o opencv. Ou também existem algumas instalações de pré-compilação python + opencv. Você não precisa da versão mais recente do opencv para executar este script.
O script funciona muito bem e mede a desfocagem geral da imagem. Isso é bom para a maioria das fotos. No entanto, a medição geral da imagem significa que as fotografias de fundo preenchidas com um rosto e bokeh serão colocadas no diretório fora de foco e você precisará resolvê-las novamente. De qualquer forma, você deve examinar as imagens desfocadas para garantir que não haja detentores fora do lugar.
Espero que esse script acelere seu fluxo de trabalho.
Um aprimoramento puro desse script é incluir a detecção de rosto e calcular a desfocagem nos rostos maiores da fotografia e usar esses valores para o limite de desfocagem, padronizando o desfoque geral se nenhum rosto for detectado. Vou deixar essa melhoria com você!