Приложение MATLAB для распознавания лиц: код, описание и синтаксис
Опубликовано: 2020-06-23Каждый раз, когда вы разблокируете свой мобильный телефон лицом или проходите через высокотехнологичную офисную систему наблюдения, в фоновом режиме работает сложная технология распознавания лиц. Так что же такое распознавание лиц и как можно выполнить распознавание лиц с помощью MATLAB ?
Распознавание лиц — это процесс идентификации человеческих лиц с помощью технологий. Система распознавания лиц использует компьютерное зрение и методы машинного обучения для моделирования и классификации черт лица, извлеченных из изображений и видео. Алгоритмы идентификации лиц извлекают и отображают черты лица и сравнивают их с базой данных известных лиц, чтобы найти наилучшее совпадение.
Источник
Оглавление
MATLAB в распознавании лиц
Можно добиться распознавания лиц с помощью кода MATLAB. Встроенный класс и функцию в MATLAB можно использовать для обнаружения лица, глаз, носа и рта. Система объектного зрения.CascadeObjectDetector System из набора инструментов системы компьютерного зрения распознает объекты на основе алгоритма распознавания лиц Виолы-Джонса.
Описание детектора объектов MATLAB
В vision.CascadeObjectDetector используется алгоритм Виолы-Джонса для идентификации лиц, глаз, рта, носа или верхней части тела. Пользовательский классификатор можно обучить с помощью MATLAB Image Labeler и использовать вместе с Системным объектом. Так как же на изображении обнаруживаются черты лица или верхняя часть тела? Вот шаги:
- Первый шаг включает в себя создание объекта vision.CascadeObjectDetector и настройку его свойств.
- На этом этапе объект вызывается с аргументами (как если бы он вел себя как функция).
Читайте: 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 году. Он используется в компьютерном зрении, машинном обучении и обработке изображений. Алгоритм Виолы Джонса обеспечивает полную систему обнаружения объектов и может использоваться для обнаружения пешеходов, обнаружения объектов или обнаружения человека. Алгоритм Виолы-Джонса состоит из этапа извлечения признаков, этапа кластеризации и этапа классификации объектов.