Перейти к содержимому

Что такое распознавание объектов

  • автор:

Распознавание объектов

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

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

Традиционно задачи распознавания образов включают в круг задач искусственного интеллекта.

Направления в распознавании образов

Можно выделить два основных направления [1] :

  • Изучение способностей к распознованию, которыми обладают живые существа, объяснение и моделирование их;
  • Развитие теории и методов построения устройств, предназначенных для решения отдельных задач в прикладных задачах.

Формальная постановка задачи

Распознавание образов — это отнесение исходных данных к определенному классу с помощью выделения существенных признаков, характеризующих эти данные из общей массы несущественных данных.

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

Наиболее часто в задачах распознования образов рассматриваются монохромные изображения, что дает возможность рассматривать изображение как функцию на плоскости. Если рассмотреть точечное множество на плоскости T , где функция x(x,y) выражает в каждой точке изображения его характеристику — яркость, прозрачность, оптическую плотность, то такая функция есть формальная запись изображения.

Множество же всех возможных функций x(x,y) на плоскости T — есть модель множества всех изображений X . Вводя понятие сходства между образами можно поставить задачу распознавания. Конкретный вид такой постановки сильно зависит от последующих этапов при распозновании в соответствии с тем или иным подходом.

Методы распознавания образов

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

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

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

Перцептрон как метод распознавания образов

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

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

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

  • 1. Если контрольный стимул не совпадает ни с одним из обучающих стимулов, то эксперимент связан не только с чистым различением, но включает в себя и элементы обобщения.
  • 2. Если контрольный стимул возбуждает некоторый набор сенсорных элементов, совершенно отличных от тех элементов, которые активизировались при воздействии ранее предъявленных стимулов того же класса, то эксперимент является исследованием чистого обобщения.

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

Примеры задач распознавания образов

  • Распознавание букв.
  • Распознавание штрих-кодов.
  • Распознавание автомобильных номеров.
  • Распознавание лиц.
  • Распознавание речи.
  • Распознавание изображений.
  • Распознавание локальных участков земной коры, в которых находятся месторождения полезных ископаемых.

Программы распознавания образов

  • FineReader
  • Readiris
  • NI Vision (на основе программного комплекса

См. также

  • Распознавание речи
  • OCR
  • Классификация (задача)
  • Искусственный интеллект
  • Метод обратного распространения ошибки

Распознавание образов с помощью искусственного интеллекта

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

Сегодня создаются и уже используются сети, в которых машины способны распознавать символы на бумаге и банковских картах, подписи на официальных документах, детектировать объекты и т.д. Эти функции облегчают труд человека и повышают точность и надежность различных рабочих процессов благодаря исключению из задачи человеческого фактора. Но научить компьютер распознавать объекты не так уж и просто. Одна из сложностей заключается в том, что компьютер видит не так же, как люди. У компьютера нет жизненного опыта и способности так же, как человеческий мозг идентифицировать объекты на изображения и видео. Изначально он не способен отличить дом от дерева, не имея каких‑то исходных данных. Чтобы научить компьютер видеть и понимать, что находится на изображении, люди используют технологии машинного обучения.

Для этого собирают большие базы данных, из которых формируют дата‑сеты. Выделив признаки и их комбинации для идентификации похожих объектов, можно натренировать модель машинного обучения распознавать нужные типы закономерностей. Конечно, даже после загрузки нескольких дата‑сетов модели могут неверно распознавать некоторые объекты. Если такое случается, модели «дообучают» на новых наборах данных.

Если, например, рассматривать сферу видеонаблюдения, то ее основой является анализ, первой фазой которого будет распознавание изображения (объекта). Затем искусственный интеллект с помощью машинного обучения распознает действия и классифицирует их. Но для того, чтобы распознать изображение, нейронная сеть должна быть прежде обучена на данных. Это очень похоже на нейронные связи в человеческом мозге — мы обладаем определенными знаниями, получаемыми в течение жизни, видим объект, анализируем его и идентифицируем. Также нейросети очень требовательны к размеру и качеству датасета, на котором она будет обучаться. Датасет можно загрузить из открытых источников или собрать самостоятельно. На практике это означает, что до определённого предела чем больше скрытых слоев в нейронной сети, тем точнее будет распознано изображение. Как это реализуется: картинка разбивается на маленькие участки, вплоть до нескольких пикселей, каждый из которых будет входным нейроном. С помощью синапсов сигналы передаются от одного слоя к другому. Во время этого процесса сотни тысяч нейронов с миллионами параметров сравнивают полученные сигналы с уже обработанными данными.

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

Распознавание образов — важная задача компьютерного зрения, используемая для обнаружения экземпляров визуальных объектов определенных классов (например, людей, животных, автомобилей и зданий) в цифровых изображениях, таких как фотографии или видеокадры. Целью обнаружения объектов является разработка вычислительных моделей, которые предоставляют наиболее фундаментальную информацию, необходимую приложениям компьютерного зрения: «Какие объекты находятся где?».

Как работает распознавание образов

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

1) Методы обработки изображений, как правило, не требуют исторических данных для обучения и по своей природе неконтролируемы. OpenCV — популярный инструмент для задач обработки изображений.

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

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

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

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

Минусы: требуется огромное количество обучающих данных; процесс аннотации изображений является трудоемким и дорогостоящим. Например, маркировка 500 000 изображений для обучения пользовательского алгоритма обнаружения объектов глубокого обучения считается небольшим набором данных. Однако многие эталонные наборы данных (MS COCO, Caltech, KITTI, PASCAL VOC, V5) обеспечивают доступность помеченных данных.

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

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

Распознавание лиц и людей

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

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

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

Интеллектуальная видео аналитика

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

Автономные транспортные средства

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

Интеллектуальная видео хирургия

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

Проверка дефектов

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

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

Обнаружение пешеходов

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

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

AI-навигация дрона

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

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

Методы распознавания образов

R-CNN

Первые модели интуитивно начинают с поиска области, а затем выполняют классификацию. В R-CNN метод выборочного поиска, разработанный Дж.Р.Р. Уйлингс и др. (2012) является альтернативой полному поиску на изображении для фиксации местоположения объекта. Он инициализирует небольшие области изображения и объединяет их в иерархическую группу. Таким образом, последняя группа представляет собой блок, содержащий все изображение. Обнаруженные области объединяются в соответствии с различными цветовыми пространствами и показателями сходства. Результатом является несколько предложений регионов, которые могут содержать объект путем слияния небольших регионов.

Приложение выборочного поиска, вверху: визуализация результатов сегментации алгоритма, внизу: визуализация предложений области алгоритма. Источник: J.R.R. Uijlings and al. (2012)

Модель R-CNN (Р. Гиршик и др., 2014) сочетает в себе метод выборочного поиска для обнаружения предложений регионов и глубокое обучение для обнаружения объекта в этих регионах. Размер каждого предложения региона изменяется, чтобы соответствовать входным данным CNN, из которых мы извлекаем вектор признаков с 4096 измерениями. Вектор признаков передается в несколько классификаторов для получения вероятностей принадлежности к каждому классу. Каждый из этих классов имеет классификатор SVM, обученный делать выводы о вероятности обнаружения этого объекта для заданного вектора признаков. Этот вектор также передает линейный регрессор, чтобы адаптировать формы ограничивающей рамки для предложения региона и, таким образом, уменьшить ошибки локализации.

Модель CNN, описанная авторами, обучена на наборе данных ImageNet 2012 года для исходной задачи классификации изображений. Он настраивается с использованием предложений по регионам, соответствующих IoU больше 0,5. Выпускаются две версии: в одной версии используется набор данных PASCAL VOC 2012 года, а в другой — набор данных ImageNet 2013 года с ограничивающими рамками. Классификаторы SVM также обучаются для каждого класса каждого набора данных.

Лучшие модели R-CNN достигли оценки mAP 62,4% по сравнению с набором тестовых данных PASCAL VOC 2012 (увеличение на 22,0 балла по сравнению со вторым лучшим результатом в таблице лидеров) и 31,4% оценки mAP по сравнению с набором данных ImageNet 2013 года (увеличение на 7,1 балла по сравнению с 2013 годом). второй лучший результат в таблице лидеров). [Источник: J. Xu’s Blog]

Региональная сверточная сеть (R-CNN). Каждое предложение региона передает CNN для извлечения вектора признаков, возможные объекты обнаруживаются с использованием нескольких классификаторов SVM, а линейный регрессор изменяет координаты ограничивающей рамки. Источник: J. Xu’s Blog

Минусы R-CNN

  • Обучение сети по-прежнему занимает огромное количество времени, так как вам придется классифицировать 2000 предложений регионов для каждого изображения.
  • Его нельзя реализовать в режиме реального времени, так как для каждого тестового изображения требуется около 47 секунд.
  • Алгоритм выборочного поиска является фиксированным алгоритмом. Поэтому на этом этапе обучения не происходит. Это может привести к созданию плохих предложений регионов-кандидатов.
Fast R-CNN

Цель быстрой сверточной сети на основе регионов (Fast R-CNN), разработанной Р. Гиршиком (2015), состоит в том, чтобы сократить затраты времени, связанные с большим количеством моделей, необходимых для анализа всех предложений регионов.

Основная CNN с несколькими сверточными слоями принимает все изображение в качестве входных данных вместо использования CNN для каждого предложения региона (R-CNN). Области интересов (RoI) обнаруживаются с помощью метода выборочного поиска, применяемого к созданным картам объектов. Формально размер карт объектов уменьшается с использованием слоя пула RoI, чтобы получить допустимую область интересов с фиксированной высотой и шириной в качестве гиперпараметров. Каждый слой области интереса передает полностью связанные слои¹, создавая вектор признаков. Вектор используется для прогнозирования наблюдаемого объекта с помощью классификатора softmax и для адаптации локализации ограничительной рамки с помощью линейного регрессора.

Лучшие Fast R-CNN достигли оценки mAp 70,0% для набора тестовых данных PASCAL VOC 2007 г., 68,8% для набора тестовых данных PASCAL VOC 2010 г. и 68,4% для набора тестовых данных PASCAL VOC 2012 г. [Источник: J. Xu’s Blog]

Все изображение передает модель CNN для определения области интереса на картах объектов. Каждая область отделена с помощью слоя пула RoI, и он питает полностью связанные слои. Этот вектор используется классификатором softmax для обнаружения объекта и линейным регрессором для изменения координат ограничивающей рамки. Источник: J. Xu’s Blog

Faster R-CNN

Предложения регионов, обнаруженные с помощью метода выборочного поиска, по-прежнему были необходимы в предыдущей модели, которая требовала значительных вычислительных ресурсов. С. Рен и др. (2016) представили Сеть предложений по регионам (RPN) для прямого создания предложений по регионам, прогнозирования ограничивающих рамок и обнаружения объектов. Более быстрая сверточная сеть на основе регионов (Faster R-CNN) представляет собой комбинацию между RPN и моделью Fast R-CNN.

Модель CNN принимает в качестве входных данных все изображение и создает карты характеристик. Окно размером 3×3 скользит по всем картам объектов и выводит вектор признаков, связанный с двумя полностью связанными слоями, один для блочной регрессии и один для блочной классификации. Предложения нескольких регионов предсказываются полностью связанными слоями. Фиксируется максимум k областей, поэтому выходные данные слоя регрессии блоков имеют размер 4k (координаты блоков, их высота и ширина), а выходные данные слоя классификации блоков имеют размер 2k («объективность» баллов чтобы обнаружить объект или нет в коробке). Предложения области k, обнаруженные скользящим окном, называются якорями. [Источник S. Ren and al. (2016)]

Обнаружение блоков привязки для одного окна 3x3. Источник: S. Ren and al. (2016)

Когда блоки привязки обнаружены, они выбираются путем применения порога к показателю «объективности», чтобы оставить только соответствующие блоки. Эти блоки привязки и карты объектов, вычисленные исходной моделью CNN, подают модель Fast R-CNN.

Быстрее R-CNN использует RPN, чтобы избежать метода выборочного поиска, ускорить процессы обучения и тестирования и повысить производительность. RPN использует предварительно обученную модель набора данных ImageNet для классификации и точно настраивает набор данных PASCAL VOC. Затем сгенерированные предложения регионов с якорными полями используются для обучения Fast R-CNN. Этот процесс является итеративным.

Лучшие Faster R-CNN получили оценки mAP 78,8% по сравнению с набором данных теста PASCAL VOC 2007 года и 75,9% по сравнению с набором данных теста PASCAL VOC 2012 года. Они прошли обучение с наборами данных PASCAL VOC и COCO. Одна из этих моделей² работает в 34 раза быстрее, чем Fast R-CNN при использовании метода выборочного поиска. [Источник S. Ren and al. (2016)]

Все изображение передает модель CNN для создания блоков привязки в качестве предложений области с уверенностью, что она содержит объект. Используется Fast R-CNN, принимающий в качестве входных данных карты объектов и предложения регионов. Для каждого ящика вычисляются вероятности обнаружения каждого объекта и коррекция местоположения ящика. Источник: J. Xu’s Blog

Region-based Fully Convolutional Network (R-FCN)

Методологии Fast и Faster R-CNN заключаются в обнаружении предложений регионов и распознавании объекта в каждом регионе. Региональная полностью сверточная сеть (R-FCN)) представляет собой модель только со свёрточными слоями, обеспечивающую полное обратное распространение для обучения и логического вывода. Авторы объединили два основных шага в одну модель, чтобы одновременно учитывать обнаружение объекта (инвариант местоположения) и его положение (вариант местоположения).

Модель ResNet-101 принимает исходное изображение в качестве входных данных. Последний слой выводит карты объектов, каждая из которых специализируется на обнаружении категории в каком-либо месте. Например, одна карта признаков специализируется на обнаружении кошки, другая — на банане и так далее. Такие карты объектов называются картами оценки с учетом положения, поскольку они учитывают пространственную локализацию конкретного объекта. Он состоит из k*k*(C+1) карт оценок, где k — размер карты оценок, а C — количество классов. Все эти карты образуют банк очков. По сути, мы создаем патчи, которые могут распознавать часть объекта. Например, при k=3 мы можем распознать 3×3 части объекта.

Параллельно нам нужно запустить RPN для создания области интереса (RoI). Наконец, мы разделяем каждую область интереса на ячейки и сверяем их с банком результатов. Если активировано достаточное количество этих частей, то патч голосует «да», я распознал объект. [Источник S. Ren and al. (2016)]

Входное изображение передает модель ResNet для создания карт объектов. Модель RPN определяет область интересов, и для каждой области вычисляется оценка, чтобы определить наиболее вероятный объект, если он есть. Источник: J. Dai and al. (2016)

Дж. Дай и др. (2016) подробно описали пример, показанный ниже. На рисунках показана реакция модели R-FCN, специализирующейся на обнаружении человека. Для области интереса в центре изображения (рис. 3) субрегионы на картах признаков специфичны для паттернов, связанных с человеком. Таким образом, они голосуют за «да, в этом месте есть человек». На рисунке 4 область интереса смещена вправо и больше не сосредоточена на человеке. Субрегионы на картах объектов не согласны с обнаружением человека, поэтому они голосуют «нет, в этом месте нет человека». [Источник S. Ren and al. (2016)]

Лучшие R-FCN достигли оценки mAP 83,6% для набора тестовых данных PASCAL VOC 2007 года и 82,0%, они были обучены с наборами данных PASCAL VOC 2007, 2012 годов и набором данных COCO. По набору тестовых данных COCO Challenge 2015 они получили 53,2% для IoU = 0,5 и 31,5% для официальной метрики mAP. Авторы заметили, что R-FCN в 2,5–20 раз быстрее, чем аналог Faster R-CNN. [Источник S. Ren and al. (2016)]

You Only Look Once (YOLO)

Модель YOLO (J. Redmon et al., 2016)) напрямую предсказывает ограничивающие рамки и вероятности классов с помощью одной сети в одной оценке. Простота модели YOLO позволяет делать прогнозы в реальном времени.

Первоначально модель принимает изображение в качестве входных данных. Он делит его на сетку SxS. Каждая ячейка этой сетки предсказывает B ограничивающих прямоугольников с показателем достоверности. Эта уверенность представляет собой просто вероятность обнаружения объекта, умноженную на IoU между предсказанным и наземным полем истинности. [Источник S. Ren and al. (2016)]

Пример применения. Входное изображение делится на сетку SxS, прогнозируются ограничивающие прямоугольники B (регрессия) и прогнозируется класс среди классов C (классификация) по сравнению с наиболее уверенными. Источник: J. Redmon and al. (2016)

Используемая CNN вдохновлена ​​​​моделью GoogLeNet, в которой представлены начальные модули. Сеть имеет 24 сверточных слоя, за которыми следуют 2 полносвязных слоя. Слои сокращения с фильтрами 1×1⁴, за которыми следуют сверточные слои 3×3, заменяют исходные начальные модули. Модель Fast YOLO — это более легкая версия, в которой всего 9 сверточных слоев и меньше фильтров. Большинство сверточных слоев предварительно обучены с использованием набора данных ImageNet с классификацией. К предыдущей сети добавляются четыре сверточных слоя, за которыми следуют два полносвязных слоя, и она полностью переобучается с наборами данных PASCAL VOC 2007 и 2012 годов.

Последний слой выводит тензор S*S*(C+B*5), соответствующий прогнозам для каждой ячейки сетки. C — количество предполагаемых вероятностей для каждого класса. B — фиксированное количество блоков привязки на ячейку, каждый из этих блоков связан с 4 координатами (координаты центра блока, ширина и высота) и доверительным значением.

В предыдущих моделях предсказанные ограничивающие рамки часто содержали объект. Однако модель YOLO предсказывает большое количество ограничивающих рамок. Таким образом, есть много ограничивающих рамок без какого-либо объекта. Метод не максимального подавления (NMS) применяется в конце сети. Он заключается в объединении сильно перекрывающихся ограничивающих рамок одного и того же объекта в одну. Авторы заметили, что ложных срабатываний по-прежнему мало.

Архитектура YOLO: она состоит из 24 сверточных слоев и 2 полносвязных слоев. Источник: J. Redmon and al. (2016)

Модель YOLO имеет показатель mAP 63,7% по сравнению с набором данных PASCAL VOC 2007 года и показатель mAP 57,9% по сравнению с набором данных PASCAL VOC 2012 года. Модель Fast YOLO имеет более низкие оценки, но обе они работают в режиме реального времени.

Системы реального времени на PASCAL VOC 2007. Сравнение скоростей и производительности моделей, обученных с наборами данных PASCAL VOC 2007 и 2012 годов. Опубликованные результаты соответствуют реализациям J. Redmon and al. (2016).

Плюсы YOLO алгоритма:

  • Скорость: Этот алгоритм повышает скорость обнаружения, поскольку он может прогнозировать объекты в режиме реального времени.
  • Высокая точность: YOLO — это метод прогнозирования, который обеспечивает точные результаты с минимальными фоновыми ошибками.
  • YOLO может обобщать изображение, не нагружая память обработки.

Минусы YOLO алгоритма:

  • YOLO страдает от значительно большего количества ошибок локализации и имеет проблемы с идентификацией ближайших предметов.
Single-Shot Detector (SSD)

Подобно модели YOLO, W. Liu et al. (2016) разработали однократный детектор (SSD) для одновременного прогнозирования всех ограничительных рамок и вероятностей классов с помощью сквозной архитектуры CNN.

В качестве входных данных модель принимает изображение, которое проходит через несколько сверточных слоев с различными размерами фильтров (10×10, 5×5 и 3×3). Карты объектов из сверточных слоев в разных положениях сети используются для прогнозирования ограничивающих рамок. Они обрабатываются специальными сверточными слоями с фильтрами 3×3, называемыми дополнительными слоями объектов, для создания набора ограничивающих рамок, подобных якорным рамкам Fast R-CNN.

Сравнение архитектур SSD и YOLO. Модель SSD использует дополнительные слои объектов из разных карт объектов сети, чтобы увеличить количество соответствующих ограничивающих рамок. Источник: W. Liu and al. (2016)

Каждый “ящик” имеет 4 параметра: координаты центра, ширину и высоту. В то же время он создает вектор вероятностей, соответствующий доверию к каждому классу объектов.

Фреймворк SSD. (a) Модель берет изображение и его ограничивающие рамки. Небольшие наборы блоков с разным соотношением сторон фиксируются другой картой признаков ((b) и ©). Во время обучения локализация ящиков изменяется, чтобы максимально соответствовать действительности. Источник: W. Liu and al. (2016)

Метод немаксимального подавления также используется в конце модели SSD, чтобы сохранить наиболее релевантные ограничивающие рамки. Затем используется Hard Negative Mining (HNM), потому что все еще прогнозируется много отрицательных полей. Он заключается в выборе только части этих блоков во время обучения. Ящики упорядочены по достоверности, а вершина выбирается в зависимости от соотношения между отрицательным и положительным значением, которое не превышает 1/3.

В. Лю и соавт. (2016) различают модель SSD300 (архитектура подробно показана на рисунке выше) и модель SSD512, которая представляет собой SSD300 с дополнительным сверточным слоем для прогнозирования для повышения производительности. Лучшие SSD алгоритмы обучаются на наборах данных PASCAL VOC 2007, 2012 и наборе данных COCO 2015 с дополнением данных. Они получили оценки mAP 83,2% по сравнению с набором данных теста PASCAL VOC 2007 года и 82,2% по сравнению с набором данных теста PASCAL VOC 2012 года. По набору тестовых данных COCO Challenge 2015 они получили 48,5% для IoU = 0,5, 30,3% для IoU = 0,75 и 31,5% для официальной метрики mAP.

Минусы метода SSD:

  • Степень точности SSD немного снижается при идентификации более мелких вещей. Если модель очень большая, скорость может значительно упасть.
Mask Region-based Convolutional Network (Mask R-CNN)

Еще одно расширение модели Faster R-CNN добавленной параллельной ветви к обнаружению ограничивающей рамки, чтобы предсказать маску объекта. Маска объекта — это его сегментация по пикселям на изображении. Эта модель превосходит современную в четырех задачах COCO: сегментация экземпляра, обнаружение ограничивающей рамки, обнаружение объекта и обнаружение ключевой точки.

Примеры применения Mask R-CNN в тестовом наборе данных COCO. Модель определяет каждый объект изображения, его локализацию и точную сегментацию по пикселям. Источник:K. He and al. (2017)

Сверточная сеть на основе области маски (Mask R-CNN) использует более быстрый конвейер R-CNN с тремя выходными ветвями для каждого объекта-кандидата: метка класса, смещение ограничивающей рамки и маска объекта. Он использует сеть региональных предложений (RPN) для создания предложений ограничивающей рамки и одновременно создает три результата для каждой интересующей области (RoI).

Начальный слой RoIPool, используемый в Faster R-CNN, заменяется слоем RoIAlign. Он удаляет квантование координат исходной области интереса и вычисляет точные значения местоположений. Слой RoIAlign обеспечивает масштабную эквивалентность и трансляционную эквивалентность предложениям региона.

Модель принимает изображение в качестве входных данных и передает сеть ResNeXt со 101 слоем. Эта модель похожа на ResNet, но каждый остаточный блок разрезается на более легкие преобразования, которые объединяются для добавления разреженности в блок. Модель обнаруживает области интереса, которые обрабатываются с использованием уровня RoIAlign. Одна ветвь сети связана с полносвязным слоем для вычисления координат ограничивающих прямоугольников и вероятностей, связанных с объектами. Другая ветвь связана с двумя сверточными слоями, последний вычисляет маску обнаруженного объекта.

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

Mask R-CNN достиг оценки mAP 62,3% для IoU = 0,5, 43,4% для IoU = 0,7 и 39,8% для официальной метрики по набору данных COCO test-dev за 2016 год.

Среда Mask R-CNN для сегментации экземпляров. Источник: K. He and al. (2017)

Сравнение алгоритмов распознавания образов

Наиболее популярным эталоном является набор данных Microsoft COCO. Различные модели обычно оцениваются в соответствии с показателем средней точности (MAP). Далее мы сравним лучшие алгоритмы обнаружения объектов в реальном времени. Важно отметить, что выбор алгоритма зависит от варианта использования и приложения; разные алгоритмы превосходно справляются с разными задачами (например, Beta R-CNN показывает лучшие результаты для обнаружения пешеходов).

Лучшим алгоритмом обнаружения объектов в реальном времени в 2022 году является YOLOv7, за которым следует Vision Transformer (ViT), такой как Swin и DualSwin, PP-YOLOE, YOLOR, YOLOv4 и EfficientDet.

График коэффициента точности и скорости разны алгоритмов [Источник: J. Xu’s Blog ]

Обнаружение объектов в реальном времени в тесте COCO: самое современное по средней точности (AP) Самый быстрый алгоритм обнаружения объектов в реальном времени (время вывода) Кроме того, в наборе данных MS COCO важным показателем теста является время вывода (мс/кадр, чем меньше, тем лучше) или кадров в секунду (кадров в секунду, чем выше, тем лучше). Быстрый прогресс в технологии компьютерного зрения очень заметен при сравнении времени логического вывода. Основываясь на текущем времени вывода (чем меньше, тем лучше), YOLOv7 достигает 3,5 мс на кадр по сравнению с YOLOv4 12 мс или популярным YOLOv3 29 мс. Обратите внимание, как введение YOLO (одноэтапный детектор) привело к значительному сокращению времени вывода по сравнению с любыми ранее установленными методами, такими как двухэтапный метод Mask R-CNN (333 мс). С технической точки зрения довольно сложно осмысленно сравнивать различные архитектуры и версии моделей. И Edge AI становится неотъемлемой частью масштабируемых решений AI, новые алгоритмы поставляются с облегченной версией, оптимизированной для Edge (см. YOLOv7-lite или TensorFlow Lite).

График со сравнениями алгоритмов YOLO разных версий с алгоритмом Faster RCNN-FPN+. [Источник: J. Xu’s Blog]

Современное состояние по кадрам в секунду (FPS): ведущий алгоритм компьютерного зрения для обнаружения объектов в реальном времени на COCO может обрабатывать 286 кадров в секунду (YOLOv7) и быстрее, чем YOLOv5, YOLOv4, YOLOR и YOLOv3.

Обзор оценок mAP для набора данных PASCAL VOC за 2007, 2010, 2012 годы и наборов данных COCO за 2015, 2016 годы. Источник: J. Xu’s Blog

Заключение

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

Все началось с таких алгоритмов, как гистограмма ориентированных градиентов, введенных еще в 1986 году для выполнения простых обнаружений объектов на изображениях с приличной точностью. Теперь у нас есть современные архитектуры, такие как Faster R-CNN, Mask R-CNN, YOLO и RetinaNet.

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

  • Распознавание образов
  • компьютерное зрение
  • искусственный интеллект
  • искусственные нейронные сети
  • алгоритмы

Урок 1. Распознавание изображений и обнаружение объектов

Начинаю серию уроков (мини-курс) о распознавании изображений и обнаружении объектов.

В первой части краткое объяснение понятий распознавание изображений с использованием традиционных методов компьютерного зрения. Я называю методы, не основанные на глубоком обучении, традиционными методами компьютерного зрения, потому что они быстро заменяются методами, основанными на глубоком обучении. Тем не менее, традиционные подходы к компьютерному зрению используются по-прежнему во многих приложениях. Многие из этих алгоритмов также доступны в библиотеках компьютерного зрения, таких как OpenCV એ , и очень хорошо работают «из коробки».

Мини-курс, который я пишу, будет состоять из 8 уроков по приблизительно следующей тематике:

  1. Распознавание изображений с использованием традиционных методов компьютерного зрения
  2. Гистограмма направленных градиентов
  3. Пример кода для распознавания изображений
  4. Обучение лучшему детектору глаза
  5. Обнаружение объектов с использованием традиционных методов компьютерного зрения
  6. Как обучить и протестировать собственный детектор объектов OpenCV
  7. Распознавание изображений с использованием глубокого обучения
    • Введение в нейронные сети
    • Понимание нейронных сетей с прямой связью
    • Распознавание изображений с использованием сверточных нейронных сетей
  8. Обнаружение объектов с использованием глубокого обучения

Краткая история распознавания изображений и обнаружения объектов

Наша история начинается в 2001 году; В этом году Пол Виола и Майкл Джонс изобрели эффективный алгоритм распознавания лиц. Их демонстрация, показывающая, что лица обнаруживаются в реальном времени на веб-камере, была самой ошеломляющей демонстрацией компьютерного зрения и его потенциала на то время. Скоро, алгоритм был реализован в OpenCV એ , и метод Виолы — Джонса એ стал синонимом обнаружение лиц.

Каждые несколько лет появляется новая идея, которая заставляет людей делать паузу и принимать к сведению. В области обнаружения объектов эта идея появилась в 2005 году в статье Навнит Далала и Билла Триггса. Их дескриптор функции, гистограмма направленных градиентов એ (HOG), значительно превзошел существующие алгоритмы обнаружения пешеходов.

Глубокое машинное обучение

Примерно каждые десять лет появляется новая идея, настолько эффективная и мощная, что вы отказываетесь от всего, что было до нее, и всем сердцем принимаете новое. Глубокое обучение એ — идея этого десятилетия. Алгоритмы глубокого обучения существуют уже давно, но они стали мейнстримом в компьютерном зрении благодаря его оглушительному успеху на конкурсе ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 года. В этом конкурсе алгоритм, основанный на глубоком обучении Алекса Крижевского, Ильи Суцкевер,и Джеффри Хинтон потрясли мир компьютерного зрения с поразительной точностью 85% — на 11% лучше, чем алгоритм, занявший второе место! В ILSVRC 2012 это была единственная запись, основанная на глубоком обучении. В 2013, все победившие работы были основаны на глубоком обучении, и в 2015 году несколько алгоритмов под общим названием Свёрточная нейронная сеть એ (CNN) превзошли уровень естественного распознавания человеком 95%.

При таком огромном успехе в распознавании изображений обнаружение объектов на основе глубокого обучения было неизбежным. Такие методы, как Faster R-CNN, производят челюсти. Отбрасывание результатов по нескольким классам объектов. Мы узнаем об этом в следующих публикациях, но пока имейте в виду, что если вы не изучили алгоритмы распознавания изображений и обнаружения объектов на основе глубокого обучения для своих приложений, вы можете упустить огромную возможность получить лучшие результаты.

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

Распознавание изображений (также известное как классификация изображений)

Алгоритм распознавания изображений (также известный как классификатор изображений) принимает изображение (или фрагмент изображения) в качестве входных данных и выводит то, что содержит изображение. Другими словами, вывод — это метка класса (например, «кошка», «собака», «таблица» и т.д.). Как алгоритм распознавания изображений узнает содержимое изображения? Хорошо, вам нужно обучить алгоритм, чтобы узнать различия между разными классами. Если вы хотите найти кошек на изображениях, вам необходимо обучить алгоритм распознавания изображений с тысячами изображений кошек и тысячами изображений фона, которые не содержат кошек. Разумеется, подобный алгоритм может понимать только те объекты/классы, которые он знает.

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

Анатомия классификатора изображений

Конвейер классификации

На следующей диаграмме показаны этапы работы традиционного классификатора изображений.

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

Шаг 1: предварительная обработка

Часто входное изображение предварительно обрабатывается для нормализации эффектов контрастности и яркости. Очень распространенный этап предварительной обработки — вычесть среднее значение интенсивности изображения и разделить его на стандартное отклонение. Иногда гамма-коррекция дает немного лучшие результаты. При работе с цветными изображениями преобразование цветового пространства (например, цветовое пространство RGB в LAB) может помочь получить лучшие результаты.

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

Мы оценили несколько представлений входных пикселей, включая цветовые пространства в оттенках серого, RGB и LAB, опционально со степенным (гамма) выравниванием. Эти нормализации имеют лишь умеренное влияние на производительность, возможно, потому, что последующая нормализация дескриптора дает аналогичные результаты. Мы используем информацию о цвете, когда она доступна. Цветовые пространства RGB и LAB дают сравнимые результаты, но ограничение оттенками серого снижает производительность на 1,5% при 10–4 кадрах в секунду. Гамма-сжатие с квадратным корнем для каждого цветового канала улучшает производительность при низких значениях FPPW (на 1% при 10–4 кадрах в секунду), но логарифмическое сжатие слишком велико и ухудшает его на 2% при 10–4 кадрах в секунду.

Как вы видете, авторы не знали заранее, какую предварительную обработку использовать. Они делали разумные предположения и использовали метод проб и ошибок.

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

Шаг 2: извлечение признаков

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

Некоторыми хорошо известными функциями, используемыми в компьютерном зрении, являются функции типа Хаара, представленные Виолой и Джонсом, гистограмма направленных градиентов (HOG), Масштабно-инвариантная трансформация признаков એ Scale-Invariant Feature Transform (SIFT), ускорение надежного элемента Speeded Up Robust Feature (SURF) и т.д.

В качестве конкретного примера давайте посмотрим на извлечение признаков с помощью гистограммы ориентированных градиентов (HOG).

Histogram of Oriented Gradients (HOG) или гистограмма направленного градиента

Алгоритм извлечения признаков преобразует изображение фиксированного размера в вектор признаков фиксированного размера. В случае обнаружения пешеходов дескриптор объекта HOG вычисляется для фрагмента изображения размером 64 \times 128 и возвращает вектор размером 3780 . Обратите внимание, что исходный размер этого фрагмента изображения был 64 \times 128 \times 3 = 24,576 , который сокращен до 3780 дескриптором HOG.

HOG основан на идее, что внешний вид локального объекта может быть эффективно описан распределением (гистограммой) направлений краев (направленных градиентов). Шаги по вычислению дескриптора HOG для изображения размером 64 × 128 перечислены ниже.
Расчет градиента: вычисление градиентов x и y изображений и, исходя из исходного изображения. Это можно сделать, отфильтровав исходное изображение следующими ядрами.

  1. Используя изображения градиента и, можно вычислить величины g_x и g_y направления градиента, используя следующие уравнения: g = \sqrt \theta = \arctan> Вычисленные градиенты «беззнаковые» и, следовательно, лежат в диапазоне от 0 до 180 градусов.
  2. Ячейки: разделите изображение на ячейки размером 8 \times 8 .
  3. Вычисление гистограммы градиентов в этих ячейках 8 \times 8 : для каждого пикселя в ячейке 8 \times 8 мы знаем градиент (величину и направление), и, следовательно, у нас есть 64 величины и 64 направления, то есть 128 чисел. Гистограмма этих градиентов даст более удобное и компактное представление. Затем мы преобразуем эти 128 чисел в 9‑биновую гистограмма (т.е. 9 чисел). Бины гистограммы соответствуют направлениям градиентов 0, 20, 40… 160 градусов. Каждый пиксель голосует за одну или две ячейки гистограммы. Если направление градиента в пикселе равно 0, 20, 40… или 160 градусам, голос, равный величине градиента, передается пикселем в ячейку. Пиксель, у которого направление градиента не совсем 0, 20, 40… 160 градусов, разделяет свой голос между двумя ближайшими ячейками в зависимости от расстояния от ячейки. Например. Пиксель с величиной градиента 2 и углом 20 градусов будет голосовать за вторую ячейку со значением 2. С другой стороны,пиксель с градиентом 2 и углом 30 будет голосовать за 1 как за второй интервал (соответствующий углу 20), так и за третий интервал (соответствующий углу 40).
  4. Нормализация блока: гистограмма, вычисленная на предыдущем шаге, не очень устойчива к изменениям освещения. Умножение интенсивности изображения на постоянный коэффициент также масштабирует значения бина гистограммы. Чтобы противостоять этим эффектам, мы можем нормализовать гистограмму, т.е. представить гистограмму как вектор из 9 элементов, разделив каждый элемент на величину этого вектора. В исходной статье HOG эта нормализация выполняется не по ячейке 8 \times 8 , которая произвела гистограмму, а по блокам 16 \times 16 . Идея та же самая, но теперь вместо вектора из 9 элементов у вас есть вектор из 36 элементов.
  5. Вектор признаков: на предыдущих шагах мы выяснили, как вычислить гистограмму по ячейке 8 \times 8 , а затем нормализовать ее по блоку 16 \times 16 . Чтобы вычислить окончательный вектор признаков для всего изображения, блок 16 \times 16 перемещается с шагом 8 (т.е. 50% перекрытие с предыдущим блоком), и 36 чисел (соответствующих 4 гистограммам в блоке 16 \times 16 ), вычисленные на каждом шаге, объединяются для получения окончательного вектора признаков. Какова длина последнего вектора?
    Входное изображение имеет размер 64 \times 128 пикселей, и мы перемещаем 8 пикселей за раз. Следовательно, мы можем сделать 7 шагов в горизонтальном направлении и 15 шагов в вертикальном направлении, что в сумме составляет 7 \times 15 = 105 шагов. На каждом шаге мы вычисляли 36 чисел, что составляет длину конечного вектора 105 \times 36 = 3\:780 .

Шаг 3: алгоритм классификации (подробнее)

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

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

Чтобы упростить задачу, давайте более подробно рассмотрим один алгоритм обучения, который называется Support Vector Machines (SVM) или метод опорных векторов એ . Как работает метод опорных векторов (SVM) для классификации изображений?

Метод опорных векторов — один из самых популярных алгоритмов контролируемой двоичной классификации. Хотя идеи, используемые в SVM, существуют с 1963 года, текущая версия была предложена в 1995 году Кортесом и Вапником.

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

В нашем упрощенном мире теперь у нас есть 2D-точки, представляющие два класса (например, кошки и фон). На изображении выше два класса представлены двумя разными типами точек. Все черные точки принадлежат одному классу, а белые точки — другому классу. Во время тренировки мы предоставляем алгоритм с множеством примеров из двух классов. Другими словами, мы сообщаем алгоритму координаты двумерных точек, а также то, какая точка — черная или белая.

Различные алгоритмы обучения выясняют, как по-разному разделить эти два класса. Линейная SVM пытается найти лучшую линию, разделяющую два класса. На рисунке выше H1, H2 и H3 — это три линии в этом двухмерном пространстве. H1 не разделяет два класса и поэтому не является хорошим классификатором. H2 и H3 разделяют два класса, но интуитивно кажется, что H3 — лучший классификатор, чем H2, потому что H3, кажется, разделяет два класса более четко. Почему? Потому что H2 находится слишком близко к некоторым черным и белым точкам. С другой стороны, H3 выбирается таким образом, чтобы он находился на максимальном расстоянии от членов двух классов.

Учитывая 2D-функции на рисунке выше, SVM найдет для вас линию H3. Если вы получите новый двумерный вектор признаков, соответствующий изображению, которого алгоритм никогда раньше не видел, то можете просто проверить, на какой стороне линии лежит точка, и присвоить ей соответствующую метку класса. Если ваши векторы признаков находятся в 3D, SVM найдет подходящую плоскость, которая максимально разделяет два класса. Как вы, возможно, догадались, если ваш вектор признаков находится в 3 780‑мерном пространстве, SVM найдет соответствующую гиперплоскость.

Оптимизация SVM

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

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

Print Friendly, PDF & Email

Урок 1. Распознавание изображений и обнаружение объектов , опубликовано К ВВ, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.
Респект и уважуха

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Ограничение ответственности

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

Рекомендую

Link’s QR code

Время, где сейчас

До восхода не будить и при пожаре выносить в первую очередь, а после заката звонить только в экстренных случаях:

Скоро, скоро Новый год

Рубрики

Отче наш

Отче наш, Иже еси́ на небесе́х! Да святи́тся имя Твое́, да прии́дет Ца́рствие Твое, да будет воля Твоя, я́ко на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; и оста́ви нам до́лги наша, я́коже и мы оставля́ем должнико́м нашим; и не введи́ нас во искушение, но изба́ви нас от лука́ваго

Под контролем

  1. Академия студенчества
  2. ИЛИМК
  3. Офис академического письма
  4. МАЛиМК
  5. НОЦ Лингво-инновационных технологий
  6. Партнерская сеть «Институт Пушкина»
  7. Центр делового образования
  8. Центр «Лингва»
  9. Управление инновациями и инвестициями
  10. Финансовый менеджмент
  11. Кафедра ИТЭ
  12. Кафедра ЦЭИИТ
  13. Бизнес-информатика + Кванториум
  14. ВКР: Бизнес-информатика
  15. Бизнес-информатика on-line
  16. Бизнес-информатика — драйв цифровой трансформации
  17. ЭУ-160
  18. ЭУ-235
  19. ЭУ-320
  20. ЭУ-442
  21. ЭУ-419 (архив)
  22. ЭУ-444, 461 (архив)
  23. ЭУ-459 (архив)
  24. ЭУ-434 (архив)
  25. Магистры Бизнес-информатики
  26. Магистратура ВШЭУ
  27. Технологическая площадка
  28. Digital Experience Workshop
  29. Cтэк технологий Web-разработки: шаг за шагом
  30. Абитуриент ВШЭУ — 2018
  31. Школа бизнеса ВШЭУ
  32. Кибер-студент
  33. Зеркало сайта
  34. ИТ-марафон
  35. Покори свой Олимп
  36. Digital Experience
  37. ООО «ЮЖУРАЛСЕРВИС»
  38. Школа перспективных технологий
  39. Бизнес‑информатике 15 лет

Распознавание объектов на фото и видео

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

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

Видеозвонки в SberJazz
Общайтесь с друзьями и близкими везде, где есть Интернет
Попробовать сейчас

Как работает технология распознавания образов

Нейросети, которые работают с распознаванием образов с картинки, сравнивают данные с базой изображений и ищут соответствия. Работа сервиса распознавания объектов базируется на уникальном алгоритме на основе технологий AI и Computer Vision.

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

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

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

Понравился классный столик в кадре? Можно распознать и купить его

Дальше нейросети будут искать в своей базе похожие объекты в зависимости от класса. Определить, какой актёр перед нами или что за предмет мебели в кадре, — задачи для разных нейросетей. В рамках Layer используется также база партнерских товаров, по которой система ищет похожие на распознанные на видео, чтобы обогатить стоп-кадр торговым предложением.

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

Отслеживание между кадрами

Здесь мы говорим только про видео, когда система должна находить объекты на меняющихся кадрах. Отслеживание нужно, чтобы не приходилось распознавать объект снова и снова: это экономит много ресурсов программы по распознаванию. Решение позволяет «помнить», что перед нами всё ещё тот же самый предмет.

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

Распознавание объекта

После того как программа нашла объект и начала отслеживание, информация о нём передаётся в нейросеть-энкодер, которая распознаёт изображение и ищет в базе аналоги. Так, в рамках Layer возможно распознавание одежды того же цвета и фасона по товарам от партнеров.

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

Возможности применения сервиса для бизнеса

Сбер развил идею определения графических объектов, чтобы её можно было использовать в медиапространстве. Так появился сервис Layer, которые позволяет обогащать контент дополнительными данными.

Основная идея в том, чтобы из любого видео — неважно, фильм это, сериал или клип — можно было «вытащить» предметы, которые участвуют в съёмках. Впечатляет? Это уже работает в некоторых видеосервисах. Но обо всех возможностях по порядку.

Layer для e-commerce

Технология Layer будет полезна в e-commerce — для построения рекомендаций к товарам на сайте на основе подбора визуально похожих предложений. С помощью AI система проанализирует каталог и подберёт для пользователя релевантные рекомендации.

Кроме рекомендаций, система может быть использована при модерации изображений — чтобы определить, относится ли заданное изображение к определённому классу.

Если вы продавец, то можете стать партнёром системы, чтобы предлагать свои товары в рамках поиска похожих предложений — это дополнительный способ монетизации. Дальше расскажем, какие товары можно предложить.

Layer для поиска вещи на видео

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

  • Одежда на актёрах. Если понравилась юбка или рубашка на актёре, можно нажать на паузу и посмотреть, что это за вещь и где её можно купить. Нейронная сеть найдёт максимально похожие образцы из магазинов партнёров.
  • Мебель. Предметы интерьера тоже могут быть товаром, который захочет купить зритель. С помощью программы анализа изображений получится найти такой же диван (ну или очень похожий).
  • Аксессуары и декор. Постер, картина, какой-то домашний декор тоже могут быть распознаны, чтобы найти похожее.

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

В связи с ограниченностью исходной базы, скорее всего, будут найдены не те же товары, но максимально похожие по цвету, форме и другим признакам. Кроме одежды и мебели, Layer от Сбера может распознавать и искать похожую еду. Как насчёт того, чтобы заказать блюдо, которое ест героиня любимого сериала?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *