Приложение MATLAB для распознавания лиц: код, описание и синтаксис

Опубликовано: 2020-06-23

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

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

Источник

Оглавление

MATLAB в распознавании лиц

Можно добиться распознавания лиц с помощью кода MATLAB. Встроенный класс и функцию в MATLAB можно использовать для обнаружения лица, глаз, носа и рта. Система объектного зрения.CascadeObjectDetector System из набора инструментов системы компьютерного зрения распознает объекты на основе алгоритма распознавания лиц Виолы-Джонса.

Описание детектора объектов MATLAB

В vision.CascadeObjectDetector используется алгоритм Виолы-Джонса для идентификации лиц, глаз, рта, носа или верхней части тела. Пользовательский классификатор можно обучить с помощью MATLAB Image Labeler и использовать вместе с Системным объектом. Так как же на изображении обнаруживаются черты лица или верхняя часть тела? Вот шаги:

  1. Первый шаг включает в себя создание объекта vision.CascadeObjectDetector и настройку его свойств.
  2. На этом этапе объект вызывается с аргументами (как если бы он вел себя как функция).

Читайте: 15 интересных идей и тем для проектов MATLAB для начинающих

Синтаксис создания детектора объектов

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

  • Детектор = зрение.CascadeObjectDetector
  • Детектор = зрение.CascadeObjectDetector(mode1)
  • Детектор = vision.CascadeObjectDetector (имя, значение)
  • Детектор = зрение. CascadeObjectDetector (XMLFILE)

Описание синтаксиса

  • Детектор = зрение.CascadeObjectDetector: этот синтаксис используется для создания детектора, который обнаруживает объекты с использованием алгоритма Виолы-Джонса.
  • Детектор = зрение.CascadeObjectDetector(mode1): этот синтаксис используется для создания детектора, настроенного на обнаружение объектов, определенных входным вектором – mode1.
  • детектор = зрение.CascadeObjectDetector(Name,Value): этот синтаксис используется для установки свойств с использованием одной или нескольких пар "имя-значение", где каждое имя свойства заключено в кавычки. Например: Детектор = зрение.CascadeObjectDetector('ClassificationModel','UpperBody')

Проверьте: Идеи проекта машинного обучения

Характеристики

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

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

  • ClassificationModel: Определенное как вектор символов, это свойство отвечает за управление типом обнаруживаемого объекта. Конфигурация детектора по умолчанию определяет лица.
  • MinSize: размер наименьшего распознаваемого объекта обозначается как двухэлементный вектор [высота ширина]. Если значение свойства не указано, детектор устанавливает его равным размеру изображения, используемому для обучения модели классификации.
  • MaxSize: размер наименьшего распознаваемого объекта обозначается как двухэлементный вектор [высота ширина] . Если значение свойства не указано, детектор устанавливает его размер (I).
  • ScaleFactor: указанное значение выше 1,0001. Это свойство предназначено для постепенного масштабирования разрешения обнаружения между MinSize и MaxSize.
  • MergeThreshold: имеет указанное целочисленное значение, равное 4. В случае, если вокруг целевого объекта есть несколько обнаружений, порог определяет окончательные критерии обнаружения.
  • UseROI: указанное как false, для этого свойства можно установить значение true для обнаружения объектов в прямоугольной области интереса на входном изображении.

Синтаксис использования детектора объектов

  • bbox = детектор (I)
  • bbox = детектор (I, roi)

Описание синтаксиса

  • bbox =Detector(I) возвращает bbox, матрицу размером M на 4, которая определяет ' M ' ограничивающих рамок, содержащих обнаруженные объекты.
  • bbox = детектор (I, roi) используется для обнаружения объектов в прямоугольной интересующей области, заданной roi.

Входные аргументы

  • I — входное изображение: задается в истинном цвете или в оттенках серого (RGB).
  • model — Модель классификации: Это задано как вектор символов и описывает тип объекта, который будет обнаружен.
  • XMLFILE — пользовательская модель классификации: указанная в виде XML-файла, она может быть создана с использованием обучающих функций OpenCV или функции trainCascadeObjectDetector.
  • roi — прямоугольная область интереса: четырехэлементный вектор [ x y width height ] используется для указания этого входного аргумента.

Выходные аргументы

bbox — Обнаружения: Обнаружения возвращаются в виде матрицы элементов M на 4, каждая строка которой содержит четырехэлементный вектор [ x y width height ].

Функции объекта, общие для всех системных объектов

  • шаг: для запуска алгоритма системного объекта
  • релиз: для освобождения системных ресурсов
  • сброс: для сброса внутренних состояний системного объекта.

Код MATLAB для распознавания лиц

В этом разделе мы увидим пример распознавания лиц с использованием кода MATLAB.

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

Источник

Источник

Шаг (Детектор, I) вернет значение Bounding Box, содержащее [x, y, Height, Width] обнаруживаемых объектов:

Источник

Обнаружение носа

Источник

Источник

Описание:

  • Передача аргумента «Нос» означает, что интересующим объектом является нос.
  • Синтаксис обнаружения носа по умолчанию — vision.CascadeObjectDetector('Nose')
  • Значения параметров по умолчанию, переданные в vision.CascadeObjectDetector, можно изменить на основе входного изображения.
  • Значение «MergeThreshold» можно переопределить, чтобы избежать множественных обнаружений вокруг целевого объекта (как на изображении выше).

Обнаружение глаз

Источник

Источник

Обнаружение рта

Источник

Источник

Читайте также: Цикл while в MATLAB: все, что вам нужно знать

Подведение итогов

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

Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.

Что такое распознавание лиц?

Распознавание лиц можно использовать для защиты от кражи личных данных, а также для идентификации людей по имени. Однако, учитывая, что распознавание лиц является относительно новым и постоянно развивается, важно понимать основы распознавания лиц, чтобы использовать его эффективно. Распознавание лиц относится к процессу определения того, принадлежит ли изображение лица известному человеку. Задачу распознавания лиц можно разделить на две задачи: 1) Face Detection — определение местоположения лица на изображении, 2) Face Recognition — идентификация лица, чье это лицо.

Что такое Матлаб?

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

Что такое Виола Джонс в Matlab?

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