Добрый день. Заинтересовался распознаванием дорожных знаков. пришел к выводу, что целесообразно использовать opencv.
Определил следующие этапы решения проблемы:
1) видеопоток рассматриваем как совокупность кадров и работаем с каждым из них
2) на кадре ищем область, где располагается дорожный знак
3) работаем с каждой найденой областью в оттенках серого. Приводим к единому размеру (скажем 30x30) и какой-то усредненной яркости.
4) используем нейросеть (какую бибилиотеку лучше для этого использовать?) для идентификации картинки 30x30 как одного из дорожных знаков
По первому пункту проблем нет.
По второму двигался в двух направлениях:
1) распознавание по цвету. Итог: из-за того, что освещение может быть различным невозможно подобрать такие границы цвета, чтобы однозначно идентифицировать скажем ВЕСЬ красный обод запрещающего знака. Максимум что возможно получить очень рваную битовую карту обода знака. Преобразования не помогают - большие расстояния между пикселями. По скоплению точек на битовой карте человек может легко и однозначно классифицировать форму знака - труегольник, круг, квадрат. Как заставить зделать тоже самое opencv?
2) распознавание по форме. Переводил в серые тона, потом кенни, потом поиск границ. Вариант хорош тем, что не зависит от освещенности. Но если красную полосу знака пересекает тонкая ветка, либо знак плохого качества получаем отрицательный результат. Т.е. нет устойчивого положительного результата, о процентах говорить даже не приходится.
Нужен совет опытных форумчан в каком направлении двигаться.