Построение частотной heatmap (тепловой карты) нахождения автомобильных номеров на видео или онлайн камерах

  1. Кратко
  2. Подробно
    1. Установка под GPU
    2. Установка под CPU
    3. Расположение файлов
    4. Аргументы командной строки
    5. Пример работы
    6. Пример работы с онлайн камерой

Кратко

Runprocess.Py Запускает видео/стрим и создает файл, с координатами найденных номеров

DrawHeatmap.py По готовому файлу номеров рисует heatmap

Подробно

Установка под GPU

pip3 install tensorflow-gpu==1.15.2 
pip3 install Keras==2.2.*
pip3 install mrcnn
pip3 install Nomeroff-net-gpu

Установка под CPU

pip3 install tensorflow==1.15.2 
pip3 install Keras==2.2.*
pip3 install mrcnn
pip3 install Nomeroff-net

Расположение файлов

В папке video находятся видео, которые могут быть обработаны. Чтобы их использовать - необходимо указать одно из них в командной строке при запуске скрипта Runprocess.Py (см. раздел аргументы командной строки).

В папке files_heatmap расположены файлы разрешенияtxt, полученные скриптом Runprocess.Py. А также картинки heatmap, полученные скриптом DrawHeatmap.py.

Аргументы командной строки

При запуске Runprocess.Py можно указать аргументы:

--video=test.mp4 Название файла видео из папки video или ссылка на онлайн камеру. По умолчанию test.mp4

--file=test.txt Название файла, куда будет записаны координаты номеров (файлы сохраняются в папку files_heatmap). По умолчанию [название__видео].txt

--type=v или --type=s Тип того, что было передано в --video. v-видео, s-стрим. По умолчанию видео

--sec=0.5 Количество секунд между захватом кадров для обработки. По умолчанию 0.5 секунд

--gpu=no или --gpu=yes Используется ли GPU. По умолчанию не используется

При запуске DrawHeatmap.py:

--file=test.txt Название файла с координатами номеров. По умолчанию указано test.mp4

--k=40 Характеристика разбивки на зоны. Желательный интервал [20, 100]. При 20 - большее количество зон, при 100 - зон меньше. По умолчанию указано 40

Пример получения heatmap

1) Запустили Runprocess.Py таким образом:

python3 RunProcess.py --video=multy_mini.MOV --file=multy_mini.txt --type=v --gpu=no

что было бы аналогично из-за дефолтных настроек этому:

python3 RunProcess.py --video=multy_mini.MOV

2) Запускаем DrawHeatmap.py:

python3 DrawHeatmap.py --file=multy_mini.txt --k=60 --show=True

После этого мы видим на экране картинку c какой-то хренью c отображением 15 точек для каждого номера

Точки номеров

И heatmap. Приведем 4 картинки для разных k

Heatmap для разных k

Использование онлайн камеры в качестве видео

python3 RunProcess.py --video=[URL на камеру] --file=camera_online.txt --type=s --gpu=no

Чтобы остановить работу скрипта необходимо нажать Ctrl+c

python3 DrawHeatmap.py --file=camera_online.txt --k=60 --show=True