РЕКОНСТРУКЦИЯ ДОКУМЕНТА ИЗ СЕРИИ ИЗОБРАЖЕНИЙ ДОКУМЕНТА
RECONSTRUCTION OF THE DOCUMENT FROM DOCUMENT IMAGE SERIES

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение в целом относится к вычислительным системам, а точнее - к системам и способам получения и предварительной обработки изображений для оптического распознавания символов (OCR).
УРОВЕНЬ ТЕХНИКИ
[0002] Оптическое распознавание символов (OCR) представляет собой реализованное вычислительными средствами преобразование изображений текстов (включая типографский, рукописный или печатный текст) в машиночитаемые электронные документы.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0003] В соответствии с одним или более вариантами реализации настоящего изобретения описанный в примере способ реконструкции документа из серии изображений документа может содержать: получение с помощью вычислительной системы множества кадров изображений, где каждый кадр изображения из множества кадров изображений содержит по меньшей мере часть изображения исходного документа; выявление множества визуальных особенностей на множестве кадров изображения; выполнение пространственного выравнивания множества кадров изображений исходя из совпадений выявленных визуальных особенностей; разделение каждого из множества кадров изображений на множество фрагментов изображения; выявление одного или более фрагментов изображения с изображением текста во множестве фрагментов изображения; связывание каждого выявленного фрагмента изображения с изображением текста к кадру изображения, на котором этот фрагмент изображения имеет оптимальное значение заранее определенного показателя качества из значений показателя качества для этого фрагмента изображения на множестве кадров изображений; и создание реконструированного кадра изображения путем совмещения фрагментов изображения соответствующих кадров изображений.
[0004] В соответствии с одним или более вариантами реализации настоящего изобретения описанная в примере система для реконструкции документа из серии изображений документа может содержать: запоминающее устройство; устройство обработки, подключенное к запоминающему устройству, выполненное с возможностью: получения множества кадров изображений, где каждый кадр изображения из множества кадров изображений содержит по меньшей мере часть изображения исходного документа; выявления множества визуальных особенностей на множестве кадров изображения; выполнения пространственного выравнивания множества кадров изображений исходя из совпадений выявленных визуальных особенностей; разделения каждого из множества кадров изображений на множество фрагментов изображения; выявления одного или более фрагментов изображения с изображением текста во множестве фрагментов изображения; связывания каждого выявленного фрагмента изображения с изображением текста к кадру изображения, на котором этот фрагмент изображения имеет оптимальное значение заранее определенного показателя качества из значений показателя качества для этого фрагмента изображения на множестве кадров изображений; и создания реконструированного кадра изображения путем совмещения фрагментов изображения соответствующих кадров изображений.
[0005] В соответствии с одним или более вариантами реализации настоящего изобретения пример постоянного машиночитаемого носителя данных может включать исполняемые команды, которые при исполнении их обрабатывающим устройством приводят к выполнению обрабатывающим устройством операций, включающих в себя: получение с помощью вычислительной системы множества кадров изображений, где каждый кадр изображения из множества кадров изображений содержит по меньшей мере часть изображения исходного документа; выявление множества визуальных особенностей на множестве кадров изображения; выполнение пространственного выравнивания множества кадров изображений исходя из совпадений выявленных визуальных особенностей; разделение каждого из множества кадров изображений на множество фрагментов изображения; выявление одного или более фрагментов изображения с изображением текста во множестве фрагментов изображения; связывание каждого выявленного фрагмента изображения с изображением текста к кадру изображения, на котором этот фрагмент изображения имеет оптимальное значение заранее определенного показателя качества из значений показателя качества для этого фрагмента изображения на множестве кадров изображений; и создание реконструированного кадра изображения путем совмещения фрагментов изображения соответствующих кадров изображений.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Настоящее изобретение иллюстрируется примерами, что не является ограничивающим, и может быть более понято при рассмотрении приведенного ниже описания предпочтительных вариантов реализации в сочетании с чертежами, на которых:
[0007] На Фиг. 1 приведена блок-схема одного иллюстративного примера способа реконструкции документа из серии изображений документа в соответствии с одним или более вариантами реализации настоящего изобретения;
[0008] На Фиг. 2 схематично иллюстрируются два изображения документа, полученные от устройства получения изображений, находящегося в разных положениях, что привело к появлению областей блика в разных местах изображения;
[0009] На Фиг. 3 схематично иллюстрируются два изображения документа, полученные из соответствующих исходных изображений путем обрезки и регулировки соотношения сторон;
[00010] На Фиг. 4 схематично иллюстрируется изображение, полученное путем объединения двух изображений с Фиг. 3 таким образом, чтобы область блика первого изображения совпадала с соответствующим фрагментом изображения на втором изображении;
[00011] На Фиг. 5А-5В иллюстрируются два изображения документа с разными размытыми областями;
[00012] На Фиг. 6 схематично иллюстрируется изображение, полученное путем объединения двух изображений с Фиг. 5А-5В таким образом, чтобы размытая область первого изображения совпадала с соответствующим фрагментом изображения на втором изображении;
[00013] На Фиг. 7 схематично иллюстрируется изображение, полученное путем постобработки изображения с Фиг. 6;
[00014] На Фиг. 8 представлена подробная схема компонентов примера вычислительной системы, внутри которой исполняются инструкции, которые вызывают выполнение вычислительной системой любого из способов или более способов, рассматриваемых в этом документе.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[00015] В настоящем документе описываются способы и системы реконструкции документа из серии изображений документа.
[00016] В приведенном ниже описании термин «документ» должен толковаться расширительно, как относящийся к широкому спектру носителей текста, включая, помимо прочего, печатные или написанные от руки бумажные документы, баннеры, постеры, знаки, рекламные щиты и (или) другие физические объекты, несущие видимые символы текста на одной или более поверхностях. В приведенном ниже описании термин «Изображение документа» относится к изображению как минимум части исходного документа (например, страницы бумажного документа).
[00017] Система оптического распознавания символов (OCR) может преобразовать изображение документа в машиночитаемый формат, допускающий поиск и содержащий текстовую информацию, извлеченную из изображения бумажного документа. Однако процесс OCR может быть затруднен различными дефектами изображения, такими как зашумленность, расфокусировка или низкая резкость изображения, блики, смаз и др., которые обычно возникают из-за пространственной нестабильности устройства получения изображений, недостаточной освещенности, неправильно выбранной выдержки затвора или диафрагмы и/или другими условиями и осложняющими обстоятельствами. Для компенсации дефектов изображений можно реконструировать пригодное для OCR изображение документа путем обработки серий изображений (например, последовательности видеокадров или неподвижных кадров изображения) документа. Следует заметить, что такая серия кадров не всегда может быть получена при фиксированном положении устройства получения изображений относительно исходного документа и/или при неизменных условиях получения изображений, в то же время эти факторы могут привести к невозможности получения пригодного для OCR изображения документа исходя из полученной серии изображений.
[00018] Описанные в настоящем документе системы и способы предоставляют значительные улучшения по сравнению с обычными способами получения и предварительной обработки, которые состоят в получении пригодного для OCR изображения путем обработки серии кадров, которые могут быть сделаны при различных положениях устройства получения изображений относительно исходного документа и/или при различных условиях получения изображений (таких как освещение, фокус, скорость затвора, диафрагма и т.д.). Поэтому системы и способы, описанные в этом документе, могут быть эффективно использованы для получения и обработки изображений документов в мобильных вычислительных устройствах (таких как смартфоны, планшеты и им подобные), оборудованных фото- и/или видеокамерами. Обработка изображений существенно повышает качество изображения, компенсируя различные искажения изображения, вызванные бликами, тенями, размытием, расфокусировкой и/или шумом. Качество изображения, создаваемое системами и способами по настоящему изобретению, позволяет значительно улучшить точность OCR по сравнению с различными известными способами получения изображений.
[00019] В иллюстративном примере вычислительная система, в которой реализованы описанные здесь способы, может получать множество кадров изображений, где каждый кадр изображения содержит по меньшей мере часть изображения исходного документа. Обработка изображений может включать регистрацию изображений, например, путем пространственного выравнивания кадров изображения, исходя из наличия определенных визуальных особенностей, выявленных на каждом кадре изображения. Каждый из множества кадров изображений затем может быть разделен на множество перекрывающихся или неперекрывающихся фрагментов изображения, и среди множества фрагментов изображения могут быть выявлены один или более фрагментов изображения, содержащих текст. Каждый фрагмент изображения, содержащий текст, можно связать с кадром изображения, на котором этот фрагмент имеет оптимальное значение определенного показателя качества из значений показателя качества этого фрагмента изображения на всех кадрах изображений. Реконструированный кадр изображения может быть получен путем совмещения фрагментов изображения со связанных кадров изображения, как более подробно описано ниже в этом документе.
[00020] Различные аспекты упомянутых выше способов и систем подробно описаны ниже в этом документе с помощью примеров, что не является ограничивающим.
[00021] На Фиг. 1 показана блок-схема одного из иллюстративных примеров способа 100 выполнения OCR серии кадров изображений, содержащих символы текста, в соответствии с одним или более вариантами реализации настоящего изобретения. Способ 100 и/или каждая из его отдельно взятых функций, процедур, подпрограмм или операций могут осуществляться с помощью одного или более процессоров вычислительной системы (например, вычислительной системы 800 на Фиг. 8), реализующей этот способ. В некоторых реализациях способ 100 может быть реализован в одном потоке обработки. В качестве альтернативы способ 100 может выполняться с использованием двух и более потоков обработки, при этом каждый поток выполняет одну или более отдельных функций, стандартных программ, подпрограмм или операций способа. В одном из иллюстративных примеров потоки обработки, в которых реализован способ 100, могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков). При альтернативном подходе потоки обработки, в которых реализован способ 100, могут выполняться асинхронно по отношению друг к другу. Таким образом, несмотря на то что Фиг. 1 и соответствующее описание содержат список операций для способа 100 в определенном порядке, в различных вариантах осуществления способа по меньшей мере некоторые из описанных операций могут выполняться параллельно и/или в произвольно выбранном порядке.
[00022] На шаге 110 блок-схемы вычислительная система, реализующая этот способ, может получать серию кадров изображений (например, последовательность видеокадров или неподвижных кадров изображения) исходного документа. Эти кадры могут содержать по меньшей мере частично перекрывающиеся фрагменты документа и отличаться положением устройства получения изображений относительно исходного документа и/или условиями получения изображений. Различное положение устройства получения изображений относительно исходного документа может привести к разнице в масштабе изображения, различным оптическим искажениям изображения, вызванным различиями в углах съемки, разному положению исходного документа на кадре изображения и/илиили разному положению различных визуальных артефактов, таких как блики или тени. Следует отметить, что различия в положении документа на кадре изображения могут быть вызваны не только перемещением устройства получения изображений, но и перемещением исходного документа относительно поля зрения (FOV) устройства получения изображений. На Фиг. 2 схематично иллюстрируются два изображения документа 250А, 250В, полученные от устройства получения изображений, находящегося в разных положениях, что привело к наличию областей блика в разных местах изображения.
[00023] Различия в условиях получения изображений могут быть вызваны разницей в скорости затвора, диафрагме, фокусном расстоянии и/или наличием внешних объектов, по меньшей мере частично перекрывающих исходный документ, что может привести к различиям в яркости, резкости, бликам, смазам и/или другим особенностям изображения и визуальным артефактам.
[00024] Получение серии изображений может быть выполнено с помощью фото- или видеокамеры. В иллюстративном примере некоторые изображения из серии изображений могут быть получены с использованием встроенного или внешнего осветительного устройства (например, вспышки), в то время как остальные изображения серии могут быть получены при естественном освещении без применения дополнительных осветительных устройств. При ином подходе все изображения серии могут быть получены с использованием встроенного или внешнего осветительного устройства (например, вспышки) или при естественном освещении без применения дополнительных осветительных устройств.
[00025] В некоторых вариантах осуществления работа осветительного устройства может контролироваться пользователем вручную. При ином подходе осветительное устройство может активироваться вычислительной системой, реализующей способ, например, исходя из заранее определенного количества изображений, получаемых с использованием или без использования осветительного устройства. Эта вычислительная система может иметь предопределенные параметры, по меньшей мере некоторые из которых могут изменяться пользователем, например количество изображений, получаемых при различных условиях получения изображений.
[00026] В некоторых вариантах осуществления вычислительная система может реализовывать режим серийного получения изображений (то есть режим получения нескольких изображений, активируемый одним нажатием на кнопку активации затвора). В некоторых вариантах осуществления вычислительная система может реализовывать режим автоматического брекетинга экспозиции, который включает автоматическое изменение параметров получения изображений (то есть экспозиции) при получении серии изображений.
[00027] В некоторых вариантах осуществления положение устройства получения изображений относительно исходного документа и угол съемки могут вручную регулироваться пользователем (например, исходя из визуальной обратной связи, получаемой через видоискатель). При альтернативном подходе вычислительная система, реализующая способ, может направлять пользователя, указывая на необходимость сместить устройство получения изображений относительно исходного документа и/или изменить угол съемки для получения серии кадров изображений, на которых различные дефекты и визуальные артефакты (которые могут быть вызваны, например, тенями, бликами, внешними объектами, которые могут по меньшей мере частично закрывать исходный документ) имеют разное положение на кадрах, что позволяет реконструировать исходный документ исходя из полученной серии кадров изображений.
[00028] В некоторых вариантах реализации вычислительная система может использовать различные устройства пользовательского интерфейса (например, видоискатель, один или более светодиодных (LED) индикаторов и/или аудиовыход) для уведомления пользователя о рекомендуемых моделях и параметрах получения изображений (например, рекомендаций о положении устройства получения изображений, исходного документа или внешнего источника света). В иллюстративном примере вычислительная система, реализующая способ, может обнаруживать различные визуальные дефекты на ранее полученном кадре изображения и/или в данных изображения, получаемых в реальном времени через видоискатель, и может предоставлять пользователю визуальную обратную связь путем выделения обнаруженных дефектных областей в видоискателе. В некоторых вариантах реализации анализ изображения может включать детектирование границ, которое может выполняться путем анализа второй производной от яркости пикселей. Отсутствие контрастных границ в некоторых областях изображения может указывать на высокий уровень шума (например, вызванный расфокусировкой) или сильный смаз. В иллюстративном примере профили второй производной яркости в направлении градиента яркости могут быть образованы пикселями, расположенными в визуальной близости детектированных границ. Параметры этих профилей могут анализироваться и сравниваться с известными профилями для определения типа искажения (например, смаз или расфокусировка), уровня искажения и некоторых параметров искажения (например, направления смаза). Параметры профиля могут включать среднее значение, дисперсию, коэффициент асимметрии, абсолютные значения локальных минимумов и максимумов и др. В некоторых вариантах реализации вычислительная система может использовать одну или более обучаемых функций классификатора, которые могут обрабатывать профили вторых производных яркости в направлении градиента яркости и вычислять уровень искажения определенного типа, обнаруженного на изображении.
[00029] В одном из иллюстративных примеров вторые производные яркости пикселей могут определяться путем применения фильтра Лапласа или его аппроксимации. Для уменьшения эффекта шума перед наложением фильтра Лапласа изображение может быть сглажено, например, с помощью сглаживающего фильтра Гаусса, медианного фильтра, прямоугольного фильтра, адаптивного медианного фильтра и/или других методов сглаживания. В некоторых вариантах осуществления можно использовать комбинированный фильтр, например Лапласиана над Гауссианом (LoG) или фильтр Разности Гауссианов (DoG). Тип фильтра и параметры фильтрации могут быть выбраны исходя из характеристик данного класса изображений или устройства получения изображений для повышения качества и эффективности обнаружения дефектов.
[00030] Обнаруженные дефекты изображения могут быть отражены в визуальной обратной связи, предоставляемой пользователю устройства получения изображений. Визуальная обратная связь может включать подсветку, заполнение цветом или другое визуальное выделение в видоискателе областей изображения, содержащих обнаруженные дефекты изображения. В некоторых вариантах осуществления цвет, используемый для заполнения области изображения, может указывать на тип искажения, а его яркость - на степень искажения изображения, вызванного соответствующим дефектом изображения. В одном из иллюстративных примеров пользователь может реагировать на визуальную обратную связь, перемещая устройство получения изображений для того, чтобы свести к минимуму количество и/или общую площадь выделенных дефектов изображения.
[00031] При альтернативном подходе вычислительная система, реализующая способ, может автоматически инициировать получение второго и последующих кадров серии. В одном из иллюстративных примеров вычислительная система может анализировать данные изображения, получаемого в реальном времени в видоискателе, и получать следующий кадр изображения, когда положение документа в кадре изображения или ракурс (POV) изменятся более чем на заданное пороговое значение. Это пороговое значение может быть задано, например, в виде предопределенного соотношения (например, 10% или 20%) размера кадра изображения или размера документа в заданном направлении в пространстве. В некоторых вариантах реализации изменения положения документа в кадре изображения могут обнаруживаться путем применения методов эпиполярной геометрии, которые могут включать сравнение проекций определенных ключевых точек (например, углов документа) на двух последовательно полученных кадрах изображения.
[00032] На шаге 115 блок-схемы вычислительная система может осуществлять бинаризацию полученного изображения. Бинаризованное изображение представляет собой цифровое изображение, в котором каждый пиксель может иметь только два возможных значения, например, ноль или один. Обычно значения битов пикселей интерпретируются как соответствующие черному и белому цветам, однако для визуализации бинаризованных изображений могут использоваться любые два цвета.
[00033] В одном из иллюстративных примеров бинаризация изображения может включать конвертацию исходного цветного изображения в серое изображение, в котором каждый пиксель кодируется его значением яркости, и сравнение каждого пикселя с заранее определенным или динамически адаптируемым пороговым значением яркости для получения черного или белого пикселя. Динамически адаптируемое пороговое значение может быть получено с помощью алгоритма кластеризации, который регулирует пороговое значение бинаризации, изучая профили распределения серого одного или более изображений.
[00034] На шаге 120 блок-схемы вычислительная система может осуществлять регистрацию изображения, то есть выравнивание в пространстве двух или более изображений документа исходя из согласующихся визуальных особенностей. В некоторых вариантах осуществления можно выявлять базовое изображение серии (например, как изображение, имеющее наилучшую резкость в серии), а остальные изображения серии будут преобразованы путем выравнивания в пространстве относительно выявленного базового изображения.
[00035] Регистрация изображения может включать конвертацию полученных изображений по определенным размерам и/или соотношению сторон. Размеры и/или соотношения сторон могут указываться пользователем в настройках приложения или выбираться из списка стандартных значений размеров и соотношений сторон. На Фиг. 3 схематично иллюстрируются два изображения документа 350А и 350В, полученные из соответствующих исходных изображений 250А и 250В путем обрезки и регулировки соотношения сторон.
[00036] Регистрация изображений может также включать применение к полученным изображениям проективного преобразования. Под «проективным преобразованием» здесь подразумевается преобразование, которое отображает линии в линии, но не обязательно сохраняет параллельность. Проективное преобразование может быть описано следующими уравнениями:
1
2
3
4
1
2
3
4
где (x, y) и (X, Y) представляют собой координаты случайно выбранной точки на первом изображении и втором изображении соответственно. Коэффициенты преобразования Ax, Ах, Ах, Ах, Ay, Ay, Ay и Ay могут определяться исходя из известных координат не менее чем четырех опорных точек на каждом из двух изображений, на основе чего можно получить систему из восьми уравнений с восемью переменными. После определения коэффициентов преобразования уравнения (1) и (2) можно применить к координатам случайно выбранной точки первого изображения, чтобы получить координаты той же точки на втором изображении.
[00037] В одном из иллюстративных примеров, если в кадр изображения помещается документ целиком, проективное преобразование может быть применено к углам документа, которые определяются как пересечения обнаруженных границ документа. При альтернативном подходе, если документ целиком не помещается в кадр изображения, проективные преобразования могут применяться к определенным ключевым точкам. Ключевые точки могут быть расположены в областях резких изменений градиента яркости, таким образом, они часто находятся в визуальной близости к углам, пятнам или границам. В различных вариантах реализации ключевые точки могут быть обнаружены, например, путем применения матрицы Гессе, фильтров Хаара, детектора углов Харриса, DoG и др.
[00038] Для каждой обнаруженной ключевой точки может быть определен один или более дескрипторов, представленных векторами, описывающими данные изображения в визуальной близости к этой ключевой точки. Для упрощения сопоставления ключевых точек на нескольких изображениях дескрипторы ключевых точек можно выбрать инвариантными по отношению к освещенности, шуму, положению и поворотам камеры и/или другим факторам, которые могут включать искажение изображения. В различных иллюстративных примерах для выявления ключевых точек и получения соответствующих им дескрипторов могут использоваться один или более способов, например, масштабно-инвариантная трансформация признаков (SIFT), аффинная SIFT (ASIFT), робастные ускоренные признаки (SURF), ориентированный Features from Accelerated Test (Oriented FAST) и Binary Robust Independent Elementary Features с вращением (Rotated BRIEF (ORB)) и др.
[00039] В случае выявления ключевых точек и определения соответствующих им дескрипторов на одном кадре изображения можно выявить соответствующие ключевые точки на другом кадре изображения, например используя метод kd-дерева, метод иерархического дерева k-средних и/или другие методы. К выявленным соответствующим ключевым точкам можно применить проективное преобразование для пространственного выравнивания двух изображений. Аналогичная процедура может быть выполнена для всех изображений серии.
[00040] Ошибки регистрации изображений, например, пространственное смещение определенной ключевой точки на одном или более изображениях относительно базового изображения, могут быть скомпенсированы исходя из заданного или динамически изменяемого порога ошибки, например путем сглаживания поля векторов перемещения, определяющего двумерные преобразования определенных фрагментов изображения (также именуемых «макроблоками»). Сглаживание может выполняться путем наложения на векторы движения одного или более фильтров различных типов (например, сверточных фильтров с большим отцентрированным окном).
[00041] На шаге 125 блок-схемы вычислительная система может разделить кадр изображения на множество неперекрывающихся фрагментов. В некоторых вариантах осуществления фрагменты могут иметь прямоугольную форму и быть одинакового или разного размера. При альтернативном подходе для разделения кадров изображения могут использоваться другие фигуры и различные размеры, например, ромбы, параллелограммы, шестиугольники и др. В некоторых вариантах осуществления геометрические фигуры могут поворачиваться на определенный угол, например, на 30, 45, 60 или 90 градусов. Изображение может разделяться на фрагменты разной формы, например, квадраты и прямоугольники. Размеры фрагментов могут выбираться таким образом, чтобы фрагменты содержали по меньшей мере некоторое количество текстовой информации (например, как минимум заранее определенное количество строк текста и/или как минимум заранее определенное количество символов в строке), при этом размер фрагмента ограничивается так, чтобы обеспечивать достаточно хорошее обнаружение и обработку локальных дефектов изображения. В одном из иллюстративных примеров ширина фрагмента может соответствовать заранее определенному количеству строк текста (например, двум или трем строкам). В другом иллюстративном примере длина фрагмента может соответствовать заранее определенному количеству символов текста (например, от пяти до семи символов).
[00042] На шаге 130 блок-схемы вычислительная система может выявлять фрагменты кадра изображения, содержащие символы текста. В одном из иллюстративных примеров вычислительная система может определять контрастность изображения как разницу между максимальным и минимальным значениями яркости фрагмента изображения и может сравнивать определенную контрастность изображения с заранее определенным пороговым значением контрастности; фрагмент изображения, вероятно, содержит текстовые символы, если контрастность изображения превышает пороговое значение контрастности. В другом иллюстративном примере вычислительная система может определять отношение пикселей со значением текста (например, имеющих значение бинарной «1») к общему количеству пикселей, входящих во фрагмент изображения, и сравнивать определенное отношение с заранее определенным пороговым отношением; фрагмент изображения, вероятно, содержит текстовые символы, если найденное отношение ниже порогового отношения. В некоторых вариантах осуществления необходимо выполнение одного или более указанных критериев для хотя бы одного изображения в серии, чтобы фрагмент изображения рассматривался в качестве фрагмента изображения, содержащего текст.
[00043] На шаге 135 вычислительная система может вычислять качество изображения для каждого фрагмента изображения. Вычисляемые коэффициенты качества изображения могут включать резкость изображения, уровень шума, контрастность изображения, уровень оптических искажений (например, искривление прямых линий) и/или наличие определенных визуальных артефактов. В одном из иллюстративных примеров резкость изображения и/или уровень шума могут отражаться в степени отклонения профиля яркости (например, вторых производных яркости в направлении градиента яркости), возвращаемой ступенчатой функцией. В другом иллюстративном примере уровень смаза изображения может отражаться в среднем расстоянии от точки начала координат до локального экстремума второй производной яркости изображения. В другом иллюстративном примере уровень шума может отражаться в среднем и/или в отклонении яркости изображения. В другом иллюстративном примере наличие и уровень бликов могут определяться путем выявления и анализа связных компонент внутри изображения. «Связной компонентой» в этом документе называется набор пикселей, которые соединены друг с другом путями, которые полностью состоят их этой компоненты.
[00044] В некоторых вариантах реализации качество изображения может вычисляться обучаемой функцией классификатора, которая может обрабатывать определенные параметры изображения и выдавать величину определенного типа искажений, обнаруженных в изображении. Параметры изображения могут включать различные профили вторых производных яркости изображения в направлении градиента яркости, например, среднее значение, дисперсию, коэффициент асимметрии, абсолютные значения локальных минимумов и максимумов, параметры выявленных связных компонент и др. В или более кадров изображения, полученных в различных условиях получения из включены последовательно, так что выход одного классификатора будет являться входом другого классификатора.
[00045] В некоторых вариантах реализации к изображению параллельно или последовательно могут применяться два или более детектора искажений изображения, которые обнаруживают различные типы искажений. Качество изображения будет представлено суммой взвешенных значений каждого из обнаруженных типов искажений.
[00046] В некоторых вариантах реализации качество изображения может быть представлено отношением дисперсий классов Фон и Текст, полученных при выполнении бинаризации Оцу изображения к полной дисперсии фрагмента изображения:
[00047]
1
где M - среднее значение яркости пикселей, для которых не превышается порог бинаризации Оцу;
1
w - отношение числа подобных пикселей к общему количеству пикселей во фрагменте изображения;
2
М - среднее значение яркости пикселей, для которых превышается порог бинаризации Оцу;
2
w - отношение числа подобных пикселей к общему количеству пикселей во фрагменте изображения;
σ - межклассовое стандартное отклонение (то есть квадратный корень из межклассовой дисперсии).
[00048] При альтернативном подходе качество изображения может быть представлено оценкой точности OCR изображения, которая может быть получена с помощью обученной сверточной нейронной сети (СНС). СНС представляет собой вычислительную модель, основанную на многоэтапном алгоритме, который применяет набор заранее определенных функциональных преобразований ко множеству исходных данных (например, пикселей изображения), а затем использует преобразованные данные для выполнения распознавания образов. СНС может быть реализована в виде искусственной нейронной сети с прямой связью, в которой схема соединений между нейронами подобна тому, как организована зрительная зона коры мозга животных. Отдельные нейроны коры откликаются на раздражение в ограниченной области пространства, известной под названием рецептивного поля. Рецептивные поля различных нейронов частично перекрываются, образуя поле зрения. Отклик отдельного нейрона на раздражение в границах его рецептивного поля может быть аппроксимирован математически с помощью операции свертки.
[00049] В иллюстративном примере СНС может содержать несколько слоев, в том числе слои свертки, нелинейные слои (например, реализуемые блоками линейной ректификации (ReLU)), слои субдискретизации и слои классификации (полносвязные). Сверточные слои могут извлекать элементы из исходного изображения, применяя один или более обучаемых фильтров пиксельного уровня к исходному изображению. В иллюстративном примере фильтр пиксельного уровня может быть представлен матрицей целых значений, производящей свертку по всей площади исходного изображения для вычисления скалярных произведений между значениями фильтра и исходного изображения в каждом пространственном положении, создавая таким образом карту признаков, представляющих собой отклики фильтра в каждом пространственном положении исходного изображения.
[00050] К карте признаков, созданной сверточным слоем, могут применяться нелинейные операции. В иллюстративном примере нелинейные операции могут быть представлены блоком линейной ректификации (ReLU), который заменяет нулями все отрицательные значения пикселей на карте признаков. В различных других реализациях нелинейные операции могут быть представлены функцией гиперболического тангенса, сигмоидной функцией или другой подходящей нелинейной функцией.
[00051] Слой субдискретизации может выполнять подвыборку для получения карты признаков с пониженным разрешением, которая будет содержать наиболее актуальную информацию. Подвыборка может включать усреднение и/или определение максимального значения групп пикселей.
[00052] В некоторых вариантах реализации сверточные, нелинейные и слои и слои субдискретизации могут применяться к исходному изображению несколько раз, прежде чем результат будет передан в классифицирующий (полносвязный) слой. Совместно эти слои извлекают полезные признаки из исходного изображения, вводят нелинейность и снижают разрешение изображения, делая признаки менее чувствительными к масштабированию, искажениям и мелким трансформациям исходного изображения.
[00053] Результат работы сверточного слоя и слоя субдискретизации позволяет получить признаки высокого уровня исходного изображения. Задачей классифицирующего слоя является использование этих признаков для классификации исходных изображений на различные классы. В иллюстративном примере классифицирующий слой может быть представлен искусственной нейронной сетью, содержащей множество нейронов. Каждый нейрон получает свои исходные данные от других нейронов или из внешнего источника и генерирует результат, применяя функцию активации к сумме взвешенных исходных данных и полученному при обучении значению смещения. Нейронная сеть может содержать множество нейронов, расположенных по слоям, включая входной слой, один или более скрытых слоев и выходной слой. Нейроны соседних слоев соединены взвешенными ребрами. Термин «полносвязный» означает, что каждый нейрон предыдущего слоя соединен с каждым нейроном следующего слоя.
[00054] Веса ребер определяются на стадии обучения сети исходя из набора данных для обучения. В иллюстративном примере все веса ребер инициализируются случайными значениями. Нейронная сеть активируется в ответ на любые исходные данные из набора данных для обучения. Наблюдаемый результат работы нейронной сети сравнивается с ожидаемым результатом работы, включенным в набор данных для обучения, и ошибка распространяется назад, на предыдущие слои нейронной сети, в которых соответственно регулируются веса. Этот процесс может повторяться, пока ошибка в результатах не станет ниже заранее определенного порогового значения.
[00055] На шаге 140 блок-схемы вычислительная система может выбирать для каждого фрагмента изображения кадр изображения, на котором этот фрагмент изображения имеет оптимальное (максимальное или минимальное) значение выбранного показателя качества среди значений этого показателя качества для всех кадров изображений в серии кадров изображений. В некоторых вариантах реализации показатель качества изображения может определяться только для кадров изображений, для которых этот фрагмент изображения был классифицирован как содержащий символы текста, таким образом исключаются кадры изображений, на которых этот фрагмент изображения был классифицирован как не содержащий символы текста. Поэтому если данный фрагмент изображения был классифицирован как содержащий символы текста только на одном кадре из серии кадров изображений, то этот кадр будет выбран без оценки показателя качества изображения. И наоборот, если данный фрагмент изображения был классифицирован как фрагмент фонового изображения (то есть фрагмент изображения, не содержащий символы текста) на всех кадрах в серии кадров изображений, то можно выбрать любой кадр без оценки показателя качества изображения, поскольку качество изображения для фрагментов фонового изображения не важно.
[00056] В некоторых вариантах реализации показатель качества изображения может быть представлен приведенным выше уравнением (1), которое вычисляет отношение дисперсии классов Фон и Текст, полученных при выполнении бинаризации Оцу, изображения к общей дисперсии фрагмента изображения. При альтернативном подходе качество изображения может быть представлено оценкой точности OCR изображения, которая может быть получена с помощью обученной сверточной нейронной сети (СНС), как подробно описано выше.
[00057] На шаге 145 вычислительная система может создавать кадр восстановленного серого или бинаризованного изображения, объединяя фрагменты изображения из соответствующих связанных фрагментов изображения, которые были выбраны при операциях, описанных выше в этом документе со ссылкой на шаг 145 блок-схемы. В одном из иллюстративных примеров кадр изображения разделяется на три фрагмента изображения 1, 2 и 3, входящих в серию из двух кадров 1 и 2. Фрагмент изображения 1 имеет значение показателя качества 10 на кадре 1 и значение показателя качества 50 на кадре 2. Фрагмент изображения 2 имеет значение показателя качества 100 на кадре 1 и значение показателя качества 80 на кадре 2. Фрагмент изображения 3 имеет значение показателя качества 50 на кадре 1 и значение показателя качества 80 на кадре 2. Поэтому реконструируемый кадр изображения может быть получен путем сочетания фрагмента изображения 1 из кадра 2, фрагмента изображения 2 из кадра 1 и фрагмента изображения 3 из кадра 2. Следует заметить, что в реальной реализации количество фрагментов изображения может быть значительно больше, чем в описанном выше иллюстративном сценарии.
[00058] В примере, иллюстрированном Фиг. 4, изображение 450 было получено путем совмещения изображений 350А-350В с Фиг. 3 таким образом, что один или более фрагментов изображений, содержащих блик, с изображения 350В были заполнены соответствующим одним или более фрагментами изображения с изображения 350А.
[00059] В другом примере изображение 550А с Фиг. 5А содержит размытую область в левой части изображения, в то время как изображение 550В с Фиг. 5В содержит размытую область в правой части изображения. Соответственно, изображение 650 с Фиг. 6 было получено совмещением изображений 550А-550В с Фиг. 5А-5В таким образом, что один или более фрагментов изображений, содержащих размытые области на изображении 550В, были заполнены соответствующим одним или более фрагментами изображения с изображения 550А.
[00060] На шаге 150 вычислительная система может обрабатывать одну или более областей реконструированного изображения, которые находятся рядом с границами между фрагментами, для компенсации нежелательных визуальных эффектов, которые могут быть внесены операциями совмещения на шаге 145. Возможные нежелательные визуальные эффекты включают слияние двух или более связных компонент, находящихся с разных сторон границы между двумя совмещаемыми фрагментами, которые могут неблагоприятно повлиять на качество OCR.
[00061] В некоторых вариантах реализации вычислительная система может выполнять селективное совмещение фрагментов изображений из разных кадров изображений. Селективное совмещение может включать выявление и анализ связных компонент, которые расположены рядом с границами между фрагментами или пересекают эти границы. Каждая выявленная связная компонента может быть увеличена так, чтобы покрывать большую область, где каждая группа соответствующих символов (например, слово), обозначенная на изображении, скорее всего будет покрываться одной связной компонентой. Для каждой выявленной связной компоненты может быть выбран один из двух фрагментов изображения, расположенных на каждой стороне границы между фрагментами путем связывания каждого пикселя связной компоненты с изображением, на котором этот пиксель имеет максимальную резкость. Фрагмент изображения, который был связан с максимальным количеством пикселей, может быть выбран в качестве исходного фрагмента изображения, и область, покрытая этой связной компонентой, может быть скопирована из выбранного фрагмента изображения в итоговое реконструированное изображение.
[00062] В некоторых вариантах реализации изобретения компьютерная система может реализовывать интерактивный метод разрезов графа (Graph Cuts) для интерактивной сегментации изображений, который может включать получение, через подходящий интерфейс пользователя, выбора пользователем отдельных пикселей как «объектов» или «фона» для обеспечения жестких ограничений сегментации. Дополнительные мягкие ограничения могут включать информацию о границах и областях. Разрезы графа (то есть подмножества ребер) строятся для выявления глобально оптимальной сегментации N-мерного изображения, которая обеспечивает наилучший баланс свойств границ и областей среди всех вариантов сегментации, удовлетворяющих ограничениям.
[00063] Дополнительно или в качестве альтернативного варианта вычислительной системой могут быть реализованы различные другие технологии для обработки областей реконструированного изображения, расположенных рядом с границами между фрагментами.
[00064] На шаге 155 вычислительная система может далее обрабатывать реконструированное изображение, чтобы уменьшить уровень шума и/или снизить возможную разницу в яркости и контрастности изображений для различных фрагментов изображения. В примере, иллюстрированном Фиг. 7, изображение 750 было получено путем постобработки изображения 650 с Фиг. 6 с использованием одного или более методов постобработки, описанных ниже в этом документе.
[00065] В некоторых вариантах реализации вычислительная система может применить к реконструированному изображению один или более фильтров, чтобы снизить уровень шума при сохранении контрастности и резкости изображения. В одном из иллюстративных примеров может быть использован билатеральный фильтр, использующий взвешивание на основе Гауссова распределения:
i
[00066] , where x∈Ω,
где член уравнения, обеспечивающий нормализацию , обеспечивает сохранение фильтром энергии изображения, и где
filtered
I - отфильтрованное изображение;
I - исходное изображение, подлежащее фильтрации;
x - координаты текущего пикселя, подлежащего фильтрации;
Ω - окно, отцентрированное по х;
r
f - ядро диапазона для сглаживания различий в яркости; и
s
g - пространственное ядро для сглаживания различий в координатах.
[00067] На шаге 160 вычислительная система может выполнить OCR реконструированного изображения для получения текста, закодированного символами на изображении, и способ может прекратить свою работу.
[00068] На Фиг. 8 представлена подробная схема компонентов примера вычислительной системы, внутри которой исполняются инструкции, которые вызывают выполнение вычислительной системой любого из способов или более способов, рассматриваемых в этом документе. Вычислительная система 800 может быть соединена с другой вычислительной системой по локальной сети, корпоративной сети, сети экстранет или сети Интернет. Вычислительная система 800 может работать в качестве сервера или клиента в сетевой среде «клиент / сервер» либо в качестве однорангового вычислительного устройства в одноранговой (или распределенной) сетевой среде. Вычислительная система 800 может быть представлена персональным компьютером (ПК), планшетным ПК, телевизионной приставкой (STB), карманным ПК (PDA), сотовым телефоном или любой вычислительной системой, способной выполнять набор команд (последовательно или иным образом), определяющих операции, которые должны быть выполнены этой вычислительной системой. Кроме того, несмотря на то что показана только одна вычислительная система, термин «вычислительная система» также может включать любую совокупность вычислительных систем, которые отдельно или совместно выполняют набор (или несколько наборов) команд для выполнения одной или более методик, обсуждаемых в настоящем документе.
[00069] Пример вычислительной системы 800 включает процессор 802, основное запоминающее устройство 804 (например, постоянное запоминающее устройство (ПЗУ) или динамическое оперативное запоминающее устройство (DRAM)) и устройство хранения данных 818, которые взаимодействуют друг с другом по шине 830.
[00070] Процессор 802 может быть представлен одним или более универсальными устройствами обработки данных, например, микропроцессором, центральным процессором и т.д. В частности, процессор 802 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор с командными словами сверхбольшой длины (VLIW), процессор, реализующий другой набор команд или процессоры, реализующие комбинацию наборов команд. Процессор 802 также может представлять собой одно или более устройств обработки специального назначения, например, интегральную микросхему (ASIC), программируемую логическую интегральную схему (FPGA), процессор цифровой обработки сигналов (DSP), сетевой процессор и т.п. Процессор 802 выполнен с возможностью исполнения инструкций 826 для выполнения операций и функций способа 100 выполнения OCR серии изображений, содержащих символы текста, как описано выше в этом документе.
[00071] Вычислительная система 800 может дополнительно включать устройство сетевого интерфейса 822, устройство визуального отображения 810, устройство ввода символов 812 (например, клавиатуру) и устройство ввода в виде сенсорного экрана 814.
[00072] Устройство хранения данных 818 может включать машиночитаемый носитель данных 824, в котором хранится один или более наборов инструкций 826, в которых реализован один или более методов или функций, описанных в данном варианте реализации изобретения. Инструкции 826 во время выполнения их в вычислительной системе 800 также могут находиться полностью или по меньшей мере частично в основном запоминающем устройстве 804 и/или процессоре 802, при этом основное запоминающее устройство 804 и процессор 802 также представляют собой машиночитаемый носитель данных. Инструкции 826 дополнительно могут передаваться или приниматься по сети 816 через устройство сетевого интерфейса 822.
[00073] В некоторых вариантах реализации инструкции 826 могут включать команды способа 100 для выполнения OCR серии изображений, содержащих символы текста, как описано выше в этом документе. В то время как машиночитаемый носитель 824, показанный на примере на Фиг. 8, является единым носителем, термин «машиночитаемый носитель» должен распространяться на один или более носителей (например, централизованную или распределенную базу данных и/или соответствующие кэши и серверы), в которых хранятся один или более наборов команд. Термин «машиночитаемый носитель данных» также следует понимать как включающий любой носитель, который может хранить, кодировать или переносить набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или более методик настоящего изобретения. Поэтому термин «машиночитаемый носитель данных» относится, помимо прочего, к твердотельным запоминающим устройствам, а также к оптическим и магнитным носителям.
[00074] Способы, компоненты и функции, описанные в этом документе, могут быть реализованы с помощью дискретных компонентов оборудования либо они могут быть встроены в функции других компонентов оборудования, например, интегральных схем ASIC, FPGA, процессоров DSP или аналогичных устройств. Кроме того, способы, компоненты и функции могут быть реализованы с помощью модулей встроенного программного обеспечения или функциональных схем аппаратного обеспечения. Способы, компоненты и функции также могут быть реализованы с помощью любой комбинации аппаратного обеспечения и программных компонентов либо исключительно с помощью программного обеспечения.
[00075] В приведенном выше описании изложены многочисленные детали. Однако любому специалисту в этой области техники, ознакомившемуся с этим описанием, должно быть очевидно, что настоящее изобретение может быть осуществлено на практике без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем без детализации, чтобы не усложнять описание настоящего изобретения.
[00076] Некоторые части описания предпочтительных вариантов реализации изобретения представлены в виде алгоритмов и символического представления операций с битами данных в запоминающем устройстве компьютера. Такие описания и представления алгоритмов представляют собой средства, используемые специалистами в области обработки данных, что обеспечивает наиболее эффективную передачу сущности работы другим специалистам в данной области. В контексте настоящего описания, как это и принято, алгоритмом называется логически непротиворечивая последовательность операций, приводящих к желаемому результату. Операции подразумевают действия, требующие физических манипуляций с физическими величинами. Обычно, хотя и необязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и выполнять другие манипуляции. Иногда удобно, прежде всего для обычного использования, описывать эти сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.д.
[00077] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемыми к этим величинам. Если не указано дополнительно, принимается, что в последующем описании термины «определение», «вычисление», «расчет», «получение», «установление», «изменение» и т.п. относятся к действиям и процессам вычислительной системы или аналогичной электронной вычислительной системы, которая использует и преобразует данные, представленные в виде физических (например, электронных) величин в реестрах и запоминающих устройствах вычислительной системы, в другие данные, аналогично представленные в виде физических величин в запоминающих устройствах или реестрах вычислительной системы или иных устройствах хранения, передачи или отображения такой информации.
[00078] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей, либо оно может представлять собой универсальный компьютер, который избирательно приводится в действие или дополнительно настраивается с помощью программы, хранящейся в памяти компьютера. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например, помимо прочего, на диске любого типа, включая дискеты, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), СППЗУ, ЭППЗУ, магнитные или оптические карты и носители любого типа, подходящие для хранения электронной информации.
[00079] Следует понимать, что приведенное выше описание призвано иллюстрировать, а не ограничивать сущность изобретения. Специалистам в данной области техники после прочтения и уяснения приведенного выше описания станут очевидны и различные другие варианты реализации изобретения. Исходя из этого область применения изобретения должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, на которые в равной степени распространяется формула изобретения.