АВТОМАТИЧЕСКАЯ СЪЕМКА ДОКУМЕНТА С ЗАДАННЫМИ ПРОПОРЦИЯМИ
AUTOMATIC CAPTURE OF DOCUMENT WITH GIVEN PROPORTIONS

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к обработке изображений, а именно к выполнению предварительного анализа кадра на дисплее устройства до момента съемки документа, осуществлению контроля создания изображений с помощью камеры, в частности камерой, встроенной в портативные электронные устройства. Одной из целей изобретения является существенное упрощение процесса съемки документа, параметры которого предварительно заданы в настройках.
УРОВЕНЬ ТЕХНИКИ
[0002] В настоящее время электронные устройства, такие как смартфоны, мобильные телефоны, портативные компьютеры, планшетные компьютеры, персональные компьютеры (ПК), персональные цифровые секретари и т.д., стали доступными по всему миру. Более того, мобильные устройства становятся все более портативными и производительными, так как всегда находятся под рукой, и их производительность становится сравнимой с производительностью персональных компьютеров, вычислительных центров и серверов. Поэтому электронные устройства являются незаменимыми помощниками в работе, образовании, общении, путешествиях или просто в повседневной жизни. Ввиду того, что большинство мобильных электронных устройств оснащены фото/видеокамерами, они особенно часто используются для получения изображений документов. На рынке мобильных приложений существует множество программ, которые нацелены на обработку готовых изображений, полученных с помощью камер, встроенных в мобильные устройства. Однако существующие приложения имеют ряд недостатков.
[0003] В большинстве случаев процесс получения изображения документа требует вмешательства пользователей. Например, зачастую от пользователя требуется ручная настройка условий освещения, выжидание момента стабилизации мобильного устройства для того, чтобы избежать смаза или расфокусировки текста или объекта, который нужно сфотографировать. Очень важно правильно заранее разместить объект (например, документ) таким образом, чтобы он полностью попадал в границы видоискателя. Фотографирование документа в спешке может привести к тому, что границы фотографируемого документа будут искажены, например могут быть обрезаны. Однако обычно у пользователя нет возможности быстро и точно выбрать правильные настройки в устройстве для того, чтобы получить идеальную фотографию документа. Поэтому пользователь вынужден делать несколько снимков документа, чтобы из полученного множества фотографий выбрать наиболее удавшийся кадр с минимальным количеством недостатков и искажений. Это занимает много времени и требует от пользователя усилий. Задача особенно усложняется, если пользователю нужно сделать снимки большого количества текстовых документов в ограниченные сроки. Кроме того, зачастую необходимо время для того, чтобы отсортировать документы ввиду их большого разнообразия, например визитки, финансовые чеки, счета и напечатанные формы. Расположение каждого документа строго напротив камеры устройства и получение изображения текстового документа приемлемого качества может быть очень хлопотливой задачей.
Поэтому данное изобретение позволяет существенно упростить и автоматизировать процесс получения электронными устройствами и программными приложениями изображений, содержащих текст, когда документ или несколько документов с желаемыми или заранее заданными настройками обнаружены видоискателем камеры. При этом данное изобретение помогает избежать ряда недостатков, существующих в известных программных приложениях, таких как необходимость ручной настройки устройства и расположения объекта съемки, сортировка файлов вручную и необходимость других действий, требующих участия пользователя.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0004] Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
[0005] Фиг.1А и 1Б иллюстрируют пример дисплея электронного устройства в соответствии с реализациями настоящего изобретения, согласно которым поисковая область (или другими словами области интереса - ОИ) представлена в виде различных областей на дисплее.
[0006] Фиг.2 является блок-схемой алгоритма, иллюстрирующего реализацию способа автоматического фотографирования при обнаружении в видоискателе документа с заранее заданными пропорциями в соответствии с нашим изобретением.
[0007] Фиг.3 является блок-схемой алгоритма, иллюстрирующего первую возможную реализацию способа, а именно обнаружение одного документа в видоискателе электронного устройства.
[0008] Фиг.4 является блок-схемой алгоритма, иллюстрирующего вторую возможную реализацию способа, а именно обнаружение нескольких документов в видоискателе электронного устройства.
[0009] Фиг.5А иллюстрирует пример вычисления горизонтальной гистограммы для анализируемого кадра в соответствии со второй реализацией изобретения, согласно которой кадр отображается в видоискателе в реальном времени без осуществления записи видео или съемки изображения. На Фиг.5А горизонтальные гистограммы построены вдоль горизонтали видоискателя.
[0010] Фиг.5Б иллюстрирует пример сегментирования кадра на несколько регионов, в соответствии со второй реализацией изобретения, согласно которой каждый из регионов представлен в виде горизонтальных прямоугольных областей (полос). Сегментирование кадра на регионы происходит при помощи секущих линий. Причем секущие линии проходят через просветы, или другими словами, в окрестности глобального минимума горизонтальной гистограммы.
[0011] Фиг.5В иллюстрирует пример построение вертикальной гистограммы для анализируемого кадра в соответствии со второй реализацией изобретения, согласно которой кадр отображается в видоискателе в реальном времени без осуществления записи видео или съемки изображения. На Фиг.5В вертикальные гистограммы построены вдоль вертикали видоискателя.
[0012] Фиг.5Г иллюстрирует пример сегментирования вертикальной области (полосы) на несколько частей, где каждая из частей представлена в виде горизонтальной прямоугольной области (полосы). Разделение кадра на части происходит при помощи секущих линий. Причем секущие линии проходят через просветы, или другими словами, в окрестности глобального минимума вертикальной гистограммы.
[0013] Фиг.5Д иллюстрирует пример результата обнаружения документа в видоискателе.
[0014] Фиг.6 иллюстрирует пример компьютерной системы, на которой может быть реализовано настоящее изобретение.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0015] Изобретение предоставляет собой метод, который включает в себя команду для устройства, операционной системы, программно-аппаратных средств и программного обеспечения, который предоставляет наилучшую возможность для автоматического получения снимка документа. Съемка документа осуществляется только после предварительного анализа текущего кадра на видоискателе и обнаружения объекта с заранее заданными параметрами внутри видоискателя.
[0016] Настоящее изобретение позволяет осуществить анализ кадра в видоискателе, выводимого на экран мобильного устройства. Причем отображение кадра на экране мобильного устройства, получаемого при помощи видоискателя, происходит в реальном времени без осуществления (предварительной) записи видео или съемки изображения. Анализ выполнятся путем отслеживания кадров, которые содержат один или более документов, обладающих необходимыми пропорциями. Если документ (или несколько документов) с необходимыми пропорциями обнаружен видоискателем, автоматически выполняется съемка изображения.
[0017] Настоящее изобретение предназначено для осуществления автоматической съемки документа. Термин «автоматическая съемка» означает, что данное изобретение позволяет выполнять предварительный анализ кадра в видоискателе электронного устройства, причем отображение и анализ кадра на экране мобильного устройства, получаемого при помощи видоискателя, происходит в реальном времени без осуществления (предварительной) записи видео или съемки изображения. В случае если один или более документов, имеющих заданные желаемые пропорции, обнаружены в кадре, происходит автоматическая съемка.
[0018] В дальнейшем описании изобретения термин «кадр» обозначает некий контент, отображаемый на экране электронного устройства, получаемый при помощи видоискателя камеры, который передает изображение документа на экран дисплея в реальном времени без осуществления (предварительной) записи видео или съемки изображения.
[0019] Портативные устройства, такие как лэптопы, планшетные компьютеры, смартфоны, мобильные телефоны, персональные цифровые секретари, оснащены экранами, в том числе и сенсорными экранами, камерами, которые позволяют сделать изображение. Предлагаемое изобретение позволяет электронным устройствам выполнять автоматическую съемку при обнаружении в видоискателе документов, имеющих параметры, указанные в настройках.
[0020] Фиг.1А и Фиг.1Б представляют пример электронного устройства 102, имеющего дисплей 104 и кнопку камеры 106 для запуска и выполнения съемки изображения камерой, встроенной в электронное устройство. Кнопка 106 может быть отображена на экране электронного устройства в виде виртуальной кнопки, в зависимости от интерфейса устройства, или реально существующей (т.е. физическая кнопка на экране связана с системным блоком электронного устройства 102). Контент, отображаемый на экране электронного устройства 104, может быть получен при помощи видоискателя камеры, который передает изображение документа на экран дисплея 104.
[0021] Электронное устройство 102 может представлять собой компьютер общего назначения, воплощенный в различных конфигурациях, таких как мобильный телефон, смартфон, сотовый телефон, цифровая камера, портативный компьютер или любое другое устройство, имеющее экран и камеру, или осуществляющий доступ к изображению либо устройству/компоненту, генерирующему изображение.
[0022] На Фиг.2 изображена блок-схема последовательных операций, выполняемых в соответствии с одним из способов реализации изобретения. Один из способов инициирования включает в себя запуск камеры 201 или любого приложения, которое имеет доступ или способно осуществлять контроль над камерой, взаимодействующей с электронным устройством 102.
[0023] Далее на шаге 202 пользователь активизирует кнопку, которая обычно запускает процесс съемки изображения или записи видео электронным устройством. Согласно данному изобретению при нажатии кнопки 106 непосредственная съемка или запись видео не происходит. С этого момента начинается анализ кадров в видоискателе. Кнопка 106 отвечает за съемку изображения только после того, как кадр в видоискателе проанализирован и в видоискателе обнаружен документ (или несколько документов), имеющий желаемые параметры. В качестве примера на Фиг.1 продемонстрирована кнопка 106; согласно описываемому изобретению пользователь активизирует кнопку 106 на обозначенной области (сенсорного) экрана 104, чтобы инициировать процесс.
[0024] В одном из способов реализации кадры, отображаемые видоискателем, встроенным в электронное устройство, в реальном времени, на шаге 203 выбираются с заранее заданной частотой. Термин «реальное время» употребляется для обозначения способа выполнения анализа кадра в видоискателе, который может быть отображен на экране мобильного устройства. Причем отображение кадра на экране мобильного устройства, получаемого при помощи видоискателя, происходит в реальном времени без осуществления (предварительной) записи видео или съемки изображения. В одном из способов реализации система отслеживает кадры. Кадры могут содержать как один, так и несколько документов, обладающих желаемыми пропорциями. Если такие кадры обнаружены в видоискателе, происходит автоматическая съемка документа для последующей его обработки. Параметры документа, который должен быть автоматически снят камерой, при попадании его в границы видоискателя, могут быть заранее установлены пользователем в настройках приложения либо заданы по умолчанию. Выбор и анализ кадра в видоискателе происходят без прерывания отображения видеосигнала на экране электронного устройства. В дальнейшем термин «выбранный кадр» (изображен на дисплее 104 на Фиг.1А) обозначает текущий анализируемый кадр. Например, кадры в видоискателе могут выбираться для последующего анализа со следующей частотой: каждый 10 кадр в секунду. Другие частоты также возможны, такие как каждый первый, второй, четвертый, шестой кадры и т.д.
[0025] В альтернативном способе реализации, выбор и анализ кадра в видоискателе могут быть выполнены не в режиме реального времени. Это означает, что заранее может быть записано видео, содержащее изображение документа либо нескольких документов, и эта видеозапись может быть извлечена из памяти (604) электронного устройства либо из внешних источников, например из Интернета, карты памяти, либо может быть скачана с другого электронного устройства при помощи технологии Bluetooth, и т.д.
[0026] После того как кадр выбран из видеопотока, передаваемого на экран электронного устройства при помощи видоискателя, начинается процесс непосредственного анализа выбранного кадра. Анализ кадра происходит в режиме реального времени без прерывания/приостановки видеопотока таким образом, что человеческий глаз не может заметить задержку во времени или как-либо другие искажения видеопотока. Целью анализа кадров является определение основных базовых линий (или другими словами базовых краев или границ документа), которые впоследствии образуют кандидат документа. В дальнейшем, термин «базовые линии» относится к краям документов, которые должны быть надежно детектированы с помощью видоискателя электронного устройства. Например, если документ, который должен быть детектирован, - четырехугольник, то число основных линий равно четырем.
[0027] Фиг.3 иллюстрирует блок-схему в соответствии с одним из способов реализации описываемого изобретения. Согласно первому способу реализации изобретения, в видоискателе ожидается обнаружить один документ, обладающий необходимыми параметрами.
[0028] Как известно, цветной кадр в видоискателе может быть представлен в виде RGB (Red-Green-Blue) цветовой модели. Поэтому вначале на шаге 301 цветной кадр конвертируется в кадр в градациях серого цвета. Пиксели кадра в градациях серого цвета характеризуются значениями, представляющими яркость, от 0 (черный цвет) до 255 (белый цвет). Для конвертации цветного кадра в кадр в градациях серого цвета необходимо получить его «яркость» - составляющую Y (или просто яркость). Для этого удобно представить RGB кадр в цветной YUV модели (или HSL, HSV и т.д.). Для расчета яркостной составляющей компоненты Y может быть использована следующая формула:
Y=0.299*R+0.587*G+0.114*В,
где R, G, В обозначают интенсивности красного, зеленого и синего цветов соответственно.
Если камера (включая видоискатель) имеет настраиваемый параметр представления на экране дисплея кадров в градациях серого цвета, то описанный выше шаг преобразования цветного кадра в кадр в градациях серого может быть пропущен.
[0029] На следующем шаге 302 кадр в градациях серого сжимается при помощи использования одной из технологий сжатия. Например, уменьшения размера можно добиться при помощи использования билинейной интерполяции. Кадр должен сжиматься до такой степени, чтобы небольшие детали (например, шум, точки, царапины) были удалены с кадра, но существенные объекты внутри кадра были отчетливо изображены на нем. Например, кадр может быть уменьшен до 50-100 мегапикселей. Использование технологий сжатия анализируемого кадра значительно уменьшает время выполнения последующего анализа кадра в реальном времени.
[0030] Далее внутри анализируемого кадра должен быть детектирован документ. Для этого во время анализа выбранного кадра решается задача выделения границ. Алгоритм обнаружения границ является важным шагом в приложениях компьютерного зрения, который позволяет находить границы либо контуры внутри кадра. Анализ всего документа при помощи одного или нескольких детекторов границ не имеет смысла, так как это требует большего количества времени и ресурсов электронного устройства, что нежелательно, если система работает в реальном времени. Поэтому анализ должен быть выполнен только в определенных зонах кадра (или другими словами, в поисковых зонах, или в исследуемых областях). Соответствующие зоны поиска в видоискателе должны быть сформированы в соответствии с тем предположением, что границы (контуры или края) документа в видоискателе попадут именно туда. В предпочтительном способе реализации, анализ выбранного кадра происходит только внутри одной или более описанных выше зонах поиска. Однако в других способах реализации анализ всего кадра также возможен.
[0031] В одном из способов реализации, зоны поиска могут быть представлены в виде прямоугольных областей. Фиг.1А иллюстрирует данные зоны поиска в форме прямоугольных полос, расположенных вдоль границ экрана (видоискателя). Параметры данных прямоугольных полос, например ширина или длина, могут быть заранее заданы пользователем либо иметь значения параметров по умолчанию.
[0032] В другом способе реализации, одна или более зон поиска могут быть представлены областями, расположенными в углах дисплея и представляющие собой четверти окружностей с центрами в углах видоискателя. Радиус данных окружностей (радиус зоны поиска) может быть задан по умолчанию. Фиг.1Б иллюстрирует описанные зоны поиска. Причем чем больше радиус данных областей поиска, тем большую часть экрана они покрывают. Однако анализ слишком больших областей поиска в кадре влечет за собой большие затраты времени и вычислительных ресурсов электронного устройства. Поэтому радиус зон поиска должен быть подобран оптимально.
[0033] Далее обрабатывается лишь та часть кадра, которая оказалась внутри зоны поиска видоискателя. Практически все кадры, получаемые видоискателем электронного устройства, содержат некий шум, который может помешать получить точные и надежные результаты в ходе выполнения дальнейшего анализа кадра. Термин «шум» может относиться к некоторому роду помех, вызванных неидеальной поверхностью, на которой располагается документ. Например, помехами могут быть точки, орнамент, царапины стола, нерегулярный текст, текстура и т.д. Степень зашумленности кадра может быть уменьшена (или сведена на нет) при помощи применения алгоритмов сглаживания. Поэтому на шаге 303 те части кадра, которые оказались внутри зон поиска видоискателя, обрабатываются различными специальными операторами подавления помех. Другими словами, сглаживание кадра может быть выполнено путем удаления или уменьшения шума, который может помешать выполнению дальнейшего анализа кадра. Например, дальнейший анализ кадра может включать алгоритм обнаружения границ или оптическое распознавание символов.
R
D
C
R
D
C
[0034] Для сглаживания помех могут быть использованы различные фильтры. Например, медианный фильтр, фильтр максимум, фильтр минимум. Так обработка окон размером 3×3 пикселя (либо окон других размеров) внутри кадра при помощи фильтра максимум усиливает значения ярких пикселей в кадре путем расширения таких областей. Каждое окно размером 3×3 пикселя (либо других размеров) анализируется для обнаружения самого яркого пикселя. Пиксель в центре окна принимает значение самого яркого пикселя в данном окне. И напротив, применение фильтра минимум усиливает значения темных пикселей в кадре также путем расширения таких области. Каждое окно размером 3×3 пикселей (либо других размеров) анализируется для обнаружения самого темного пикселя. Пиксель в центре окна принимает значение самого темного пикселя в данном окне. Таким образом, при применении фильтра максимум темные помехи закрашиваются белым цветом и, напротив, при применении фильтра минимум помехи закрашиваются черным цветом. При применении медианного фильтра используется следующая формула для вычисления значения фильтра: (P+P+P)/3, где P - это среднее значение горизонтальных и вертикальных пикселей внутри окна, например 3×3, P - это среднее значение пикселей, расположенных на диагонали окна, Р - это значение центрального пикселя окна. Комбинация вышеописанных фильтров может быть применена совместно или последовательно для сглаживания шума внутри кадра.
[0035] На следующем шаге 304, та же часть кадра, оказавшаяся внутри зоны поиска и обработанная на предыдущих шагах, обрабатывается простым адаптивным детектором контура. В данном описании используется детектор контура (или другими словами, способ выделения границ) на основе производных. В результате чего формируется черно-белое контурное изображение.
[0036] При использовании алгоритма выделения границ на основе метода производных (а именно на основе поиска градиентов) могут быть использованы различные способы, такие как оператор Собеля, операторы Робертса или Прюитта и т.д. В данном описываемом изобретении в методе выделения границ наиболее подходит оператор Собеля, так как при выполнении он занимает меньшее количество времени, что играет ключевую роль при анализе кадра в реальном времени. Оператор Собеля является дискретным дифференциальным оператором, который вычисляет аппроксимированное значение градиента яркости кадра. Результатом применения оператора Собеля в каждой точке кадра является вектор градиента яркости в этой точке или норма вектора градиента яркости в этой точке. В основе оператора Собеля лежит свертка кадра несколькими фильтрами в вертикальном и горизонтальном направлениях, что объясняет легкость его вычисления.
[0037] Пикселями границ объявляются пиксели, в которых достигается локальный максимум градиента в направлении вектора градиента. Остальные пиксели, имеющие не максимальные значения (не максимумов), подавляются.
[0038] На следующем шаге определяется, находится ли граница в данной точке изображения или нет. Некоторые пиксели, оставшиеся после процедуры подавления не максимумов, действительно принадлежат границе, однако другие пиксели с максимальным значением градиента могут появиться из-за шумов, которые остались после сглаживания анализируемого кадра. Одним из способов проверки является процедура использования некоторого порогового значения. Чем меньше пороговое значение, тем больше границ будет находиться в конкретной точке, но тем более восприимчивым к шуму станет результат, выделяя лишние данные на кадре. Напротив, в результате установления высокого значения порога слабые границы (контуры) могут быть подавлены, либо они могут быть получены фрагментарно. Понятие «фрагментарная граница» означает, что линия (которая представляет границу) не является непрерывной, а напротив разрывной.
H
L
H
L
[0039] Зачастую важно использовать несколько пороговых значений. Например, метод выделения границ Канни использует два порога для фильтрации пикселей, которые могут быть подавлены. Обозначим T первое (верхнее) пороговое значение, a T второе (нижнее) пороговое значение. Если значение пикселя выше верхнего порогового значения, то пиксель принимает максимальное значение. Если значение пикселя меньше нижнего порогового значения, то пиксель подавляется. Пиксели со значением, попадающим в диапазон между порогами (T; T), принимают фиксированное среднее значение.
[0040] В каждой зоне поиска прямые линии (границы) с максимальной интенсивностью контурного изображения вдоль нее должны быть надежно детектированы. Интенсивность контура означает число пикселей, принадлежащих линии. Например, для этой цели могут быть использованы такие методы, как метод простого перебора возможных кандидатов на границу, либо может быть использован метод преобразования Хафа. В первом случае при использовании метода простого перебора все возможные варианты проходят проверку на достоверность. В результате выбираются лишь те границы, которые обладают максимальным значением интенсивности контура.
[0041] Метод преобразования Хафа использует процедуру голосования для нахождения неидеальных линий (границ), которые могут появиться в результате зашумленности кадра. В одном из способов реализации, для корректного извлечения результата из аккумулятора преобразования Хафа и отсеивания лишних данных (линий) могут выполняться следующие действия: фильтрация аккумулятора преобразования Хафа; вычисление порогового значения для извлечения линий из аккумулятора; пороговая фильтрация аккумулятора. Фильтрация аккумулятора преобразования Хафа выполняется для того, чтобы явно выделить реальные максимумы в аккумуляторе, подавив окружающие их соседние не максимальные значения, например, при помощи фильтра, подавляющего точки в аккумуляторе, не являющиеся локальными максимумами в окрестности (non-maximal suppression). Параметры пороговой фильтрации (включая само значение порога) могут быть заданы заранее либо настроены для конкретного аккумулятора. Если параметры настроены для аккумулятора, то порог может быть вычислен на основе значения самого максимального значения. Например, значение порога может устанавливаться на уровне значения, вдвое меньшего самого максимального значения. После этого фильтрация выполняется следующим образом: считается, что все пиксели, значения которых выше порогового значения, принадлежат найденным линиям.
[0042] В результате выполнения вышеописанного алгоритма должны быть детектированы (четыре) базовые линии (или другими словами основные границы). Базовые линии образуют кандидат прямоугольного документа. Так, если в одной зоне поиска могут быть обнаружены несколько линий (границ), то необходимо провести проверку с помощью критериев надежности для удаления ошибочно найденных линий. Для проверки надежности (305) найденных линий используются различные критерии, при этом надежность может быть проверена на каждом этапе поиска границ.
1
2
[0043] Например, в одной зоне поиска могут быть обнаружены две границы, обладающие близкими значениями интегральной контурной энергии E и E соответственно, удаленные на некоторое расстояние H и отличающиеся на некоторый угол. К таким линиям может быть применен следующий критерий надежности:
1
2
E-E<T,
где T - некоторое пороговое значение, которое может быть заранее заданным или рассчитанным специально для конкретного кадра. Согласно данному критерию надежности обе линии будут удалены.
[0044] Если найденные линии не удовлетворяют одному или нескольким критериям надежности, выполняется поиск дополнительных линий (границ). В дальнейшем найденные линии добавляются к исходному множеству обнаруженных линий. Полученный таким образом новый набор линий заново проверяется на выполнение различных критериев надежности. Этот процесс выполняется итеративно до тех пор, пока найденные линии не будут удовлетворять критериям надежности.
[0045] Если найденные линии (границы) удовлетворяют критериям надежности, формируется гипотеза о формировании этими границами документа. Полученный таким образом кандидат документа проходит проверку на соответствие заранее необходимым пользователю параметрам (ширина и длина документа), которые могут быть указаны пользователем в настройках.
[0046] Созданный кандидат документа также проверяется на критерий надежности. Например, одним из подходов является проверка минимальной контурной энергии вдоль каждой обнаруженной границы детектированного документа. Также созданный документ проходит проверку на геометрические пропорции, например документ проходит проверку на соотношение противоположных или смежных сторон (границ) или на величину пропорций (как отношение средних для пар противоположных сторон). Другие возможные проверки на соотношение геометрических пропорций могут быть также использованы.
[0047] Описанный выше алгоритм выделения границ может выполняться совместно с алгоритмом обнаружения угловых особенностей, где выделение границ и угловых особенностей по-прежнему выполняется в реальном времени. Алгоритм обнаружения угловых особенностей может быть выполнен и в отдельности.
[0048] Зоны поиска, которые наиболее удобны для обнаружения угловых особенностей документа, изображены на Фиг.1Б. Метод обнаружения угловых особенностей включает определение точки, а именно угла, который возникает при пересечении прямых линий. Могут применяться различные алгоритмы обнаружения угловых особенностей, например методы Harris & Stephens, Plessey, Shi-Tomasi и т.д.
det
specified
[0049] Далее, на шаге 205 блок-схемы на Фиг.2 сравниваются пропорции детектированного документа (его длина и ширина) с пропорциями, которые были предварительно заданы пользователем в настройках программы. Параметры (пропорции) детектированного документа сравниваются с параметрами, указанными в настройках. Например, величина, равная отношению ширины детектированного документа к его длине R, может сравниваться с заранее указанной величиной R. Если эти коэффициенты равны хотя бы для одного из обнаруженных документов в кадре, автоматически происходит съемка.
[0050] В альтернативном способе реализации описанного изобретения возможна ситуация, когда выбранный и анализируемый кадр содержит несколько документов. Таким образом, на экране 104 электронного устройства 102 отображаются несколько документов, полученных видоискателем. Применение альтернативного способа реализации изобретения полезно в том случае, если пользователь хочет получить фотографию (двухстраничного) разворота визитницы, содержащей несколько визиток, для последующей обработки. Выполнять обработку каждой визитки по отдельности неудобно.
Это занимает большее количество времени. Отображение нескольких документов на экране устройства, попавших в границы видоискателя, проиллюстрировано на Фиг.5А. Поэтому приложение должно обнаруживать несколько документов в видоискателе камеры. Фиг.4 иллюстрирует блок-схему в соответствии с альтернативным способом реализации метода. Как и в предыдущем способе реализации, кадры, полученные видоискателем без осуществления записи видео и съемки, выбираются с заранее заданной частотой. Как только кадр выбран, начинается процесс анализа кадра, который также выполняется в реальном времени. Анализ выбранного кадра выполняется без прерывания видеосигнала, без временной задержки и искажений.
[0051] В отличие от первого способа реализации происходит анализ всего кадра. Способ обнаружения нескольких документов в анализируемом кадре заключается в обнаружении просветов внутри кадра. Термин «просвет» обозначает некое пространство между документами (например, между визитками). Одним из способов может служить применение техники сегментации изображения (в нашем случае техники сегментации кадра). Наиболее эффективной и быстрой по сравнению с другими существующими техниками сегментации кадра является техника, основанная на построении гистограммы. Основа данного метода заключается в сегментировании сложных сцен на несколько однородных областей. В нашем случае сложная сцена представляет собой анализируемый кадр, содержащий несколько документов, отображенных на экране электронного устройства. (Квази) однородные области представляют собой документы, которые должны быть детектированы внутри кадра.
[0052] На шаге 401 выбранный кадр бинаризуется. Для конвертации анализируемого кадра в бинаризованный кадр может быть применена пороговая бинаризация. Для этого пороговая функция T(p,t) рассчитывает бинарную версию I в точке p путем пороговой бинаризации ее на уровне t:
T(p,t)=[I(p)≥t]
Значение пикселя, которое больше или равно t, принимает значение 1, пиксели, значения которых меньше чем t, принимают значение 0. Полученное таким образом изображение является бинаризованным, т.е. каждый пиксель в кадре принимает одно из двух значений (0 или 1). Другие техники бинаризации могут быть также применены.
b
w
w
b
[0053] Техника сегментации кадра на основе гистограммы включает в себя расчет и построение гистограммы на основе всех пикселей в бинаризованном изображении. В одном из способов реализации после бинаризации высчитывается число черных пикселей N и белых пикселей N. После чего эти показатели сравниваются между собой для определения основного фона. Например, если число белых пикселей N превышает число черных пикселей N, то основным цветом фона можно считать белый цвет. В противном случае, черный цвет. Под термином «фон» подразумевается цвет поверхности, на которой лежат документы. В другом способе реализации для определения основного цвета фона бинаризованного кадра применяется алгоритм поиска горизонтальной или вертикальной линии внутри кадра. Выполняется поиск полностью черной или почти черной горизонтальной или вертикальной линии в центре кадра. Термин «в центре» означает то, что поиск происходит не на краях кадра. Если в результате поиска такая линия была обнаружена, то основным цветом фона считается черный цвет, в противном случае - белый цвет.
[0054] В соответствии с информацией об основном цвете фона вычисляется гистограмма. Гистограмма представляет собой распределение черных пикселей на белом фоне внутри кадра (или напротив, распределение белых пикселей для черного фона) вдоль вертикального или горизонтального направлений анализируемого кадра. В нашем примере гистограммы представляют собой количество черных пикселей для белого фона. Фиг.5А иллюстрирует пример горизонтальной гистограммы, Фиг.5В иллюстрирует пример вертикальной гистограммы.
[0055] Построение гистограммы распределения черных пикселей вдоль горизонтального направления анализируемого кадра происходит на шаге 402. Результатом вычислений является построение гистограммы для всего кадра, как показано на Фиг.5А. В нашем примере кадр содержит восемь документов (восемь визиток), расположенных в форме матрицы: 4 колонки и 2 столбца. Например, таким образом могут быть расположены визитки в визитнице, которые пользователь хочет снять на камеру для последующего извлечения информации из них при помощи различных мобильных приложений.
[0056] Гистограмма имеет пики и долины. Пики это максимальные значения на гистограмме, и напротив, долины представляют собой минимальные значения. Среди экстремумов (максимумов и минимумов) существуют глобальные экстремумы и локальные. Глобальные минимумы нужно обнаружить для определения основных долин на гистограмме. Согласно предположению просветы располагаются именно в окрестности глобальных минимумов на гистограмме.
1
2
3
n
1
2
3
[0057] Таким образом, формируются гипотезы (H, H, H, … H) о глобальных минимумах в горизонтальной гистограмме (или другими словами, гипотезы о просветах). Секущие линии проходят через координаты обнаруженных минимумов (как глобальных, так и локальных). Секущие линии предназначены для разделения кадра на несколько частей. Согласно гипотезе H первая секущая линия проходит через координаты первого найденного глобального минимума, согласно гипотезе H вторая секущая линия проходит через координаты второго найденного глобального минимума, согласно гипотезе H третья секущая линия проходит через координаты третьего найденного глобального минимума, и т.д. После формулирования гипотез происходит разделение кадра на несколько частей вдоль секущих линий. Однако это сегментация не окончательная и будет подвержена изменениям в ходе дальнейшего анализа.
[0058] Так как существуют несколько гипотез о расположении глобальных минимумов, некоторые из гипотез могут быть ошибочными. Если секущая линия проходит через точку глобального минимума, сегментация изображения на части будет также ошибочной. Один из подходов - вычисление расстояния между всеми найденными минимумами на гистограмме. После этого выбираются только те минимумы, которые расположены на фиксированном расстоянии между друг другом. Если минимумы расположены на фиксированном расстоянии, соответствующие гипотезы о глобальных минимумах подтверждаются. Остальные гипотезы считаются ошибочными и отвергаются. Подходящее расстояние между найденными глобальными минимумами должно быть равно величине параметров документа (ширина или длина), указанных в настройках.
[0059] После того как глобальные минимумы на гистограмме найдены, происходит сегментация кадра вдоль тех линий, которые проходят через найденные глобальные минимумы. Сегменты представляют собой вертикальные полосы (Фиг.5Б). После чего происходит анализ каждого отдельного полученного сегмента кадра.
1
2
3
n
1
2
3
[0060] Для каждого сегмента (полосы) строятся аналогичным образом гистограммы вдоль вертикального направления (Фиг.5В). Они также имеют минимумы и максимумы. Формулируются гипотезы (V, V, V, …, V) о расположении глобальных минимумов на вертикальной гистограмме. Согласно гипотезе V первая секущая линия проходит через координаты первого найденного глобального минимума на вертикальной гистограмме, согласно гипотезе V вторая секущая линия проходит через координаты второго найденного глобального минимума, согласно гипотезе V третья секущая линия проходит через координаты третьего найденного глобального минимума и т.д. Как и в случае вертикальной гистограммы, существует несколько гипотез о расположении глобальных минимумов, некоторые из них могут быть ошибочными. Если секущие линии проходят через ошибочно определенные глобальные минимумы, сегментация изображения на области также будет ошибочной. Поэтому, чтобы избежать вышеописанной ошибки и исключить неверные гипотезы, ко всем гипотезам должны быть применены различные тесты. Одним из способов является вычисление расстояния между всеми найденными минимумами на гистограмме. После этого выбираются только те минимумы, которые расположены на фиксированном расстоянии между друг другом. Если минимумы расположены на фиксированном расстоянии, соответствующие гипотезы подтверждаются. Остальные гипотезы считаются ошибочными и отвергаются. Подходящее расстояние между найденными глобальными минимумами должно быть равно величине параметров документа (ширина или длина), указанных в настройках.
[0061] После того как глобальные минимумы на гистограмме найдены, происходит сегментация кадра вдоль тех линий, которые действительно проходят через найденные «надежные» глобальные минимумы. Однако по сравнению с предыдущим случаем (где строилась горизонтальная гистограмма) сегменты представляют собой горизонтальные полосы (Фиг.5Г). В нашем случае результатом сегментации кадра вдоль секущих линий, проходящих через координаты «надежных» глобальных минимумов, т.е. в просветах вертикальной и горизонтальной гистограмм, обнаружены четыре различных региона (прямоугольника). Согласно предположению, каждый из полученных регионов содержит документ. В нашем примере документом является визитка. В обнаруженной прямоугольной области границы документа детектируются на основе градиентных операторов или внутренних объектов. Все шаги, описанные для первого способа реализации выделения границ документа, могут быть применены к каждой полученной прямоугольной области.
det
specified
[0062] В итоге в нашем примере обнаружено восемь различных документов внутри кадра. Каждый из них имеет геометрические пропорции. Параметры обнаруженных документов сравниваются с параметрами, указанными в настройках. Например, величина, равная отношению ширины к длине для каждого детектированного документа R, может сравниваться с заранее указанной величиной R. Если эти коэффициенты равны хотя бы для одного из детектированного документа в кадре, происходит автоматическая съемка.
[0063] Если документ или несколько документов с заданными параметрами обнаружены в видоискателе, то происходит списывание показаний параметров акселерометра или других датчиков для отслеживания момента стабилизации электронного устройства для избежания различных искажений, таких как смаз и расфокусировка. Этот шаг опционален и может быть пропущен.
[0064] После успешного выполнения всех вышеописанных шагов электронное устройство осуществляет на шаге 206 автоматическую съемку детектированного документа. Термин «автоматическая съемка» означает, что съемка осуществляется камерой электронного устройства без участия пользователя.
[0065] Более того, при съемке анализируемого кадра возможна следующая ситуация, когда прямоугольная область (например, визитка) имеет перспективные искажения. В результате прямоугольный документ может быть представлен в виде трапеции. Вследствие этого текст в таком документе будет также искажен, что мешает дальнейшему распознаванию. Поэтому в настоящем изобретении могут использоваться различные способы исправления перспективных искажений. Более того, в одном из способов реализации изобретения после обнаружения кадра, содержащего искаженные документы, происходит выбор кадра, в котором искаженных документов меньше или степень искажения невелика. Этот шаг может быть включен в блок-схему на Фиг.2, описывающую изобретение, однако этот шаг опциональный и может быть пропущен.
[0066] Настоящее изобретение предназначено для использования в любом вычислительном средстве, способном воспринимать и обрабатывать как текстовые данные, так и данные изображений. Это могут быть серверы, персональные компьютеры (ПК), переносные компьютеры (ноутбуки, нетбуки), компактные компьютеры (лаптопы), а также любые иные существующие или разрабатываемые, а также будущие вычислительные устройства.
[0067] На Фиг.9 приведен возможный пример вычислительного средства 900, которое может быть использовано для внедрения настоящего изобретения, осуществленного так, как было описано выше. Вычислительное средство 900 включает в себя по крайней мере один процессор 902, соединенный с памятью 904. Процессор 902 может представлять собой один или более процессоров, может содержать одно, два или более вычислительных ядер. Память 904 может представлять собой оперативную память (ОЗУ), а также содержать любые другие типы и виды памяти, в частности устройства энергонезависимой памяти (например, флэш-накопители) и постоянные запоминающие устройства, например жесткие диски и т.д. Кроме того, может считаться, что память 904 включает в себя аппаратные средства хранения информации, физически размещенные где-либо еще в составе вычислительного средства 900, например, кэш-память в процессоре 902, память, используемую в качестве виртуальной и хранимую на внешнем либо внутреннем постоянном запоминающем устройстве 910.
[0068] Вычислительное средство 900 также обычно имеет некоторое количество входов и выходов для передачи информации вовне и получения информации извне. Для взаимодействия с пользователем вычислительное средство 900 может содержать одно или более устройств ввода (например, клавиатура, мышь, сканер и т.д.) и устройство отображения 908 (например, жидкокристаллический дисплей). Вычислительное средство 900 также может иметь одно или более постоянных запоминающих устройств 910, например привод оптических дисков (CD, DVD или другой), жесткий диск, ленточный накопитель. Кроме того, вычислительное средство 900 может иметь интерфейс с одной или более сетями 912, обеспечивающими соединение с другими сетями и вычислительными устройствами. В частности, это может быть локальная сеть (LAN), беспроводная сеть Wi-Fi, соединенные со всемирной сетью Интернет или нет. Подразумевается, что вычислительное средство 900 включает подходящие аналоговые и/или цифровые интерфейсы между процессором 902 и каждым из компонентов 904, 906, 908, 910 и 912.
[0069] Вычислительное средство 900 работает под управлением операционной системы 914 и выполняет различные приложения, компоненты, программы, объекты, модули и т.д., указанные обобщенно цифрой 916.
[0070] Вообще программы, исполняемые для реализации способов, соответствующих данному изобретению, могут являться частью операционной системы или представлять собой обособленное приложение, компоненту, программу, динамическую библиотеку, модуль, скрипт либо их комбинацию.
[0071] Настоящее описание излагает основной изобретательский замысел авторов, который не может быть ограничен теми аппаратными устройствами, которые упоминались ранее. Следует отметить, что аппаратные устройства, прежде всего, предназначены для решения узкой задачи. С течением времени и с развитием технического прогресса такая задача усложняется или эволюционирует. Появляются новые средства, которые способны выполнить новые требования. В этом смысле следует рассматривать данные аппаратные устройства с точки зрения класса решаемых ими технических задач, а не чисто технической реализации на некой элементной базе.