Это довольно легко сделать, если вы можете писать на Python. Вот хорошая статья об использовании пакета компьютерного зрения с открытым исходным кодом для определения общей размытости изображения:
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
Вот быстрый скрипт, который отсортирует изображения по размытым / ок каталогам:
#
# 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))
Ваша самая сложная задача - установить python и opencv в вашу систему. Google python3 для вашей ОС, и как установить pip вместе с ним, вы можете использовать pip3 для установки opencv. Или есть несколько предварительных сборок python + opencv. Вам не нужна последняя версия opencv, чтобы запустить этот скрипт.
Сценарий прекрасно работает и измеряет общую размытость изображения. Это хорошо для большинства фотографий. Тем не менее, общее измерение изображения означает, что эти фоновые фотографии, заполненные одним лицом и боке, будут помещены в размытый каталог, и вам придется их отсортировать. В любом случае, вы должны пройтись по размытым фотографиям, чтобы убедиться, что там нет неуместных хранителей.
Надеюсь, этот скрипт ускорит ваш рабочий процесс.
Отличным улучшением этого сценария является включение обнаружения лиц, вычисление размытости на самых больших лицах на фотографии и использование этих значений для порога размытости, по умолчанию используется общая размытость, если лица не обнаружены. Я оставлю это улучшение на ваше усмотрение!