- Описание
- Как пользоваться программой
- Как это работает?
- О проекте и технологиях
- Installation
- Возможные проблемы
Программа реализована для распознавания ДТП на видеозаписях с камер наружного наблюдения. Дтп распознается как и с наличием специальной техники для фиксирования и помощи в ДТП, так и без каких-то четких опознавательных рамок. Возможна поддержка в "real-time" (онлайн режим).
С такой программой пользователь сможет заранее проверить ситуацию на дорогах, причину возникновения "пробки" и построить для себя удобный вариант маршрута.
Результаты работы видео с ДТП №1 с спецтранспортом | Результаты работы видео с ДТП №2 с спецтранспортом |
---|---|
Результаты работы видео с ДТП №3 без спецтранспорта |
---|
- Помещаем видео в папку videos.
- Преобразовываем видео в последовательность изображений (доступен Progress Bar).
- Запуск детектора объектов для всех директорий из videos2images.
- Результаты работы детектора объектов.
- Видеоподтверждения ДТП.
Изначально, все видеофайлы из папки videos преобразуются в последовательность кадров. Первоначальный расчёт на то, что fps у тестовых видео будет такой же, как и у тех, что были предоставлены для исследование, т.е. 30.
- Из видео каждую секунду берётся 2 кадра.
- Затем последовательности кадров обрабатывается детектором объектов с порогом уверенности 0.7. Таким образом, в папке detection_results для всех видеофайлов, которые преобразовались в последовательность кадров, появятся результаты работы детектора объектов. В папке labels в каждом файле хранится информация о местонахождении объекта (bouning box) + уверенность (confidence).
- Логика определения ДТП заключена в dtp.py. Мы считаем, что ДТП случилось в том случае, если на минимум 10 изображения был найден спецтранспорт с увереностью нейронной сети >=0.7. В случае наступления ДТП, в папке proof появится видеофайл, а также в консоль будет выведено соответствующее сообщение.
Технонологии:
Метрики оценивания:
Результаты работы на валидационной выборке:
Train metrics:
Confusion Matrix:
-
Установить пакеты из requirements.txt:
pip install –r requirements.txt
-
Скачать файлы моделей по ссылке
-
Перенести их в weights
Протестировано для torch 1.9.0+cu111
В случае, если алгоритм не определил ДТП, возможны следующие улучшения:
- Увеличения количество изображений при преобразовании из видео в изображения. python videos2imgs.py --when 5 Таким образом, будет сохранен каждый 5-ый кадр, мы увеличим количество изображений в папках втрое. Повторить шаги, начиная с detect.
- Если ролики короткие и не применяли шаг выше, то следует изменить параметр --thresh для is_dtp.py на 7 или 5. python is_dtp.py --thresh 7
- Если это не помогло, то изменяем confidence threshold для детектора объектов на 0.6 python detect.py --conf-thres 0.6 Теперь python is_dtp.py --thresh 7 --conf 0.6
- В случае, если происходят ложные срабатывания, то увеличиваем параметры --thresh до 15-20 или --conf до 0.75-0.85.
Повторить все шаги выше, используя вторую модель из weights (yolo_hard_best.pt) для detect.py. python detect.py --weights “weights/ yolo_hard_best.pt”