Как найти дубликаты изображений с использованием Computer Vision?
В данной статье мы расскажем, как можно выявить FRAUD сотрудников, проведя анализ полученных изображений документов, приложенных к авансовым отчетам, с помощью Computer Vision.
В нашем случае FRAUDом является прикрепление одного и того же проездного билета к разным авансовым отчетам и, соответственно, необоснованное получение повторной оплаты компенсации за проезд. Задача состоит в том, чтобы найти идентичные изображения среди 6,6 тыс. файлов.
Для начала импортируем необходимые модули.
Для сравнения изображений используем хэширование с помощью нижеприведенной функции вычисления хэша. Так как в обрабатываемом массиве встречаются файлы в формате pdf, мы использовали конвертацию в формат png с помощью библиотеки poppler
Далее используем функцию для определения точности совпадения изображений, насколько они похожи.
Рассмотрим работу кода на примере. Возьмем 4 файла с изображениями билетов.
Считываем файлы и рассчитываем хэш для каждого изображения, а также задаем единый размер 800х800 пикселей.
Сравниваем полученный хэш каждого изображения и рассчитываем процент совпадения с первым изображением.
В данном случае объем обрабатываемых изображений небольшой, поэтому для наглядности нам достаточно сравнить все рассчитанные хэши с хэшем первого изображения («hash1»). Таким образом, мы получаем следующий результат:
Из полученных данных видно, что хэши файлов «Bilet 1» и «Bilet 2» абсолютно одинаковы – совпадение 100%. Хэш файла «Bilet 3» не совпадает всего на 0,32%, что говорит о том, что изображение совсем немного отличается, что и мы видим визуально на картинке. Хэш файла «Bilet 4» отличается на 30,5%, то есть разница существенна, поэтому мы можем сделать вывод, что изображения не идентичны. Таким образом, с помощью рассчитанных hash можно распознать идентичные изображения.
Применение Machine Learning и Computer Vision позволяет сократить обработку большого количества электронных документов в сжатые сроки. В результате выполнения данного кода были получены номера авансовых отчетов, к которым в качестве подтверждающих документов сотрудники приложили идентичные сканы документов.