Главная страница
Навигация по странице:

  • Программное обеспечение для распознавания лиц

  • Мобильное приложение для Android

  • практическая часть диплома мобильных приложений. Диплом_2 глава. 2. Разработка Программного продукта. 1 Концепция приложения


    Скачать 0.63 Mb.
    Название2. Разработка Программного продукта. 1 Концепция приложения
    Анкорпрактическая часть диплома мобильных приложений
    Дата07.05.2023
    Размер0.63 Mb.
    Формат файлаdocx
    Имя файлаДиплом_2 глава.docx
    ТипДокументы
    #1112793
    страница3 из 6
    1   2   3   4   5   6

    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. Разность гауссова получается как разность гауссовского размытия изображения с двумя разными, пусть будет так, и этот процесс делается для разных октав изображения в гауссовой пирамиде. Он представлен на изображении ниже:



    Рисунок 4-просеивание

    Как только этот DoG найден, изображения ищутся на предмет локальных экстремумов по масштабу и пространству. Например, один пиксель изображения сравнивается с 8 его соседями, а также с 9 пикселями в следующем масштабе и 9 пикселями в предыдущем масштабе. Если это локальные экстремумы, то это потенциальная ключевая точка. В основном это означает, что ключевая точка лучше всего представлена ​​в этой шкале. Это показано на изображении ниже:



    Рисунок 5 -ПРОСЕИВАНИЕ

    Как только потенциальные ключевые точки найдены, их необходимо уточнить, чтобы получить более точные результаты. Они использовали разложение масштабного пространства в ряд Тейлора, чтобы получить более точное местоположение экстремумов, и если интенсивность в этих экстремумах меньше порогового значения (0,03 согласно статье), оно отбрасывается. Этот порог называется контрастным порогом в OpenCV DoG, который имеет более высокую реакцию на края, поэтому края также необходимо удалить. Для этого используется концепция, аналогичная угловому детектору Харриса. Они использовали матрицу Гессе 2x2 (H) для вычисления главной кривизны. Из углового детектора Харриса мы знаем, что для ребер одно собственное значение больше другого. Если это отношение превышает пороговое значение, называемое пороговым значением края в OpenCV, эта ключевая точка отбрасывается. На бумаге это 10.

    Теперь каждой ключевой точке назначается ориентация для достижения инвариантности к вращению изображения. Окрестность берется вокруг местоположения ключевой точки в зависимости от масштаба, и в этой области вычисляются величина и направление градиента. Создается гистограмма ориентации с 36 ячейками, охватывающими 360 градусов. (Он взвешивается по величине градиента и круглому окну, взвешенному по Гауссу, в 1,5 раза превышающему масштаб ключевой точки. Берется самый высокий пик на гистограмме, и любой пик выше 80% также учитывается для расчета ориентации. Он создает ключевые точки. с одинаковым расположением и масштабом, но разными направлениями, что способствует стабильности сопоставления.

    Теперь создан дескриптор ключевой точки. Берется окрестность 16x16 вокруг ключевой точки. Он разделен на 16 подблоков размером 4x4. Для каждого подблока создается гистограмма ориентации с 8 бинами. Таким образом, всего доступно 128 значений бинов. Он представлен в виде вектора для формирования дескриптора ключевой точки. В дополнение к этому, предпринимаются некоторые меры для обеспечения устойчивости к изменениям освещения, вращению и т. д.

    Ключевые точки между двумя изображениями сопоставляются путем определения их ближайших соседей. Но в некоторых случаях второе ближайшее совпадение может быть очень близко к первому. Это может произойти из-за шума или по другим причинам. В этом случае берется отношение ближайшего расстояния ко второму ближайшему расстоянию. Если он больше 0,8, они отбраковываются. Он устраняет около 90% ложных совпадений и отбрасывает только 5% правильных совпадений.



    Рисунок 6- значок GCM

    Google Cloud Messaging (GCM) — это бесплатная служба, которая позволяет разработчикам отправлять нисходящие сообщения (от серверов к клиентским приложениям с поддержкой GCM) и исходящие сообщения (от клиентских приложений с поддержкой GCM к серверам). Это может быть легкое сообщение, сообщающее клиентскому приложению, что есть новые данные, которые нужно получить с сервера (например, уведомление «новое электронное письмо», информирующее приложение о том, что оно не синхронизировано с серверной частью), или это может быть сообщение, содержащее до 4 КБ данных полезной нагрузки (поэтому такие приложения, как обмен мгновенными сообщениями, могут использовать сообщение напрямую). Служба GCM обрабатывает все аспекты постановки сообщений в очередь и их доставки в целевое клиентское приложение и из него.

    Реализация GCM включает сервер подключения, предоставленный Google, сторонний сервер приложений, который взаимодействует с сервером подключения, и клиентское приложение с поддержкой GCM. Например, на этой диаграмме показано, как GCM взаимодействует с клиентским приложением на устройстве Android:



    Рисунок 5- Схема работы приложения

    Вот как взаимодействуют эти компоненты:

    • Предоставляемые Google серверы соединений GCM принимают сообщения от стороннего сервера приложений и отправляют эти сообщения в клиентское приложение с поддержкой GCM («клиентское приложение»). В настоящее время Google предоставляет серверы соединений для HTTP и XMPP.

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

    • Клиентское приложение — это клиентское приложение с поддержкой GCM. Чтобы получать сообщения GCM, это приложение должно зарегистрироваться в GCM и получить идентификатор регистрации. Если мы используем сервер соединений XMPP (CCS), клиентское приложение также может отправлять «восходящие» сообщения обратно на сторонний сервер приложений.

    Поток жизненного цикла приложения

    Клиентская часть (мобильное приложение)

    • Зарегистрируйтесь, чтобы включить GCM. Клиентское приложение регистрируется для получения сообщений.

    • Отправлять и получать нисходящие сообщения.

    1. Получить сообщение. Клиентское приложение получает сообщение от сервера GCM.

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

    • Отправить сообщение. Клиентское приложение отправляет сообщения на сторонний сервер приложений:

    1. На устройстве клиентское приложение отправляет сообщения в XMPP (CCS).

    2. XMPP (CCS) ставит в очередь и сохраняет сообщение, если сервер отключен.

    3. Когда сторонний сервер приложений повторно подключается, XMPP (CCS) отправляет сообщение на сторонний сервер приложений.



    Рисунок 9-Этап регистрации

    Отправка сообщения клиентскому приложению

    1. Сторонний сервер приложений отправляет сообщение на серверы подключения GCM.

    2. Сервер подключения GCM ставит в очередь и сохраняет сообщение, если Устройство находится в автономном режиме.

    3. Когда устройство подключено к сети, сервер подключения GCM отправляет сообщение на устройство.

    4. На устройстве клиентское приложение получает сообщение в зависимости от платформы.



    Рисунок 10- Отправка Сообщений схема

    Получить сообщение.Сторонний сервер приложений получает сообщение от XMPP (CCS), а затем выполняет следующие действия:

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

    2. Отправляет «подтверждение» серверу подключения GCM XMPP, чтобы подтвердить получение сообщения.

    3. При необходимости анализирует полезные данные сообщения, как определено клиентским приложением.

    Android Studio — это официальная среда разработки приложений для Android, основанная на IntelliJ IDEA. Мы используем это программное обеспечение для разработки нашего приложения для Android, которое получает сообщение от сервера обмена сообщениями Google Cloud. Android Studio предлагает:

    • Гибкая система сборки на основе Gradle

    • Варианты сборки и создание нескольких APK-файлов

    • Шаблоны кода, которые помогут вам создавать общие функции приложения

    • Богатый редактор макетов с поддержкой редактирования темы перетаскиванием

    • инструменты lint для определения производительности, удобства использования, совместимости версий и других проблем

    • ProGuard и возможности подписи приложений

    • Встроенная поддержка Google Cloud Platform, упрощающая интеграцию Google Cloud Messaging и App Engine.

    Google App Engine (часто называемый GAE или просто App Engine) — это платформа облачных вычислений «платформа как услуга» (PaaS) для разработки и размещения веб-приложений в центрах обработки данных, управляемых Google. Приложения изолированы и работают на нескольких серверах. App Engine предлагает автоматическое масштабирование для веб-приложений: по мере увеличения количества запросов для приложения App Engine автоматически выделяет больше ресурсов для веб-приложения, чтобы справиться с дополнительным спросом. Google App Engine предоставляется бесплатно до определенного уровня потребляемых ресурсов. Плата взимается за дополнительное хранилище, пропускную способность или часы работы экземпляра, требуемые приложением.

    OpenCV (Open Source Computer Vision) — это библиотека функций программирования, в основном предназначенная для компьютерного зрения в реальном времени, разработанная исследовательским центром Intel Россия в Нижнем Новгороде. Он бесплатен для использования по лицензии BSD с открытым исходным кодом. Библиотека кроссплатформенная. Основное внимание уделяется обработке изображений в реальном времени. Если библиотека обнаружит в системе интегрированные примитивы производительности Intel, она будет использовать эти проприетарные оптимизированные подпрограммы для собственного ускорения. Мы используем библиотеки OpenCV для видеообработки входного видео для идентификации людей.

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

    Таблица 9-Технические характеристики ГКМ

    Составные части

    Серверы соединений GCM

    Предоставленные Google серверы, участвующие в отправке сообщений между

    Сторонний сервер приложений и клиентское приложение.

    Клиентское приложение

    Клиентское приложение с поддержкой GCM, которое взаимодействует со сторонним сервером приложений.

    Стороннее приложение

    Сервер

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

    Реквизиты для входа

    Удостоверение личности отправителя

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

    отправлять сообщения клиентскому приложению.

    Авторизация отправителя

    Токен

    Ключ API, сохраненный на стороннем сервере приложений, который предоставляет серверу приложений авторизованный доступ к службам Google. Ключ API включается в заголовок запросов POST.

    Идентификатор приложения

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

    имя из манифеста. Это гарантирует, что сообщения будут адресованы правильному приложение для Android.

    Идентификатор регистрации

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

    В следующей таблице перечислены цели, параметры и полезная нагрузка для сообщений HTTP или XMPP JSON.




    Параметр

    протоколл

    Применение

    Описание




    Цели





    К

    XMPP

    Обязательно, строка

    Этот параметр указывает получателя сообщения.

    Значение должно быть идентификатором регистрации.

    /ключ уведомления.

    Этот параметр используется в XMPP вместо Registration_ids или ключа уведомления в HTTP.




    Registration_ids

    HTTP

    Требуется, если уведомление_ключнет, строка

    множество

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

    1 и не более 1000 регистрационных идентификаторов.

    Многоадресные сообщения (отправленные более чем на 1 идентификатор регистрации) разрешены только в формате HTTP JSON.

    Этот параметр или ключ уведомления используется в HTTP вместо to в XMPP.




    уведомление_ключ

    HTTP

    Требуется, если Registration_id не указан, строка

    Этот параметр определяет сопоставление одного пользователя с несколькими идентификаторами регистрации, связанными с этим пользователем.

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

    Сторонний сервер приложений может использовать notification_key в качестве цели для сообщения вместо индивидуального идентификатора регистрации (или массива идентификаторов регистрации). Максимальное количество членов, разрешенных для ключа уведомления, равно 20. Этот параметр или Registration_id используется в HTTP вместо to в XMPP.





    Опции




    message_id

    XMPP

    Обязательно, строка

    Этот параметр однозначно идентифицирует сообщение в соединении XMPP.




    свернуть_ключ

    HTTP,

    XMPP

    Необязательно, строка

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

    Обратите внимание, что порядок отправки сообщений не гарантируется.

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




    delay_while_idle

    HTTP,

    XMPP

    Необязательный,

    Булево значение JSON

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

    Значение по умолчанию неверно.





    время жить

    HTTP,

    XMPP

    Необязательный,

    JSON-номер

    Этот параметр указывает, как долго (в секундах) сообщение должно храниться в хранилище GCM, если устройство находится в автономном режиме. Максимальное поддерживаемое время жизни составляет 4 недели.

    Значение по умолчанию — 4 недели.




    квитанция о доставке_

    просил

    XMPP

    Необязательный,

    логическое значение JSON

    Этот параметр позволяет стороннему серверу приложений запрашивать подтверждение доставки сообщения.

    Если для этого параметра установлено значение true, CCS отправляет уведомление о доставке, когда устройство подтверждает, что оно получило сообщение.

    Значение по умолчанию неверно.





    ограниченный_пакет_

    название

    HTTP

    Необязательно, строка

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




    пробный прогон

    HTTP

    Необязательный,

    логическое значение JSON

    Этот параметр, если установлено значение true, позволяет разработчикам тестировать запрос без фактической отправки сообщения.

    Значение по умолчанию неверно.




    Полезная нагрузка





    Данные


    HTTP,XMPP


    Необязательный,

    JSONобъект

    Этот параметр указывает пары ключ-значение полезной нагрузки сообщения. Количество пар ключ-значение не ограничено, но общий размер сообщения ограничен 4 КБ.

    Например, в Android

    данные:{"оценка":"3x1"} было бы привести к намеренному дополнительному названному счетусо строковым значением 3x1.Ключ не должен быть зарезервированным словом. Также не рекомендуется использовать слова, определенные в этой таблице к непредсказуемым результатам.

    .

    Запрос получен сервером GCM

    curl --header "Авторизация: ключ = AIzaSyD6ktqBEKOqAp4jvYV8r9eth6hhP0KaQE4" --header Content-Type: "application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\" -XHRCU6aifpnjSXZD6aA7OY7rLkH4Ml9apc8kEgkUZ-bVaKrMRA8ZfHsw3QDBLGKiJs9mLZW9EKqAeFaE6ieUnuCU114lAh6Ys25HA \"], \"data\":{\"name\":\"Satvik\"}}"

    1. UMTS, WCDMA HSPA/HSPA+: стандарты передачи данных 3G

    2. USB: необходим для подключения смартфона к компьютеру.

    3. IEEE 802.11: стандарт Wi-Fi

    4. RFC 2616: стандарт HTTP/1.1

    5. Радиоволны UHF в диапазоне ISM от 2,4 до 2,485 ГГц

    6. NIEM 3.0 для XML-кодирования стандарта. В настоящее время NIEM 2.1 используется для схемы ANSI/NISTITL.

    В качестве ограничений продукта были определены следующие:

    1. Экономическое ограничение:Система потребует развертывания системы видеонаблюдения в каждом подъезде.

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

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

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

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

    6. Ограничение доставки:Приложение полностью зависит от платформы Google Cloud Messaging, которая может добавить задержку при отправке уведомлений пользователям, поскольку это бесплатная и открытая служба.

    Установка приложения для пользователя-любителя затруднена из-за того, что многие библиотеки OpenCV и HTTP-запросов должны быть установлены пользователем для настройки системы наблюдения. Приложению также требуется среда выполнения, чтобы оно могло отправлять сообщения на сторонний сервер приложений. Это усложняет этап установки. Однако после завершения этапа настройки приложение становится простым в использовании. С другой стороны, приложение для Android автоматически обрабатывает процесс регистрации на сервере GCM, что упрощает установку на стороне Android.

    Использование приложения для смартфона делает всю систему очень рентабельной, а тот факт, что теперь каждый может позволить себе смартфон, оказывается проще использовать веб-службу обмена сообщениями по сравнению с другими альтернативами, такими как GSM Smart Messaging System. Служба SMS также может создавать ложные тревоги, поскольку сообщение может быть служебным сообщением от поставщика услуг сети. Таким образом, наличие push-уведомлений помогает нам классифицировать сообщения, чтобы они были специфичными для приложения, и, таким образом, приложение будет получать только релевантные сообщения. Кроме того, стоимость системы увеличится, так как оператор будет взимать плату за каждое SMS,запланированные задачи были успешно реализованы и протестированы. Различные компоненты, такие как приложение Python (Tracking и Viola Jones для распознавания лиц), сервер подключения GCM, сторонний сервер приложений и приложение Android, были взаимосвязаны и протестированы для работы в качестве системы наблюдения.Различные задачи, связанные с анализом требований и этапом проектирования системы, перечислены ниже:

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

    2. Установка и настройка всех библиотек и функций OpenCV —После того, как все технологии и методы были определены, следующим шагом была установка всех библиотек, их тестирование в системе и проверка, подойдет ли она для нашей задачи или нет.

    3. Разработка мобильного приложения в Android Studio –Эта задача была сосредоточена на установке Android Studio и изучении программирования для Android, а затем, наконец, на разработке пользовательского интерфейса клиентского приложения.

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

    5. Разработка стороннего сервера приложений на Google App Engine.Эта задача включала развертывание стороннего сервера приложений, который обрабатывает этапы регистрации и идентификации системы. На этапе регистрации принимается запрос клиентских приложений, в котором клиентское приложение передает идентификатор регистрации, полученный от сервера подключения GCM. Сторонний сервер сохраняет этот регистрационный идентификатор в хранилище данных ядра приложения и, таким образом, поддерживает список зарегистрированных пользователей. Затем он обрабатывает запрос приложения Python, где получает сообщение, а затем передает его на сервер GCM вместе с регистрационными идентификаторами всех зарегистрированных устройств.



    1. Связывание стороннего сервера приложений с облачным сервером обмена сообщениями Google —В этой задаче проект Google API создается в Google Developers Console. Мы получаем номер нашего проекта, который используем при регистрации приложения на сервере. Затем мы включаем службу GCM, перейдя к API и аутентификации и включив переключатель Google Cloud Messaging для Android. Затем мы получаем ключ API, перейдя к учетным данным, создаем новый ключ в доступе к общедоступному API и создаем новый ключ сервера. Этот ключ API используется сторонним сервером приложений для пересылки сообщений на сервер подключения GCM.

    2. Настройка Устройства для получения сообщений и отображения их в правильном формате –В этой задаче Android-приложение получает пакет, содержащий сообщение в формате JSON. Мы анализируем его, чтобы извлечь наше сообщение, а затем добавляем к нему текущее время. Наконец, с помощью широковещательного приемника генерируется уведомление, и пользователь уведомляется о сообщении. Кроме того, нажатие на уведомление создает действие и загружает приложение, которое отображает прошлые вместе с текущими полученными сообщениями с отметками времени.

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

    Демонстрация проекта разделена на две части:

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

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



    Рисунок 11- Уведомление получено



    Рисунок 12-Интерфейс Android-приложения



    Рисунок 13 Код распознавания лиц

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

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

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

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

    Таблица 15- Экономически затраты

    сущность

    Расходы

    Базовые смартфоны

    3000 рублнй

    Консоль разработчиков Google – единовременная плата за регистрацию

    700 рублей

    Стоимость онлайн-инфраструктуры Google App Engine (только для использования после квоты)

    1000 рублей в месяц

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

        • Обнаружение лица, отслеживание и идентификация.

        • Обнаружение аномальных событий.

        • Регистрация приложения Android на сервере приложений и сервере соединений GCM.

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

        • Уведомление системного администратора/владельца в его/ее приложении для Android через Push-уведомления.


    1   2   3   4   5   6


    написать администратору сайта