Я разрабатываю приложение, которое может распознавать номерные знаки (ANPR). Первым шагом является извлечение лицензионных пластин из изображения. Я использую OpenCV для обнаружения пластин на основе соотношения ширина/высота, и это работает очень хорошо:
Но, как вы можете видеть, результаты OCR довольно плохие.
Я использую tesseract
в моей среде Objective C
(iOS). Это мои переменные init
при запуске движка:
// init the tesseract engine.
tesseract = new tesseract::TessBaseAPI();
int initRet=tesseract->Init([dataPath cStringUsingEncoding:NSUTF8StringEncoding], [language UTF8String]);
tesseract->SetVariable("tessedit_char_whitelist", "BCDFGHJKLMNPQRSTVWXYZ0123456789-");
tesseract->SetVariable("language_model_penalty_non_freq_dict_word", "1");
tesseract->SetVariable("language_model_penalty_non_dict_word ", "1");
tesseract->SetVariable("load_system_dawg", "0");
Как я могу улучшить результаты? Должен ли я позволить OpenCV делать больше манипуляций с изображениями? Или есть что-то, что я могу улучшить с помощью tesseract?