Для различия между 0 и O, одним простым решением является выбор шрифта, который различает оба (например: 0 имеет тире или точку в середине). Будет ли это приемлемым в вашей заявке?
Другим решением является применение шага на основе словаря после посимвольного анализа текста - подача распознанного текста в некоторую форму проверки орфографии или валидатора для различения сложных символов.
Например, круглый символ, за которым следуют другие числа, скорее всего будет нулем, а тот же символ, за которым следуют буквы, скорее всего, будет заглавной буквой o. Это тривиальный пример, но он показывает, как контекст необходим для создания более надежной системы OCR.