Файл: 2. Разработка Программного продукта. 1 Концепция приложения.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 62
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Таблица 3 - Описание сущности «Часть записи»
Название поля | Описание поля |
Идентификатор | Идентификатор части записи |
Время начала | Дата и время начала захвата видеопотока |
Время окончания | Дата и время окончания захвата видеопотока |
Размер файла | Размер сохраненного видео файла |
Адрес файла | Адрес сохраненного файла |
Сущность «Сотрудник» используется для хранения информации о сотрудниках предприятия. Содержит поля имени, отчества, фамилии, даты рождения, должность, адрес проживания. Описание сущности «Сотрудник» представлено в таблице 4.
Таблица 4 - Описание сущности «Сотрудник»
Название поля | Описание поля |
Идентификатор | Идентификатор сотрудника |
Имя | Имя сотрудника |
Фамилия | Фамилия сотрудника |
Отчество | Отчество сотрудника |
Адрес проживания | Адрес проживания сотрудника |
Дата рождения | Дата рождения сотрудника |
Должность | Занимаемая должность |
Адрес электронной почты | Адрес электронной почты сотрудника |
Сущность «Атрибут» используется для хранения атрибутов описывающих категории и пункты наблюдения. Содержит поля названия атрибута, значения атрибута. Описание сущности «Атрибут» представлено в таблице 5.
Таблица 5 - Описание сущности «Атрибут»
Название поля | Описание поля |
Идентификатор | Идентификатор атрибута |
Название | Название атрибута |
Значение | Значение атрибута |
Сущность «Тип атрибута» используется для хранения информации о типе атрибута. Содержит поля названия типа и сам тип атрибута. Данная информация необходима для правильной интерпретации значения атрибута. Описание сущности «Тип атрибута» представлено в таблице 6.
Таблица 6 - Описание сущности «Тип атрибута»
Название поля | Описание поля |
Идентификатор | Идентификатор типа атрибута |
Тип данных | Тип интерпретируемых данных |
Название | Название типа атрибута |
Сущность «Событие распознавания личности» используется для хранения информации о событиях распознавания образов. Содержит поля времени и даты фиксации сотрудника на определенной камере. Описание сущности «Событие распознавания личности» представлено в таблице 7.
Таблица 7 - Описание сущности «Событие распознавания личности»
Название поля | Описание поля |
Идентификатор | Идентификатор события |
Время | Дата и время распознавания сотрудника на определенной камере |
Сущность «Параметр настройки кодека» используется для хранения информации, которая представляет собой параметры конфигурации кодека. Содержит поля названия атрибута и значения. Описание сущности «Параметр настройки кодека» представлено в таблице 8.
Таблица 8 - Описание сущности «Параметр настройки кодека»
Название поля | Описание поля |
Идентификатор | Идентификатор параметра кодека |
Название | Название параметра |
Значение | Значение параметра |
2.3 Описание алгоритма и логики работы программы
Первой задачей разработчиков проекта является определение различных компонентов продукта. Продукт представляет собой в первую очередь открытый CV-код, который генерирует результаты распознавания лиц и отслеживания объектов. Затем мы отправляем это как сообщение в мобильное приложение через push-уведомления.
Рисунок 2- Блок-Схема
Детектор лиц Виолы/Джонса- этот метод представляет собой подход машинного обучения для визуального обнаружения объектов, который позволяет очень быстро обрабатывать изображения и достигать высоких показателей обнаружения. Эта работа отличается тремя ключевыми вкладами:
-
Во-первых, это введение нового представления изображения, называемого «Интегральное изображение», которое позволяет очень быстро вычислять функции, используемые нашим детектором. -
Второй — алгоритм обучения, основанный на AdaBoost, который выбирает небольшое количество важных визуальных признаков из большего набора и дает чрезвычайно эффективные классификаторы. -
Третьим вкладом является метод объединения все более сложных классификаторов в «каскад», который позволяет быстро отбрасывать фоновые области изображения, затрачивая больше вычислений на многообещающие объектно-подобные области.
В нашей системе используется вариант AdaBoost как для выбора небольшого набора признаков, так и для обучения классификатора. В своей первоначальной форме алгоритм обучения AdaBoost используется для повышения производительности классификации простого (иногда называемого слабым) алгоритма обучения.
Процедура обучения AdaBoost дает ряд формальных гарантий. Фройнд и Шапиро доказали, что ошибка обучения сильного классификатора экспоненциально приближается к нулю по количеству раундов. Что еще более важно, позже был доказан ряд результатов о производительности обобщения.
Ключевым моментом является то, что производительность обобщения связана с маржой примеров, и AdaBoost быстро достигает больших марж. Напомним, что существует более 180 000 прямоугольных элементов, связанных с каждым подокном изображения, что намного больше, чем количество пикселей. Несмотря на то, что каждая функция может быть вычислена очень эффективно, вычисление всего набора непомерно дорого. Наш метод, подтвержденный экспериментом, заключается в том, что очень небольшое количество этих признаков может быть объединено для создания эффективного классификатора.
Основная задача состоит в том, чтобы найти эти функции. В поддержку этой цели алгоритм слабого обучения предназначен для выбора единственного прямоугольного объекта, который лучше всего разделяет положительные и отрицательные примеры (это похоже на подход в области поиска базы данных изображений). Для каждой функции слабый ученик определяет оптимальную пороговую функцию классификации, чтобы было неправильно классифицировано минимальное количество примеров.
Повышение — это схема классификации, которая работает путем объединения слабых учеников в более точный классификатор ансамбля
Слабый ученик: классификатор с точностью, которая должна быть лучше, чем случайность
Мы можем определить слабых учащихся на основе признаков прямоугольника:
Рисунок 3-Классификатор HAAR
Процесс повышения:
Первоначально придайте равный вес каждому обучающему примеру.
-
Итерационная процедура обучения. -
Найдите лучшего слабого ученика для текущего взвешенного тренировочного набора. -
Увеличьте вес обучающих примеров, неправильно классифицированных текущим слабым учеником. -
Вычислите окончательный классификатор как линейную комбинацию всех слабых учеников (вес каждого ученика связан с его точностью). На рисунке ниже показано, как работает этот процесс, аналогично классификаторам HAAR.
Рисунок 3-внимание каскадирование для быстрого отклонения нелицевых окон
Каскад внимания для быстрого отклонения нелицевых окон.Шаги, вовлеченные в процесс:
а) Мы начинаем с простых классификаторов, которые отклоняют многие отрицательные подокна, обнаруживая почти все положительные подокна.
б) Положительные результаты первого классификатора инициируют оценку второго (более сложного) классификатора и так далее.
в) Отрицательный результат в любой момент приводит к немедленному отклонению подокна.
Тренировка каскада:
а) Отрегулируйте порог слабого ученика, чтобы свести к минимуму ложноотрицательные результаты (в отличие от общей ошибки классификации).
б) Каждый классификатор обучен на ложных срабатываниях предыдущих этапов.
c) Классификатор с одним признаком достигает 100% уровня обнаружения и около 50% уровня ложных срабатываний.
d) Классификатор с пятью признаками обеспечивает 100% уровень обнаружения и 40% уровень ложных срабатываний (20% в сумме) • Классификатор с 20 признаками обеспечивает 100% уровень обнаружения с 10% уровнем ложных срабатываний (2% в совокупности).
Для любого объекта на изображении можно выделить интересные точки объекта, чтобы получить «описание признаков» объекта. Это описание, извлеченное из обучающего изображения, затем можно использовать для идентификации объекта при попытке найти его на тестовом изображении, содержащем множество других объектов. Для надежного распознавания важно, чтобы признаки, извлеченные из обучающего изображения, можно было обнаружить даже при изменении масштаба изображения, шумов и освещенности. Такие точки обычно лежат на высококонтрастных участках изображения, например на краях объектов.
Другая важная характеристика этих функций заключается в том, что их относительное положение в исходной сцене не должно меняться от одного изображения к другому. Например, если бы в качестве элементов использовались только четыре угла двери, они работали бы независимо от положения двери; но если бы также использовались точки в кадре, распознавание не удалось бы, если дверь открыта или закрыта. Точно так же функции, расположенные в сочлененных или гибких объектах, обычно не будут работать, если какое-либо изменение их внутренней геометрии произойдет между двумя изображениями в обрабатываемом наборе. Однако на практике SIFT обнаруживает и использует гораздо большее количество признаков на изображениях, что снижает вклад ошибок, вызванных этими локальными вариациями, в среднюю ошибку всех ошибок сопоставления признаков.
SIFT может надежно идентифицировать объекты даже среди беспорядка и частичной окклюзии, поскольку дескриптор функции SIFT инвариантен к равномерному масштабированию, ориентации и частично инвариантен к аффинным искажениям и изменениям освещения. В этом разделе обобщается метод распознавания объектов Лоу и упоминаются несколько конкурирующих методов, доступных для распознавания объектов в условиях помех и частичной окклюзии.
В SIFT в основном входят 4 этапа:
Для обнаружения больших углов нам нужны большие окна. Для этого используется масштабно-пространственная фильтрация. В нем находится лапласиан гаусса для изображения с различными значениями. LoG действует как детектор BLOB-объектов, который обнаруживает BLOB-объекты различных размеров из-за изменения. Короче говоря, действует как параметр масштабирования. Например, на приведенном выше изображении ядро Гаусса с низким значением дает высокое значение для маленького угла, в то время как ядро Гаусса с высоким значением хорошо подходит для большего угла. Таким образом, мы можем найти локальные максимумы по шкале и пространству, что дает нам список значений, что означает наличие потенциальной ключевой точки в (x, y) в масштабе. Но этот LoG немного дорог, поэтому алгоритм SIFT использует разность гауссианов, которая является аппроксимацией LoG. Разность гауссова получается как разность гауссовского размытия изображения с двумя разными,