Раскрыта технология «сканирования и распознавания вещей» WeChat

машинное обучение программист Идентификация изображения WeChat

Автор: breezecheng, исследователь приложений Tencent WXG

Код сканирования WeChat глубоко укоренился в сердцах людей, и версия объекта сканирования WeChat для iOS была официально запущена 12.23, от идентификации изображений определенных форм кодирования (QR-код / ​​код апплета / штрих-код / ​​перевод сканирования) до точного выявление товарных изображений (обувь/перевод) в природных сценах сумки/красота/одежда/бытовая техника/игрушки/книги/еда/ювелирные изделия/мебель/другие товары), какие трудности необходимо преодолеть? Чтобы объединить ценный экологический контент в WeChat, такой как электричество Бизнес, энциклопедия и информация отображаются, какие новые сценарии посадки будут созданы?Эта статья объяснит подробно.

1. Просмотрите обзор

1.1 Что делает Sweep and Recognize Objects?

Сканирование для идентификации объектов относится к использованию изображений или видео (карты товаров: обувь/сумки/красота/одежда/бытовая техника/игрушки/книги/еда/ювелирные изделия/мебель/другие товары) в качестве входных данных для извлечения ценности экологической информации WeChat. (электронная коммерция + энциклопедия + информация, как показано на рисунке 1) и отображать ее для пользователей. Здесь мы в основном охватываем полномасштабную высококачественную мини-программу электронной коммерции WeChat, охватывающую сотни миллионов SKU продуктов, которая может помочь пользователям совершать покупки и размещать заказы напрямую. сфотографировали товар пользователям.

Рисунок 1. Принципиальная схема функции сканирования и идентификации объектов

Лучше попробовать.Вы можете обновить новую версию ios на WeChat → сканирование → опыт самостоятельно.Вы также можете отправить нам отзыв об опыте через кнопку обратной связи в интерфейсе идентификации. На рис. 2 показан реальный снимок сканируемого объекта.

играть в

Рис. 2. Отсканируйте дисплей реального снимка

1.2 Какие есть сценарии сканирования и идентификации объектов?

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

А. Научно-популярные знания. Сканируя объект, пользователи могут получить общие сведения или анекдоты об объекте в экосистеме WeChat, такие как энциклопедия, информация и т. д., чтобы помочь пользователям лучше понять объект;

B. Сцена покупок. Функция поиска одного и того же предмета позволяет пользователям немедленно находить тот же предмет в электронной коммерции апплета WeChat для любимого предмета, который они видят, и поддерживает пользователей для сканирования и покупки;

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

1.3 Какие новые технологии Sweep & Knows привносит в семейство Sweep?

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

Рисунок 3. Сканирование семьи

2. Анализ технологии сканирования

2.1 Сканирование общей системы распознавания

Ниже мы остановимся на полной технической схеме реализации сканирования для идентификации объектов.На рисунке 4 показана общая схема сканирования. Структура в основном включает 4 части:

1) Ссылка запроса пользователя;

2) Автономное складирование товарной инспекции;

3) Поиск по тому же абзацу + ссылка на приобретение информационной энциклопедии;

4) Модель обучения и развертывания.

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

Рисунок 4. Общая схема сканирования и распознавания объектов

построение данных

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

Исследование и разработка алгоритмов

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

Строительство платформы

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

2.2 Сканирование и идентификация построения данных

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

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

Рисунок 5. Построение обучающих данных (модуль видения)

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

2.2.1 Дедупликация изображений

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

1) Дедупликация MD5, удалить точно такую ​​же картинку;

2) Дедупликация хэша, помимо полного повторения изображения, она также может удалять изображения, подвергшиеся некоторой простой обработке исходного изображения, такой как изменение яркости, масштаба, контраста, резкости краев, размытия, цветности и угла поворота изображения. исходное изображение. Сохранять эти изображения не имеет смысла, потому что стратегия увеличения данных при обучении модели может покрыть их. Обычно используемая дедупликация хэшей включает в себя aHash, dHash, pHash и т. д. Для получения более подробной информации см. соответствующие статьи [1, 2]. Мы сосредоточимся на сравнении скорости и надежности каждого алгоритма дедупликации, как показано на рисунке 6 ниже.

Рисунок 6. Сравнение скорости и надежности распространенных алгоритмов дедупликации

Сравнивая цифры на рисунке 6, видно, что dHash имеет самую быструю скорость дедупликации, потому что ему нужно только вычислить разницу яркостей соседних пикселей, что очень просто и легко в обращении, и имеет хорошую устойчивость к простому ps. Работа изображения Небольшие изменения, такие как яркость, масштаб, контрастность, резкость краев, размытие, цветность и т. д., обладают хорошей способностью защиты от помех и помогают нам очищать больше недействительных изображений. В конце концов, мы также использовали dHash для дедупликации нашей обучающей библиотеки.В 11 категориях полномасштабных товарных библиотек сканеров было очищено около 30% дубликатов изображений, что в общей сложности составило около 300 Вт.

2.2.2 Обнаружение конструкции базы данных

Из общей схемы, показанной на рис. 4, видно, что первым шагом к сканированию и идентификации объектов является обнаружение объекта, то есть сначала локализация области, интересующей пользователя, и удаление помех фона на последующие ссылки. Обнаружение объекта в основном считается основной операцией большинства продуктов для поиска изображений, таких как Polaroid Ali, распознавание фотографий Baidu и апплет распознавания цветов Microsoft, как показано на рис. 7 ниже. Конечно, алгоритмы обнаружения объектов различаются.Например, Polaroid использует алгоритм обнаружения объектов, Baidu Image Recognition использует прогнозирование выступающих областей, а Microsoft Recognition Flower требует, чтобы пользователи взаимодействовали с позиционированием. Чтобы освободить пользователей, мы надеемся, что алгоритм может автоматически определять область продукта.Учитывая, что предсказание заметной области сложно справиться с ситуацией, когда в поле зрения появляется несколько продуктов, подобно Polaroid, мы используем более точный алгоритм обнаружения объектов для определения местоположения продукта и выбор продукта с наивысшей достоверностью для последующего поиска продукта и отображения информационной энциклопедии.

Рисунок 7. Схематическая диаграмма основной операции обнаружения тела в часто используемых продуктах поиска изображений

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

Ручное обнаружение и аннотацияОбычно используемый инструмент ручного обнаружения и маркировки labelimg показан на рисунке ниже Нам нужно пометить позиции 11 категорий товаров в библиотеке товаров сканера и соответствующие метки категорий. Учитывая огромные затраты времени и денег на ручную маркировку, мы используем эту стратегию только для маркировки небольшого количества образцов, а в большинстве случаев используем последующие алгоритмы для автоматической маркировки кадров.

Рис. 8. Labelimg, широко используемый инструмент ручного обнаружения и аннотирования

Аннотация слабо контролируемого обнаруженияОсновная идея этого алгоритма заключается в том, что временные затраты на маркировку категории объекта, содержащегося на изображении, намного ниже, чем на маркировку категории кадра + Как использовать только информацию о категории всего изображения для автоматического вывода информация о положении объекта, чтобы завершить автоматическое обнаружение и маркировку? Большое количество исследователей в академических кругах и промышленности изучали и исследовали это направление.Основная идея состоит в том, чтобы выделить локальную область значимости на изображении и использовать ее для представления семантической информации о категории всего изображения, как показано на рисунке 9. статья. Выделен алгоритм в левом нижнем углу рисунка 9. Это первая статья в отрасли, в которой используется глубокое обучение для слабо контролируемого обнаружения. Он был разработан братьями из лаборатории. Мы также участвовали в ImageNet14 на основе этого алгоритма. Соревнования заняли небольшую ветвь чемпионата. Хотя зрение очень хорошее, алгоритм обнаружения слабого наблюдения имеет серьезный недостаток, то есть его легко подогнать к локальной области.Например, позиция, подобранная из большого количества изображений кошек, является областью морды кошки, а трудно найти полную катушку Местоположение, что неприемлемо для нас, чтобы получить тот же продукт, нам нужно точно вспомнить тот же продукт (мелкозернистый поиск), вся информация очень важна, поэтому алгоритм в основном был передан нами.

Рис. 9. Часто используемые алгоритмы обнаружения со слабым контролем [3, 4, 5, 6]

Аннотация полуконтролируемого обнаруженияПо сравнению со слабо контролируемым алгоритмом обнаружения полууправляемый алгоритм обнаружения ближе к самой задаче: модель обнаружения инициализируется на основе небольшого количества ручной маркировки кадров обнаружения + обнаружение баз данных с открытым исходным кодом, а затем модель используется для автоматической маркировки остальной части базы данных товаров и использования добавленных меток для перезаписи алгоритма Обновите модель обнаружения, а затем итеративно выполните обновление модели и автоматическую маркировку. Конечно, чтобы контролировать непрерывное положительное возбуждение вышеуказанных звеньев, мы вручную корректируем размеченные образцы с низкой достоверностью.Схема алгоритма показана ниже. На основе этого алгоритма мы выполнили маркировку всей базы данных обнаружения товаров.В 11 полномасштабных базах товаров маркированы миллионы кадров обнаружения, из которых только сотни тысяч активируются вручную.Временные и денежные затраты на маркировку.

Рисунок 10. Схематическая диаграмма алгоритма полууправляемого обнаружения

2.2.3 Создание базы данных поиска

После завершения дедупликации изображения и обнаружения объекта у всех возникает естественная идея: можно ли напрямую использовать эту партию вырезанных изображений продукта в сочетании с номером артикула для обучения модели поиска.Ответ — нет, а изображение продукта после вырез по-прежнему доступен.Есть две основные проблемы: 1. Проблема шума одной и той же модели, то есть есть изображения разных моделей под одним и тем же SKU, что может быть вызвано такими факторами, как загрузка пользователем неправильного изображения, продавец показывает частичную детализацию изображения, а также ошибку обнаружения и вырезания; 2. Проблема слияния одного и того же стиля, разные SKU могут соответствовать одному и тому же стилю продуктов. Если они не объединены, количество категорий будет быстро увеличиваться. , и модель будет трудно сойтись. Поэтому перед обучением модели поиска нам необходимо выполнить ту же самую модель шумоподавления и ту же модель слияния, Мы предлагаем тот же алгоритм шумоподавления модели, основанный на автоматической кластеризации, и тот же алгоритм слияния моделей, основанный на матрице классификации путаницы, как показано ниже. 11 показано. Мы проанализируем этот алгоритм отдельно в следующих разделах.

Рис. 11. Схема того же шумоподавления + тот же алгоритм слияния
2.2.3.1 То же шумоподавление

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

Рисунок 12. Отображение эффекта кластеризации и сравнение скорости распространенных алгоритмов кластеризации

Теорию и процесс реализации этих алгоритмов вы можете найти в [7], если вам это интересно. Сравним и проанализируем общие показатели вышеперечисленных алгоритмов кластеризации на рисунке 13. Рассматривая особенности кластеризации товарных SKU, больше внимания уделяем противошумовой способности алгоритма кластеризации, адаптивности к распределению различных характеристик SKU и скорость обработки , после всестороннего анализа и практики мы выбираем DBSCAN в качестве нашего алгоритма кластеризации и преобразуем его, чтобы он больше подходил для кластеризации и шумоподавления товаров, мы называем его иерархическим методом DBSCAN.

Рисунок 13. Сравнение различных показателей часто используемых алгоритмов кластеризации

Иерархический DBSCAN в основном делится на два этапа, а именно: этап 1. Поиск самого большого кластера с наименьшим расстоянием и этап 2. Повторное посещение выборок шума, извлечение таких же сложных выборок и увеличение разнообразия. Ниже я кратко опишу эти два шага.

Иерархический DBSCAN Шаг 1Целью этого шага является выбор самого большого кластера с наименьшим расстоянием в SKU, поскольку выборки одной и той же модели в SKU распределены более регулярно, чем выборки шума, и их число обычно больше. Схематическая диаграмма алгоритма показана ниже на рисунке 14. Минимальное количество выборок в нашей окрестности установлено равным 2. После соединения всех основных точек, предполагая наличие нескольких кластеров, мы выбираем кластер с наибольшим числом в качестве произведения изображение, которое мы выбрали, а остальные образцы в качестве образцов шума.

Рисунок 14. Схематическая диаграмма шага 1 процесса иерархического метода DBSCAN

На рисунке 15 показан эффект кластеризации шага 1 фактического SKU, из которого мы можем сделать вывод, что максимальная кластеризация очень проста из-за строгого контрольного порога, и на самом деле есть несколько сложных положительных выборок, ошибочно принятых за шум в шуме (обозначенных значком красный круг). Эти сложные положительные выборки очень важны для повышения надежности и способности к обобщению модели поиска, поэтому нам нужно извлечь сложные положительные выборки в шуме обратно в самый большой кластер слева, что и завершает шаг 2.

Рис. 15. Фактическое отображение эффекта кластеризации на шаге 1 определенного SKU

Иерархический подход DBSCAN Шаг 2Чтобы извлечь сложные положительные выборки в выборках шума и улучшить богатство обучающих выборок, нам нужно повторно посетить выборки шума, вычислить расстояние между выборками шума и самым большим кластером и переназначить выборки шума ближнего действия, которые соответствуют пороговому условию для самого большого кластера кластера, как показано на рисунке 16 ниже.

Рисунок 16. Схематическая диаграмма второго шага иерархического процесса DBSCAN
2.2.3.2 Объединение одного и того же параграфа

Цель слияния одного и того же стиля — объединить продукты с разными SKU, но с одним и тем же стилем, чтобы получить актуальную и эффективную категорию стиля. Мы используем категориальную матрицу путаницы для полного автоматического слияния однотипных данных. На основе предварительно объединенных данных мы можем обучить начальную модель классификации и рассчитать вероятность путаницы между любыми двумя SKU. Вероятность путаницы определяется как p_ij=c_ij/n_i, где p_ij — вероятность путаницы, согласно которой i-й класс, по прогнозам, будет j-м классом, c_ij — количество выборок, которые модель предсказывает i-му классу. — j-й класс, а n_i — фактическая выборка i-го класса. Матрица вероятности путаницы для определенного артикула показана ниже.Можно видеть, что когда два артикула на самом деле одного стиля, как показано на рисунке 17 категории 1 и 3 посередине слева, то их трудно различить, и вероятность перепутать будет высока. Установив пороговое значение для объединения одного и того же товара, мы смогли объединить одни и те же SKU. В реальном рабочем процессе мы используем итерационные шаги в правой части рисунка ниже, то есть сначала используем высокий порог для объединения той же модели с наивысшей достоверностью, затем обновляем оптимизированную модель классификации и снижаем порог до объединить больше SKU одной и той же модели, описанные выше шаги будут выполняться итеративно, пока не исчезнет необходимость в объединении SKU одного и того же типа.

Рисунок 17. Слева: схематическая диаграмма вероятности путаницы между артикулами продуктов, справа: схематическая диаграмма итеративного процесса слияния

После слияния того же абзаца масштаб полученной нами учебной поисковой базы данных показан на рисунке ниже, в общей сложности 7w+ мультикатегорий, 1kw+ обучающих выборок по сравнению с текущими основными базами данных с открытым исходным кодом, такими как ImageNet (1000 классов, 130w+) и OpenImage (6000 классов), 900w+), более многочисленны по категории и количеству.

2.2.3.2 Экономическая выгода

Здесь мы используем алгоритм для шумоподавления той же модели + слияния одной и той же модели и используем чистую ручную очистку для сравнения с огромным увеличением времени и денег и ускорением итерации всего проекта.

2.3 Исследование и разработка алгоритмов сканирования и распознавания объектов

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

2.3.1 Обнаружение объекта

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

Рисунок 18. Распространенные алгоритмы глубокого обучения для обнаружения объектов

Рассматривая обнаружение товаров, мы в основном обращаем внимание на три проблемы: 1. Проблема скорости 2. Несбалансированные категории обнаружения и маркировки 3. Большой разброс в масштабе объекта Объединяя эти три проблемы, мы выбираем ретинанет [8] на рисунке 19 как наш детектор. Как мы все знаем, ретинанет относится к одноступенчатому детектору, который напрямую возвращает положение и категорию объектов из исходного изображения, поэтому он быстрый Во-вторых, он принимает архитектуру пирамиды, которая эффективно адаптирована к многомасштабным объектам. Обнаружение Наконец, ретинанет предлагает фокусную потерю, которая может эффективно решить проблему дисбаланса адаптивного класса и проблему сложности образца. В будущем мы будем использовать стратегию без привязки для дальнейшей оптимизации. Головная часть ретинанета дополнительно ускоряет скорость обнаружения модели, которая здесь не будет представлена.

Рисунок 19. Схематическая диаграмма архитектуры алгоритма retinanet

Мы сравниваем retinanet-resnet50fpn с классическим одноэтапным детектором yolov3 и двухэтапным детектором fast-rcnn-resnet50-fpn, как показано в таблице 20 ниже. В оценочных данных используются 7 000 изображений, собранных аутсорсингом и охватывающих категории 11. Сравнение результатов в таблице показывает, что retinanet достиг хорошего компромисса между скоростью и точностью. В дальнейшем мы будем дополнительно оптимизировать скорость ретинанета через tensorRT, и под спойлерами максимальная скорость может достигать 80FPS.

Рисунок 20. Схематическая диаграмма архитектуры алгоритма retinanet

2.3.1 Прогноз категории

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

Рисунок 21. Проблемы с категориями, которые используют детекторы напрямую

Так как же повысить точность распознавания категорий? Здесь мы используем большое количество поисковых онлайн-библиотек, чтобы повысить точность предсказания категорий. То есть мы один раз извлекаем пользовательский запрос в поисковой базе данных, запрашиваем категорию топ-20 ближайших соседей и комбинируем предсказанную категорию детектора для повторного взвешивания голосования для получения окончательной категории объекта. В конце концов, с помощью обнаружения + поиска мы можем значительно повысить точность предсказания категории почти на 6 пунктов.

2.3.2 Поиск по тому же абзацу

Тот же поиск есть душа сканирования и узнавания вещей. В отличии от общего поиска картинок по картинкам, вам нужно найти только похожие картинки.Этот же поиск является мелкозернистым поиском, и искать нужно точно такую ​​же модель запроса.Например Huawei watch GT2 нужны для поиска этих часов. Это часы другой марки, что делает поиск той же модели очень сложным. На рисунке 22 ниже перечислены трудности и проблемы поиска той же модели: 1. Проблема смешения классов, т.е. , как отличить похожие модели от одной и той же модели 2. Проблема припоминания той же модели, то есть есть большая разница в самой той же модели, как эффективно извлечь ту же модель. Учитывая эти трудности, мы предлагаем 9 основных направлений оптимизации нашей той же модели поиска предметов. По одному объяснено ниже.

Рисунок 22. Трудности и проблемы при поиске одного и того же предмета
2.3.2.1 Модель классификации того же поиска

Это наша базовая модель. Модель классификации, которую мы использовали, показана слева на рисунке 23 ниже. Как мы все знаем, модель классификации использует softmax для сопоставления логического значения с вероятностным значением категории.Как показано в таблице в правом верхнем углу рисунка ниже, softmax может хорошо усиливать разницу логического значения и подхода вероятность правильной категории равна 1, что способствует быстрой сходимости модели. На рисунке ниже мы также показываем границу решения модели классификации softmax и распределение признаков, изученных в категории mnist-10 [9, 10]. Из наблюдения видно, что пространство признаков, изученное классификатором softmax, имеет три основных свойства:

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

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

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

Рисунок 23. Анализ важных характеристик модели классификации
2.3.2.2 Улучшение модели классификации для того же поиска 1 Операция нормализации

Существует два вида нормализации: нормализация веса классификации W на рисунке 23 и нормализация признака x. Итак, какова роль нормализации? Давайте сначала поговорим о взаимосвязи между модульной длиной веса W и неравномерным распределением пространства признаков. Некоторые исследователи [10] показали, что чем больше по модулю длина W, соответствующая категории с большим количеством выборок в обучающей базе данных, тем больше модель представления обращает внимание на точность классификации категории, игнорируя при этом другие категории с небольшим числом выборок, таких как Как показано на рис. 24, базы данных MNIST и WebFace проверяют приведенные выше сопоставления. На самом деле, мы надеемся, что каждой категории можно уделить одинаковое внимание, и каждая категория в пространстве признаков может быть сбалансированно разделена на все пространство, поэтому нам нужно W нормализовано, чтобы сделать веса всех категорий согласованными, то есть

:

Рисунок 24. Зависимость отображения между количеством выборок каждого класса и классификационным весом W

Операция нормализации признаков аналогична, а именно:

Просмотрите границу решения для классификации softmax:

Мы нормализуем как W, так и x, поэтому граница решения зависит только от угла, заставляя распределение признаков быть более веерообразным после сходимости обучения модели, что хорошо для косинусного поиска. Однако одновременная нормализация этих двух факторов затруднит сходимость модели. Можете подумать, почему? Ссылаясь на функцию softmax на рисунке 23, поскольку веса и признаки нормализованы, максимальное логическое значение классификации равно 1, а минимальное равно - 1. Вероятность softmax, соответствующая категории gt в том же трехклассовом обучении классификации, составляет всего лишь Максимум 0,78, Намного меньше 1, модель по-прежнему имеет большие потери, сходиться с которыми непросто. Решение простое в сравнении цен, и логическое значение может быть умножено на значение масштаба s, что расширяет дифференциацию и способствует сходимости модели.

2.3.2.3 Улучшение модели классификации для того же поиска 2. Маржа

Основная цель увеличения угла Margin состоит в том, чтобы сделать веерообразное распределение классификации softmax более удобным для поиска: то есть один и тот же класс более сгруппирован, а разные классы более удалены. На рис. 25 ниже показаны три общие стратегии увеличения запаса по углу: мультипликативный запас[10, 11], аддитивный запас по косинусу[12] и аддитивный запас по углу[13].

Рисунок 25. Сравнение обычного softmax и маржинального softmax

После увеличения поля внутриклассовые признаки, полученные с помощью модели классификации softmax, становятся более компактными, как показано на рис. 26 ниже. Еще несколько слов.По сравнению с мультипликативным полем, аддитивное поле легче обучать. Это связано с тем, что мультипликативное поле уменьшает монотонный интервал косинуса с [0, π] до [0, π/m], а интервал обновления градиента становится меньше, а монотонный интервал аддитивного запаса остается неизменным, что способствует сходимости модели.

Рис. 26. Сравнение обычных распределений функций softmax и margin softmax.
2.3.2.4 Улучшение модели классификации для потери ранжирования того же поиска 3

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

Рисунок 27. Модель классификации + архитектура модели ранжирования потерь

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

2.3.2.5 Модель классификации того же поиска и сравнение ее улучшенной производительности

Здесь мы сравниваем производительность модели классификации и ее улучшенной версии в задаче поиска элементов. Набор оценки представляет собой набор из 11 категорий товаров, которые мы собрали, в котором изображение комментария пользователя используется в качестве выборки запроса, а выборка поиска состоит из той же модели изображения продавца и коллекции шумов разных стилей. который может лучше имитировать базу данных онлайн-поиска. На рисунке 28 показано сравнение производительности модели классификации и ее улучшенной версии в категории ювелирных изделий.Видно, что: 1) После добавления поля нормализации и угловой добавки это ArcFace[13], и производительность поиска лучше, чем широко используемая модель классификации softmax; 2) добавление потерь при сортировке на основе модели классификации, такой как Hard Triplet Loss, производительность поиска лучше, чем обычно используемая softmax Модель классификации; 3) Классификация + нормализация + запас по углу + сортировка, как показано в последних двух строках, производительность дополнительно улучшается, но улучшение не особенно велико.

Рисунок 28. Сравнение производительности модели классификации и ее улучшенной версии
2.3.2.6 Многозадачная модель одного и того же поиска

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

Рисунок 29. Функция поиска, включающая несколько атрибутов продукта

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

Рисунок 30. Сеть многозадачного обучения для использования многоатрибутной аннотации

Другая стратегия заключается в автоматическом получении веса каждой задачи, которая изучалась многими исследователями.Здесь мы используем алгоритм проверки набора трендов [14] для автоматического вычисления веса каждой задачи, как показано на рисунке 31 ниже. Идея этого алгоритма относительно проста, то есть вручную устанавливаются высокие веса для основной задачи, такой как классификация стилей, а другие задачи взвешиваются в зависимости от их сложности оптимизации, например задачи, которые трудно оптимизировать (большие потери флуктуация и высокое абсолютное значение) имеют большой вес, легко оптимизируются с небольшими весами. После использования многозадачного совместного обучения модель

Рисунок 31. Многозадачная модель совместного обучения на основе алгоритма проверки набора трендов

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

Рисунок 32. Сравнение производительности поиска между многозадачной моделью и однозадачной моделью
2.3.2.7 Модель внимания для поиска одного и того же элемента

На рис. 22 мы описываем одну из больших проблем поиска по одному и тому же абзацу — смешение похожих абзацев с поиском по одному и тому же абзацу. Чтобы лучше отличать одну и ту же модель от похожих моделей, мы надеемся уделить больше внимания некоторым заметным областям, таким как логотип часов на рис. 33 ниже, выгравированный текст, логотип обуви, узор и т. д. . Существуют три широко используемые модели внимания [15].

Рисунок 33. Модель внимания

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

Рисунок 34. Сравнение эффективности поиска трех моделей внимания
2.3.2.8 Иерархическая модель восприятия сложности для поиска одного и того же элемента

Также для двух основных трудностей и проблем одного и того же поиска, а именно межклассовой путаницы и внутриклассовых различий, мы применяем иерархическую модель восприятия трудности, чтобы полностью уделить внимание этим двум проблемам, как показано на рисунке 35 ниже. Хотя это один и тот же стиль, степень сходства может быть очень разной.Например, сумка этого стиля меняется из-за угла съемки, окклюзии и т. д. Для негативов разных стилей есть и другие стили сумки, которые очень похожи, и разница относительно велика.Другие продукты включают алкоголь, губную помаду и т. д.

Рисунок 35. Характеристики иерархического распределения внутрикатегорийных различий и межкатегорийной путаницы одного и того же товара при поиске товаров

Структура модели Hierarchical Difficulty Perception Model [16] показана на рисунке 36. Ее ранговые потери распределяются в соответствии с иерархией. Первый слой предназначен для всех положительных и отрицательных образцов. Второй слой отвечает за более сложные положительные образцы. и отрицательные пары образцов, а третий слой отвечает за более сложные положительные и отрицательные пары образцов.Уровни отвечают за более сложные положительные и отрицательные пары образцов, и чем сложнее пары образцов, тем глубже спроектирована модельная сеть .

Рисунок 36. Иерархическая модель восприятия сложности

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

Рисунок 37. Тот же показатель замедления для иерархической модели восприятия сложности
2.3.2.9 Модель взаимного обучения одного и того же поиска

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

Рисунок 38. Модель взаимного обучения

В эксперименте мы используем resnet152 и inceptionv4 для взаимного обучения, а фактическое развертывание использует resnet152 для извлечения, и его производительность показана на рис. 39 ниже. В дополнение к увеличению времени обучения модели, взаимное обучение не добавляет никакой нагрузки онлайн-модели, но точность может быть значительно повышена.

Рисунок 39. Точность поиска одного и того же элемента в модели взаимного обучения
2.3.2.10 Частичное стирание различительной способности для поиска по тому же абзацу

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

Рисунок 40. Обычно используемые модели CNN уделяют слишком много внимания текстуре изображения и игнорируют форму

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

Рисунок 41. Локальное стирание заметности

У него еще будет время, чтобы компенсировать свою производительность.Экспериментальные результаты показаны ниже на рисунке 42. Локальное стирание значимости может значительно повысить точность поиска той же модели модели.

Рисунок 42. Производительность поиска одного и того же элемента со стиранием локальной значимости
2.3.2.11 Взаимное переупорядочение кода k ближайших соседей для одного и того же поиска

То, о чем мы говорили ранее, это оптимизация модели поиска, здесь мы говорим о том, как дополнительно оптимизировать результаты поиска модели поиска, то есть переупорядочение. При переупорядочивании я лично ценю алгоритм взаимного k-ближайших соседей [17], который очень прост и эффективен. Алгоритм взаимного обучения был впервые предложен для пешеходного повторного поиска, как показано ниже на рисунке 43. Основной вывод состоит в том, что для выборки запроса среди 10 лучших извлеченных выборок положительная выборка (тот же человек, что и запрос) заменяется запросом. При выборке исходные выборки запроса находятся в k-ближайших соседях, в то время как для отрицательных выборок (не тот же человек, что и запрос) в k-ближайших соседях отсутствуют исходные выборки запроса. Мера расстояния k-ближайших соседей, как показано в нижней части рисунка, на основе этой меры исходная сортировка может быть эффективно переупорядочена, и положительные выборки перемещаются вперед, а отрицательные выборки перемещаются назад.

Рисунок 43. Алгоритм взаимного обучения при повторной идентификации пешеходов

Но на самом деле мы не можем напрямую использовать этот алгоритм для одного и того же поиска товаров, потому что наш запрос — это карта комментариев пользователей, а карта поиска — карта бизнеса, они очень разные, в результате чего взаимные k ближайших соседей будут недействительны. , мы продолжим. Ключевым моментом является то, как оптимизировать пространство метрик признаков, чтобы уменьшить разницу доменов модели, а затем использовать взаимных k-ближайших соседей для переупорядочивания.

2.3.2.12 Сравнение конкурирующих продуктов

Наконец, мы проводим 11 типов оценки точности обнаружения на основе изображений размером 7k, загруженных пользователями, и в качестве рабочей среды используется графический процессор NVIDIA P4, чтобы сравнить различия в точности различных конкурирующих продуктов. Сравнительный тест показывает, что наш алгоритм лучше, чем JD.com, близко к Polaroid.

2.4 Сканирование конструкции платформы распознавания объектов

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

2.4.1 Платформа очистки данных

Чтобы ускорить ручную проверку и аннотирование вручную, мы разработали ряд инструментов, помогающих в маркировке и проверке точности модели, которые здесь не будут объясняться.

2.4.2 Модель обучающей платформы

В последние годы платформы машинного обучения быстро развивались. Многие компании имеют свои собственные платформы глубокого обучения. У нас меньше людей и меньше денег. В основном мы разрабатываем уникальные платформы, которые отвечают тем же требованиям к продуктам, основанным на платформах глубокого обучения с открытым исходным кодом. В основном мы разработали два набора одной и той же поисковой платформы, caffe и pytorch, которые будут представлены позже.

Рис. 44. История развития платформ машинного обучения [18].
2.4.2.1 caffe

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

1) Поддержка стратегий увеличения данных; 2) Поддержка загрузки данных нескольких типов; 3) Поддержка алгоритмов обучения дистилляции/взаимного обучения; 4) Поддержка алгоритмов модели восприятия сложности; 5) Поддержка алгоритмов модели сортировки; 6) Поддержка увеличения размера пакета.

Достоинства и недостатки caffe очевидны: 1) быстрое обучение и стабильные результаты, 2) на основе prototxt можно быстро протестировать любую комбинацию различных мультимодельных/мульти-меточных/мульти-данных источников. Его недостатки: 1) медленная разработка новых алгоритмов, 2) негибкая отладка, 3) плохая оптимизация памяти, 4) мало обновлений академических передовых методов. Четвертый недостаток более фатальный: мы не можем быстро следовать академическому предисловию, поэтому впоследствии решили разработать поисковую платформу pytorch.

Рисунок 45. Базовая архитектура платформы caffe
2.4.2.2 pytorch

Разработанная нами архитектура поиска pytorch показана на рисунке 46 ниже, которая в основном поддерживает все функции платформы поиска кофе: 1) поддерживает стратегии увеличения объема данных; 2) поддерживает загрузку данных нескольких типов; 3) поддерживает обучение дистилляции/взаимное обучение. алгоритмы; 4) поддержка алгоритма модели сортировки; 5) поддержка более популярных сетей EfficientNet; 6) поддержка шумоподавления/объединения одной и той же модели/извлечения; 7) поддержка обучения смешанной точности. Плюсы и минусы pytorch тоже весьма очевидны.Его плюсы: 1)автоматический вывод, высокая эффективность разработки алгоритма 2)динамический граф, программирование на Python, простота использования 3)Tensorboard удобен для визуализации 4)на Github много ресурсы, не отставая от передовых; 5 )Pytorch1.3 Поддерживается мобильное развертывание. Конечно, pytorch не идеален, по сравнению с caffe имеет свои недостатки: 1) Он не так удобен, как caffeprotxt в многозадачном бесплатном сочетании.

Рисунок 46. Построение той же поисковой платформы для pytorch

2.4.3 Платформа развертывания модели

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

Рисунок 47. Обучение модели развертыванию
2.4.3.1 Платформа развертывания модели: tensorRT

tensorRT — это платформа развертывания, разработанная NVIDIA, которая может эффективно уменьшить объем памяти модели и ускорить ее скорость. Мы не будем раскрывать детали здесь.Вы можете обратить внимание на модель обнаружения и модель извлечения ниже.После квантования и ускорения tensorRT, видеопамять и скорость сделали огромный скачок.

Рисунок 48. Ускорение развертывания tensorRT
2.4.3.2 Платформа развертывания модели: ncnn

Для мобильного развертывания мы используем архитектуру ncnn, разработанную Tencent.Ее преимущества показаны на левом рисунке Рисунка 49 ниже, а демонстрация показана на правом рисунке.

играть в

Рисунок 49. Развертывание мобильного терминала мобильного телефона ncnn

2.4.4 Платформа системы планирования задач

Платформа мобилизации задач разработана нашими закулисными богами и в основном используется для эффективного вызова каждой задачи.Учитывая, что наша поисковая база данных представляет собой базу данных сотен миллионов, нам необходимо обеспечить, чтобы платформа обладала лучшей отказоустойчивостью, устойчивостью к катастрофам, и надежный механизм. Как показано на Рисунке 50 ниже, конечно же, то, что показано здесь, — это лишь вершина айсберга, позже боги закулисья подробно объяснят это в КМ.

Рисунок 50. Платформа планирования задач поиска на уровне миллиардов

3. Сканируйте, чтобы знать вещи и перспективы

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

Рисунок 51. Будущие перспективы сканирования и распознавания вещей

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

[1] Внутренние документы компании

[2] blog.CSDN.net/не делать TDI…

[3] Learning Deep Features for Discriminative Localization,CVPR16

[4] Weakly Supervised Object Localization with Latent Category Learning, ECCV14

[5] Weakly Supervised Deep Detection Networks, arXiv16

[6] Семя, расширение и ограничение: три принципа сегментации изображений со слабым наблюдением, arXiv16

[7] https://scikit-learn.org/stable/modules/clustering.html

[8] Focal Loss for Dense Object Detection, arXiv18

[9]zhuanlan.zhihu.com/p/76391405

[10] SphereFace: Deep Hypersphere Embedding for Face Recognition,arXiv18

[11] Large-Margin Softmax Loss for Convolutional Neural Networks, arXiv17

[12] CosFace: Large Margin Cosine Loss for Deep Face Recognition, arXiv18

[13] ArcFace: Additive Angular Margin Loss for Deep Face Recognition, arXiv18

[14] Adaptively Weighted Multi-task Deep Network for Person A!ributeClassification, MM17

[15] Параллельное пространственное и канальное «сжатие и возбуждение» в полностью сверточных сетях, arXiv18

[16] Hard-Aware Deeply Cascaded Embedding, ICCV17

[17] Re-ranking Person Re-identification with k-reciprocal Encoding, CVPR17

[18] Внутренние документы компании