ОПРЕДЕЛЕНИЕ ПРЕОБРАЗОВАНИЙ ИЗОБРАЖЕНИЯ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА ОПТИЧЕСКОГО РАСПОЗНАВАНИЯ СИМВОЛОВ
DETERMINATION OF IMAGE TRANSFORMATIONS TO INCREASE QUALITY OF OPTICAL CHARACTER RECOGNITION

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение в целом относится к вычислительным системам, а точнее - к системам обработки электронных документов и способам обработки электронных документов.
УРОВЕНЬ ТЕХНИКИ
[0002] Электронный документ может быть получен путем сканирования или получения иным образом изображения бумажного документа и оптического распознавания символов для получения текста, связанного с документом.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ
[0008] В этом документе приведено описание способов и систем для определения преобразований, которые могут применяться по меньшей мере к части изображения документа для повышения качества оптического распознавания символов (OCR).
[0009] В этом документе термин «электронный документ» относится к файлу, содержащему один или несколько элементов цифрового содержимого, которые могут быть переданы визуально для создания визуального представления электронного документа (например, на дисплее или на печатном носителе). Электронный документ формируется путем сканирования или получения иным образом изображения бумажного документа и оптического распознавания символов для получения текста, связанного с документом. В различных иллюстративных примерах электронные документы могут иметь определенный формат файла, например, PDF, DOC, ODT и т.д.
[00010] В этом документе «вычислительное устройство» означает устройство обработки данных, в котором имеются универсальный процессор, память и по меньшей мере один интерфейс связи. Примерами вычислительных устройств, которые могут использовать описанные в этом документе способы, являются, помимо прочего, настольные компьютеры, портативные компьютеры, планшетные компьютеры и смартфоны.
[00011] Система оптического распознавания символов (OCR) может получить образ бумажного документа и преобразовать изображение в машиночитаемый, поддерживающий поиск формат, содержащий текстовую информацию, извлеченную из образа бумажного документа. В различных иллюстративных примерах исходный бумажный документ может содержать одну или несколько страниц, таким образом, изображение документа может включать изображения одной или нескольких страниц документа. В приведенном ниже описании «изображение документа» относится к изображению по меньшей мере части исходного документа (например, страницы документа).
[00012] В определенных вариантах реализации изобретения эффективность и/или качество процесса OCR может быть повышено при выполнении определенных преобразований изображения перед собственно операцией распознавания символов. Такие преобразования могут быть направлены на изменение угла наклона символов, толщины линий символов, высоты прописных букв, уровня контрастности и/или других характеристик изображения. Настоящее раскрытие сущности изобретения содержит описание систем и способов для эффективного определения последовательности из одного или нескольких преобразований, которые могут применяться по меньшей мере к части изображения документа для повышения качества оптического распознавания символов (OCR).
[00013] Различные аспекты упомянутых выше способов и систем подробно описаны ниже в этом документе с помощью примеров, иллюстрирующих, но не ограничивающих возможные реализации изобретения.
[00014] На Фиг. 1 приведена блок-схема одного иллюстративного примера вычислительного устройства (100), работающего в соответствии с одним или несколькими аспектами настоящего изобретения. В иллюстративных примерах вычислительное устройство (100) может представлять собой разнообразные вычислительные устройства, включая планшетный компьютер, смартфон, ноутбук или настольный компьютер.
[00015] Вычислительное устройство (100) может содержать процессор (110), подключенный к системной шине (120). Другие устройства, подключенные к системной шине (120), могут включать память (130), дисплей (140), клавиатуру (150), оптическое устройство ввода (160) и один или несколько коммуникационных интерфейсов (170). Термин «подключенный» в этом документе означает электрическое соединение и/или обмен данными через одно или несколько интерфейсных устройств, адаптеров и т.п.
[00016] В различных иллюстративных примерах процессор (110) может быть снабжен одним или несколькими устройствами обработки, такими как универсальные и/или специализированные процессоры. Память (130) может включать одно или несколько энергозависимых запоминающих устройств (например, микросхемы ОЗУ), одно или несколько энергонезависимых запоминающих устройств (например, микросхемы ПЗУ или электрически стираемых программируемых ПЗУ) и/или одно или несколько запоминающих устройств (например, оптические или магнитные диски). Оптическое устройство ввода (160) может представлять собой сканер или фотокамеру, настроенную на сбор света, отраженного от объектов, расположенных в ее поле зрения. Пример вычислительного устройства, в котором реализованы аспекты настоящего изобретения, будет рассмотрен более подробно ниже в описании Фиг. 4.
[00017] В памяти (130) могут храниться команды приложения (190) для оптического распознавания символов. В некоторых реализациях приложение (190) может реализовывать способы выявления преобразования, которые могут применяться по меньшей мере к части изображения документа для повышения качества OCR в соответствии с одним или несколькими аспектами настоящего изобретения. В качестве иллюстративного примера приложение (190) может быть реализовано как функция, которая будет вызываться через пользовательский интерфейс другого приложения. При альтернативном подходе приложение (190) может быть реализовано в виде автономного приложения.
[00018] В качестве иллюстративного примера вычислительное устройство (100) может получить изображение документа. На Фиг. 2 представлен пример изображения документа (200), которое может быть обработано приложением (190), работающем в вычислительном устройстве (100) в соответствии с одним или несколькими аспектами настоящего изобретения. Приложение (190) может анализировать полученное изображение документа (200) для обнаружения на изображении документа одного или нескольких фрагментов изображения, содержащих текстовые блоки (210А-210В). Изображенные элементы компоновки документа были отобраны только для иллюстративных целей и не устанавливают каких-либо ограничений для объема настоящего описания изобретения. Приложение (190) может дополнительно проанализировать каждый фрагмент изображения, содержащий текстовые блоки (210) для обнаружения множества строк текста (220А-220М). В пределах каждого изображения фрагмента, содержащего текстовую строку (220), приложение (190) может обнаружить один или несколько фрагментов изображения (230A-230N), содержащие разделенные пробелами последовательности символов. Такая последовательность символов может представлять собой, например, слово, содержащее одну или несколько букв, или число, содержащее одну или несколько цифр.
[00019] В отношении каждого фрагмента изображения (230) приложение OCR (190) может идентифицировать последовательность из одного или нескольких преобразований, которые могут применяться по меньшей мере к части изображения документа для улучшения качества OCR на основании утверждения определенных гипотез по отношению к одной или нескольким характеристикам изображения. Такие преобразования изображения могут быть предназначены для компенсации определенных искажений изображений или других особых признаков изображения, чтобы облегчить последующий процесс распознавания символов. Каждое преобразование изображения может включать одну или несколько операций, выполняемых с изображением.
[00020] В качестве иллюстративного примера для изображений, содержащих размытые элементы символов, приложение OCR (190) может использовать преобразование изображения, предназначенное для повышения контрастности изображения. Размытость изображения может быть вызвана, например, плохо сфокусированным сканирующим устройством. Такое преобразование может быть реализовано приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска. В частности, могут быть определены: отношение количества пикселей, составляющих символы, к общему количеству пикселей в пределах фрагмента изображения, и тот факт, что это отношение меньше определенного порогового значения; отношение количества пикселей, составляющих границу между символами и фоном, к общему количеству пикселей в пределах фрагмента изображения, и тот факт, что это отношение превышает определенное пороговое значение; и/или тот факт, что градиент изображения (направленное изменение интенсивности или цвета) меньше определенного порогового значения.
[00021] В другом иллюстративном примере для полутоновых или цветных изображений приложение OCR (190) может использовать такое преобразование, как бинаризации изображения, предназначенное для получения монохромного (например, черно-белого) изображения. Для бинаризации изображения приложение OCR (190) может классифицировать каждый исходный пиксель как черный или белый, что выполняется на основе выбранного значения порога бинаризации. Это преобразование может быть выполнено приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска. В частности, могут быть определены: толщина линий букв, а также тот факт, что она меньше первого порогового значения или больше второго порогового значения; отношение внутрисимвольных разрывов к общему количеству символов, а также тот факт, что оно превышает некоторое пороговое значение; отношение площади, занимаемой пробелами между символами, к общей площади области, а также тот факт, что оно превышает некоторое пороговое значение; отношение площади, занимаемой черными элементами, к общей площади, а также тот факт, что оно превышает некоторое пороговое значение.
[00022] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для удаления определенных пикселей изображения, которые предположительно образуют линию, подчеркивающую строку символов сверху или снизу, либо перечеркивающую строку. Такое преобразование может выполняться приложением OCR (190) для удаления таких линий, не затрагивающим пиксели, которые формируют сами символы. Это преобразование может использоваться приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая обнаружение прямой линии и определение на основании положения обнаруженной линии того факта, что линия подчеркивает строку снизу либо сверху или перечеркивает строку символов.
[00023] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для регулировки толщины линий символов. Преобразование изображения может применяться к фрагменту изображения, содержащему один или несколько символов, которые имеют толщину линий, отличающуюся от средней толщины линий символов более чем на некоторое пороговое значение. Преобразование изображения может включать добавление или удаление определенных пикселей, прилегающих к границе линии символа. Это преобразование может реализовываться приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая обнаружение одного или нескольких символов, имеющих толщину линий, которая отличается от средней толщины линии символа более чем на некоторое пороговое значение.
[00024] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для изменения высоты прописных символов. Это преобразование может выполняться приложением OCR (190), которое оценивает фактическую высоту прописных символов фрагмента изображения и то, насколько эта высота отличается от высоты, которая ранее была определена для текстовой строки, включающей эти символы.
[00025] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для регулировки положения базовой линии прописных букв. Это преобразование может выполняться приложением OCR (190) для компенсации возможных искажений изображения, приводящих, например, к перекосу или наклону строк текста.
[00026] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для наклона фрагмента изображения, чтобы компенсировать наклон символов. Такое преобразование изображения может включать сдвиг нижних частей фрагментов изображения по отношению к их верхним частям.
[00027] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для изменения ширины символа. Преобразование изображения может быть применено к фрагменту, содержащему один или несколько символов, ширина которых отличается от средней ширины символа более чем на некоторое пороговое значение. Преобразование изображения может включать сжатие или расширение фрагмента изображения вдоль горизонтальной оси. Это преобразование может выполняться приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая обнаружение одного или нескольких символов, имеющих ширину, которая отличается от средней для изображения ширины символа более чем некоторое пороговое значение.
[00028] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для удаления определенного визуального шума (например, случайных изменений яркости и/или цвета пикселей в пределах фрагмента изображения, которые отсутствовали в исходном объекте). Такое преобразование может выполняться приложением OCR (190) для компенсации неровности границ линий («лохматые» линии), разделения определенных символов, которые кажутся визуально соединенными, или для соединения визуально разъединенных элементов символа, которые принадлежат к одному символу. Это преобразование может быть реализовано приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая оценку соотношения количества визуально мелких и визуально крупных белых или черных объектов, количества вертикальных белых линий, количества горизонтальных черных линий и/или средней толщины линии.
[00029] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для применения определенных шаблонов, предназначенных для распознавания символов со специфическим начертанием (например, символов, напечатанных матричным принтером, факсимильным или кассовым аппаратом). Такое преобразование может применяться приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая оценку результатов одной или нескольких операций распознавания символов и/или приема пользовательского ввода, указывающего тип шрифта.
[00030] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для разделения символьной строки, представленной фрагментом изображения, на два или более фрагментов, соответствующих двум или более словам. Это преобразование может быть реализовано приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая определение того, что двум или более частям фрагмента изображения требуются различные преобразования изображения, обнаружение одного или нескольких нераспознанных символов и/или обнаружение одного или нескольких пробелов, которые могут разделять слова.
[00031] В еще одном иллюстративном примере приложение OCR (190) может использовать преобразование изображения, предназначенное для выполнения более подробного по сравнению со стандартной степенью детализации, анализа фрагмента изображения для обнаружения частей изображения, которые разделяют два или более символов, находящихся на фрагменте изображения. Это преобразование может быть реализовано приложением OCR (190), которое выполняет оценку одного или нескольких условий запуска, включая невозможность распознавания одного или нескольких символов, получение неудовлетворительного соотношения количества распознанных символов к общему количеству символов, невозможность определить модель слова для фрагмента изображения и/или невозможность связать пунктуаторы с распознанными символами.
[00032] В соответствии с одним или несколькими аспектами настоящего изобретения приложение OCR (190) может определить последовательность из одного или нескольких преобразований, которые могут применяться к фрагменту изображения для повышения качества распознавания, как описано более подробно ниже в описании Фиг. 3.
[00033] На Фиг. 3 приведена блок-схема одного иллюстративного примера способа (300) для определения преобразований, которые могут применяться по меньшей мере к части изображения документа для улучшения качества OCR в соответствии с одним или несколькими аспектами настоящего изобретения. Способ (300) и/или каждая из его отдельных функций, процедур, подпрограмм или операций может выполняться с помощью одного или нескольких процессоров в компьютерной системе (например, устройства обработки (100), показанного на Фиг. 1), в которой реализован этот способ. В некоторых вариантах реализации способ (300) может выполняться в одном потоке обработки. При альтернативном подходе способ (300) может быть реализован с помощью двух или нескольких потоков обработки, при этом каждый поток выполняет одну или несколько отдельных функций, процедур, подпрограмм или операций этого способа. В качестве иллюстративного примера потоки обработки, реализующие способ (300), могут быть синхронизированы (например, с помощью семафоров, критических участков и/или других механизмов синхронизации потоков). При альтернативном подходе потоки обработки, реализующие способ (300), могут выполняться асинхронно по отношению друг к другу.
[00034] В блоке (310) реализующее способ устройство обработки может получать изображение по меньшей мере части документа (например, страницы документа). В качестве иллюстративного примера изображение может быть получено с помощью оптического устройства ввода (130), например, из вычислительного устройства (100), показанного на Фиг. 1.
[00035] В блоке (320) устройство обработки может выделить на изображении документа фрагмент изображения документа, который должен быть обработан в соответствии с одним или несколькими аспектами настоящего изобретения. В качестве иллюстративного примера фрагмент изображения может включать ограниченную пробелами последовательность символов; он может представлять собой слово, содержащее одну или несколько букв или число, содержащее одну или несколько цифр.
[00036] В блоке (330) устройство обработки может создать первоначальный список преобразований, который должен применяться к выявленному фрагменту изображения. В определенных вариантах реализации изобретения начальный список преобразований может быть получен путем перебора основного списка известных преобразований изображения и определения для каждого преобразования изображения в основном списке значения определенного критерия на основании значений одного или нескольких параметров обрабатываемого фрагмента изображения. Каждое преобразование изображения из основного списка может быть включено в первоначальный список преобразований, которые могут применяться к выявленному фрагменту изображения при установлении того факта, что значение соответствующего критерия превышает определенный порог.
[00037] В некоторых вариантах реализации изобретения список преобразований может быть предварительно упорядочен на основании множества независимых от изображения статистических данных, которые могут быть статически назначены преобразованиям основного списка и/или на основании множества независимых от изображения отношений, которые могут быть определены для некоторых пар преобразований в основном списке (например, преобразование А всегда имеет приоритет по отношению к преобразованию В). Таким образом, любой список преобразований, полученный из основного списка, может унаследовать независимый от изображения порядок преобразований.
[00038] В некоторых вариантах реализации основной список преобразований может быть предварительно упорядочен на основании существующей информации об изображении. Например, если на изображении была обнаружена текстура (фоновый узор), то основной список преобразований может быть предварительно упорядочен таким образом, чтобы удалить текстуру перед дальнейшей обработкой.
[00039] При получении списка преобразований, которые могут применяться к выявленному фрагменту изображения, в некоторых вариантах реализации устройство обработки может дополнительно упорядочить этот список. В определенных вариантах реализации список преобразований можно упорядочить на основе нескольких рейтинговых оценок, связанных с преобразованиями. В иллюстративном примере начальная рейтинговая оценка может быть отнесена к преобразованию в момент добавления его в список преобразований, который будут применяться к текущему фрагменту изображения. В определенных вариантах реализации начальная рейтинговая оценка, связанная с конкретным преобразованием, может быть рассчитана на основе значений определенных параметров изображения. При альтернативном подходе одному или нескольким преобразованиям по умолчанию могут быть назначены начальные рейтинговые оценки (например, ноль).
[00040] В блоке (340) устройство обработки может применить к фрагменту изображения очередное преобразование в отсортированном списке преобразований. Как уже отмечалось выше в настоящем описании, преобразование изображения может содержать одну или несколько операций преобразования изображения, которые могут выполняться для изображения.
[00041] В блоке (350) устройство обработки данных может оценить качество фрагмента преобразованного изображения. В определенных вариантах реализации устройство обработки может формировать интегральную оценку качества на основе значений одного или нескольких критериев, которые оценивают определенные характеристики изображения. В качестве иллюстративного примера интегральная оценка качества может быть определена в виде взвешенной суммы отдельных значений критериев.
[00042] В качестве иллюстративного примера, оценка критерия качества может подразумевать вычисление отношения количества символов, которые не удалось распознать в ходе процедуры OCR, к общему количеству символов в обрабатываемом фрагменте изображения. В другом иллюстративном примере критерий оценки качества может включать проверку отсутствия знаков препинания, которые не были связаны с какими-либо символами при выполнении оптического распознавания символов. В еще одном иллюстративном примере критерий оценки качества может включать проверку того, что слово, полученное при процедуре OCR, содержится в словаре. В еще одном иллюстративном примере критерий оценки качества может содержать проверку того, что ни один из элементов изображения (например, верхний или нижний индексы символов) не был пропущен процедурой OCR как не связанный с какими-либо символами. В еще одном иллюстративном примере критерий оценки качества может включать проверку того, что два или несколько соседних символов имеют одинаковые или сопоставимые размеры. В еще одном иллюстративном примере критерий оценки качества может включать проверку того, что один или несколько символов, распознанных с помощью процедуры OCR, совместимы с символами, распознанными в ходе обработки другого фрагмента изображения.
[00043] В блоке (360) устройство обработки может оценить одно или более условий завершения для того, чтобы определить, требуется ли дальнейшая обработка текущего фрагмента изображения. В качестве иллюстративного примера, условие завершения может представлять собой сравнение определенного порогового значения с интегральным показателем качества, определенным на основании одной или нескольких характеристик изображения. В другом иллюстративном примере условие завершения может сравнивать определенное пороговое значение с числом итераций, уже выполненных для текущего фрагмента изображения. В еще одном иллюстративном примере условие завершения может сравнивать определенное пороговое значение с объемом памяти, доступным процедуре OCR.
[00044] В ответ на то, что одно или более условий окончания были оценены как «истина», способ может перейти к блоку (370); в противном случае обработка может продолжаться в блоке (380).
[00045] В блоке (370) устройство обработки данных может ассоциировать с фрагментом изображения полученный при OCR текст для оценки качества преобразованного фрагмента изображения в блоке (350). Способ может возвратиться к началу цикла для выявления следующего фрагмента в блоке (320).
[00046] В блоке (380) устройство обработки может обновить список преобразований с учетом оценки качества преобразованного фрагмента изображения. В определенных вариантах реализации список может быть отсортирован на основе обновленных рейтинговых оценок, связанных с преобразованиями списка. В иллюстративном примере связанные с преобразованиями рейтинговые оценки могут быть обновлены на основании интегральной оценки качества, которая была определена в блоке (350) для текущего фрагмента изображения после применения очередного преобразования в списке (то есть последнего преобразования, примененного к фрагменту изображения). Изменение рейтинговой оценки конкретного преобразования в списке может зависеть от сходства, с учетом выбранной метрики подобия, конкретного преобразования с лучшим преобразованием в списке. В качестве иллюстративного примера рейтинговую оценку, связанную с конкретным преобразованием, можно изменить с помощью интегрального показателя качества пропорционально значению метрики подобия конкретного преобразования очередному преобразованию в списке:
i
i
l
[00047] S=S+Q*M(i,l),
i
l
[00048] где S является значением рейтинговой оценки, связанной с i-м преобразованием в списке, Q - это интегральная оценка качества для текущего фрагмента изображения, определенная после применения очередного преобразования в списке, а M(i,l) - это значение метрики подобия i-го преобразования по отношению к очередному преобразованию в списке.
[00049] При альтернативном подходе рейтинговую оценку, связанную с конкретным преобразованием, можно изменить с помощью определенного значения, полученного из интегральной оценки качества вследствие установления того факта, что значение метрики подобия конкретного преобразования очередному преобразованию в списке превышает определенный порог подобия:
i
i
i
[00050] S=S+k*M(i,l) для каждой S при этом M(i,1)>Т,
i
[00051] где S является значением рейтинговой оценки, связанной с i-м преобразованием в списке, k - это постоянная величина, M(i,l) - это значение метрики подобия i-го преобразования в отношении очередного преобразования в списке, а Т является пороговым значением метрики подобия.
[00052] Описанные выше методы измерения рейтинговых оценок предназначены только для целей иллюстрации, и не могут ограничивать объем описания настоящего изобретения.
[00053] В определенных вариантах реализации метрика подобия преобразования может быть основана на сравнении операций преобразования изображений, состоящих из двух преобразований, подобие которых оценивается. В определенных реализациях значение метрики подобия двух преобразований может быть определено как отношение количества соответствующих операций преобразования изображения, состоящих из двух преобразований каждая, к максимальному количеству операций преобразования изображения, состоящих из одного преобразования каждая:
m
max
[00054] М(А, В)=N/N(A, B),
m
max
[00055] где М(А, В) является значением метрики подобия преобразований А и В, N - это количество соответствующих операций преобразования изображения, состоящих из двух преобразований каждая, a N(A, B) - это максимальное количество операций преобразования изображения, состоящих из одного преобразования каждая.
[00056] При альтернативном подходе значение метрики подобия двух преобразований может быть пропорционально количеству соответствующих операций преобразования изображения, состоящих из двух преобразований:
m
[00057] M(A, B)=k*N,
[00058] где k - константа.
[00059] Описанные выше различные метрики подобия преобразования предназначены только для иллюстрации и не устанавливают каких-либо ограничений на объем описания настоящего изобретения.
[00060] В определенных вариантах реализации упорядочение списка преобразований может дополнительно содержать применение одного или несколько различающих правил для сравнения по меньшей мере двух преобразований из списка. Различающее правило может быть основано на априорном условии, которое требует присвоить определенному преобразованию приоритет над другим преобразованием независимо от значений рейтинга оценки, присвоенного обоим преобразованиям.
[00061] В определенных реализациях обновление списка преобразований с учетом оценки качества преобразованного фрагмента изображения может дополнительно удалять некоторые преобразования из списка и/или добавлять определенные преобразования в список. В качестве иллюстративного примера устройство обработки может удалить из списка конкретное преобразование, для которого значение метрики подобия между конкретным преобразованием и лучшим преобразованием в списке окажется меньше определенного порога подобия. В другом иллюстративном примере устройство обработки данных может добавить конкретное преобразование в список, если значение метрики подобия между конкретным преобразованием и лучшим преобразованием в списке превысит определенный порог подобия.
[00062] После завершения операций, описанных выше со ссылками на блок (380), способ может возвратиться к блоку (340).
[00063] На Фиг. 4 представлена более подробная схема примера вычислительного устройства (1000), внутри которого исполняется набор команд, которые вызывают выполнение вычислительным устройством любого из способов или нескольких способов настоящего изобретения. Вычислительное устройство (1000) может включать те же компоненты, что и вычислительное устройство (100) на Фиг. 1, а также некоторые дополнительные или другие компоненты, некоторые из которых могут быть опциональными и необязательными для реализации аспектов настоящего изобретения. Вычислительное устройство может быть подключено к другому вычислительному устройству по локальной сети, корпоративной сети, сети экстранет или сети Интернет. Вычислительное устройство может работать в качестве сервера или клиента в сетевой среде "клиент/сервер", или в качестве однорангового вычислительного устройства в одноранговой (или распределенной) сетевой среде. Вычислительное устройство может быть представлено персональным компьютером (ПК), планшетным ПК, телевизионной приставкой (STB), карманным ПК (PDA), сотовым телефоном или любым вычислительным устройством, способным выполнять набор команд (последовательно или иным образом), определяющих операции, которые могут быть выполнены этим вычислительным устройством. Кроме того, в то время как показано только одно вычислительное устройство, следует принять, что термин «вычислительное устройство» также может включать любую совокупность вычислительных устройств, которые отдельно или совместно выполняют набор (или несколько наборов) команд для выполнения одной или нескольких методик, описанных в настоящем документе.
[00064] Пример вычислительного устройства (1000) включает процессор (502), основную память (504) (например, постоянное запоминающее устройство (ПЗУ) или динамическую оперативную память (DRAM)) и устройство хранения данных (518), которые взаимодействуют друг с другом по шине (530).
[00065] Процессор (502) может быть представлен одним или несколькими универсальными устройствами обработки данных, например, микропроцессором, центральным процессором и т.д. В частности, процессор (502) может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор с командными словами сверхбольшой длины (VLIW), процессор, реализующий какой-либо другой набор команд, или процессоры, реализующие комбинацию наборов команд. Процессор (502) также может представлять собой одно или несколько устройств обработки специального назначения, например, заказную интегральную микросхему (ASIC), программируемую пользователем матричную БИС (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п. Процессор (502) настроен на выполнение команд (526) для осуществления рассмотренных в настоящем документе операций и функций.
[00066] Вычислительное устройство (1000) может дополнительно включать устройство сетевого интерфейса (522), устройство визуального отображения (510), устройство ввода символов (512) (например, клавиатуру), и устройство ввода - сенсорный экран (514).
[00067] Устройство хранения данных (518) может содержать машиночитаемый носитель данных (524), в котором хранится один или несколько наборов команд (526), и в котором реализован один или несколько из методов или функций настоящего изобретения. Команды (526) также могут находиться полностью или по меньшей мере частично в основной памяти (504) и/или в процессоре (502) во время выполнения их в вычислительном устройстве (1000), при этом оперативная память (504) и процессор (502) также составляют машиночитаемый носитель данных. Команды (526) дополнительно могут передаваться или приниматься по сети (516) через устройство сетевого интерфейса (522).
[00068] В определенных вариантах реализации команды (526) также могут включать команды способа (800) для выявления преобразований, которые могут применяться по меньшей мере к части документа для повышения качества OCR, причем они могут выполняться приложением (190), показанным на Фиг. 1. В то время как машиночитаемый носитель (524), показанный на примере на Фиг. 4, является единым носителем, термин «машиночитаемый носитель» должен включать один носитель или несколько носителей (например, централизованную или распределенную базу данных, и/или соответствующие кэши и серверы), в которых хранится один или несколько наборов команд. Термин «машиночитаемый носитель информации» также следует рассматривать как термин, включающий любой носитель, который способен хранить, кодировать или переносить набор команд для выполнения машиной, который заставляет эту машину выполнять любую одну или несколько из методик, описанных в настоящем описании. Термин «машиночитаемый носитель информации» включает, помимо прочего, твердотельную память, оптические и магнитные носители.
[00069] Описанные в документе способы, компоненты и функции могут быть реализованы дискретными аппаратными компонентами, либо они могут быть интегрированы в функции других аппаратных компонентов, таких как ASICS, FPGA, DSP или подобных устройств. Кроме того, способы, компоненты и функции могут быть реализованы с помощью модулей встроенного программного обеспечения или функциональных схем аппаратных устройств. Способы, компоненты и функции могут быть также реализованы с помощью любой комбинации аппаратных устройств и программных компонентов, либо исключительно с помощью программного обеспечения.
[00070] В приведенном выше описании изложены многочисленные детали. Однако любому специалисту в этой области техники благодаря этому раскрытию очевидно, что настоящее изобретение может быть осуществлено практически без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схемы, а не детально, чтобы не усложнять описание настоящего изобретения.
[00071] Некоторые части описания предпочтительных вариантов реализации представлены в виде алгоритмов и символического представления операций с битами данных в памяти компьютера. Такие описания и представления алгоритмов представляют собой средства, используемые специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в данной области. В настоящем документе и в целом алгоритмом называется самосогласованная последовательность операций, приводящих к требуемому результату. В операциях требуются физические манипуляции с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и подвергать другим манипуляциям. Оказалось, что прежде всего для обычного использования удобно описывать эти сигналы в виде битов, значений, элементов, символов, знаков, цифр и т.д.
[00072] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами, и что они представляют собой просто удобные метки, применяемые к этим величинам. Из приведенного ниже изложения очевидно, что если особо не указано иное, то следует понимать, что в описании такие термины, как «определение», «вычисление», «расчет», «получение», «выявление», «изменение» и т.п. относятся к действиям и процессам вычислительного устройства или аналогичного электронного вычислительного устройства, которое манипулирует данными и преобразует данные, представленные в виде физических (например, электронных) величин в регистрах вычислительного устройства и памяти в другие данные, аналогичным образом представленные в виде физических величин в памяти или регистрах вычислительного устройства или других таких устройств хранения, передачи или отображения информации.
[00073] Настоящее изобретение также относится к устройству для выполнения операций, описанных в этом документе. Такое устройство может быть специально сконструировано для требуемых целей или оно может содержать универсальный компьютер, который избирательно активируется или реконфигурируется с помощью компьютерной программы, хранящейся в компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например (помимо прочего): диск любого типа, в том числе гибкий диск, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд.
[00074] Следует иметь в виду, что приведенное выше описание предназначено для иллюстрации, и что оно не имеет ограничивающего характера. Различные другие реализации станут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Поэтому объем раскрытия должен определяться со ссылкой на прилагаемую формулу изобретения наряду с полным объемом эквивалентов, на которые такие требования предоставляют право.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0003] Настоящее изобретение иллюстрируется с помощью примеров, а не методом ограничения, его можно лучше понять при рассмотрении приведенного ниже описания предпочтительных вариантов реализации в сочетании с чертежами, на которых:
[0004] На Фиг. 1 представлена блок-схема одного из вариантов реализации вычислительного устройства, работающего в соответствии с одним или несколькими аспектами настоящего изобретения.
[0005] На Фиг. 2 приведен пример изображения документа, которое может быть обработано с помощью приложения оптического распознавания символов (OCR) в соответствии с одним или несколькими аспектами настоящего изобретения.
[0006] На Фиг. 3 приведена блок-схема иллюстративного примера реализации метода определения преобразований, которые могут применяться по меньшей мере к части изображения документа для повышения качества оптического распознавания символов (OCR) в соответствии с одним или несколькими аспектами настоящего изобретения; и
[0007] На Фиг. 4 приведена более подробная схема иллюстративного примера вычислительного устройства, в котором реализованы методы настоящего изобретения.