Устранение искривлений изображения документа

Иллюстрации

Показать все

Изобретение относится к области распознавания символов. Технический результат заключается в повышении точности устранения искажений. Способ для устранения искривлений изображения документа включает: определение границ по меньшей мере фрагмента документа в исходном изображении, определение множества символов в документе, определение некоторых из символов в качестве множества фрагментов слов, создание множества первых полиномов, создание второго полинома, определение по меньшей мере одного коэффициента растяжения для первой строки текста, отображение по меньшей мере одним устройством обработки частей исходного изображения вдоль первой строки текста на новые позиции в исправленном изображении на основе второго полинома и коэффициента растяжения. 3 з. и 17 н.п. ф-лы, 6 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящее описание относится к удалению искривлений из отсканированного или сфотографированного изображения документа.

УРОВЕНЬ ТЕХНИКИ

[0002] Оптическое распознавание символов (OCR) представляет собой электронное преобразование отсканированных или сфотографированных изображений машинописного или печатного текста в машиночитаемый текст.OCR может использоваться для оцифровки печатных текстов, чтобы их можно было редактировать в электронном виде, производить в них поиск, отображать их в онлайн-режиме, и используется в таких процессах, как преобразование текста в речь, извлечение данных и интеллектуальный анализ текста. При получении изображения документа могут возникнуть искажения перспективы или иные искажения изображения документа. Искажение изображения документа может привести к искажению или деформации объектов или текста в изображении документа.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

[0003] В одном из аспектов, способ включает определение границ по меньшей мере части документа в исходном изображении. Документ содержит по меньшей мере одну первую строку текста. Способ дополнительно включает определение множества символов в документе. Способ дополнительно включает определение некоторых из символов в качестве множества фрагментов слов. Способ дополнительно включает создание множества первых полиномов, которые аппроксимируют точки символов во фрагментах слов. Способ дополнительно включает создание второго полинома, который аппроксимирует точки символов по меньшей мере первого фрагмента слова и второго фрагмента слова среди фрагментов слов и соответствует первой строке текста. Способ дополнительно включает определение по меньшей мере одного коэффициента растяжения для первой строки текста на основании максимальной длины участка между границами и длины второго полинома. Способ дополнительно включает отображение по меньшей мере одним устройством обработки частей исходного изображения вдоль первой строки текста на новые позиции в исправленном изображении на основе второго полинома и коэффициента растяжения.

[0004] Варианты реализации могут содержать любые, все или никакие из представленных ниже особенностей. Точки символов могут быть расположены вдоль базовых линий фрагментов слов. Второй полином может определять один или более вторых углов, соответствующих углам наклона вдоль второго полинома. Способ может дополнительно включать пошаговый обход существующих позиций в исходном изображении, при этом размер шага может быть меньше размера пикселя в исходном изображении. Отображение фрагментов может включать отображение каждой существующей позиции на новые позиции на основе вторых углов, коэффициента растяжения и размера шага. Первые полиномы могут определять множество первых углов, представляющих углы наклона вдоль первых полиномов. Второй полином может определять множество вторых углов, соответствующих углам наклона вдоль второго полинома. Способ может дополнительно включать подтверждение того, что некоторые из первых углов соответствуют пороговому уровню точности для первого фрагмента слова, а некоторые из соответствующих вторых углов соответствуют пороговому уровню точности для второго фрагмента слова. Способ может включать проверку того, что первый фрагмент слова и второй фрагмент слова находятся по меньшей мере на пороговом расстоянии от по меньшей мере некоторой второй строки текста в документе рядом с первой строкой текста. Пороговое расстояние может быть основано на среднем расстоянии между полиномами, соответствующим строкам текста в документе. Способ может включать проверку того, что второй полином находится в пределах порогового уровня схожести по меньшей мере с третьим полиномом, соответствующим по меньшей мере второй строке текста в документе. Способ может включать интерполяцию цвета для каждой новой позиции в новых позициях исправленного изображения на основе цветов из пикселей исходного изображения в окрестности части среди частей исходного изображения, которая соответствует новой позиции. Этот способ может включать предварительную обработку исходного изображения. Предварительная обработка может включать выполнение одного или более из следующих действий: применение гамма-фильтра к исходному изображению, нормализация ширины и высоты исходного изображения, регулировка яркости исходного изображения или бинаризация глубины цвета исходного изображения. Определение границ может быть основано на детектировании или на алгоритме детектирования границ. Новые положения фрагментов слов могут удалить искажение первой строки текста в исправленном изображении. Способ может включать создание по меньшей мере одного интерполированного полинома между вторым полиномом и третьим полиномом, что соответствует по меньшей мере одной второй строке текста документа. Способ может дополнительно включать сопоставление частей исходного изображения между первой строкой текста и второй строкой текста в новых позициях в исправленном изображении на интерполированном полиноме.

[0005] В одном из вариантов реализации постоянное машиночитаемое запоминающее устройство, содержащее хранимые на нем инструкции, при исполнении по меньшей мере одним устройством обработки вызывает в устройстве обработки процесс определения границ по меньшей мере части документа в исходном изображении. Документ содержит по меньшей мере одну первую строку текста. Эти команды дополнительно вызывают в устройстве обработки процесс определения множества символов в документе. Эти команды дополнительно вызывают в устройстве обработки процесс определения некоторых из символов как множества фрагментов слов. Эти команды дополнительно вызывают формирование устройством обработки множества первых полиномов, которые аппроксимируют точки символов во фрагментах слов. Эти команды дополнительно вызывают формирование устройством обработки второго полинома, который аппроксимирует точки символов по меньшей мере в первом фрагменте слова и во втором фрагменте слова среди фрагментов слова и соответствует первой строке текста. Эти команды дополнительно вызывают определение устройством обработки по меньшей мере одного коэффициента растяжения для первой строки текста на основании максимальной длины участка между границами и длины второго полинома. Эти команды дополнительно вызывают отображение устройством обработки частей исходного изображения вдоль первой строки текста на новые позиции в исправленном изображении на основе второго полинома и коэффициента растяжения.

[0006] В одном из вариантов реализации система включает по меньшей мере одно устройство хранения данных, в котором хранятся команды. Система дополнительно содержит по меньшей мере одно устройство обработки для выполнения команд с целью определения границ по меньшей мере части документа в исходном изображении. Документ содержит по меньшей мере одну первую строку текста. Устройство обработки дополнительно определяет множество символов в документе. Устройство обработки дополнительно определяет некоторые из символов в качестве множества фрагментов слов. Устройство обработки дополнительно формирует множество первых полиномов, которые аппроксимируют точки символов во фрагментах слов. Устройство обработки дополнительно формирует второй полином, который аппроксимирует точки символов по меньшей мере первого фрагмента слова и второго фрагмента слова среди фрагментов слов и соответствует первой строке текста. Устройство обработки дополнительно определяет по меньшей мере один коэффициент растяжения в первой строке текста на основании максимальной длины участка между границами и длины второго полинома. Устройство обработки дополнительно отображает части исходного изображения вдоль первой строки текста на новые позиции в восстановленном изображении на основе второго полинома и коэффициента растяжения.

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

ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0007] На Фиг. 1А представлена блок-схема системы исправления изображения для устранения искажений или искривлений в исходном изображении.

[0008] На Фиг. 1В представлен пример различных символов и различных признаков символов, которые могут использоваться для создания полиномов.

[0009] На Фиг. 2А-В представлены схемы примера системы для устранения искажения или искривления на изображении документа.

[0010] На Фиг. 3 представлена блок-схема, показывающая пример процесса устранения искривления на изображении документа.

[0011] На Фиг. 4 представлена схема примера вычислительной системы.

ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ

[0012] В настоящем документе описаны системы и методики восстановления изображения, искривленного или искаженного документа. Отсканированное или сфотографированное изображение со строками текста может содержать искажения или искривления в строках текста. Например, если исходная физическая копия была измята, согнута или иным способом искажена или искривлена, то получаемое в результате отсканированное или сфотографированное изображение документа также может быть искажено или искривлено и может включать строки текста, которые более не представляют прямой линии, или слова в строках текста могут казаться скошенным или под наклоном, или символы могут быть сдвинуты относительно друг друга. Искажение или искривление также может быть вызвано углом камеры, которая снимает изображение документа, относительно положения или ориентации документа (как, например, при съемке ручной камерой, наклоненной в одном или более направлениях относительно поверхности документа). Это может привести к ошибкам или опущениям при оптическом распознавании символов текста в документе. Помимо того, распознанный текст может быть помещен не в ту же строку, что и остальной текст, после выполнения оптического распознавания символов, даже несмотря на то, что текст мог быть в одной строке в исходной физической копии документа до искажения исходной физической копии и последующего искажения отсканированного изображения.

[0013] Аспекты настоящего изобретения направлены на устранение указанных выше и иных недостатков путем повторного отображения или устранения искривления отсканированного или сфотографированного изображения либо частей отсканированного или сфотографированного изображения на новые позиции в исправленном или восстановленном изображении, где устраняется искажение или искривление документа в связи со сканированием или фотографированием смятых мест, мест с изломами или иных искажений физического экземпляра документа. Согласно некоторым вариантам реализации, для распознания символов в изображении документа может использоваться оптическое распознавание символов. Распознанные символы могут быть объединены в слова или фрагменты слов. В соответствии с некоторыми вариантами реализации, могут использоваться технологии анализа документа DA для определения связных компонентов на основе технологии кодирования длин серий (RLE) и для совмещения связных компонентов в слова или фрагменты слов. А именно могут быть проанализированы признаки документа с целью определения слов или фрагментов слов. В некоторых вариантах реализации для обнаружения и распознавания символов и определения слов и фрагментов слов может использоваться оптическое распознавание символов (OCR). Затем может создаваться первое множество полиномов на основе точек вдоль символов каждого фрагмента слова, например, вдоль базовой линии фрагментов слова. Может создаваться второе множество полиномов из точек вдоль символов фрагментов слова для подклейки и создания строки текста. Могут быть определены фрагменты слова, находящиеся в одной строке с учетом соответствующих расстояний до одной или более других строк текста. Для каждого полинома, представляющего строку текста, могут быть определены коэффициенты растяжения на основе длины полинома по отношению к максимальной длине полиномов в пределах детектированных границ документа. После этого для отображения фрагментов исходного изображения на новые позиции в исправленном изображении может быть использовано второе множество полиномов и коэффициенты растяжения.

[0014] Описанные в настоящем документе системы и методики могут обеспечить одно или более следующих преимуществ. Во-первых, системы и методики могут устранить искажение строк текста в документе. Во-вторых, системы и методики могут облегчить для человека чтение строк текста в документе или облегчить распознавание с помощью оптического распознавания символов.

[0015] На Фиг. 1 представлена блок-схема системы исправления изображения 100 для устранения искажений или искривлений в исходном изображении 102. Система исправления изображений 100 может получать исходное изображение 102 через интерфейс 104. Интерфейс 104 может быть представлен аппаратным обеспечением, например, устройством сетевого интерфейса, портом связи или съемным носителем данных. Система исправления изображения 100 включает процессор 106 или устройство обработки, которое выполняет инструкции по устранению искажения строк текста в исходном изображении 102. Команды могут включать модуль предобработки 108, модуль оптического распознавания символов и/или модуль анализа документа (модуль OCR/DA) 110 и модуль исправления изображения 112.

[0016] Процессор 106 может выполнять команды модуля предобработки 108 для выполнения операций предобработки для исходного изображения 102. Например, операции предобработки могут включать применение к исходному изображению 102 гамма-фильтра для уменьшения количества шума на исходном изображении 102. Исходное изображение 102 документа может содержать шум, полученный, как из исходной физической копии документа, так и не из исходной физической копии документа, например, пятна и другие артефакты сканирования или съемки изображения документа. Этот шум может быть вызван инородными объектами (например, пылью или грязью) на сканирующей поверхности или на исходной физической копии документа. Для определения шума в виде разрывов между пикселями и соседними пикселями к пикселям в исходном изображении 102 может применяться гамма-фильтр. При выявлении разрыва, который не является частью более крупного признака в исходном изображении 102, например, границы между двумя областями с различной окраской, к пикселям в разрыве может применяться правило для замены пикселей на другие значения цвета, например, на значения соседних пикселей.

[0017] Операции предобработки также могут включать нормализацию ширины и высоты исходного изображения 102. Например, нормализация может включать уменьшение или расширение исходного изображения 102 до конкретного числа пикселей по ширине и конкретного числа пикселей по высоте (например, восемьсот пикселей по ширине и шестьсот пикселей по высоте для небольшого документа, например, чека о покупке, или большее количество пикселей по высоте для более крупного документа с большим количеством строк текста или большим количеством пикселей по ширине для более широких строк текста). Уменьшение исходного изображения 102 до определенного числа пикселей на основе количества текста может привести к сокращению времени, необходимого для обработки исходного изображения 102, без значительного сокращения точности оптического распознавания символов и/или устранения искажения.

[0018] Операции предобработки могут дополнительно включать выравнивание яркости исходного изображения 102, например, путем выравнивания теней или бликов в исходном изображении 102. Выравнивание теней или бликов в исходном изображении 102 в определенных диапазонах тонов цвета или затенения может улучшить определение границ в исходном изображении 102, например, границ документа или границ между символами и фоном документа. Выравнивание теней или бликов в исходном изображении 102 в определенных диапазонах тонов цвета или затенения может также сократить необнаружение ложных признаков в исходном изображении 102, например, линий сгиба или смятия в физической копии документа.

[0019] Операции предобработки также могут включать бинаризацию глубины цвета исходного изображения 102 (например, до монохромного, черного или белого, или полутонового изображения). Бинаризация может быть адаптивной, при этом отдельные измерения яркости и насыщенности отдельных частей исходного изображения 102 используются при выборе значений для пикселей в каждом отдельном фрагменте. Бинаризация может способствовать лучшему оптическому распознаванию символов текста в исходном изображении 102 за счет обеспечения значительного контраста между фоном исходного изображения 102 и текстом исходного изображения 102.

[0020] Процессор 106 может выполнить команды модуля OCR/DA 110 для определения и/или распознавания символов в исходном изображении 102, которые могли быть предварительно обработаны в соответствии с описанием в настоящем документе. При выполнении команд модуля OCR/DA 110 также могут быть определены и/или распознаны слова или фрагменты слов, состоящие из символов. Модуль OCR/DA 110 может определять связные компоненты в исходном изображении 102 с помощью кодирования длин серий (RLE). Например, модуль OCR/DA 110 может определять серии пикселей конкретного цвета (например, белого) в исходном изображении 102 для определения и/или распознавания слов или фрагментов слов. Модуль OCR/DA 110 может классифицировать некоторые из распознанных символов и/или фрагментов слов как уверенный текст, неуверенный текст, случайные символы, «несимволы» (например, точки или запятые) или специальные символы (например, дефисы, пунктиры, знаки равенства, звездочки и т.д.).

[0021] В некоторых вариантах реализации модуль OCR/DA 110 (или иной модуль, например, модуль исправления изображений 112) может определять, что длинная строка текста, которая может включать специальные символы и/или повторяющиеся символы, является сепаратором между частями документа. Например, длинная строка может быть строкой, которая проходит в основном через весь документ, например, до левого и/или правого полей документа, которые обычно не включают текст.

[0022] Процессор 106 выполняет команды модуля исправления изображений 112 для устранения искажения в исходном изображении 102. Выполнение команд модуля исправления изображения 112 приводит к созданию полиномов, которые аппроксимируют точки символов во фрагментах слов. Точки могут лежать вдоль символов в пределах фрагментов слов, например, на базовой линии символов. При выполнении команд модуля исправления изображений 112 определяются фрагменты слов, лежащие в одной строке текста, и формируется полином, аппроксимирующий точки символов фрагментов слов в строке текста. Помимо того, при выполнении команд модуля исправления изображения 112 определяется коэффициент растяжения для строки текста на основе длины строки текста, представленной полиномом, относительно общей ширины документа, например, максимальной длины полиномов в документе. Наконец, при выполнении команд модулем исправления изображения 112 выполняется отображение частей (например, отдельных пикселей) исходного изображения 102 вдоль строки текста в новые позиции в исправленном изображении 114 на основе сформированного полинома и коэффициента растяжения. Некоторые аспекты указанных выше операций, выполняемых модулем исправления изображений 112, описаны более подробно ниже со ссылкой на Фиг. 2А-В и Фиг. 3.

[0023] Процессор 106 может хранить исходное изображение 102 и/или исправленное изображение 114 в устройстве хранения данных 116. Процессор 106 может также передавать исправленное изображение 114, например, в другую систему или устройство через интерфейс 104 или другой интерфейс.

[0024] На Фиг. 1В представлен пример различных символов 120 и различных признаков 122a-d символов 120, которые могут использоваться для создания полиномов. Модуль исправления изображений 112 для создания полинома может использовать точки, расположенные вдоль одного или более признаков 122a-d символов 120. Третий признак 122 с представлен базовой линией символов 120. Базовая линия символов в слове - это типографический термин, обозначающий линию, поверх которой обычно находятся символы конкретного шрифта. При этом некоторые символы могут иметь подстрочные элементы, которые опускаются ниже базовой линии, как, например, в случае с буквами "g," "j," "p," "q" и "y" в нижнем регистре, и точки, где эти символы пересекают базовую линию, например, могут использоваться для создания полиномов. В альтернативном варианте точки, используемые для создания полиномов, могут быть расположены вдоль другого признака символов, например, высоты прописных букв, высоты подстрочного элемента или медианной линии символов. Первый признак 122а - это высота прописной буквы (например, высота прописных букв выше базовой линии до любого превышения). Четвертый признак 122d - это высота подстрочного элемента или свисающей линии ("beard line") (например, высота части символа, которая проходит ниже базовой линии). Второй признак 122b является медианой, срединной или средней линией (например, половина расстояния от базовой линии до высоты прописной буквы или меньшей высоты строчной буквы над базовой линией до любого превышения).

[0025] На Фиг. 2А-В представлены схемы примера процесса 200 для устранения искажения или искривления на исходном изображении 202. В некоторых вариантах реализации система исправления изображения 100 может выполнять процесс 200. В некоторых вариантах реализации исходное изображение 202 может быть изображением документа 203, например, квитанции или чека. Документ 203 содержит несколько строк текста. В некоторых вариантах реализации в одной или более строках текста могут содержаться большие разрывы между словами, например, разрывы между названиями купленных позиций в левой части документа 203 и суммами покупки в долларах и центах в правой части документа 203. В некоторых вариантах реализации сочетание больших разрывов между словами в строке и искажение документа 203 в исходном изображении 202 может стать препятствием для определения в ходе процесса OCR того, что слова находятся в одной строке текста.

[0026] Процесс 200 включает определение или детектирование краев, или границ документа 203 в исходном изображении 202. Например, процессор 106 может выполнять команды модуля предобработки 108, модуля OCR/DA 110 и/или модуля исправления изображений 112 для определения границ документа 203 на исходном изображении 202. Границы могут быть изображены в исходном изображении 202 как фрагменты линии вокруг внешнего края документа 203. Определение границ может включать определение фрагментов линии вокруг внешнего края документа 203 в исходном изображении 202. Уверенность может быть мерой уровня определенности в том, что детектированный объект является линией, и в том, что объект является границей документа 203 в исходном изображении 202. Например, блеклая, прерванная, широкая и/или наклонная линия и/или линия, которая не совпадает с соседними фрагментами границ, может иметь низкий уровень уверенности, а темная сплошная, узкая и/или вертикальная или горизонтальная линия, совпадающая с соседними фрагментами границ, может иметь высокий уровень уверенности.

[0027] Процесс 200 может включать определение одного или более первых фрагментов границы 204a-d документа 203 в исходном изображении 202 с высоким уровнем уверенности или соответствующих заданному пороговому уровню уверенности. Первые два из первых фрагментов границ 204а-b расположены напротив вторых двух из первых фрагментов границ 204c-d. Процесс 200 также может включать определение одного или более вторых фрагментов границ 206а-b документа 203 в исходном изображении 202 с низким уровнем уверенности или тех, что не соответствуют пороговому уровню уверенности. Низкий уровень уверенности или несоответствие пороговому уровню может быть вызвано отсутствием фрагментов границ документа 203 в исходном изображении 202. В некоторых вариантах реализации процесс 200 может включать получение вторых фрагментов границ 206a-b из разрывов в первых фрагментах границ 204a-d. Процесс 200 также может включать выполнение одной или более из описанных ранее операций предобработки в документе 203 внутри первых фрагментов границ 204a-d и/или вторых фрагментов границ 206a-b.

[0028] Процесс 200 включает распознавание символов в исходном изображении 202 и определение фрагментов слова в пределах распознанных символов, например, первого фрагмента слова 208, нескольких вторых фрагментов слова 210а-d и нескольких третьих фрагментов слова 212а-с. Фразы «первый фрагмент слова», «второй фрагмент слова» и «третий фрагмент слова» используются для иллюстрации и не указывают на то, что на данном этапе было установлено, что фрагменты слова находятся в различных строках или группах. Например, процессор 106 может выполнять команды, выдаваемые модулем OCR/DA 110 для распознавания символов и фрагментов слов. Первый фрагмент слова 208 включает последовательность знаков равенства. Вторые фрагменты слов 210a-d включают "Total," "2," "item(s)," и "$11.50." Третьи фрагменты слов 212а-с включают "Sales," "Tax," и "$1.09." В некоторых вариантах реализации процесс 200 может выполнить распознавание не всего слова, как, например, "Tot" во второй части слова 210а. В некоторых вариантах реализации процесс 200 может распознать символы и/или часть слова, но уровень уверенности при распознавании символов и/или части слова, полученных в результате OCR исходного изображения 202, может не соответствовать пороговому уровню уверенности. Например, в связи с искажением или шумом в документе 203 на исходном изображении 202 процесс 200 может не распознать символы и/или фрагмент слова по меньшей мере с пороговым уровнем уверенности.

[0029] Затем процесс 200 включает создание первого полинома 214, который аппроксимирует точки символов в первом фрагменте слова 208, одного или более вторых полиномов 216a-d, которые аппроксимируют точки символов во вторых фрагментах слов 210a-d, и одного или более третьих полиномов 218а-с, которые аппроксимируют точки символов в третьих фрагментах слов 212а-с соответственно. Процесс 200 может включать определение точек по признакам символов в каждом фрагменте слова с последующим фитированием (подгонкой) полинома к точкам каждого фрагмента слова. Например, процессор 106 может выполнять команды модуля исправления изображений 112 для определения точек вдоль символов и для создания полиномов, аппроксимирующих точки символов в пределах фрагментов слов. Поэтому точки могут, например, быть точками, которые лежат вдоль, пересекают или соприкасаются с признаками символов, например, с базовой линией символов.

[0030] В некоторых вариантах реализации полином может иметь первую степень (т.е. быть линейным), вторую степень (т.е. быть квадратичным) или более высокую степень (т.е. быть кубическим и т.д.). Например, модуль исправления изображения 112 может определить, что фрагмент слова является коротким, и затем аппроксимировать короткий фрагмент слова путем фитирования линейной функции к точкам короткого фрагмента слова без уменьшения возможности устранения искажения из короткого фрагмента слова. Модуль исправления изображения 112 может определить, что фрагмент слова является длинным или что множество из нескольких фрагментов слов является длинным, с последующей аппроксимацией длинного фрагмента слова или множества из нескольких фрагментов слов путем фитирования функции более высокой степени, например, квадратичной или кубической функции, к длинному фрагменту или нескольким фрагментам слов с целью устранения искажения из длинного фрагмента или нескольких фрагментов слов. Подгонка полинома более низкого порядка к фрагменту слова может обеспечить сокращение времени обработки фрагментов слов по сравнению с полиномом более высокого порядка.

[0031] Точки символов, использующиеся для создания полиномов, могут быть расположены вдоль базовых линий первого фрагмента слова 208 и вторых фрагментов слова 210a-d, например, в местах, где части символов соприкасаются с базовой линией или аналогично для символов, которые не соприкасаются с базовой линией. Как вариант точки, используемые для создания полиномов, могут быть расположены вдоль другого признака символов, например, медианной линии символов, высоты подстрочного элемента или высоты прописных букв символов.

[0032] Процесс 200 включает создание "склеенного" полинома 220, который аппроксимирует точки символов нескольких из вторых фрагментов слов 210a-d и соответствует строке текста в документе 203 в пределах исходного изображения 202, например, путем фитирования склеенного полинома 220 к точкам символов нескольких из вторых фрагментов слов 210a-d. Например, процессор 106 может выполнять команды модуля исправления изображений 112 для создания склеенного полинома 220, который аппроксимирует точки символов нескольких из вторых фрагментов слов 210a-d и соответствует строке текста в документе 203 в пределах исходного изображения 202.

[0033] Процессор 106 может определить некоторые полиномы, например, первый полином 214, как уже готовую завершенную строку текста. Например, процессор 106 может определить, что символы в первом фрагменте слова 208 проходят через весь или почти весь документ 203 (например, в пределах заданного порогового расстояния от границ документа 203) в исходном изображении 202. Полином, являющийся полной строкой текста или проходящий через документ 203, может считаться опорным или разделительным полиномом, представляющим опорную точку или разделительную линию либо строку. В некоторых вариантах реализации строка сепаратора включает специальный символ (например, видимые символы помимо цифр или букв алфавита для языка в документе 203, например, знак равенства, дефис, пунктир, звездочка и т.д.) и/или повторяющийся символ, например, повторяющийся знак равенства, повторяющийся дефис, повторяющийся пункт или повторяющиеся звездочки. Процессор 106 может выявить первый полином 214 в качестве опорного или разделительного за счет определения того, что первая часть слова 208 включает повторяющийся и/или специальный символ, например, повторяющийся знак равенства. Линия сепаратора и соответствующий полином сепаратора могут использоваться для подклейки соседних полиномов для отдельных фрагментов слов.

[0034] В рамках создания склеенного полинома 220 процесс 200 может включать определение нескольких из вторых фрагментов слов 210a-d, которые должны быть подклеены или совмещены, путем расчета вероятности того, что несколько из вторых фрагментов слов 210a-d находятся в пределах одной строки текста. Например, процессор 106 может выполнять команды модуля исправления изображения 112 для определения нескольких из вторых фрагментов слов 210a-d путем расчета вероятности того, что несколько из вторых фрагментов слов 210a-d находятся в одной строке текста.

[0035] Процесс 200 может выполнять расчет вероятностей путем расчета вертикальных расстояний между первым полиномом 214 и третьими полиномами 218а-с и между третьими полиномами 218а-с и вторыми полиномами 216a-d. Процесс 200 включает определение того, что расстояние между двумя полиномами меньше, чем среднее вертикальное расстояние между полиномами в исходном изображении 202. Если это так, то процесс 200 определяет, что дополнительные строки между двумя полиномами отсутствуют. Например, процессор 106 может определить необходимость подклеивания или слияния двух самых левых из третьих полиномов 218a-b в связи с близостью двух самых левых из третьих полиномов 218a-b (например, модуль OCR/DA 110 может определить, что они оба являются частью одной фразы). Модуль OCR/DA 110 может быть неспособен определить, что третий полином 218с справа является частью той же фразы, что два самых левых из третьих полиномов 218a-b, в связи с горизонтальным расстоянием между ними и/или искажением исходного изображения 202. Процессор 106 может выполнять команды модуля исправления изображений 112, чтобы определить то, что третий полином 218с справа, а также два самых левых из третьих полиномов 218a-b находятся на расстоянии от первого полинома 214 (например, разделительной линии), которое меньше или в пределах заданного порогового значения от среднего расстояния между строками полиномов. Соответствующим образом процессор 106 определяет, что между третьими полиномами 218а-с и первым полиномом 214 дополнительные строки присутствовать не могут, и создает склеенный полином для третьих полиномов 218а-с.

[0036] Аналогичным образом процессор 106 может определить, что расстояния между соответствующими точками вдоль третьих полиномов 218а-с и вторых полиномов 216a-d меньше или находятся в пределах порогового значения среднего расстояния.

Соответствующим образом процессор 106 определяет, что между третьими полиномами 218а-с и вторыми полиномами 216a-d дополнительные строки присутствовать не могут, и создает склеенный полином для вторых полиномов 216a-d. В некоторых вариантах реализации процессор 106 начинает от сепаратора, если он существует, и затем действует по направлению от сепаратора вертикально через полиномы (например, вверх и/или вниз от сепаратора до тех пор, пока другой сепаратор не станет ближе к текущему полиному).

[0037] Процесс 200 также может рассчитать вероятности того, что несколько из вторых фрагментов слов 210a-d находятся в одной строке текста, путем расчета величин первых углов между одним или более первых углов наклона каждого из вторых полиномов 216a-d и горизонталью, а также вторых углов между вторыми углами наклона склеенного полинома 220, которые соответствуют положениям первых углов наклона, и горизонталью. Процесс 200 может затем включать сравнение первых углов со вторыми соответственно (или первых углов наклона со вторыми), чтобы определить, насколько хорошо склеенный полином 220 соответствует вторым полиномам 216a-d. Например, первый угол 222 включает угол наклона второго полинома 216с во второй части слова 210с, а второй угол 224 включает угол наклона подклеенного полинома 220 в точке, соответствующей первому углу 222. Процессор 106 может вычислить величину п