Программно-аппаратная среда
- 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
файл в порядке. Структура файла следующая
Тестовый эффект
cd src
python social_distanciation_video_detection.py
После того, как программа запустится, просто нажмите Enter в терминале и используйте параметры по умолчанию для тестирования. Когда персонаж попадает в диапазон синей линии, система выделяет его зеленой рамкой.
Когда расстояние между персонажами меньше 110 пикселей (это значение по умолчанию), система выделяет его красным цветом, указывая на то, что социальной дистанции недостаточно.
Если это другое тестовое видео, возможно, его необходимо откалибровать, метод следующий:
cd src
python calibrate_with_mouse.py
После запуска программы пользователю будет предложено ввести имя файла и размер видеокадра тестового видео. Значение по умолчаниюPETS2009.avi
и 800 пикселей, а потом на открытуюopencv
В окне используйте левую кнопку мыши, чтобы щелкнуть 4 точки соответственно, в следующем порядке: верхний правый, нижний правый, нижний левый и верхний левый, эти 4 точки соединены в четырехугольник.
После выполнения кода соответствующие данные будут записаны в конфигурационный файл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