Ini cukup mudah dilakukan jika Anda dapat menulis dengan Python. Berikut ini adalah artikel bagus tentang penggunaan paket visi komputer sumber terbuka untuk mendeteksi kekaburan gambar secara keseluruhan:
https://www.pyimagesearch.com/2015/09/09/blur-detection-with-opencv/
Berikut ini skrip cepat yang akan mengurutkan gambar menjadi direktori buram / 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))
Masalah Anda yang paling sulit adalah memasang python dan opencv ke sistem Anda. Google python3 untuk OS Anda, dan cara menginstal pip dengannya, Anda dapat menggunakan pip3 untuk menginstal opencv. Atau, ada beberapa instalasi pra-bangun python + opencv juga. Anda tidak perlu opencv versi terbaru untuk menjalankan skrip ini.
Script berfungsi dengan baik, dan mengukur keseluruhan gambar kabur. Ini bagus untuk sebagian besar gambar. Namun, pengukuran gambar secara keseluruhan berarti foto-foto satu wajah dan bokeh-latar belakang akan dimasukkan ke dalam direktori buram, dan Anda harus memilahnya kembali. Bagaimanapun, Anda harus melihat gambar-gambar buram untuk memastikan tidak ada penjaga yang salah tempat di sana.
Saya harap skrip ini mempercepat alur kerja Anda.
Perbaikan yang rapi untuk skrip ini adalah memasukkan deteksi wajah, dan menghitung keburaman pada wajah terbesar dalam foto, dan menggunakan nilai-nilai itu untuk ambang kabur, default ke keburaman keseluruhan jika tidak ada wajah yang terdeteksi. Saya akan menyerahkan peningkatan itu kepada Anda!