Библиотека для сравнения изображений

Разработано для: NEC (UK) Ltd (подразделение NEC в Великобритании), Великобритания, г. Кембридж

Для использования в другом проекте компании NEC требовалась дополнительная библиотека, реализующая алгоритмы сравнения двух визуально похожих изображений (в дальнейшем эта библиотека применялась при детектировании лиц на фрагментах видео в высоком разрешении).

Сравнение производилось на основе метрик SSIM и PSNR, принцип работы которых основывается на попиксельном разборе изображений. Так как решающим был фактор скорости работы алгоритмов, требовалось реализовать их так, чтобы они опережали ставшую практически стандартной реализацию в OpenCV. Для этого в C++-коде были использованы низкоуровневые (ассемблерные) вставки, основанные на наборе инструкций SSE 3. В результате было достигнуто ускорение обработки изображений в среднем в 5 – 6 раз. Для больших массивов данных изменение скорости работы алгоритма значительно заметнее и превышает среднее значение.

Спецификация

Заказчик
NEC (UK) Ltd (подразделение NEC в Великобритании), Великобритания, г. Кембридж
Сфера применения
обработка изображений
Назначение
библиотека функций для сравнения изображений
Тип (платформа)
C++-библиотека
Технологии и алгоритмы
C++, SSE 3, Assembler, метрики SSIM и PSNR

Похожие проекты

быстрая реализация прямого и обратного преобразования Фурье (с возможностью последующего применения в обработке изображений)
0