Как учесть разницу в разрешении и освещении при пороге номерного знака?

В процессе работы над проектом распознавания номерных знаков, после локализации номерного знака из входного видео и кадрирования его, я должен сегментировать и распознавать символы. Однако у меня возникают проблемы с правильным определением порога для обрезанных пластин. Например: Первая пластина, Порог первой пластины, Вторая пластина, Порог второй пластины. Мой метод сегментации символов требует, чтобы символы были полностью закрыты черным фоном, чтобы правильно сегментировать их. Однако, как видите, на втором изображении это не так.

Я использую пороговое значение, просто нанося маску на пространство hsv, чтобы получить более темные пиксели.

lower_bound = (0, 0, 0)
upper_bound = (179, 255, 120)
mask = cv2.inRange(hsv, lower_bound, upper_bound)

Что я мог сделать, чтобы учесть разницу в освещении и разрешении (чтобы правильно пороговать все пластины)? Пробовал делать гамма-коррекцию, ничего не меняется. Если это поможет, таблички все голландские, поэтому черные буквы на желтом фоне.


person SirGrumpsalot    schedule 13.02.2021    source источник