Абстрактный

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

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

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

Вступление

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

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

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

Методология

Алгоритмы обнаружения объектов будут использоваться для обнаружения локализованных людей в кадре изображения. Более быстрые R-CNN, SSD (Single Shot Detection) и YOLO (You Only Look Once) входят в тройку наиболее распространенных архитектур для задач обнаружения объектов. Несмотря на то, что каждый из них имеет свои преимущества, в этом проекте использовался SSD (Single Shot Detection), который требует меньших вычислительных затрат и может быть обработан в кратчайшие сроки. Только SSD работал безупречно и плавно на CPU почти в реальном времени. Среди множества архитектур CNN здесь используется его версия MobileNet, разработанная Google, она отличается очень легкостью и скоростью.

Набор данных COCO - это общедоступный набор данных, содержащий более 80 классов, SSD MobileNet был обучен на наборе данных COCO. Поскольку нам нужен был только 1 класс из этого набора данных, это класс «человек», поэтому все остальные классы были отфильтрованы. Предварительно обученный набор данных MobileNet на COCO использовался вместо обучения с нуля, веса и архитектура были импортированы через переносное обучение. Реализация была выполнена на Python из-за его простых в использовании библиотек, таких как Tensorflow, Keras, OpenCV и многих других.

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

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

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

Полученные результаты

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

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

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

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

Полный код с подробным объяснением скоро будет доступен на моем GitHub. Здесь прилагается ссылка на репозиторий https://github.com/osama-AI/Social-Distancing-AI

Заключение и будущие улучшения

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

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

1. Используйте более сложную и сложную модель для обнаружения объектов, такую ​​как Faster R-CNN или даже YOLO. Архитектура CNN, используемая здесь, была MobileNet, но VGG или Inception, имея миллионы дополнительных слоев, были достаточно сложными, чтобы извлечь из них больше функций. Единственная причина, по которой они не использовались, заключается в том, что вычислительная обработка, необходимая для этих сложных версий, означает, что их невозможно запустить в реальном времени на ЦП.

2. Чтобы получить точную глубину от камеры к человеку, идеальной техникой было включение датчиков глубины, таких как LiDAR и радары, которые должны быть объединены с частью Vision. Эти датчики - самый точный и простой способ определения глубины с камеры.

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

4. Алгоритм глубокой сортировки для обнаружения и отслеживания может упростить обнаружение на видео, вместо обнаружения нового человека в каждом кадре он может дать уникальный идентификатор обнаруженному человеку, который останется с этим конкретным человек во всех кадрах. Это специально для приложений слежения.

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