Skip to content

Find a free space to parking a car by roof cameras

Notifications You must be signed in to change notification settings

artyrian/parkspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parkspace

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

Based on Mask RCNN lib. Mask RCNN github

Предобученная модель:

Пример запуска на предобученной модели, baseline: baseline

Настройка окружения

Нужен python3.7 (c 3.8 и выше первая версия tf недоступна). Use this fix to update python to 3.10 and tf to newer versions. (model.py patch) matterport/Mask_RCNN#2783 (comment) or try to use this version for mrcnn (https://github.com/akTwelve/Mask_RCNN/) without fixes.

virtualenv --python=/usr/bin/python3.7 venv
source venv/bin/activate
pip install -r requirements.txt

Скачать CUDA toolkit: https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local (проверить версию для gcc в системе)

Сбор датасета

Сохранение изображений с камеры в настоящий момент:

python src/devline.py --url <server_url> --port <server_port --user <user> --password <password> --dir cams

Devline API

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

Первый запуск

Запуск с предобученной моделью Mask RCNN, скачанной на этапе подготовки:

python src/detect.py --weights models/mask_rcnn_coco.h5  --data <images_dir> --out <out_images_detected_dir>

На выходе сложит размеченные изображения, с распознанными машинами в указанную директорию.

Обучение

1. Разметка

  • собрать train, val выборки
  • разметить при помощи via.html
  • подложить датасет и разметку по следующим путям

2. Обучение на размеченных данных

python src/train.py --dataset=dataset --weights=coco

ETA: 10-15 изображений для обучения, 30 эпох, gpu 1050Ti -> 20h

Попробовать colab.research.google.com для обучения с gpu.

3. Использование новой модели

При обучении модели после каждой эпохи складываются в logs в поддиректории. Дообученную модель нужно положить в models/some_new_model_name.h5 и указать при запуске распознавания:

python src/detect.py --data <images_dir> --weights <models/some_new_model_name.h5> --out <images_detected_dir>

Обученная на 15 изображениях модель выдаёт заметно лучшие результаты, хотя и встречаются ложноположительные/ложноотрицательные результаты:

Пример: видно, что пустое парковочное место прокрасилось в занятое, остальные машины определились корректно.

learned_img_15_epochs_30_1

Пример: машина в темном углу осталась незамеченой, но корректные пустые места остались. learned_img_15_epochs_30_2

TODO:

  • попробовать увеличить качество изображений
  • получать изображения без служебной информации (дата, время)
  • дообучать модели под разное время суток/погодные условия и пр. (может быть иметь несколько моделей)

Links

About

Find a free space to parking a car by roof cameras

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages