Pythonで記述できる場合、これは非常に簡単です。以下は、オープンソースのコンピュータビジョンパッケージを使用して全体的な画像のぼやけを検出するための優れた記事です。
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
画像をblured / 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))
最も厄介な問題は、システムにpythonとopencvをインストールすることです。お使いのOS用のGoogle python3、およびそれを使用したpipのインストール方法は、pip3を使用してopencvをインストールできます。または、python + opencvのビルド前のインストールもいくつかあります。このスクリプトを実行するために、opencvの最新バージョンは必要ありません。
このスクリプトはうまく機能し、全体的な画像のぼやけを測定します。これはほとんどの写真に適しています。ただし、全体的な画像測定では、それらの1つの顔とボケで満たされた背景写真がぼやけたディレクトリに置かれ、それらを元に戻す必要があります。とにかく、ぼやけた写真に目を通し、見当違いのキーパーがそこにいないことを確認する必要があります。
このスクリプトがワークフローを高速化することを願っています。
このスクリプトの適切な改善点は、顔検出を含め、写真の最大の顔の不鮮明度を計算し、不鮮明度のしきい値にこれらの値を使用することです。その改善はあなたに任せます!