обнаружение социального дистанцирования

глубокое обучение

Программно-аппаратная среда

  • windows 10 64bit
  • anaconda with python 3.7
  • opencv 4.4.0
  • tensorflow 2.1

Введение

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

Проект с открытым исходным кодом, представленный в этой статье, использует модель, котораяfaster_rcnn_inception_v2_coco, с использованиемtensorflowФреймворк глубокого обучения. Адрес проекта:GitHub.com/BaslerRoth7…

Среда установки

Создайтеpythonвиртуальная среда

conda create -n covid python=3.7
conda activate covid

Затем перейдите к загрузке исходного кода

git clone https://github.com/basileroth75/covid-social-distancing-detection.git
cd covid-social-distancing-detection

Установить зависимые библиотеки

pip install -r requirements.txt

# 原工程中漏了opencv依赖
pip install opencv-python

Далее переходим к загрузкеtensorflowмодель по адресу:disk.baidu.com/yes/1u W U1D0 клавиатура…, Код извлечения:j3i8

После загрузки распакуйте вmodelsВ папке он фактически используется в производственной среде.frozen_inference_graph.pbфайл в порядке. Структура файла следующая

social_distance_detect

Тестовый эффект

cd src
python social_distanciation_video_detection.py

После того, как программа запустится, просто нажмите Enter в терминале и используйте параметры по умолчанию для тестирования. Когда персонаж попадает в диапазон синей линии, система выделяет его зеленой рамкой.

social_distance_detect

Когда расстояние между персонажами меньше 110 пикселей (это значение по умолчанию), система выделяет его красным цветом, указывая на то, что социальной дистанции недостаточно.

social_distance_detect

Если это другое тестовое видео, возможно, его необходимо откалибровать, метод следующий:

cd src
python calibrate_with_mouse.py

После запуска программы пользователю будет предложено ввести имя файла и размер видеокадра тестового видео. Значение по умолчаниюPETS2009.aviи 800 пикселей, а потом на открытуюopencvВ окне используйте левую кнопку мыши, чтобы щелкнуть 4 точки соответственно, в следующем порядке: верхний правый, нижний правый, нижний левый и верхний левый, эти 4 точки соединены в четырехугольник.

social_distance_detect

После выполнения кода соответствующие данные будут записаны в конфигурационный файлconf/config_birdview.ymlсередина

image_parameters:
  height_og: 800
  img_path: ../img/static_frame_from_video.jpg
  
  # 左下 
  p1:
  - 481
  - 411

  # 左上
  p2:
  - 482
  - 247
  
  # 右下
  p3:
  - 715
  - 411

  # 右上
  p4:
  - 693
  - 187
  size_frame: '800'
  width_og: 600

использованная литература