Выбор алгоритма схожести мобильных изображений

машинное обучение искусственный интеллект алгоритм задняя часть
Выбор алгоритма схожести мобильных изображений

Обзор

В сценарии электронной коммерции для получения трафика продавцы часто используют феномен повторной раздачи: когда пользователи публикуют и загружают изображения или видео, они выполняют извлечение признаков изображения и генерацию отпечатков на стороне клиента, а затем загружают их на сайт. облачная база данных отпечатков пальцев для сравнения. Узнайте. Подобные изображения, чтобы исключить трату вычислительных ресурсов и ресурсов хранения, вызванную повторным распространением товаров.

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

Резюме

По сравнению с традиционным вычислением сходства изображений расчет сходства изображений на терминале предъявляет более высокие требования к вычислительной сложности и эффективности поиска. При разработке экспериментов в этой статье сравниваются три типа методов расчета сходства изображений: алгоритм перцептивного хеширования, алгоритм сопоставления сходства изображений, основанный на локальной инвариантности, и алгоритм сходства изображений, основанный на сверточной нейронной сети, а также оцениваются их вычислительная сложность и эффективность поиска. и недостатки, Hessian Affine, наконец, выбран для извлечения признаков, а описание признаков SIFT генерирует отпечатки пальцев в качестве модели расчета сходства изображений в конце.

Ключевые слова: расчет схожести изображений, извлечение признаков, вычислительная сложность, эффективность поиска.

В текущем методе обработки облачных вычислений вычисление сходства изображений будет загружать данные клиента в облако, выполнять ряд сложных логических операций, таких как вычисление сходства поиска изображений и видео, а затем передавать результаты на терминал, хотя облако имеет очевидные преимущества в вычислительной мощности. , но этот метод также имеет серьезные потери памяти, вычислительных ресурсов и трафика и не может удовлетворить требования в реальном времени.

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

Основные этапы алгоритма поиска изображений включают извлечение признаков, создание отпечатков пальцев и сопоставление сходства. Методы расчета схожести изображений, обычно используемые в отрасли, можно условно разделить на три категории: традиционные перцептивные алгоритмы хеширования, алгоритмы сопоставления схожести изображений, основанные на локальной инвариантности, и методы расчета схожести изображений с использованием алгоритмов глубокого обучения.

1. Традиционный хеш-алгоритм

Вскоре после того, как Baidu выпустила систему распознавания изображений Baidu через TinEye в 2011 году, Google выпустил аналогичную службу поиска изображений с помощью поиска изображений, и «алгоритм перцептивного хеширования» сыграл важную роль в процессе поиска изображений. Общий процесс выглядит следующим образом:

1.1 Введение в теорию перцептивного алгоритма хеширования:

1.1.1 Средний хэш:

Путем сжатия исходного изображения (8*8) и обработки в градациях серого вычисляется среднее значение пикселей сжатого изображения, и 64 пикселя изображения 8*8 сравниваются со средним значением. значение равно 1, а значение меньше среднего равно 0, и получается 64. Битовый двоичный код представляет собой значение ахэша исходного изображения. Алгоритмы быстрые, но менее точные.

1.1.2 Отличие хэша:

По сравнению со средним хэшем, разностный хэш также требует сжатия изображения и обработки оттенков серого, а затем сравнивает предыдущий пиксель каждой строки со следующим пикселем, значение которого больше 1 и меньше 0, для создания информации об отпечатке пальца. Алгоритм имеет более высокую точность и более высокую скорость.

1.1.3 Перцепционный хэш:

Путем сжатия исходного изображения (32*32) и обработки в градациях серого вычисляется сжатие, а после дискретного косинусного преобразования вычисляется среднее значение для первых 8*8 пикселей изображения 32*32 и 8*8 пикселей. значение пикселя больше, чем среднее значение 1, меньше, чем среднее значение 0, полученная 64-битная информация об отпечатке пальца является значением phash исходного изображения. Алгоритм имеет высокую точность и низкую скорость.

В соответствии с приведенными выше тремя алгоритмами можно рассчитать хеш-значение отклика двух изображений и использовать расстояние Хэмминга двух изображений для определения их сходства.Чем больше расстояние Хэмминга, тем ниже сходство и Чем меньше расстояние Хэмминга, тем выше сходство.

1.2 Сравнение помехоустойчивости различных алгоритмов

Два набора тестовых наборов выбираются из видеоконтента, и три классических перцептивных алгоритма хеширования сравниваются путем разработки экспериментов по способности противостоять помехам.

Набор тестов 1:

Сравнительные результаты

тестовый набор 2

Сравнительные результаты

По результатам экспериментов было обнаружено, что Hash имеет низкую точность расчета схожести изображений и не может удовлетворить фактические потребности бизнеса.

2. Использование сверточных нейронных сетей для расчета сходства изображений

2.1 Комплексный подход

При использовании сверточной нейронной сети для вычисления сходства один из методов заключается в непосредственном использовании сквозного метода, использовании сверточных слоев для извлечения признаков двух изображений, а затем использовании полносвязного слоя для вывода «совпадающих изображений». степень" двух картинок. См. [1] статью CVPR 2015 г.: «Учимся сравнивать фрагменты изображений с помощью сверточных нейронных сетей», а соответствующие пояснения на китайском языке можно найти в [2]: http://blog.csdn.net/hjimce/article/details/50098483.

Этот метод имеет очевидные преимущества для расчета подобия небольшого количества изображений, но он не подходит для сцены сопоставления подобия из большого количества изображений, например при поиске видео. Как правило, общие шаги поиска видео таковы:

Если предположить, что в видеобиблиотеке 10 000 стоковых видео и каждое видео извлекает 10 изображений, библиотека кадров содержит 100 000 изображений, а количество сравнений, необходимых для одного видеозапроса, составляет: 10 x 100 000 = 1 миллион раз.

Поэтому, хотя этот метод имеет высокую точность для вычисления подобия изображений, он слишком требователен к вычислительным ресурсам для поиска видео.

2.2 Способ выделения промежуточных продуктов

Поскольку суть операции свертки заключается в извлечении признаков, матрица, выводимая слоем свертки, естественным образом представляет различные признаки.

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

Используя предварительно обученную модель VGG16 для тестирования, структура сети выглядит следующим образом (без полносвязного слоя):

 

 

Принимая результат вывода block5_pool в качестве целевого продукта (можно использовать и другие слои), можно увидеть, что вывод этого слоя представляет собой матрицу формы (7,7,512), мы сначала используем набор картинок (исходная сеть ) для тестирования, чтобы убедиться, что результат примерно такой, как ожидалось:

Приведенные выше шесть тестовых изображений: исходное изображение, добавление небольшого количества текста, изменение небольшого количества нижней части, обрезка нижней части, изменение половины нижней части и еще одно совершенно другое изображение. После вычисления массива формы 7x7x512 с помощью модели свертки для каждого изображения вычислите квадратную сумму разности между массивами признаков первого изображения и следующих пяти изображений соответственно и нормализуйте результаты для облегчения наблюдения.Результаты следующие :

Diff 1 - 2: 2 Diff 1 - 3: 128 Diff 1 - 4: 182 Diff 1 - 5: 226 Diff 1 - 6: 377

Из результатов наблюдения видно, что разница между первой картинкой и последующими картинками становится все больше и больше. А два значения 2 и 377 представляют очень похожие и совершенно разные картинки, с определенной степенью узнаваемости.

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

 

Метод вычисления разницы для видео заключается в следующем: каждое видео получает кадр изображения каждую 1 секунду, циклически сравнивает кадры изображения в каждой соответствующей позиции двух видео, вычисляет значение разницы и, наконец, делит его на количество кадров для получить среднюю разницу. В случае, когда два номера кадров несовместимы, преимущество имеет меньшее количество кадров, а дополнительные кадры не обрабатываются. Значение разницы между изображениями вычисляется так же, как описано выше, и результаты следующие:

Diff 0 - 1: 6

Diff 0 - 2: 4

Diff 0 - 3: 2

Diff 0 - 4: 22

Diff 0 - 5: 26

Из экспериментальных результатов видно, что для случаев кадрирования, субтитров и регулировки яркости значения разницы все одного порядка, что значительно меньше, чем в случае разных видео, но для случая вращения, этот метод недействителен.

3. Алгоритм сопоставления подобия, основанный на локальных инвариантных признаках

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

3.1 Испытание на помехоустойчивость

Используйте opencv+python для извлечения функций SIFT из тестового образа:

Далее проверьте соответствие характерных точек одной и той же культуры, севооборота и т. д.:

Обрезать:

Субтитры + изменение размера:

Регулировка яркости:

Повернуть на 90 градусов:

Разные видео:

Судя по результатам испытаний, SIFT обладает хорошей защитой от помех для обнаружения функций.

3.2 Проверка эффективности поиска

После того, как предварительно определено использование локальных инвариантных признаков для извлечения признаков, требуется дальнейшее тестирование: построить набор тестов, построить систему извлечения и поиска признаков, а также проверить такие показатели, как точность и полнота. Протестировано на основе проекта со ссылкой на статью Араужо и Бернда Гирода 2017 года: «Поиск крупномасштабного видео с использованием ImageQueries».

Подготовка набора данных:

1. Библиотека изображений: возьмите 1000 видео онлайн и рисуйте изображение видеокадра каждую 1 секунду для каждого видео в качестве общей библиотеки изображений.

2. Запрашиваемое изображение: определите 7 методов преобразования изображения: поворот, растяжение, регулировка яркости, обрезка, добавление субтитров и отсутствие обработки Каждое преобразование генерирует 100 образцов. Каждый образец генерируется путем случайного выбора видео из 1000 видео и случайного выбора кадра из всех кадров изображения. Таким образом, всего можно запросить 700 изображений.

Извлечение локальных признаков состоит из двух частей: обнаружения характерных точек и описания характерных точек.

3.2.1 Извлечение признаков SIFT + дескриптор SIFT

Используйте SIFT для извлечения функций для всех стоковых изображений и изображений, которые необходимо запросить, и используйте функции для извлечения 700 тестовых образцов из базы данных поиска.Показатель отзыва и уровень точности рассчитываются следующим образом:

Результаты показывают, что уровень точности низок.Наблюдая за результатами ошибок, обнаруживается, что количество признаков, извлеченных из некоторых изображений, невелико, даже только однозначные, в то время как обычное изображение может достигать сотен и тысяч точек признаков.Легко чтобы соответствовать неправильным образцам. При установке ограничения «минимальное количество выборок», когда количество выборок превышает пороговое значение, результат запроса считается «заслуживающим доверия».

После тестирования порог «минимального количества выборок» был установлен равным 30, а также был добавлен индикатор «коэффициент исключения», указывающий, что минимальное количество выборок не достигнуто и запись запроса не заслуживает доверия. После исключения образцов со слишком малым количеством признаков результаты теста выглядят следующим образом:

Результаты показывают, что после добавления показателей «минимальное количество выборок» и «коэффициент исключения» показатель точности значительно улучшился, но все еще остается коэффициент исключения около 20%, то есть пятая часть запросов не вернуть достоверные результаты.

3.2.2 Извлечение аффинных признаков Гессе + дескриптор SIFT

Чтобы еще больше повысить точность, ссылаясь на инженерное описание в [4], лучше заменить обнаружение характерных точек SIFT на обнаружение признаков по методу Гессе, то есть сначала использовать метод Гессе для обнаружения характерных точек, а затем затем используйте дескриптор SIFT для описания функций. После перехода на Hessian-Affine результаты теста следующие:

Результаты показывают, что как показатель отзыва, так и уровень точности улучшились, а уровень исключений снизился до 4%.

4. Вывод

По результатам экспериментальных испытаний дизайна было обнаружено, что вычисление сходства на основе локальных инвариантных признаков обладает хорошей способностью защиты от помех, точность выше, чем у традиционного перцептивного алгоритма хэширования, а поддержка инвариантности вращения лучше, чем у сверточной нейронной сети. . Наконец, взвешиваются вычислительная сложность и эффективность поиска, и в конце для обнаружения характерных точек выбирается Hessian-Affine, а SIFT используется в качестве дескриптора для вычисления сходства изображений.

5. Тенденции

Хотя вычисление сходства изображений, основанное на инвариантности локальных признаков, превосходит возможности защиты от помех и вычислительной сложности, оно может выражать только неглубокие характеристики изображения, в то время как сверточная нейронная сеть способна выражать многоуровневую семантику. функции уровня выражают угловые функции, средний слой объединяет угловые функции для выражения компонентов объекта, а высокий уровень дополнительно выражает весь объект.Выбор разных сверточных слоев будет извлекать функции на разных уровнях. Сочетание извлечения локальных признаков и сверточной нейронной сети на клиентах с высокими требованиями к вычислительной сложности и эффективности поиска компенсирует недостатки друг друга, подчеркивает преимущества и может принести лучшие результаты, которые будут дополнительно изучены в будущем.

использованная литература:

[1] CVPR, 2015 г. «Учимся сравнивать фрагменты изображений с помощью сверточных нейронных сетей».

[2] http://blog.csdn.net/hjimce/article/details/50098483

[3] Араужо, А. и Жирод, Б. «Масштабный поиск видео с использованием ImageQueries», 2017 г.

[4] https://github.com/andrefaraujo/videosearch.