ОПРЕДЕЛЕНИЕ НАПРАВЛЕНИЯ СТРОК ТЕКСТА
DETERMINATION OF TEXT LINE ORIENTATION

ОБЛАСТЬ ТЕХНИКИ
[001] Настоящее изобретение в целом относится к вычислительным системам - в частности, к определению ориентации страницы на изображениях.
УРОВЕНЬ ТЕХНИКИ
[002] Оптическое распознавание символов (OCR) представляет собой электронное преобразование отсканированных или сфотографированных изображений машинописного или печатного текста в машиночитаемый текст. OCR является общепринятым методом оцифровки печатных текстов, чтобы их можно было редактировать в электронном виде, производить в них поиск, отображать их в режиме онлайн, и используется в таких процессах, как преобразование текста в речь, извлечение данных и интеллектуальный анализ текста. В результате постраничной фотосъемки документа могут возникнуть перспективные или геометрические искажения отснятых страниц документа. Для правильной обработки методом OCR может потребоваться определить ориентацию строк текста на изображении документа, с тем чтобы исправить искаженную перспективу перед проведением OCR-обработки.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[003] Для более полного понимания настоящего изобретения ниже приводится подробное описание, в котором для примера, а не способом ограничения, оно иллюстрируется со ссылкой на чертежи, на которых:
[004] На Фиг. 1 изображена схема компонентов верхнего уровня для примера архитектуры вычислительного устройства в соответствии с одним или более аспектами настоящего изобретения.
[005] На Фиг. 2А показан пример гистограммы горизонтальных серий белых пикселей на изображении документа в соответствии с одним или более аспектами настоящего изобретения.
[006] На Фиг. 2В показан пример гистограммы вертикальных серий белых пикселей на изображении документа в соответствии с одним или более аспектами настоящего изобретения.
[007] На Фиг. 3А показан пример графика распределения коэффициентов зависимости, указывающего на вертикальную ориентацию текста в соответствии с одним или более аспектами настоящего изобретения.
[008] На Фиг. 3В показан пример графика распределения коэффициентов зависимости, указывающего на горизонтальную ориентацию текста в соответствии с одним или более аспектами настоящего изобретения.
[009] На Фиг. 4 приведена блок-схема способа определения ориентации строк текстового контента на изображении в соответствии с одним или более аспектами настоящего изобретения.
[0010] На Фиг. 5 приведена блок-схема способа определения ориентации строк текстового контента путем сопоставления площадей гистограмм в соответствии с одним или более аспектами настоящего изобретения.
[0011] На Фиг. 6 приведена блок-схема способа расчета площадей гистограмм в соответствии с одним или более аспектами настоящего изобретения.
[0012] На Фиг. 7 приведена блок-схема способа перерасчета отношения площадей в соответствии с одним или более аспектами настоящего изобретения.
[0013] На Фиг. 8 приведена блок-схема способа расчета коэффициентов зависимости в соответствии с одним или более аспектами настоящего изобретения.
[0014] На Фиг. 9 приведена блок-схема способа определения горизонтальной ориентации строк текстового контента с использованием коэффициентов зависимости в соответствии с одним или более аспектами настоящего изобретения.
[0015] На Фиг. 10 приведена блок-схема способа определения вертикальной ориентации строк текстового контента с использованием коэффициентов зависимости в соответствии с одним или более аспектами настоящего изобретения.
[0016] На Фиг. 11 приведена блок-схема способа определения ориентации строк текстового контента с использованием компонента классификатора в соответствии с одним или более аспектами настоящего изобретения.
[0017] На Фиг. 12 приведена блок-схема иллюстративной вычислительной системы, работающей в соответствии с примерами осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0018] В настоящем документе описаны способы и системы определения направления строк текстового контента на изображении документа. В результате фотосъемки страниц документа могут возникнуть перспективные или геометрические искажения отснятых страниц документа. Для правильной обработки методом OCR может потребоваться определить ориентацию строк текста на изображении документа, с тем чтобы исправить искаженную перспективу перед проведением OCR-обработки. Типичные способы определения ориентации строк текста на изображении документа могут включать выполнение OCR-обработки с анализом документа для идентификации символов на изображении. Затем система анализа документа методом OCR получает возможность определить ориентацию страницы на основе ориентации символов, распознанных путем OCR-обработки с анализом документа. Использование метода OCR для определения ориентации строк текста может быть ресурсоемким и неэффективным, так как в процессе может потребоваться определять ориентацию отдельных распознанных символов в блоках текстового контента, чтобы определить искаженную перспективу на строках текста.
[0019] Аспекты настоящего изобретения позволяют решить проблемы вышеуказанного и других недостатков путем использования механизма, который определяет ориентацию строк текста на изображении документа, не применяя метод OCR-обработки и анализа документа для определения и распознавания конкретных символов текста. Осуществляется анализ изображения документа, с тем чтобы установить область изображения, в которой с наибольшей вероятностью имеется текстовый контент. Затем устанавливаются горизонтальные и вертикальные серии белых пикселей на изображении, и как для горизонтальных, так и для вертикальных серий создаются гистограммы.
Ориентация текстового контента на изображении документа может быть определена путем анализа информации из гистограмм для горизонтальных и вертикальных серий белых пикселей.
[0020] Аспекты настоящего изобретения, таким образом, дают возможность более эффективно определять ориентацию строк текстового контента на изображении документа, сокращая время и ресурсы обработки, которые тратятся при методе OCR для установления ориентации символов. Более того, может быть улучшено качество последующей OCR-обработки, так как при OCR-обработке с анализом документа определять ориентацию страницы будет не нужно.
[0021] На Фиг. 1 показана схема компонентов верхнего уровня для примера архитектуры вычислительного устройства в соответствии с одним или более аспектами настоящего изобретения. В иллюстративных примерах вычислительное устройство 100 может представлять собой разнообразные вычислительные устройства, включая планшетный компьютер, смартфон, ноутбук, фотокамеру, видеокамеру и т.д. В одном из вариантов реализации изобретения вычислительное устройство 100 может представлять собой мобильное устройство, которое производит съемку изображения (например, на камеру мобильного устройства) и выполняет локальную обработку ориентации страницы на изображении на самом мобильном устройстве, как описано ниже. В другом варианте реализации изобретения мобильное устройство может произвести съемку изображения и передать его на сервер, который осуществляет обработку ориентации страницы, как описано ниже. Сервер затем может вернуть изображение и информацию об ориентации на мобильное устройство, с тем чтобы мобильное устройство могло провести дополнительную обработку (например, OCR, исправление горизонтальных искажений и т.п.).
[0022] Вычислительное устройство 100 может содержать процессор 110, подключенный к системной шине 120. Другие устройства, подключенные к системной шине 120, могут включать память 130, дисплей 135, оснащенный устройством ввода с сенсорным экраном 170, клавиатуру 140, сетевой интерфейс 160 и оптическое устройство ввода 150. В настоящем документе термин «подключенный» относится к устройствам, которые соединены электрически или подключены с возможностью связи через один или более интерфейсных устройств, адаптеров и т.д.
[0023] Процессор 110 может представлять собой одно или более устройств обработки, в том числе универсальные процессоры и (или) специализированные процессоры. Память 130 может включать одно или более устройств энергозависимой памяти (например, микросхем ОЗУ), одно или более устройств энергонезависимой памяти (например, микросхем ПЗУ или EEPROM) и (или) одно или более запоминающих устройств (например, оптические или магнитные диски). Оптическое устройство ввода 150 может представлять собой и (или) содержать одну или более камер, сканеров, считывателей штрих-кодов и (или) любых других устройств, способных формировать изображения документа.
[0024] Вычислительное устройство 100 может включать устройство ввода с сенсорным экраном 170, выполненное в виде сенсорной области ввода и (или) чувствительной поверхности, наложенной на дисплей 135. Пример вычислительного устройства, в котором реализованы аспекты настоящего изобретения, будет рассмотрен более подробно ниже со ссылкой на Фиг. 12.
[0025] Память 130 может хранить команды модуля ориентации страницы 190 для определения направления строк текста на изображении документа. В некоторых вариантах реализации изобретения модуль ориентации страниц 190 может быть реализован в виде функции, которая вызывается через пользовательский интерфейс другого приложения (например, приложения сканирования документов, приложения для съемки на камеру и т.д.). В качестве альтернативного варианта модуль ориентации страниц 190 может быть реализован в виде автономного приложения. В качестве иллюстративного примера модуль ориентации страниц 190 может сначала получить изображение документа. Документ может включать одну или более страниц открытой книги, печатный лист содержащей текст бумаги (например, туристическая брошюра, карта, юридический документ, печатный отчет и т.д.), текстовый документ, прикрепленный к некой конструкции (например, повешенный на стену документ или рекламный щит) и тому подобное.
[0026] В некоторых вариантах реализации изображение документа может быть получено через пользовательский интерфейс, с помощью которого пользователь производит съемку изображения документа. Данный пользовательский интерфейс может быть выполнен в виде модуля ориентации страницы 190, выполняемого на мобильном устройстве. Модулем ориентации страниц 190 может быть мобильное приложение (или часть мобильного приложения), установленное на мобильном устройстве, которое включает камеру, позволяющую производить съемку изображения. Мобильным устройством может быть мобильный телефон, карманный компьютер (PDA), камера, видеокамера, ноутбук и т.д. Например, пользователь может запустить приложение на мобильном телефоне с камерой, после чего может появиться пользовательский интерфейс, с помощью которого пользователь делает фотоснимок документа. В качестве альтернативного варианта данное приложение может получить изображение документа, импортировав изображение из фотоархива, хранящегося на мобильном устройстве, скачав изображение с внешнего источника, захватив кадр из потокового видео либо любым другим образом. В качестве альтернативного варианта модуль ориентации страниц 190 может исполняться сервером, который может получить изображение документа с мобильного устройства по сети.
[0027] В некоторых вариантах реализации изобретения модуль ориентации страниц 190 может преобразовать изображение с получением нормализованного изображения путем уменьшения размера изображения до предопределенного. Уменьшение размера изображения может сократить объем требуемых вычислительных ресурсов, тем самым повышая производительность модуля ориентации страниц 190 на мобильном устройстве. Например, нормализованное изображение может иметь размер 800 пикселей на 600 пикселей. В качестве альтернативного варианта модуль ориентации страниц 190 может преобразовать изображение с использованием различных значений длины и ширины в зависимости от размеров исходного документа. В некоторых вариантах реализации модуль ориентации страниц 190 может получить изображение документа, которое уже было нормализовано.
[0028] Модуль ориентации страниц 190 может преобразовать нормализованное изображение в бинаризованное изображение, произведя операцию бинаризации данного изображения. Операция бинаризации может конвертировать полутоновое или цветное изображение документа в бинаризованное изображение документа с двумя значениями для каждого пикселя. Например, бинаризованное изображение может хранить значение каждого пикселя как черного или белого. В некоторых вариантах реализации модуль ориентации страниц 190 может производить операцию бинаризации с использованием адаптивной бинаризации. Адаптивная бинаризация измеряет яркость фона изображения и насыщенность черных областей на изображении, с тем чтобы определить оптимальные параметры бинаризации для отдельных областей документа. Таким образом, адаптивная бинаризация позволяет получать более точное бинаризованное изображение в случаях, когда исходный документ содержит фоновые изображения, текстуры или шумы.
[0029] Модуль ориентации страниц 190 может определить фрагмент бинаризованного изображения, который включает одну или более строк текстового контента. Текстовый контент может включать последовательности буквенных символов, буквенно-цифровых символов, символьных знаков (например, знаки азиатских языков), символы кириллицы и т.п. Строки текстового контента могут включать строки текста в том виде, в каком они встречаются в составе предложений или абзацев печатных документов. Модуль ориентации страниц 190 может определить область изображения документа, которая с наибольшей вероятностью содержит область скопления текста, исключив область по периметру изображения. Во многих случаях края по периметру изображения документа чаще всего содержат значительную часть пустого пространства (например, поля страниц) и шумов (например, искажения изображения на дальних краях изображения).
[0030] Модуль ориентации страниц 190 может определять область периметра бинаризованного изображения, ширина которого не превышает предопределенное пороговое значение. В некоторых вариантах реализации предопределенным пороговым значением ширины может быть фиксированный размер (например, ширина 100 пикселей вдоль каждого края изображения). В других вариантах реализации данным порогом может быть процент от размера изображения. Например, порог ширины периметра может быть установлен на 15% от ширины изображения документа. Таким образом, в случае бинаризованного изображения шириной 600 пикселей модуль ориентации страниц 190 может определить область периметра вокруг изображения, ширина которой не превышает 90 пикселей. Затем модуль ориентации страниц 190 может выбрать фрагмент бинаризованного изображения, исключающий данную область периметра.
[0031] В некоторых вариантах реализации область периметра может определяться с помощью компонента классификатора. Классификатор - это метод машинного обучения, который может присваивать входным данным категорию путем растрового распознавания. Классификатор может определять, к какой из множества категорий относится новое наблюдаемое значение данных, используя обучающую выборку ранее наблюдаемых значений данных, в которой известны категории, присвоенные каждому наблюдаемому значению данных. Таким образом, классификатор может, анализируя характеристики изображения документа, определять размер области периметра на основе аналогичных характеристик ранее анализированных изображений документов.
[0032] В качестве иллюстративного примера модуль ориентации страниц 190 может обучить компонент классификатора, соотнеся некий набор предопределенных значений периметра с соответствующими характеристиками изображения. Характеристики изображения могут включать размеры документа на изображении (например, стандартное письмо, юридический и т.д.), источник (например, книга, учебник, журнал и т.д.), классификацию контента (например, только текст, текст и изображения, колонки и т.д.) и другую подобную информацию. В некоторых вариантах реализации классификатор может быть обучен таким образом, чтобы область периметра в случае документа формата 33×40,6 см (который может содержать больше пустого пространства по периметру ввиду более широких полей) была больше, чем в случае документа формата 21,6×27,9 см. Модуль ориентации страниц 190 затем может установить характеристики изображения, соотнесенные с бинаризованным изображением, и затем определить область периметра бинаризованного изображения, применив классификатор к характеристикам изображения, соотнесенным с бинаризованным изображением. Например, если бинаризованное изображение имеет размеры изображения, сходные по длине и ширине с размерами ранее анализированных изображений документов формата 33×40,6 см с более широкими областями периметра, модуль ориентации страниц 190 может установить, что из бинаризованного изображения следует исключить более крупную область периметра. Ранее анализированные результаты, используемые для обучения классификатора, могут дать классификатору возможность установить, что исключение более крупной области периметра приведет к более точной идентификации области бинаризованного изображения, в которой с наибольшей вероятностью заключено текстовый контент.
[0033] Затем модуль ориентации страниц 190 может определить множество горизонтальных серий белых пикселей в одной или более строк текстового контента в данном фрагменте бинаризованного изображения и множество вертикальных серий белых пикселей в одной или более строк текстового контента в данном фрагменте бинаризованного изображения. «Серией» пикселей может быть последовательность, в которой одно и то же значение данных встречается во множестве последовательных пикселей. Например, горизонтальную строку пикселей в бинаризованном изображении, которое включает 20 белых пикселей, за которыми следуют 10 черных пикселей, далее 3 белых пикселя, затем 10 черных пикселей и 5 белых пикселей, можно представить в виде пяти «серий»: 3 серии белых пикселей (длиной 20, 3 и 5) и две серии черных пикселей (длиной 10 каждая). В некоторых вариантах реализации модуль ориентации страниц 190 может определить серии белых пикселей, применив к данному фрагменту бинаризованного изображения алгоритм сжатия данных методом кодирования длин серий (run-length encoding - RLE). Кодирование длин серий является формой сжатия данных без потерь, которая позволяет определять серии и хранить их в виде одного значения данных с соотнесенным с ним числом повторов. Используя приведенный выше пример, алгоритм RLE позволяет сохранить данную горизонтальную строку пикселей в виде «20W10B3W10B5W».
[0034] Модуль ориентации страниц 190 может устанавливать серии белых пикселей, а не черных пикселей, так как во многих случаях серии белых пикселей имеют различную длину в горизонтальном и вертикальном направлениях на изображении документа, что может быть информативным с точки зрения ориентации строк текста. Например, строка текста может иметь более длинные вертикальные серии белых пикселей по сравнению с горизонтальными сериями. Учитывая большое разнообразие шрифтов черные пиксели равномерно распределяются в горизонтальном и вертикальном направлениях и поэтому могут быть неинформативными с точки зрения ориентации текста. Однако в вариантах реализации изобретения, в которых изображение содержит шрифты различного размера и в которых горизонтальные и вертикальные серии черных пикселей, скорее всего, будут разными, модуль ориентации страниц 190 может также устанавливать серии черных пикселей.
[0035] Затем модуль ориентации страниц 190 может использовать серии белых пикселей для построения первой гистограммы множества горизонтальных серий белых пикселей в данном фрагменте бинаризованного изображения и второй гистограммы для множества вертикальных серий белых пикселей в данном фрагменте бинаризованного изображения. В данных гистограммах по оси ординат может быть отложено число серий, а по оси абсцисс - длина серий. В некоторых вариантах реализации первая гистограмма может включать первое множество интервальных бинов (ячеек гистограммы), каждый из которых соответствует длине одной или более из множества горизонтальных серий белых пикселей в данном фрагменте бинаризованного изображения. Таким образом, каждый интервальный бин (ячейка гистограммы) на оси абсцисс гистограммы может быть соотнесен с длиной горизонтальной серии для горизонтальных серий белых пикселей. Вторая гистограмма может включать второе множество интервальных бинов (ячеек гистограммы), каждый из которых соответствует длине одной или более из множества вертикальных серий белых пикселей в данном фрагменте бинаризованного изображения. Таким образом, каждый интервальный бин (столбец гистограммы) на оси абсцисс второй гистограммы может быть соотнесен с длиной вертикальной серии для вертикальных серий белых пикселей. Ниже со ссылкой на Фиг. 2А-2В рассматриваются иллюстративные примеры гистограмм для горизонтальных и вертикальных серий белых пикселей.
[0036] Затем модуль ориентации страниц 190 может определить ориентацию одной или более строк текстового контента в данном фрагменте бинаризованного изображения, на основе первой гистограммы и второй гистограммы. В одном из вариантов реализации изобретения модуль ориентации страниц 190 может определять ориентацию, сопоставляя площади двух гистограмм для серий белых пикселей, не превышающих некое максимальное пороговое значение длины. Используя максимальную пороговую длину, модуль ориентации страниц 190 может направить анализ на более короткие серии белых пикселей, что может быть более информативным в отношении ориентации строк текста. В некоторых вариантах реализации более длинные серии белых пикселей могут представлять пробел между строчками текста (в горизонтальном направлении), а также пробел между колонками текста (в вертикальном направлении). Таким образом, модуль ориентации страниц 190 может использовать максимальную пороговую длину для снижения влияния, которое может оказывать более длинная серия белых пикселей на определение ориентации строк текста.
[0037] Аналогичным образом модуль ориентации страниц 190 может далее уточнить площадь двух гистограмм, установив минимальную пороговую длину для использования при анализе площадей. Использование минимального порога позволяет уменьшить влияние, которое могут оказывать шум и искажения изображения на определение ориентации строк текста. Таким образом, анализ может быть направлен на короткие серии белых пикселей, длина которых больше минимального порога, но меньше максимального. В некоторых вариантах реализации минимальный порог можно задать, используя атрибуты бинаризованного изображения. Например, минимальный порог можно установить на значение пикселей, которое немногим меньше расстояния между символами в бинаризованном изображении, что позволит снизить вероятность влияния цифрового шума на изображении на определение ориентации страницы.
[0038] В различных вариантах реализации для максимальной пороговой длины и минимальной пороговой длины могут быть заданы фиксированные значения. В качестве альтернативного варианта модуль ориентации страниц 190 может установить пороговые значения эмпирическим путем, обратившись к информации о ранее сканированных копиях документов, чтобы определить оптимальную минимальную пороговую длину и оптимальную максимальную пороговую длину на основе атрибутов, соотнесенных с бинаризованным изображением (например, расстояние между символами, разметка документа, размеры изображения и т.д.). В других вариантах реализации модуль ориентации страниц 190 для задания пороговых значений может использовать классификатор согласно вышеприведенному описанию. Модуль ориентации страниц 190 может определить пороговые значения одновременно с расчетом значений периметра либо, в качестве альтернативного варианта, может обучить и применить второй классификатор, специально предназначенный для определения одного или обоих пороговых значений.
[0039] Модуль ориентации страниц 190 может выбрать первый набор интервальных бинов (столбцов гистограммы) из первого множества интервальных бинов (столбцов гистограммы) первой гистограммы, при этом первый набор интервальных бинов (столбцов гистограммы) включает горизонтальные серии белых пикселей, которые не превышают максимальную пороговую длину. В качестве альтернативного варианта модуль ориентации страниц 190 может выбрать первый набор интервальных бинов (столбцов гистограммы), который включает горизонтальные серии белых пикселей, превышающих минимальную пороговую длину и не превышающих максимальную пороговую длину. Например, модуль ориентации страниц 190 может установить минимальный порог на 2 пикселя, а максимальный - на 4 пикселя. Таким образом, модуль ориентации страниц 190 может выбрать в качестве набора для расчета площади интервальные бины из первой гистограммы, которые соответствуют длинам серий 2, 3, и 4 пикселей. В качестве альтернативного варианта модуль ориентации страниц 190 может не задавать минимальный порог и выбрать интервальные бины из первой гистограммы, которые соответствуют длинам серий 1, 2, 3 и 4 пикселя.
[0040] Затем модуль ориентации страниц 190 может рассчитать площадь выбранного набора интервальных бинов из первой гистограммы. В некоторых вариантах реализации модуль ориентации страниц 190 может рассчитывать данную площадь по уравнению (1) ниже:
,
L
L
[0041] В уравнении (1) S1 - общая площадь по выбранному набору интервальных бинов из гистограммы, L - длина серии белых пикселей, a N - количество серий белых пикселей с длиной L. Общая площадь по выбранному набору интервальных биноа (S1) рассчитывается путем суммирования площади каждого интервального бина от первого бинадо интервального бина для максимальной пороговой длины th серий белых пикселей. В каждом интервальном бине площадь данного бина рассчитывается как длина серии данного бина, умноженная на число серий, определенных для данной длины. Например, если минимальный порог не задан и первый набор интервальных бинов включает бины, которые соответствуют длинам серии L 1, 2, 3 и 4 пикселя, площадь S1 может быть рассчитана как сумма площадей по каждому из четырех бинов. Если было 10 серий длиной 1 пиксель, 20 серий длиной 2 пикселя, 30 серий длиной 3 пикселя и 40 серий длиной 4 пикселя, площадь S1 можно рассчитать как (10×1)+(20×2)+(30×3)+(40×4).
[0042] Затем модуль ориентации страниц 190 может повторить вышеописанный процесс по второй гистограмме для множества вертикальных серий белых пикселей. Модуль ориентации страниц 190 может выбрать второй набор интервальных бинов из второго множества интервальных бинов второй гистограммы, при этом второй набор интервальных бинов включает вертикальные серии белых пикселей, которые не превышают максимальную пороговую длину. В качестве альтернативного варианта модуль ориентации страниц 190 может выбрать второй набор интервальных бинов, который включает вертикальные серии белых пикселей, превышающих минимальную пороговую длину и не превышающих максимальную пороговую длину. Например, модуль ориентации страниц 190 может установить минимальный порог на 2 пикселя, а максимальный - на 4 пикселя. Таким образом, модуль ориентации страниц 190 может выбрать в качестве набора для расчета площади интервальные бины из второй гистограммы, которые соответствуют длинам серий 2, 3, и 4 пикселей. В качестве альтернативного варианта модуль ориентации страниц 190 может не задавать минимальный порог и выбрать интервальные бины из первой гистограммы, которые соответствуют длинам серий 1, 2, 3 и 4 пикселя.
[0043] Затем модуль ориентации страниц 190 может рассчитать значение площади выбранного набора интервальных бинов из второй гистограммы. В некоторых вариантах реализации модуль ориентации страниц 190 может рассчитывать данную площадь по уравнению (2) ниже:
,
L
L
L
[0044] В уравнении (2) S2 - общая площадь по выбранному набору интервальных бинов из гистограммы, L - длина серии белых пикселей, a N- количество серий белых пикселей с длиной L. Общая площадь по выбранному набору интервальных бинов (S2) рассчитывается путем суммирования площади каждого интервального бина от первого бина до интервального бина для максимальной пороговой длины rh. В каждом интервальном бине площадь данного бина рассчитывается как длина серии данного бина (L), умноженная на число серий, определенных для данной длины (N). Например, если минимальный порог не задан и второй набор интервальных бинов включает бины, которые соответствуют длинам серии 1, 2, 3 и 4 пикселя, площадь S2 может быть рассчитана как сумма площадей по каждому из четырех бинов. Если предположить, что имеется 5 серий длиной 1 пиксель, 10 серий длиной 2 пикселя, 15 серий - 3 пикселя и 20 серий - 4 пикселя, то площадь S2 может быть рассчитана следующим образом: (5×1)+(10×2)+(15×3)+(20×4).
[0045] Затем модуль ориентации страниц 190 может сопоставить первую площадь (S1) для первого выбранного набора бинов в первой гистограмме со второй площадью (S2) для второго набора бинов во второй гистограмме. Модуль ориентации страниц 190 может определить ориентацию строк текстового контента по уравнению (3) ниже:
[0046] В уравнении (3) максимальное значение из первой площади (SI) и второй площади (S2) делится на меньшее из первой площади (SI) и второй площади (S2), в результате чего получаем отношение максимального значения к минимальному. Если данное отношение превышает значение k, которое представляет собой пороговое значение уверенности, то модуль ориентации страниц 190 может принять решение об ориентации строк текстового контента. Может быть установлено пороговое значение уверенности, указывающее на то, что для принятия решения об ориентации текста максимальная площадь должна не менее чем в k раз превосходить минимальное значение площади.
Пороговое значение уверенности может быть задано на конкретное значение (например, 2), эмпирическим путем на основе значений уверенности, использованных для предыдущих сканированных копий документов (например, среднее значение предыдущих значений и т.п.), с использованием классификатора, как описано выше (например, с использованием того же классификатора для периметра или другого классификатора) или любым иным образом. Если отношение не превышает данный порог уверенности, то модуль ориентации страниц 190 может сделать вывод, что для принятия решения об ориентации недостаточно информации, и затем пересчитать площади гистограмм, увеличив максимальные пороговые длины как для S1, так и для S2, как описано ниже.
[0047] В ответ на решение о том, что первая площадь (S1) больше второй (S2), модуль ориентации страниц 190 может установить максимальную площадь на значение первой площади (S1), а минимальную площадь - на значение второй площади (S2). И наоборот, в ответ на решение о том, что вторая площадь (S2) больше первой (S1), модуль ориентации страниц 190 может установить максимальную площадь на значение второй площади (S2), а минимальную площадь - на значение первой площади (S1). Затем модуль ориентации страниц 190 может рассчитать отношение площадей, разделив максимальную площадь на минимальную. В ответ на решение о том, что данное отношение превышает порог уверенности (k), модуль ориентации страниц 190 может определить ориентацию строк текстового контента на изображении на основе того, какая из площадей выбрана в качестве максимальной.
[0048] Например, в ответ на решение о том, что максимальным является значение первой площади (S1) (например, S1 больше S2), модуль ориентации страниц 190 может решить, что ориентация строк текстового контента является горизонтальной (например, так как значение первой площади (S1) соответствует гистограмме для горизонтальных серий белых пикселей). Аналогичным образом, в ответ на решение о том, что максимальным является значение второй площади (S2) (например, S2 больше S1), модуль ориентации страниц 190 может решить, что ориентация строк текстового контента является вертикальной (например, так как значение второй площади (S2) соответствует гистограмме вертикальных серий белых пикселей).
L
[0049] В ответ на решение о том, что данное отношение меньше порога уверенности (k), модуль ориентации страниц 190 может пересчитать значения для S1 и S2 с увеличенной максимальной пороговой длиной. Например, если исходная максимальная пороговая длина была установлена на 4 пикселя, модуль ориентации страниц может увеличить пороговую длину до 5 пикселей. Затем модуль ориентации страниц 190 может пересчитать первую площадь для горизонтальных серий с увеличенной пороговой длиной (например, рассчитать обновленную S1 или S1') и пересчитать вторую площадь для вертикальных серий с увеличенной пороговой длиной (например, рассчитать обновленную S2 или S2'). В некоторых вариантах реализации модуль ориентации страниц 190 может пересчитать площади по уравнениям (1) и (2), описанным выше, при этом максимальная пороговая длина th заменяется на увеличенную максимальную пороговую длину. Затем модуль ориентации страниц 190 может сопоставить пересчитанную первую площадь (S1') с пересчитанной второй площадью (S2'), чтобы определить новую максимальную площадь и новую минимальную площадь на основе пересчитанной первой площади (S1') и пересчитанной второй площади (S2'). Затем модуль ориентации страниц 190 может пересчитать отношение площадей на основе новой максимальной площади и новой минимальной площади и в случае решения о том, что пересчитанное отношение площадей превышает порог уверенности (k), определить ориентацию строк текстового контента на изображении на основе новой максимальной площади, как описано выше. Если пересчитанное отношение площадей все равно не превышает порог уверенности (k), модуль ориентации страниц 190 может еще более увеличить максимальную пороговую длину и затем пересчитать значения для S1 и S2 с вновь увеличенной максимальной пороговой длиной, как описано выше. Данный процесс может повторяться до тех пор, пока пересчитанное отношение площадей не превысит порог уверенности (k).
[0050] В другом варианте реализации изобретения модуль ориентации страниц 190 может определять ориентацию одной или более строк текстового контента в данном фрагменте бинаризованного изображения путем анализа коэффициентов зависимости площадей первой гистограммы по отношению к площадям второй гистограммы. Коэффициент зависимости - это отношение площади для определенной длины серий первой гистограммы к площади для той же длины серий второй гистограммы. Например, для длины серий 1 коэффициентом зависимости может быть площадь первой гистограммы для интервального бина, соотнесенного с длиной серий 1 (например, по уравнению площади (1), описанному выше с порогом 1), деленная на площадь второй гистограммы для интервального бина, соотнесенного с длиной серий 1 (например, по уравнению площади (2), описанному выше с порогом 1). Для длины серий 2 коэффициентом зависимости может быть общая площадь для интервальных бинов для длин 1 и 2 (например, по приведенным выше уравнениям с порогом 2), деленная на площадь второй гистограммы для интервальных бинов для длин серий 1 и 2 (например, по приведенному выше уравнению площади (2) с порогом 2).
[0051] В качестве иллюстративного примера модуль ориентации страниц 190 может выбрать первый набор интервальных бинов из первого множества интервальных бинов первой гистограммы, при этом первый набор интервальных бинов включает горизонтальные серии белых пикселей, не превышающие первую длину. Например, первая длина может быть установлена на значение наименьшего числа пикселей в гистограмме (например, 1 пиксель). В качестве альтернативного варианта первая длина может быть установлена на минимальную пороговую длину, как описано выше. Затем модуль ориентации страниц 190 может рассчитать площадь первого набора интервальных бинов из первой гистограммы (например, по уравнению (1) выше). Затем модуль ориентации страниц 190 может выбрать второй набор интервальных бинов из второго множества интервальных бинов второй гистограммы, который представляет собой вертикальные серии белых пикселей, не превышающих первую длину. Затем модуль ориентации страниц 190 может рассчитать площадь второго набора интервальных бинов из второй гистограммы (например, по уравнению (2) выше). Таким образом, площади для обеих гистограмм могут быть рассчитаны для одной и той же первой длины. Затем модуль ориентации страниц 190 может рассчитать первый коэффициент зависимости для первой длины, разделив площадь первой гистограммы при первой длине на площадь второй гистограммы при первой длине.
[0052] Затем модуль ориентации страниц 190 может рассчитать дополнительные коэффициенты зависимости для дополнительных длин серий по двум гистограммам. В некоторых вариантах реализации модуль ориентации страниц 190 может рассчитать дополнительные коэффициенты зависимости для каждого интервального бина двух гистограмм. Например, если две гистограммы формируются с 10 интервальными бинами (например, бин для каждой из 10 длин серий), то может быть рассчитано 10 коэффициентов зависимости. В качестве альтернативного варианта модуль ориентации страниц 190 может вычислить коэффициенты зависимости для подмножества интервальных бинов. Например, может быть вычислен коэффициент зависимости для интервальных бинов между минимальной пороговой длиной и максимальной пороговой длиной. Для каждого интервального бина модуль ориентации страниц 190 может рассчитать соответствующие значения площади по каждой гистограмме используя уравнения суммирования (1) и (2), описанные выше, а затем рассчитать соответствующий коэффициент зависимости для данного интервального бина, соответственно.
[0053] Затем модуль ориентации страниц 190 может, проанализировав коэффициенты зависимости для каждой длины серий двух гистограмм, определить ориентацию строк текстового контента. В некоторых вариантах реализации модуль ориентации страниц 190 может создать график распределения коэффициентов зависимости, как описано ниже применительно к Фиг. 3А-3В. На данном графике распределения могут быть отложены значения коэффициента зависимости по каждой длине серий, при этом длины серий откладываются по оси абсцисс в возрастающем порядке. Затем модуль ориентации страниц 190 может, установив глобальный максимум и глобальный минимум среди коэффициентов зависимости, определить ориентацию текста. Глобальным максимумом может быть наибольший коэффициент зависимости среди рассчитанных коэффициентов зависимости. Глобальным минимумом может быть наименьший коэффициент зависимости среди рассчитанных коэффициентов зависимости. В некоторых вариантах реализации модуль ориентации страниц 190 может определять глобальный максимум и глобальный минимум, применяя пороговые фильтры. Например, модуль ориентации страниц 190 может выбрать подмножество коэффициентов зависимости, больше минимального порогового значения и меньше максимального порогового значения, с тем чтобы снизить влияние шума, искажения и других дефектов, которые могут привести к наличию очень коротких серий белых пикселей или очень длинных серий белых пикселей.
[0054] В ответ на решение о том, что глобальный максимум коэффициентов зависимости связан с длиной серий, короче длины серий, связанной с глобальным минимумом коэффициентов зависимости, модуль ориентации страниц 190 может решить, что ориентация строк текстового контента на изображении является горизонтальной. Например, используя график распределения, описанный выше, если глобальный максимум окажется слева от глобального минимума, ориентация текстового контента - горизонтальная. Ниже со ссылкой на Фиг. 3В приводится иллюстративный пример данного графика.
[0055] В ответ на решение о том, что глобальный минимум коэффициентов зависимости связан с длиной серий, короче длины серий, связанной с глобальным максимумом коэффициентов зависимости, модуль ориентации страниц 190 может решить, что ориентация строк текстового контента на изображении является вертикальной. Например, используя график распределения, описанный выше, если глобальный минимум окажется слева от глобального максимума, ориентация текстового контента - вертикальная. Ниже со ссылкой на Фиг. 3А приводится иллюстративный пример данного графика.
[0056] В еще одном варианте реализации модуль ориентации страниц 190 может определять ориентацию одной или более строк текстового контента в данном фрагменте бинаризованного изображения, используя компонент классификатора. В качестве иллюстративного примера модуль ориентации страниц 190 может получить множество пар гистограмм, каждая из которых включает гистограмму для горизонтальных серий белых пикселей и гистограмму для вертикальных серий белых пикселей и каждая из которых соотнесена с некой ориентацией документа. В некоторых вариантах реализации ориентация документа, соотнесенная с каждой из множества пар гистограмм, может определяться с помощью процесса, описанного выше в отношении ранее анализированных документов. В качестве альтернативного варианта ориентация документа по каждой паре гистограмм может определяться с помощью отдельного процесса и храниться для использования модулем ориентации страниц 190 при обучении классификатора.
[0057] Модуль ориентации страниц 190 может обучить компонент классификатора, соотнеся один или более элементов данных из множества пар гистограмм с соответствующей ориентацией документа. Эти элементы данных могут включать, по крайней мере, одно из следующего: значение интервального бина, коэффициент зависимости, отношение площадей или разница между максимальным значением площади и минимальным значением площади пар гистограмм. Каждый из элементов данных может быть соотнесен с одной из гистограмм пары гистограмм или, в качестве альтернативного варианта, с парой гистограмм. Затем модуль ориентации страниц 190 может извлечь один или более элементов данных из первой гистограммы и второй гистограммы, которые были созданы для серий белых пикселей на бинаризованном изображении, как описано выше. Затем модуль ориентации страниц 190 может определить ориентацию строк текстового контента изображения, применив данный классификатор к элементам данных, извлеченным из первой гистограммы и второй гистограммы.
[0058] Несмотря на то что три варианта реализации изобретения, относящегося к определению строк текстового контента, были описаны выше отдельно друг от друга, в некоторых вариантах реализации модуль ориентации страниц 190 может определять ориентацию текстового контента с использованием комбинации элементов описанных вариантов реализации.
[0059] На Фиг. 2А-2В показаны примеры гистограмм для серий белых пикселей на изображении документа в соответствии с одним или более аспектами настоящего изобретения. На Фиг. 2А-2В согласно одному из вариантов реализации изобретения показаны гистограммы, созданные в результате операций, произведенных для определения ориентации текстового контента на изображении, как описано выше применительно к Фиг. 4-11.
[0060] На Фиг. 2А показан пример гистограммы для горизонтальных серий белых пикселей на изображении документа. На гистограмме на Фиг. 2А по оси ординат отложено число горизонтальных серий, а по оси абсцисс - длина горизонтальных серий. Как показано на Фиг. 2А, для гистограммы горизонтальных серий в порядке возрастания расположено восемь интервальных бинов, каждый из которых представляет длину серии в пикселях. Таким образом, L1 представляет собой длину серий равную 1 пикселю, L2 - длину серий равную 2 пикселям, L3 - длину серий равную 4 пикселям и т.д. В качестве иллюстративного примера операций, описываемых в настоящем документе, порог 210-А (в интервальном бине для длины серий L3) может быть задан как максимальный порог для определения площади 220-А (например, первая площадь S1, описанная выше на Фиг. 1) для гистограммы на Фиг. 2А.
[0061] На Фиг. 2В показан пример гистограммы для вертикальных серий белых пикселей на изображении документа. На гистограмме на Фиг. 2В по оси ординат отложено число вертикальных серий, а по оси абсцисс - длина вертикальных серий. Как показано на Фиг. 2В, для гистограммы вертикальных серий в порядке возрастания расположено восемь интервальных бинов, каждый из которых представляет длину серии в пикселях. Таким образом, L1 представляет собой длину серий равную 1 пикселю, L2 - длину серий равную 2 пикселям, L3 - длину серий равную 4 пикселям и т.д. В качестве иллюстративного примера операций, описываемых в настоящем документе, порог 210-В (в интервальном бине для длины серий L3) может быть задан как максимальный порог для определения площади 220-В (например, вторая площадь S2, описанная выше на Фиг. 1) для гистограммы на Фиг. 2В.
[0062] Как описано выше применительно к уравнению (3) на Фиг. 1, ориентация строк текстового контента на изображении может быть определена путем сопоставления площади 220-А на Фиг. 2А с площадью 220-В на Фиг. 2В. Разделив большую из площадей 220-А и 220-В на меньшую, можно определить отношение площадей. Если отношение площадей больше порога уверенности, то ориентация текстового контента может быть определена, как описано выше, на основе того, какая из площадей 220-А и 220-В оказалась максимальной. Если площадь 220-А больше площади 220-В, то ориентация определяется как горизонтальная. Если площадь 220-В больше площади 220-А, то ориентация определяется как вертикальная.
[0063] Если отношение площадей не превышает порог уверенности, то можно увеличить пороговые длины для обеих гистограмм с L3 (порог 210-А и порог 210-В) до L4 (порог 215-А и порог 215-В). Затем можно пересчитать площади для гистограмм с использованием обновленных пороговых значений. Таким образом, площадь для гистограммы на Фиг. 2А может быть пересчитана как площадь 225-А (например, пересчитанная первая площадь S1', описанная выше на Фиг. 1), а площадь для гистограммы на Фиг. 2В может быть пересчитана как площадь 225-В (например, пересчитанная вторая площадь S2', описанная выше на Фиг. 1). Используя пересчитанные площади 225-А и 225-В можно пересчитать максимальное/минимальное отношение площадей и сравнить его с порогом уверенности. Если новое отношение площадей превышает порог уверенности, то можно определить ориентацию текста, как описано выше. Если новое отношение площадей все еще меньше порога уверенности, процесс может быть снова повторен с увеличением пороговой длины до L5 и так далее.
[0064] На Фиг. 3А-3В показаны примеры графиков распределения коэффициентов зависимости, указывающих на ориентацию текста в соответствии с одним или более аспектами настоящего изобретения. На Фиг. 3А-3В согласно одному из вариантов реализации изобретения показаны графики распределения, созданные в результате операций, произведенных для определения ориентации текстового контента на изображении, как описано выше и ниже применительно к Фиг. 8-9. Графики распределения на Фиг. 3А-3В могут быть созданы путем расчета коэффициентов зависимости по каждому интервальному для пары гистограмм, как описано выше применительно к Фиг. 1.
[0065] Например, коэффициенты зависимости могут быть созданы по каждому интервальному бину (L1-L8 из упомянутого выше примера) для гистограмм на Фиг. 2А-2В. Разделив площадь для L1 на Фиг. 2А на площадь для L1 на Фиг. 2В, можно рассчитать первый коэффициент зависимости, и, разделив площадь для L2 на Фиг. 2А на площадь для L2 на Фиг. 2В, можно рассчитать второй коэффициент зависимости и так далее. После расчета коэффициентов зависимости по каждому интервальному бину для пары гистограмм полученные значения можно отложить на графике распределения. Определив и проанализировав значение глобального максимума и значение глобального минимума для множества коэффициентов зависимости на графике, можно определить ориентацию текстового контента.
[0066] На Фиг. 3А показан пример графика распределения коэффициентов зависимости, указывающий на вертикальную ориентацию текста. Как показано на Фиг. 3А, распределение коэффициентов зависимости для пары гистограмм таково, что глобальный минимум 310-А находится на более короткой длине серий (L2), чем глобальный максимум 320-А (L6). Другими словами, на коротких длинах серий число вертикальных серий превышает число горизонтальных серий (что ведет к более низкому коэффициенту зависимости для данной длины серий). Это может указывать на более высокую концентрацию коротких серий вертикальных белых пикселей, чем коротких серий горизонтальных белых пикселей, что, в свою очередь, может указывать на то, что ориентация текстового контента является вертикальной.
[0067] На Фиг. 3В показан пример графика распределения коэффициентов зависимости, указывающий на горизонтальную ориентацию текста. Как показано на Фиг. 3В, распределение коэффициентов зависимости для пары гистограмм таково, что глобальный максимум 320-В находится на более короткой длине серий (L2), чем глобальный минимум 320-А (L6). Другими словами, на коротких длинах серий число горизонтальных серий превышает число вертикальных серий (что ведет к более высокому коэффициенту зависимости для данной длины серий). Это может указывать на более высокую концентрацию коротких серий горизонтальных белых пикселей, чем коротких серий вертикальных белых пикселей, что, в свою очередь, может указывать на то, что ориентация текстового контента является горизонтальной.
[0068] На Фиг. 4 изображена блок-схема примера реализации способа 400 для определения ориентации строк текстового контента на изображении. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 400 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 400 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 4, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного на чертежах.
[0069] В блоке 405 логика обработки принимает изображение документа. В блоке 410 логика обработки преобразует изображение в бинаризованное изображение, произведя операцию бинаризации в отношении изображения. В блоке 415 логика обработки определяет фрагмент бинаризованного изображения, который включает одну или более строк текстового контента. В некоторых вариантах реализации логика обработки может определять данный фрагмент бинаризованного изображения путем определения области периметра по краям бинаризованного изображения (с учетом значения пороговой ширины) и выбора фрагмента бинаризованного изображения, исключающего данную область периметра. В блоке 420 логика обработки определяет множество горизонтальных серий белых пикселей в одной или более строках текстового контента в данном фрагменте бинаризованного изображения.
[0070] В блоке 425 логика обработки определяет множество вертикальных серий белых пикселей в одной или более строках текстового контента на данном фрагменте бинаризованного изображения. В блоке 430 логика обработки создает первую гистограмму для множества горизонтальных серий белых пикселей. В некоторых вариантах реализации первая гистограмма включает первое множество интервальных бинов, каждый из которых соответствует длине одной или более из множества горизонтальных серий белых пикселей.
[0071] В блоке 435 логика обработки создает вторую гистограмму для множества вертикальных серий белых пикселей. В некоторых вариантах реализации вторая гистограмма включает второе множество интервальных бинов, каждый из которых соответствует длине одной или более из множества вертикальных серий белых пикселей. В блоке 440 логика обработки определяет ориентацию одной или более строк текстового контента изображения на основе первой гистограммы и второй гистограммы. В качестве иллюстративного примера логика обработки может определять ориентацию строк текстового контента изображения, как показано ниже применительно к Фиг. 5-11. После блока 440 выполнение способа, показанного на Фиг. 4, завершается.
[0072] На Фиг. 5 изображена блок-схема примера реализации способа 500 для определения ориентации строк текстового контента путем сопоставления площадей гистограмм. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 500 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 500 частично или полностью может осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 5, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного.
[0073] В блоке 505 логика обработки рассчитывает первую площадь первой гистограммы для горизонтальных серий белых пикселей и вторую площадь второй гистограммы для вертикальных серий белых пикселей. В качестве иллюстративного примера логика обработки может рассчитывать площади как описано ниже применительно к Фиг. 6. В блоке 510 логика обработки сопоставляет первую площадь со второй. В блоке 515 логика обработки определяет, превышает ли первая площадь вторую. Если да, процесс обработки переходит к блоку 520. В противном случае, процесс обработки переходит к блоку 530.
[0074] В блоке 520 логика обработки устанавливает максимальную площадь на значение первой площади. В блоке 525 логика обработки устанавливает минимальную площадь на значение второй площади. После блока 525 процесс обработки переходит к блоку 540. В блоке 530 логика обработки устанавливает максимальную площадь на значение второй площади. В блоке 535 логика обработки устанавливает минимальную площадь на значение первой площади. В блоке 540 логика обработки рассчитывает отношение площадей, разделив максимальную площадь на минимальную. В блоке 545 логика обработки определяет, превышает ли отношение площадей, рассчитанное в блоке 540, порог уверенности. Если да, процесс обработки переходит к блоку 550. В противном случае, процесс обработки переходит к блоку 555.
[0075] В блоке 550 логика обработки по максимальной площади определяет ориентацию строк текстового контента на изображении. В некоторых вариантах реализации в ответ на решение о том, что первая площадь больше второй, логика обработки решает, что ориентация одной или более строк текстового контента на изображении является горизонтальной. В некоторых вариантах реализации в ответ на решение о том, что вторая площадь больше первой, логика обработки решает, что ориентация одной или более строк текстового контента является вертикальной. После блока 550 выполнение способа, показанного на Фиг. 5, завершается.
[0076] В блоке 555 логика обработки пересчитывает отношение площадей, увеличив пороговую длину. В качестве иллюстративного примера логика обработки может пересчитать отношение площадей как показано ниже применительно к Фиг. 7. После блока 555 выполнение способа, показанного на Фиг. 5, завершается.
[0077] На Фиг. 6 изображена блок-схема примера реализации способа 600 для расчета площадей гистограмм. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 600 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 600 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 6, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного.
[0078] В блоке 605 логика обработки выбирает первый набор интервальных бинов из первого множества интервальных бинов первой гистограммы. В некоторых вариантах реализации первый набор интервальных бинов включает горизонтальные серии белых пикселей, которые не превышают пороговую длину. В блоке 610 логика обработки рассчитывает первую площадь первого набора интервальных бинов из первой гистограммы. В некоторых вариантах реализации логика обработки может рассчитать первую площадь по уравнению суммирования (1), описанному выше применительно к Фиг. 1.
[0079] В блоке 615 логика обработки выбирает второй набор интервальных бинов из второго множества интервальных бинов второй гистограммы. В некоторых вариантах реализации второй набор интервальных бинов включает вертикальные серии белых пикселей, которые не превышают пороговую длину. В блоке 620 логика обработки рассчитывает вторую площадь второго набора интервальных бинов из второй гистограммы. В некоторых вариантах реализации логика обработки может рассчитать первую площадь по уравнению суммирования (2), описанному выше применительно к Фиг. 1. После блока 620 выполнение способа, показанного на Фиг. 6, завершается.
[0080] На Фиг. 7 изображена блок-схема примера реализации способа 700 для перерасчета отношения площадей. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 700 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 700 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 7, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного на чертежах.
[0081] В блоке 705 логика обработки увеличивает пороговую длину, использованную для расчета предыдущего отношения площадей. В блоке 710 логика обработки пересчитывает первую площадь для первой гистограммы с использованием увеличенной пороговой длины из блока 705. В блоке 715 логика обработки пересчитывает вторую площадь для второй гистограммы с использованием увеличенной пороговой длины из блока 705. В блоке 720 логика обработки сопоставляет пересчитанную первую площадь из блока 710 с пересчитанной второй площадью из блока 715. В блоке 725 логика обработки на основе результатов сопоставления в блоке 720 определяет новую максимальную площадь и новую минимальную площадь. В блоке 730 логика обработки пересчитывает отношение площадей, разделив новую максимальную площадь на новую минимальную.
[0082] В блоке 735 логика обработки определяет, превышает ли новое отношение площадей порог уверенности. Если да, процесс обработки переходит к блоку 740. В противном случае процесс обработки переходит к блоку 745. В блоке 740 логика обработки на основе новой максимальной площади определяет ориентацию строк текстового контента. В некоторых вариантах реализации в ответ на решение о том, что пересчитанная первая площадь больше пересчитанной второй, логика обработки решает, что ориентация одной или более строк текстового контента является горизонтальной. В некоторых вариантах реализации в ответ на решение о том, что пересчитанная вторая площадь больше пересчитанной первой, логика обработки решает, что ориентация одной или более строк текстового контента является вертикальной. После блока 740 выполнение способа, показанного на Фиг. 7, завершается. В блоке 745 логика обработки пересчитывает отношение площадей, увеличив пороговую длину и повторив весь процесс заново. После блока 745 выполнение способа, показанного на Фиг. 7, завершается.
[0083] На Фиг. 8 изображена блок-схема примера реализации способа 800 для расчета коэффициентов зависимости. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 800 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 800 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 8, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного на чертежах.
[0084] В блоке 805 логика обработки выбирает первый набор интервальных бинов из первого множества интервальных бинов первой гистограммы. В некоторых вариантах реализации первый набор интервальных бинов включает горизонтальные серии белых пикселей, которые не превышают некую первую длину. В блоке 810 логика обработки рассчитывает первую площадь первого набора интервальных бинов из первой гистограммы. В блоке 815 логика обработки выбирает второй набор интервальных бинов из второго множества интервальных бинов второй гистограммы. В некоторых вариантах реализации второй набор интервальных бинов включает вертикальные серии белых пикселей, которые не превышают данную первую длину. В блоке 820 логика обработки рассчитывает вторую площадь второго набора интервальных бинов из второй гистограммы. В блоке 825 логика обработки рассчитывает первый коэффициент зависимости для данной первой длины, разделив первую площадь, рассчитанную в блоке 810, на вторую площадь, рассчитанную в блоке 820.
[0085] В блоке 830 логика обработки выбирает третий набор интервальных бинов из первого множества интервальных бинов первой гистограммы. В некоторых вариантах реализации третий набор интервальных бинов включает горизонтальные серии белых пикселей, которые не превышают некую вторую длину. В блоке 835 логика обработки рассчитывает третью площадь третьего набора интервальных бинов из первой гистограммы. В блоке 840 логика обработки выбирает четвертый набор интервальных бинов из второго множества интервальных бинов второй гистограммы. В некоторых вариантах реализации четвертый набор интервальных бинов включает вертикальные серии белых пикселей, которые не превышают данную вторую длину. В блоке 845 логика обработки рассчитывает четвертую площадь четвертого набора интервальных бинов из второй гистограммы. В блоке 850 логика обработки рассчитывает второй коэффициент зависимости для данной второй длины, разделив третью площадь, рассчитанную в блоке 835, на четвертую площадь, рассчитанную в блоке 845. После блока 850 выполнение способа, показанного на Фиг. 8, завершается.
[0086] В некоторых вариантах реализации этапы, показанные выше на Фиг. 8, могут быть выполнены повторно для расчета коэффициента зависимости для каждой пары интервальных бинов двух гистограмм. Затем логика обработки может среди рассчитанных коэффициентов зависимости определить глобальный максимум и глобальный минимум. Глобальным максимумом может быть наибольший коэффициент зависимости среди рассчитанных коэффициентов зависимости. Глобальным минимумом может быть наименьший коэффициент зависимости среди рассчитанных коэффициентов зависимости. В некоторых вариантах реализации логика обработки может проверить глобальный максимум и глобальный минимум, применив пороговые фильтры. В одном из вариантов реализации изобретения для проверки правильности определения экстремумов (глобального максимума и глобального минимума) отношение глобального максимума к глобальному минимуму может быть сопоставлено с пороговым значением уверенности. Отношение глобального максимума к глобальному минимуму должно быть больше порога уверенности.
[0087] На Фиг. 9 изображена блок-схема примера реализации способа 900 для определения горизонтальной ориентации строк текстового контента по коэффициентам зависимости. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 900 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 900 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 9, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного.
[0088] В блоке 905 логика обработки рассчитывает множество дополнительных коэффициентов зависимости. В некоторых вариантах реализации каждый коэффициент зависимости рассчитывается для соответствующей дополнительной длины. В некоторых вариантах реализации логика обработки может рассчитать первый коэффициент зависимости на некой первой длине, а второй коэффициент зависимости на некой второй длине, при этом первая длина меньше второй длины. В блоке 910 логика обработки определяет, что первый коэффициент зависимости на первой длине является глобальным максимумом. В блоке 915 логика обработки определяет, что второй коэффициент зависимости на второй длине является глобальным минимумом. В блоке 920 логика обработки определяет, что ориентация одной или более строк текстового контента является горизонтальной, так как глобальный максимум находится на более короткой длине, чем глобальный минимум. После блока 920 выполнение способа, показанного на Фиг. 9, завершается.
[0089] В некоторых вариантах реализации этапы, показанные на Фиг. 9, выполняются несколько раз по каждому рассчитанному коэффициенту зависимости. Как только на определенной длине был рассчитан коэффициент зависимости, рассчитываются глобальный максимум и глобальный минимум. Затем логика обработки может определить следующий интервальный бин гистограммы, рассчитать коэффициент зависимости на соответствующей длине серий для данного следующего интервальных бинов и затем рассчитать глобальный максимум и глобальный минимум с учетом вновь рассчитанного коэффициента зависимости. Данный процесс может повторяться до тех пор, пока не будут рассчитаны все коэффициенты зависимости для всех интервальных бинов гистограммы с корректировкой глобального максимума и глобального минимума каждый раз после расчета коэффициента зависимости.
[0090] На Фиг. 10 изображена блок-схема примера реализации способа 1000 для определения вертикальной ориентации строк текстового контента по коэффициентам зависимости. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 1000 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 1000 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 10, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного.
[0091] В блоке 1005 логика обработки рассчитывает множество дополнительных коэффициентов зависимости. В некоторых вариантах реализации каждый коэффициент зависимости рассчитывается для соответствующей дополнительной длины. В некоторых вариантах реализации логика обработки может рассчитать первый коэффициент зависимости на некой первой длине, а второй коэффициент зависимости на некой второй длине, при этом первая длина меньше второй длины. В блоке 1010 логика обработки определяет, что первый коэффициент зависимости на первой длине является глобальным минимумом. В блоке 1015 логика обработки определяет, что второй коэффициент зависимости на второй длине является глобальным максимумом. В блоке 920 логика обработки определяет, что ориентация одной или более строк текстового контента является вертикальной, так как глобальный минимум находится на более короткой длине, чем глобальный максимум. После блока 920 выполнение способа, показанного на Фиг. 9, завершается.
[0092] В некоторых вариантах реализации этапы, показанные на Фиг. 10, выполняются несколько раз по каждому рассчитанному коэффициенту зависимости. Как только на определенной длине был рассчитан коэффициент зависимости, рассчитываются глобальный максимум и глобальный минимум. Затем логика обработки может определить следующий интервальный бин гистограммы, рассчитать коэффициент зависимости на соответствующей длине серий для данного следующего интервального бина и затем рассчитать глобальный максимум и глобальный минимум с учетом вновь рассчитанного коэффициента зависимости. Данный процесс может повторяться до тех пор, пока не будут рассчитаны все коэффициенты зависимости для всех интервальных бинов гистограммы с корректировкой глобального максимума и глобального минимума каждый раз после расчета коэффициента зависимости.
[0093] На Фиг. 11 изображена блок-схема примера реализации способа 1100 для определения ориентации строк текстового контента с использованием компонента классификатора. Этот способ может осуществляться с применением логики обработки, которая может включать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняемое в вычислительной системе общего назначения или в специальной машине) или сочетание первого и второго. В качестве одного из возможных иллюстративных примеров способ 1100 может осуществляться модулем ориентации страниц 190, показанным на Фиг. 1. В качестве альтернативного варианта способ 1100 может полностью или частично осуществляться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 11, могут выполняться как одновременно, так и в порядке, отличающемся от изображенного на чертежах.
[0094] В блоке 1105 логика обработки получает множество пар гистограмм. В некоторых вариантах реализации каждая пара гистограмм включает гистограмму для горизонтальных серий белых пикселей и гистограмму для вертикальных серий белых пикселей. В некоторых вариантах реализации каждая пара гистограмм соотносится с некой ориентацией документа. В блоке 1110 логика обработки обучает компонент классификатора, соотнеся один или более элементов данных из множества пар гистограмм с соответствующей ориентацией документа. В некоторых вариантах реализации эти элементы данных могут включать, по крайней мере, одно из следующего: значение интервального бина, коэффициент зависимости, отношение площадей или разница между максимальной площадью и минимальной площадью. В блоке 1115 логика обработки извлекает один или более элементов данных из первой и второй гистограмм по данному бинаризованному изображению. В блоке 1120 логика обработки определяет ориентацию строк текстового контента на изображении, применив данный классификатор к элементам данных, извлеченным из первой гистограммы и второй гистограммы в блоке 1115. После блока 1120 выполнение способа, показанного на Фиг. 11, завершается.
[0095] На Фиг. 12 приведен пример вычислительной системы 1200, которая может выполнять один или более из описанных в настоящем документе способов. В качестве одного из примеров вычислительная система 1200 может соответствовать вычислительному устройству 100, показанному на Фиг. 1. Данная вычислительная система может быть подключена (например, по сети) к другим вычислительным системам в локальной сети, сети интранет, сети экстранет или сети Интернет. Данная вычислительная система может выступать в качестве сервера в сетевой среде клиент-сервер. Эта вычислительная система может представлять собой персональный компьютер (ПК), планшетный компьютер, телевизионную приставку (STB), карманный персональный компьютер (PDA), мобильный телефон, фотоаппарат, видеокамеру или любое устройство, способное выполнять набор команд (последовательно или иным способом), который определяется действиями этого устройства. Кроме того, несмотря на то, что показана система только с одним компьютером, термин «компьютер» также включает любой набор компьютеров, которые по отдельности или совместно выполняют набор команд (или несколько наборов команд) для выполнения любого из описанных здесь способа или нескольких таких способов.
[0096] Пример вычислительной системы 1200 включает устройство обработки 1202, основную память 1204 (например, постоянное запоминающее устройство (ПЗУ), флэш-память, динамическое ОЗУ (DRAM), например, синхронное DRAM (SDRAM)), статическую память 1206 (например, флэш-память, статическое оперативное запоминающее устройство (ОЗУ)) и запоминающее устройство 1216, которые взаимодействуют друг с другом по шине 1208.
[0097] Устройство обработки 1202 представляет собой одно или несколько устройств обработки общего назначения, например, микропроцессоров, центральных процессоров или аналогичных устройств. В частности, устройство обработки 1202 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор со сверхдлинным командным словом (VLIW) или процессор, в котором реализованы другие наборы команд, или процессоры, в которых реализована комбинация наборов команд. Устройство обработки 1202 также может представлять собой одно или несколько устройств обработки специального назначения, такое как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п. Устройство обработки 1202 настроено на модуль ориентации страниц 1226 для выполнения описанных в настоящем документе операций и этапов (например, в рамках методов, показанных на Фиг. 4-11 и т.д.).
[0098] Вычислительная система 1200 может дополнительно включать устройство сопряжения с сетью 1222. Вычислительная система 1200 также может включать устройство визуального отображения 1210 (например, жидкокристаллический дисплей (LCD) или электронно-лучевой монитор (CRT)), буквенно-цифровое устройство ввода 1212 (например, клавиатуру), устройство управления курсором 1214 (например, мышь) и генератор сигналов 1220 (например, динамик). В качестве одного из иллюстративных примеров устройство визуального отображения 1210, буквенно-цифровое устройство ввода 1212 и устройство управления курсором 1214 могут быть объединены в один модуль или устройство (например, сенсорный жидкокристаллический дисплей).
[0099] Запоминающее устройство 1216 может включать машиночитаемый носитель 1224, на котором хранится модуль ориентации страниц 1226 (например, соответствующий способам, показанным на Фиг. 4-11 и т.д.), реализующий одну или более методик или функций, описанных в настоящем документе. Модуль ориентации страниц 1226 может также во время его выполнения вычислительной системой 1200 полностью или, по меньшей мере, частично находиться в основной памяти 1204 и (или) в устройстве обработки 1202, при этом основная память 1204 и устройство обработки 1202 также представляют собой машиночитаемые носители данных. Модуль ориентации страниц 1226 может дополнительно передаваться или приниматься по сети через сетевое интерфейсное устройство 1222.
[00100] Несмотря на то что машиночитаемый носитель данных 1224 показан в иллюстративных примерах как единичный носитель, термин «машиночитаемый носитель данных» следует понимать и как единичный носитель, и как несколько таких носителей (например, централизованная или распределенная база данных, и (или) связанные кэши и серверы), на которых хранится один или более наборов команд. Термин «машиночитаемый носитель данных» также следует понимать как включающий любой носитель, который может хранить, кодировать или переносить набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или более методик настоящего изобретения. Соответственно, термин «машиночитаемый носитель данных» следует понимать как включающий, среди прочего, устройства твердотельной памяти, оптические и магнитные носители.
[00101] Несмотря на то что операции способов показаны и описаны в настоящем документе в определенном порядке, порядок выполнения операций каждого способа может быть изменен таким образом, чтобы некоторые операции могли выполняться в обратном порядке или чтобы некоторые операции могли выполняться, по крайней мере, частично, одновременно с другими операциями. В некоторых вариантах реализации изобретения команды или подоперации различных операций могут выполняться с перерывами и (или) попеременно.
[00102] Следует понимать, что приведенное выше описание носит иллюстративный, а не ограничительный характер. Различные другие варианты осуществления станут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Область применения изобретения поэтому должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, которые покрывает формула изобретения.
[00103] В приведенном выше описании изложены многочисленные детали. Однако специалистам в данной области техники должно быть очевидно, что варианты изобретения могут быть реализованы на практике и без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем, а не подробно, чтобы не усложнять описание настоящего изобретения.
[00104] Некоторые части подробного описания выше представлены в виде алгоритмов и символического изображения операций с битами данных в компьютерной памяти. Такие описания и представления алгоритмов представляют собой средства, используемые специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в данной области. Приведенный здесь (и в целом) алгоритм сконструирован как непротиворечивая последовательность шагов, ведущих к нужному результату. Эти этапы требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и манипулировать ими. Иногда удобно, прежде всего для обычного использования, описывать эти сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.п.
[00105] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемые к этим величинам. Если особо не указано иное, как видно из последующего обсуждения, следует понимать, что во всем описании такие термины, как «прием», «преобразование», «выявление», «создание», «определение», «расчет» и т.п., относятся к функционированию и процессам компьютерной системы или подобного электронного вычислительного устройства, которая управляет данными, представленными в виде физических (электронных) величин в регистрах и памяти компьютерной системы, и преобразует их в другие данные, аналогичным образом представленные в виде физических величин в памяти или регистрах компьютерной системы или в других подобных устройствах хранения, передачи или отображения информации.
[00106] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей или оно может содержать универсальный компьютер, который избирательно активируется или реконфигурируется с помощью компьютерной программы, хранящейся в компьютере. Такая вычислительная программа может храниться на машиночитаемом носителе данных, например (помимо прочего): диск любого типа, в том числе гибкий диск, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд, каждый из которых соединен с шиной вычислительной системы.
[00107] Алгоритмы и изображения, приведенные в этом документе, не обязательно связаны с конкретными компьютерами или другими устройствами. Различные системы общего назначения могут использоваться с программами в соответствии с изложенной здесь информацией, возможно также признание целесообразным сконструировать более специализированные устройства для выполнения шагов способа. Структура разнообразных систем такого рода определяется в порядке, предусмотренном в описании ниже. Кроме того, изложение вариантов осуществления изобретения не предполагает ссылок на какие-либо конкретные языки программирования. Следует принимать во внимание, что для реализации принципов настоящего изобретения могут быть использованы различные языки программирования.
[00108] Варианты осуществления настоящего изобретения могут быть представлены в виде вычислительного программного продукта или программы, которая может содержать машиночитаемый носитель с сохраненными на нем инструкциями, которые могут использоваться для программирования вычислительной системы (или других электронных устройств) для выполнения процесса в соответствии с сущностью изобретения. Машиночитаемый носитель включает механизмы хранения или передачи информации в машиночитаемой форме (например, компьютером). Например, машиночитаемый (считываемый компьютером) носитель данных содержит машиночитаемый (например, компьютером) носитель данных (например, постоянное запоминающее устройство («ПЗУ»), оперативное запоминающее устройство («ОЗУ»), накопитель на магнитных дисках, накопитель на оптическом носителе, устройства флэш-памяти и т.д.) и т.п.
[00109] Слова «пример» или «примерный» используются здесь для обозначения использования в качестве примера, отдельного случая или иллюстрации. Любой вариант реализации или конструкция, описанная в настоящем документе как «пример», не должна обязательно рассматриваться как предпочтительная или преимущественная по сравнению с другими вариантами реализации или конструкциями. Слово «пример» лишь предполагает, что идея изобретения представляется конкретным образом. В этой заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». Если не указано иное или не очевидно из контекста, то «X включает А или В» используется для обозначения любой из естественных включающих перестановок. То есть, если X содержит А; X включает в себя В; или X включает и А и В, то высказывание «X включает в себя А или В» является истинным в любом из указанных выше случаев. Кроме того, артикли «a» и «an», использованные в англоязычной версии этой заявки и прилагаемой формуле изобретения, должны, как правило, означать «один или более», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Использование терминов «вариант осуществления» или «один вариант осуществления» или «реализация» или «одна реализация» не означает одинаковый вариант реализации, если такое описание не приложено. В описании термины «первый», «второй», «третий», «четвертый» и т.д. используется как метки для обозначения различных элементов и не обязательно имеют смысл порядка в соответствии с их числовым обозначением.