Я пытаюсь обучить OCR, который обнаруживает номерные знаки. Я использовал следующее repo , которое является OCR, основанным на внимании. До сих пор мне удалось потренироваться на подмножестве набора данных Synth90k и некоторых других искусственно сгенерированных данных, которые также включают пробелы, в результате чего было получено около 4,6 миллиона изображений.
Чтобы получить представление о том, как выглядят данные, это изображение из набора данных Synth90k:
и это то, что я сгенерировал искусственно:
Выполнение прогнозов для данных того же типа (тестовые данные ~ 10% от всего набора данных), дает довольно удовлетворительные результаты с почти 100% вероятностью для каждого слова в тесте набор. Исключения случаются в тех случаях, когда 0 предсказывается как O, 6 - как G, 1 - как I и наоборот и т. Д. c.
Теперь моя проблема возникает, когда я ввел реальный набор данных номерных знаков (~ 2,5 k изображений). Из-за нехватки данных я подумал, что мне, вероятно, следует настроить OCR с последней контрольной точки, где я использовал данные Synth90k и искусственную, с реальным набором данных. Вот несколько примеров из реального: , , .
Наконец, тестирование моей модели на этих данных выдает очень плохие прогнозы (<70% вероятности на слово в тесте), хотя потеря в фазе обучения опускается ниже 0,001. Является ли моя методология плохой, и если да, то какие могут быть альтернативы? </p>
Любая информация или рекомендации очень ценятся.
Спасибо!