Logo icon

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

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

Назначение: библиотека функций для сравнения изображений

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

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

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

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

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

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

восстановление сигнала, искажённого при передаче, до исходного состояния при имеющихся показателях физической линии