Тестовое задание по OpenCV.
Определение сигнала светофора для дальнейшей фиксации проезда на красный. В рамках данной задачи жёлтый сигнал приравнивается к зелёному.
Реализованный вариант
Самое простое решение в виде сервера MJPEG на Flask. Расчитано на 1 клиента. Сильно жрёт ресурсы.
Demo: http://test.16bc.ru/
Примечание
Иногда частота мерцания светодиодов светофора близка к частоте кадров стрима, и сигнал "гаснет" (в т.ч. на стриме первоисточника), из-за чего он неверно распознаётся. Дублирующий светофор проблему не решает, т.к. имеет другую частоту "угасания".
Другие возможные варианты реализации и доработки:
- Использовать брокер сообщений в качестве посредника.
- Полученный от OpenCV стрим перекодировать и перераздать с помощью GStreamer, vlc и т.п., скормив плееру на фронте.
- Использовать готовые решения, например Vidgear, который был протестирован на данной задаче: https://github.com/16bc/omk_test_2