СПОСОБ И СИСТЕМА ОПРЕДЕЛЕНИЯ ПРИГОДНОСТИ ИЗОБРАЖЕНИЯ ДОКУМЕНТА ДЛЯ ОПТИЧЕСКОГО РАСПОЗНАВАНИЯ СИМВОЛОВ И ДРУГИХ ОПЕРАЦИЙ ПО ОБРАБОТКЕ ИЗОБРАЖЕНИЙ
METHOD AND SYSTEM FOR DETERMINING SUITABILITY OF DOCUMENT IMAGE FOR OPTICAL CHARACTER RECOGNITION AND OTHER IMAGE PROCESSING OPERATIONS

ОБЛАСТЬ ТЕХНИКИ
В настоящем   изобретении рассматриваются способы и системы обработки изображений, в частности оценочный компонент устройства получения изображения или системы обработки изображений, который оценивает пригодность изображения документа для различных типов получения и обработки изображения.
УРОВЕНЬ ТЕХНИКИ
Печатные документы на естественном языке до сих пор являются широко распространенным средством коммуникации между людьми, в организациях и используются для донесения информации до ее потребителей. Ввиду появления и повсеместного использования мощных вычислительных ресурсов, в том числе ресурсов, доступных в пользовательских смартфонах, планшетах, ноутбуках и персональных компьютерах, а также с распространением более мощных вычислительных ресурсов облачных вычислительных сервисов, центров обработки данных и корпоративных серверов организаций и предприятий, шифрование и обмен информацией на естественном языке все более часто выполняется в виде электронных документов. Печатные документы по своей сути представляют собой изображения, в то время как электронные документы содержат последовательности цифровых кодов символов и знаков на естественном языке. Поскольку электронные документы дешевле печатных и превосходят их по возможностям передачи и рассылки, простоте редактирования и изменения, а также по надежности хранения, за последние 50 лет развилась целая отрасль, поддерживающая способы и системы преобразования печатных документов в электронные. Компьютерные способы и системы оптического распознавания символов совместно с электронными сканерами обеспечивают надежное и экономичное получение изображений печатных документов и компьютерную обработку получаемых цифровых изображений, содержащих текст, для создания электронных документов, соответствующих печатным.
Раньше электронные сканеры представляли собой крупногабаритные настольные или напольные электронные устройства. Однако с появлением смартфонов и других мобильных устройств получения изображения с процессорным управлением появилась возможность получения цифровых изображений, содержащих текст документов, с помощью целого набора различных типов широко распространенных портативных устройств. Среди них - смартфоны, недорогие цифровые камеры, камеры видеонаблюдения, а также устройства получения изображений, включая планшетные компьютеры и ноутбуки. Получаемые при помощи таких портативных устройств и приборов цифровые изображения, содержащие текст документов, могут обрабатываться вычислительными системами оптического распознавания символов, в том числе приложениями оптического распознавания символов в смартфонах для создания соответствующих электронных документов.
К сожалению, получение изображений содержащих текст документов, при помощи портативных устройств связано с повышенным шумом, оптическим смазом и иными дефектами, а также недостатками цифровых изображений по сравнению с получением таковых при помощи специальных приборов для сканирования документов. Эти дефекты и недостатки могут значительно снизить производительность вычислительного оптического распознавания символов и значительно увеличить частоту ошибочного распознавания символов, а также привести к отказу способов и систем оптического распознавания символов при кодировании текста на больших областях цифровых изображений, содержащих текст. Таким образом, несмотря на то что портативные устройства и приборы получения изображений документов имеют значительные преимущества по стоимости и доступности для пользователя, они связаны с недостатками, которые могут затруднить и исключить возможность создания электронных документов из цифровых изображений, содержащих текст, полученных портативными устройствами и приборами. Во многих других ситуациях содержащие текст цифровые изображения могут иметь аналогичные дефекты и недостатки, которые могут привести к неудовлетворительным результатам применяемых впоследствии способов обработки изображений. По этой причине проектировщики и разработчики устройств, приборов для получения изображений и способов, систем оптического распознавания символов, а также пользователи устройств, приборов и систем оптического распознавания символов продолжают искать способы и системы для устранения дефектов и недостатков, присущих многим цифровым изображениям, содержащим текст, включая содержащие текст цифровые изображения, полученные с помощью мобильных устройств, которые затрудняют дальнейшую вычислительную обработку содержащего текст цифрового изображения.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В настоящем документе рассматриваются вычислительно-эффективный способ и система оценки пригодности цифрового изображения, содержащего текст, для различных типов вычислительной обработки изображения, включая оптическое распознавание символов. Содержащее текст цифровое изображение оценивается способами и системами настоящего изобретения на предмет резкости или, иными словами, на отсутствие или низкий уровень шума, оптического размытия (смаза) и прочих дефектов и недостатков. В процессе оценки резкости используются вычислительно-эффективные шаги, в том числе операции свертки с малыми ядрами для создания контурных изображений и оценка пикселей на основе яркости на контурных изображений, для оценки резкости и близости к предельной яркости с целью оценки резкости содержащего текст цифрового изображения в целях обработки изображения. Способы и системы настоящего изобретения позволяют пользователям оценивать пригодность содержащих текст цифровых изображений для обработки изображений до образования вычислительных и временных затрат, связанных с применением способов обработки изображений к содержащим текст цифровым изображениям, значительно увеличивая вероятность того, что обработка изображения создаст из содержащих текст цифровых изображений электронные документы без ошибок или с небольшим количеством ошибок.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг. 1A-D показаны два типа портативных устройств получения изображений.
На Фиг. 2A-D показан оптический фокус и оптическое размытие.
На Фиг. 3 показан сфокусированный и смазанный (размытый) текст.
На Фиг. 4 показано типовое изображение с цифровым кодированием.
На Фиг. 5 показан один вариант цветовой модели RGB.
На Фиг. 6 показана другая цветовая модель «оттенок-насыщенность-светлота» (HSL).
На Фиг. 7 показано различие между сфокусированным изображением текстового символа и несфокусированным изображением текстового символа.
На Фиг. 8 показано дискретное вычисление градиента интенсивности.
На Фиг. 9 показан градиент, рассчитанный для точки на непрерывной поверхности.
На Фиг. 10 показан ряд примеров для градиента интенсивности.
На Фиг. 11 показано использование ядра, охватывающего три пикселя, на котором выполняется свертка серого цифрового изображения для формирования контурного изображения или дифференциального изображения, в котором значения пикселей соответствуют модулям направленных векторов, соответствующих модулю градиента интенсивности в конкретном направлении.
На Фиг. 12 показано вычисление четырех различных контурных изображений из примера серого цифрового изображения.
На Фиг. 13 показан результат вычисления контурных изображений из серого изображения, указанного выше со ссылкой на Фиг. 12.
На Фиг. 14 показано разбиение цифрового изображения на неперекрывающиеся блоки.
На Фиг. 15 приведена первая блок-схема из серии блок-схем, демонстрирующих один из вариантов реализации способа, оценивающего пригодность содержащего текст цифрового изображения для применения оптического распознавания символов и других способов обработки изображения.
На Фиг. 16 показан основанный на гистограмме способ определения значения контраста для конкретного блока
На Фиг. 17 показано определение пороговых значений на основе интенсивности для создания бинаризованного изображения из серого изображения.
На Фиг. 18 показан один из подходов к определению контурных пикселей.
На Фиг. 19 приведена вторая блок-схема из серии блок-схем, демонстрирующих один из вариантов реализации раскрываемого в настоящем документе способа предварительного анализа резкости.
На Фиг. 20 представлен выбор блоков-кандидатов из исходного изображения и бинаризованного исходного изображения для последующего анализа резкости.
На Фиг. 21 представлено определение количества резких пикселей (num_sharp) и количества контурных пикселей (num_edge) в блоке исходного изображения и производных изображений.
На Фиг. 22-24 представлены блок-схемы, дополняющие описание и иллюстрацию первого варианта реализации раскрываемого в настоящем документе способа предварительного анализа резкости.
На Фиг. 25-30 представлен второй вариант реализации раскрываемого в настоящем документе способа предварительного анализа резкости.
На Фиг. 26-30 представлены блок-схемы, иллюстрирующие альтернативный вариант реализации раскрываемого в настоящей заявке способа предварительного анализа резкости.
На Фиг. 31 представлена структурная схема компьютерной системы высокого уровня, например компьютерной системы, в которой применяется раскрываемый способ предварительного анализа резкости для получения метрики пригодности для последующей обработки изображения.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ
На Фиг. 1A-D показаны два типа портативных устройств получения изображений. На Фиг. 1А-С показана цифровая камера 102. Цифровая камера содержит объектив 104, кнопку спуска затвора 105, нажатие которой пользователем приводит к захвату цифрового изображения, которое соответствует отраженному свету, поступающему в объектив 104 цифровой камеры. С задней стороны цифровой камеры, которая видна для пользователя, когда он держит камеру при съемке цифровых изображений, имеется видоискатель 106 и жидкокристаллический дисплей видоискателя 108. С помощью видоискателя 106 пользователь может напрямую просматривать создаваемое объективом камеры изображение, а с помощью жидкокристаллического дисплея 108 - просматривать электронное отображение создаваемого в настоящий момент объективом изображения. Обычно пользователь камеры настраивает фокус камеры с помощью кольца фокусировки 110, смотря при этом через видоискатель 106 или рассматривая изображение на жидкокристаллическом дисплее 108 для выбора необходимого изображения перед нажатием на кнопку спуска затвора 105 с целью цифрового захвата изображения и сохранения изображения в электронной памяти цифровой камеры.
На Фиг. 1D показан типовой смартфон с передней стороны 120 и с задней стороны 122. На задней стороне 122 имеется объектив цифровой камеры 124 и цифровой экспонометр и (или) датчик приближения 126. Под управлением приложения на передней стороне смартфона 120 может отображаться получаемое изображение 126, аналогично работе жидкокристаллического дисплея видоискателя 108 цифровой камеры, а также сенсорная кнопка спуска затвора 128, при прикосновении к которой происходит захват цифрового изображения и сохранение его в памяти смартфона.
На Фиг. 2A-D показан оптический фокус и оптический смаз. На Фиг. 2А показан вид сбоку оптической линзы 202, на которую попадают параллельные лучи света от удаленных объектов. Первый набор параллельных лучей света 204-206 проходит от удаленного объекта, расположенного рядом с горизонтом, или, иными словами, по направлению от точки, находящейся под углом 180° от линзы, а второй набор параллельных лучей света 208-210 поступает от удаленного объекта, расположенного под углом приблизительно 215° от линзы. Первый набор лучей сходится в точке 212, расположенной на фокальной плоскости 214 на удалении от линзы, соответствующем фокусному расстоянию . Второй набор параллельных лучей 208-210 сходится во второй точке 218 на фокальной плоскости, выше точки 212. Таким образом, удаленные объекты, которые создают в целом параллельные лучи света, формируют перевернутое изображение на фокальной плоскости 214 с противоположной стороны от линзы 202.
o
i
Как показано на Фиг. 2В, объект 230, расположенный ближе к линзе 202, чем удаленные объекты, указанные со ссылкой на Фиг. 2А, создает перевернутое изображение 232 на плоскости 234 дальше от плоскости 202, чем фокусная точка 212 для удаленных объектов. Таким образом, при расстоянии s от линзы 236 имеется соответствующая фокальная плоскость 234 на расстоянии s 238. В камере расстояние от плоскости изображения 234 до линзы регулируется с помощью механизма фокусировки для механической фокусировки изображения объекта. Чем ближе расположен объект, тем больше будет расстояние между линзой и плоскостью изображения. Объекты, расположенные к линзе ближе, чем расстояние, равное фокусному, не могут быть отображены. В этом случае лучи, исходящие от точки на таком объекте, проходят через линзу и расходятся с противоположной стороны линзы.
focus
focus
focus
На Фиг. 2C-D показан смаз (размытие) изображения. На Фиг. 2С и 2D плоскость снятия изображения 240 в камере расположена для получения изображения на расстоянии s 242 от линзы 244. Когда объект в поле зрения находится ближе к линзе, чем расстояние s 246, как показано на Фиг. 2С, сфокусированное изображение 248 будет находиться за плоскостью снятия изображения 240. В результате лучи света 250-252, исходящие из конкретной точки 254 на поверхности объекта, будут сходиться в соответствующей точке 256 на сфокусированном изображении 248, но не будут сходиться на плоскости снятия изображения 240. Вместо этого лучи падают на дискообразную область 258 на плоскости снятия изображения. Аналогичным образом, как показано на Фиг. 2D, когда объект 246 находится на расстоянии от линзы, превосходящем s, объект будет сфокусирован 260 перед плоскостью снятия изображения 240. Вместо схождения в точке на поверхности снятия изображения оптические лучи распространяются по дискообразной области 262 на плоскость снятия изображения. Как в случае на Фиг. 2С, так и в случае на Фиг. 2D, если лучи, исходящие из конкретной точки снимаемого объекта, не сходятся в соответствующей точке на поверхности снятия изображения, а попадают в дискообразную область, то возникает дефект размытия. На Фиг. 3 показан сфокусированный и размытый текст. Как показано на Фиг. 3, слово «focus» отображается резко 302 при фокусировке камеры на плоскости снятия изображения или смазано 304 (без четких контуров) на снимке несфокусированной камерой, в которой сфокусированное перевернутое изображение, сформированное линзой, оказывается ближе или дальше плоскости снятия изображения, как показано на Фиг. 2C-D.
На Фиг. 4 показано типовое изображение с цифровым кодированием. Кодированное изображение включает двухмерный массив пикселей 402. На Фиг. 4 каждый небольшой квадрат, например 404, является пикселем, который в целом определяется как часть с наименьшей степенью детализации изображения, для которой предусматривается цифровая кодировка. Каждый пиксель представляет собой место, обычно представленное как пара цифровых значений, соответствующих значениям на осях прямоугольных координат x и y, 406 и 408, соответственно. Таким образом, например, пиксель 404 имеет координаты x, y (39, 0), а пиксель 412 имеет координаты (0, 0). В цифровой кодировке пиксель представлен числовыми значениями, указывающими на то, как область изображения, соответствующая пикселю, представляется при печати, отображается на экране компьютера или ином дисплее. Обычно для черно-белых изображений для представления каждого пикселя используется единичное значение в диапазоне от 0 до 255 с числовым значением, соответствующим уровню серого, на котором передается пиксель. В общепринятом понимании значение «0» соответствует черному цвету, а значение «255» - белому. Для цветных изображений может применяться множество различных наборов числовых значений, указывающих на цвет. В одной из обще принятых цветовых моделей, показанной на Фиг. 4, каждый пиксель связан с тремя значениями, или координатами (r, g, b), которые указывают на интенсивность красного, зеленого и синего компонентов цвета, отображаемых в соответствующей пикселю области.
На Фиг. 5 показан один вариант цветовой модели RGB. Тремя координатами первичных цветов (r, g, b) представлен весь спектр цветов, как указано выше со ссылкой на Фиг. 4. Цветовая модель может считаться соответствующей точкам в пределах единичного куба 502, в котором трехмерное цветовое пространство определяется тремя осями координат: (1) r 504; (2) g 506; и (3) b 508. Таким образом, индивидуальные координаты цвета находятся в диапазоне от 0 до 1 по каждой из трех цветовых осей. Например, чистый синий цвет максимально возможной интенсивности соответствует точке 510 по оси b с координатами (0, 0, 1). Белый цвет соответствует точке 512 с координатами (1, 1, 1,), а черный цвет - точке 514, началу системы координат с координатами (0, 0, 0).
На Фиг. 6 показана другая цветовая модель «оттенок-насыщенность-светлота» (HSL). В этой цветовой модели цвета содержатся в трехмерной бипирамидальной призме 600 с шестигранным сечением. Оттенок (h) связан с доминантной длиной волны излучения света, воспринимаемого наблюдателем. Значение оттенка находится в диапазоне от 0° до 360°, начиная с красного цвета 602 в точке 0°, проходя через зеленый 604 в точке 120°, синий 606 в точке 240° и заканчивая красным 602 в точке 660°. Насыщенность (s), находящаяся в диапазоне от 0 до 1, напротив, связана с количеством белого и черного цветов, смешанных при определенной длине волны или оттенке. Например, чистый красный цвет 602 является полностью насыщенным при насыщенности s=1,0; розовый цвет имеет насыщенность менее 1,0, но более 0,0; белый 608 является полностью ненасыщенным при s=0,0; а черный 610 также является полностью ненасыщенным при s=0,0. Полностью насыщенные цвета падают на периметр среднего шестигранника, содержащего точки 602, 604 и 606. Шкала оттенков серого проходит от черного 610 до белого 608 по центральной вертикальной оси 612, представляющей полностью ненасыщенные цвета без оттенка, но с различными пропорциональными сочетаниями черного и белого.
Например, черный 610 содержит 100% черного и не содержит белого, белый 608 содержит 100% белого и не содержит черного, а исходная точка 613 содержит 50% черного и 50% белого. Светлота , представленная центральной вертикальной осью 612, указывает на уровень освещенности в диапазоне от 0 для черного 610 (при ) до 1 для белого 608 (при ). Для произвольного цвета, представленного на Фиг. 6 точкой 614, оттенок определяется как угол θ 616 между первым вектором из исходной точки 613 к точке 602 и вторым вектором из исходной точки 613 к точке 620, в которой вертикальная линия 622, проходящая через точку 614, пересекает плоскость 624, включающую исходную точку 613 и точки 602, 604 и 606. Насыщенность представлена отношением расстояния репрезентативной точки 614 от вертикальной оси 612 d', разделенным на длину горизонтальной линии, проходящей через точку 620 от исходной точки 613, к поверхности бипирамидальной призмы 600, d. Светлота представлена вертикальным расстоянием от репрезентативной точки 614 до вертикального уровня точки, представляющей черный цвет 610. Координаты конкретного цвета в цветовой модели HSL (h, s, ) могут быть получены на основе координат цвета в цветовой модели RGB (r,g,b) следующим образом:
,
, и
,
max
min
max
min
где значения r, g и b соответствуют интенсивности красного, зеленого и синего первичных цветов, приведенной к диапазону [0, 1]; C представляет приведенное значение интенсивности, равное максимальному значению из r, g и b; C представляет собой приведенное значение интенсивности, равное минимальному значению из r, g и b; а Δ определяется как C-C.
На Фиг. 7 показано различие между сфокусированным изображением текстового символа и несфокусированным изображением текстового символа. Сфокусированное изображение текстового символа 702 имеет резкие контуры, или интенсивные контуры, между темными областями символа и светлым фоном. Во вставке 706 увеличена небольшая область 704 сфокусированного символа, в которой показаны пиксели в этой области. У сфокусированного символа имеется резкая линия или граница 708 между темными пикселями 710 и светлыми пикселями 712. В несфокусированном изображении символа 714, контуры, наоборот, нечеткие, и, как показано на вставке 716, резкая граница между темными пикселями 718 и светлыми фоновыми пикселями 720 отсутствует.
Один из вычислительных способов определения контуров в изображении, например контура 708, показанного во вставке 706 Фиг. 7, заключается в расчете вектора градиента интенсивности для каждого пикселя, принимая, что изображение является функцией z=F(x, y), где (x, y) - координаты пикселей, a z - значение интенсивности. Поскольку изображения представляют собой скорее дискретные функции, а не непрерывные функции, непрерывные уравнения в частных производных для вычисления градиента не применяются. При этом цифровое изображение может быть принято как матричный образец, лежащий в основе непрерывной функции интенсивности и градиент, соответствующий контрольным точкам, может быть оценен с помощью дискретных операций. На Фиг. 8 представлен дискретные вычисления градиента интенсивности. На Фиг. 8 показан небольшой квадратный участок 802 цифрового изображения. Каждая клетка, например клетка 804, представляет пиксель, а числовое значение в клетке, например значение «106» в клетке 804, представляет интенсивность серого цвета. Допустим, пиксель 806 имеет значение интенсивности «203». Этот пиксель и четыре непосредственно соседних пикселя показаны на крестообразной схеме 808 справа от участка 802 цифрового изображения. Учитывая левый 810 и правый 812 соседние пиксели, изменение значения интенсивности в направлении x, (Δx) может быть дискретно вычислено как:
.
Учитывая нижний 814 и верхний 816 соседние пиксели, изменение значения интенсивности в вертикальном направлении, (Δy) может быть вычислено как:
.
Вычисленное значение Δх является оценкой частного дифференциала непрерывной функции интенсивности относительно оси x в центральном пикселе 806:
.
Частный дифференциал функции F относительно координаты y в центральном пикселе 806 рассчитывается по Δy:
.
Градиент интенсивности в пикселе 806 может быть рассчитан следующим образом:
где i и j представляют собой единичные векторы в направлениях x и y. Модуль (длина) вектора градиента и угол вектора градиента далее рассчитываются следующим образом:
Направление вектора 820 градиента интенсивности и угол θ 822 показаны наложенными на участок 802 цифрового изображения на Фиг. 8. Следует учесть, что точки не векторе градиента расположены в направлении максимального увеличения интенсивности от пикселя 806. Модуль вектора градиента указывает на ожидаемое увеличение интенсивности на единицу увеличения в направлении градиента. Следовательно, поскольку градиент рассчитан исключительно с помощью дискретных операций, в вычислении, показанном на Фиг. 8, направление и величина градиента представлены исключительно приближенными значениями.
На Фиг. 9 показан градиент, рассчитанный для точки на непрерывной поверхности. На Фиг. 9 представлена непрерывная поверхность z=F(x, y). Непрерывная поверхность 902 строится относительно трехмерной декартовой системы координат 904 и имеет похожую на шляпу форму. Контурные линии, например, контурная линия 906, могут быть построены на поверхности для отображения непрерывного набора точек с постоянным значением z. В конкретной точке 908 на контуре, построенном на поверхности, вектор градиента 910, рассчитанный для точки, находится перпендикулярно к контурной линии и к точкам в направлении максимального наклона вверх на поверхности от точки 908.
Обычно вектор градиента интенсивности направлен перпендикулярно резкому контуру, при этом чем больше величина градиента, тем резче контур, т.е. тем больше разность в резкости пикселей с двух сторон контура. На Фиг. 10 показан ряд примеров для градиента интенсивности. Каждый пример (пример 1002) содержит центральный пиксель, для которого рассчитывается градиент, а для расчета Δx и Δy используются четыре смежных пикселя. Контуры с наибольшей резкостью показаны в первой колонке 1004. В этих случаях модуль градиента составляет не менее 127,5, а в третьем случае - 1006-180,3. Относительно небольшая разность на контуре, показанная в примере 1008, создает градиент модулем всего 3,9. Во всех случаях вектор градиента расположен перпендикулярно очевидному направлению резкого контура, проходящему через центральный пиксель.
На Фиг. 11 показано использование ядра, охватывающего три пикселя, на котором выполняется свертка серого цифрового изображения для формирования контурного изображения, или дифференциального изображения, в котором значения пикселей соответствуют модулям направленных векторов, представляющих компоненту градиента интенсивности в конкретном направлении. Контурное изображение, рассчитанное на Фиг. 11, представляет собой контурное изображение для направления по оси x, при этом значения интенсивности пикселей в контурном изображении представляют вектор градиента в направлении x или . Фактически, рассчитанные значения интенсивности связаны с фактическими модулями вектора градиента в направлении x с применением множителя 2. Для обеспечения вычислительной эффективности разность между значениями левого и правого пикселей не делится на 2. Ядро из трех пикселей 1102 показано пунктирными линиями, наложенными на три пикселя 1104-1106 в пределах небольшого участка цифрового изображения. Применение ядра к этим трем пикселям создает значение, связанное с модулем градиента в направлении x (4), которое вводится как значение для центрального пикселя 1108 из трех пикселей 1104-1106 в исходном сером изображении. Как показано на Фиг. 11, ядро 1102 применяется к трем пикселям путем умножения каждого значения ядра на соответствующее значение интенсивности расположенного ниже пикселя. Как показано в нижней части Фиг. 11, ядро применяется к каждому пикселю (кроме пикселей левой и правой границ) цифрового изображения в ходе операции, называемой «сверткой». Применение ядра к каждому пикселю включает центровку ядра над пикселем, по типу того как ядро 1102 отцентровано над пикселем 1105 в левом верхнем углу Фиг. 11, с последующим расчетом значения, связанного с модулем градиента в направлении x. Изначально ядро располагается таким образом, чтобы обеспечить расчет значения для второго слева верхнего пикселя 1110. После этого значение помещается на контурное изображение, как показано фигурной стрелкой 1112. Затем ядро перемещается вправо на один пиксель 1114, и рассчитывается следующий пиксель, который помещается на контурное изображение 1113, что показано фигурной стрелкой 1116. Этот процесс продолжается, как показано пунктирными стрелками 1120 на Фиг. 11, по типу сканирования растрового изображения для расчета значений пикселей контурного изображения для всех пикселей, кроме граничных пикселей с левой стороны и граничных пикселей с правой стороны на исходном сером изображении. В определенных случаях измененное ядро может использоваться для вычисления приближенных значений граничных пикселей, при этом измененное ядро содержит только два, а не три значения.
x
x
y
На Фиг. 12 показано вычисление четырех различных контурных изображений из примера серого цифрового изображения. Пример серого цифрового изображения 1202 имеет светлый фон с темной восьмигранной фигурой 1204 в центре. Выполняется отдельная свертка четырех различных ядер 1206-1209 для создания четырех различных контурных изображений 1210-1213. Рассмотрим ядро k 1206. Это ядро описано выше со ссылкой на Фиг. 11. В нем вычисляется модуль градиента в направлении x. Поэтому контуры серого цифрового изображения, перпендикулярные направлению x, будут иметь большие вычисленные значения на контурном изображении. В него входят левый контур 1220 и правый контур 1221 восьмигранника 1204. В получившемся контурном изображении 1210 эти два контура 1222 и 1223 имеют большие значения. Они показаны темными линиями, но поскольку в представлении в оттенках серого большие значения стремятся к белому, а малые значения стремятся к черному, контурные изображения 1210-1213 на Фиг. 12 имеют инверсивное цветовое представление, что четко показано с помощью темных линий - пикселей с высокой яркостью на контурных изображениях. Если показаны фактические цветные представления, контурные изображения будут в основном черными с белыми контурами. Диагональные контуры восьмигранника 1226-1229 ни перпендикулярны, ни параллельны направлению x. Поэтому компонент в направлении x для направления, перпендикулярного этим контурам, имеет существенную, но меньшую величину, чем компонент в направлении x для вектора градиента вертикальных контуров 1220 и 1221. Таким образом, диагональные контуры контурного изображения 1230-1233 видимы на контурном изображении, но имеют меньшую интенсивность, чем два вертикальных контура 1222 и 1223. Аналогичный анализ трех дополнительных ядер 1207-1209 объясняет разнонаправленные пары признаков в каждом соответствующем контурном изображении 1211-1213. В условных наименованиях ядер используется нижний индекс для указания направлений, в которых направлены расчетные значения градиента. Например, ядро 1207 называется «k,», поскольку в ядре вычисляется величина компонента вектора градиента в направлении i+j.
На Фиг. 13 показан результат вычисления контурных изображений из серого изображения, указанного выше со ссылкой на Фиг. 12. Исходное серое изображение 1202 свертывается с применением четырех ядер 1206-1209 для создания четырех контурных изображений 1210-1213, которые представлены на Фиг. 13 четырьмя стрелками 1214. Второй набор стрелок 1216 показывает, что четыре контурных изображения могут быть суммированы со значениями пикселей контурного изображения для конкретного пикселя в конкретной координате во всех четырех сложенных вместе контурных изображениях для создания суммарного значения пикселя, которое затем делится на соответствующее постоянное значение таким образом, чтобы максимальное значение пикселя в объединенном контурном изображении 1218 было меньше или равно 255. Объединенное контурное изображение 1218 имеет представление контуров восьмиугольника 1220 в виде белых линий на темном фоне. Таким образом, сочетание четырех контурных изображений создает составное контурное изображение 1218, в котором яркие контуры в исходном сером изображении представлены ярким или белым цветом, а неконтурные пиксели на исходном сером изображении представлены темными цветами. Иными словами, дискретные дифференциальные операторы, или ядра, сворачиваются с серым изображением для выявления контуров в изображении.
На Фиг. 14 показано разбиение цифрового изображения на неперекрывающиеся блоки. На Фиг. 14 небольшое цифровое изображение 1402 содержит 625 пикселей, по 25 пикселей с каждой стороны. Это изображение можно разбить, например, на 25 меньших блоков размером 5×5, например блок 1404. Отдельные блоки могут быть связаны с системой координат отдельных блоков x',y' 1406. Исходное изображение может быть связано с двухмерной системой координат x,y, 1408. 25 меньших блоков могут быть связаны с двухмерной декартовой системой координат x,y 1410, каждая точка в которой соответствует блоку, а каждое расположение связано с внутренними координатами, соответствующими блоку размером 5×5. Конечно, разбиение изображения на более мелкие неперекрывающиеся блоки, как показано на Фиг. 14, не обязательно предполагает копирование значений в разные места в памяти, но предполагает использование различных способов индексирования для доступа к значениям пикселя в изображении. Например, существует линейная трансформация между координатами пикселя на исходном изображении (x,y) и координатами содержащего пиксель блока (X, Y), а также расположением пикселя в пределах блока (x',y'), что показано в формулах 1412 на Фиг. 14. Таким образом, разбиение изображения может быть просто вопросом использования различных наборов координат с применением линейных трансформаций между ними.
На Фиг. 15 приведена первая блок-схема из серии блок-схем, демонстрирующих один из вариантов реализации способа, оценивающего пригодность содержащего текст цифрового изображения для применения оптического распознавания символов и других способов обработки изображения. Этот вариант реализации называется «предварительным анализом резкости». На первом этапе 1502 раскрываемый способ предварительного анализа резкости получает цифровое изображение и метаданные изображения. Метаданные изображения могут быть представлены заголовком изображения, включающим различные параметры, характеризующие изображение (например, используемая цветовая модель, размеры изображения в пикселях, особый тип кодировки пикселя и прочие подобные параметры). Полученное цифровое изображение может, например, отображаться на жидкокристаллическом видоискателе камеры или экране приложения смартфона, предоставляя пользователю возможность настроить фокус, кадр, ориентацию снимка, диафрагму и другие параметры оптического устройства с целью получения желаемого качественного изображения до момента активации функции непосредственной съемки желаемого изображения и его последующего получения в цифровом виде и сохранения в памяти устройства. В качестве другого примера, различные типы вычислительных систем могут задействовать способ предварительного анализа резкости для оценки цифровых изображений, полученных из различных типов источников для обработки изображений перед выполнением такой обработки, с целью недопущения временных и вычислительных издержек, связанных с применением обработки изображения для цифровых изображений со смазом или шумами, или непригодных по иным причинам. При разработке или регулировании предварительного анализа резкости с помощью вводимых аргументов или значений параметров для первичной фильтрации исходного изображения в соответствии с определением на этапе 1504, к полученному исходному цифровому изображению применяются все различные типы фильтров изображения с целью удаления шума при сохранении контраста и, в частности, сохранения резких контуров на этапе 1506. Например, может использоваться тип фильтра, представляющий собой билатеральный фильтр, использующий весовые коэффициенты на основе распределения Гауссова. Ниже представлено общее выражение для билатерального фильтра:
,
где член уравнения, обеспечивающий нормализацию
обеспечивает сохранение фильтром энергии изображения и где
filtered
I - отфильтрованное изображение;
I - исходное изображение, подлежащее фильтрации;
x - координаты текущего пикселя, подлежащего фильтрации;
Ω - окно, отцентрированное в х;
- ядро диапазона для сглаживания различий в интенсивности;
s
g - пространственное ядро для сглаживания различий в координатах.
Если изображение цветное, то на этапе 1508 из исходного изображения формируется серое изображение. Генерация серого изображения из цветного может выполняться множеством различных способов, в зависимости от конкретной цветовой схемы, используемой для кодировки цветного изображения. В случае кодировки изображения по описанной выше цветовой схеме HSL, компонент яркости из трех компонентов, определяющих цвет и интенсивность пикселя, может использоваться для оценки интенсивности значения серого, связанного с каждым пикселем на сером изображении. В случае если исходное изображение уже было серым или монотонным, этап 1508 может содержать только нормализацию значений интенсивности до диапазона (0, 255), если значения интенсивности не были закодированы в восьмибитной системе. Если вариант реализации проектируется или регулируется входными аргументами или значениями параметров, обеспечивающими применение фильтра к серому изображению, как определено на этапе 1510, то к серому изображению на этапе 1512 применяется сокращающий шум, но сохраняющий контуры фильтр. Во многих вариантах реализации фильтруется либо исходное изображение либо серое. Прочие типы предварительной обработки, включая дополнительные типы фильтров, могут быть применены в любом из шагов 1506 и 1512.
x
x
y
y
-x
y
В цикле  на этапах 1514-1516, четыре различных ядра, дифференциальные операторы k, k,, k, и k,, описанные выше со ссылкой на Фиг. 12, свертываются с серым изображением для создания соответствующих контурных изображений, как показано на Фиг. 12. На Фиг. 15 и на последующих фигурах переменная k используется для обозначения одного изображения из набора контурных изображений, а также в качестве индекса для различных переменных массива.
i
i
На Фиг. 16 показан основанный на гистограмме способ определения значения контраста C, для конкретного блока i из множества неперекрывающихся блоков, на которые делится цифровое изображение. В этом способе значения интенсивности, связанные с пикселями в блоке 1602, вычислительно сортируются для создания логической гистограммы 1604, на которой отсортированные значения интенсивности расположены в колонках вдоль горизонтальной оси 1606. Высота колонки представляет собой количество пикселей с конкретными значениями интенсивности, представленными вертикальной осью 1608. На следующем этапе предопределенные или рассчитанные значения минимальной и максимальной интенсивности 1610 и 1612 применяются к гистограмме для разделения гистограммы на нижнюю исключаемую из дальнейшего рассмотрения область 1614, центральную область 1616 и верхнюю исключаемую из дальнейшего рассмотрения область 1618. В качестве одного примера минимальные и максимальные значения 1610 и 1612 могут быть вычислены таким образом, чтобы некоторый указанный процент пикселей в блоке 1602 был расположен в нижней исключаемой из дальнейшего рассмотрения области, и некоторый указанный процент пикселей в блоке был расположен в верхней исключаемой из дальнейшего рассмотрения области 1618. Нижняя и верхняя исключаемые из дальнейшего рассмотрения области содержат пиксели с выпадающими значениями. В одном из вариантов реализации желательно, чтобы 0,1 процента от общего количества пикселей лежали как в нижней исключаемой из дальнейшего рассмотрения области 1614, так и в верхней исключаемой из дальнейшего рассмотрения области 1618. На окончательном этапе контраст C, для блока i 1602 вычисляется как разность между максимальным значением интенсивности 1620 и минимальным значением интенсивности 1622 в центральной части или части 1616 гистограммы. Иными словами, после исключения выпадающих значений интенсивности контраст вычисляется как разность между максимальным и минимальным значениями внутри блока.
На Фиг. 17 показано определение пороговых значений на основе интенсивности для создания бинаризованного изображения из серого изображения. Бинаризованное изображение содержит пиксели, каждый из которых содержит одно из двух возможных значений, например значения «0» и «255». Иными словами, все пиксели являются либо белыми, либо черными. В качестве альтернативного варианта бинаризованное изображение может быть представлено более экономно однобитными пикселями, содержащими значения «0» и «1». На Фиг. 17 блок серого изображения 1702 показан с числовыми значениями интенсивности серого соответственно пикселям. Например, пиксель 1704 связан со значением интенсивности серого 110. Этот блок также может быть преобразован в бинаризованное изображение с использованием различных пороговых значений. Например, если пороговое значение составляет 175, то пиксели со значениями менее 175 связаны со значением «0» в соответствующем бинаризованном изображении 1708, а пиксели со значением 175 или более связаны со значением «255» на бинаризованном изображении по одному варианту или со значением «1» по другому. В этом случае, поскольку распределение значений интенсивности происходит в блоке изображения 1702, большая часть пикселей в соответствующем блоке бинаризованного изображения 1708 имеют значение 0 и показаны на Фиг. 17 темным цветом. Если пороговое значение составляет «150» (1710), то бинаризованное изображение 1712, создаваемое на основе порога, содержит меньшее количество темных пикселей и большее количество белых пикселей. Если пороговое значение снижается до «125» (1714), лишь небольшая часть пикселей в бинаризованном изображении 1716 принимает темный цвет.
В одном из этапов предварительного анализа резкости пиксели в бинаризованном изображении, соответствующие серому изображению, создаваемому из исходного изображения, классифицируются как контурные или неконтурные пиксели. Существует множество подходов к классификации пикселей как контурных или неконтурных. На Фиг. 18 показан один из подходов к определению контурных пикселей. При этом подходе ядро размером 3×3 центрируется над пикселем, для которого необходимо принять решение. Если схема расположения белых и черных пикселей в ядре соответствует значениям рассматриваемого пикселя и соседних с ним пикселей в бинаризованном изображении, то пиксель классифицируется как содержащий контурный или неконтурный пиксель в зависимости от того, было ли определено, что ядро представляет контурное или неконтурное ядро. На Фиг. 18 справа от вертикальной пунктирной линии 1802 показано количество контурных ядер, а количество неконтурных ядер показано справа от пунктирной линии. Если центральный пиксель имеет темный цвет, также как все соседние пиксели, как показано для ядра 1806, то центральный пиксель обоснованно относится к неконтурным пикселям. Если центральный пиксель имеет темный цвет, а вертикальная колонка пикселей рядом с ним - белый, как показано для ядра 1808, то центральный пиксель обоснованно относится к контурным пикселям. В одном из вариантов реализации пиксель классифицируется как контурный, если он имеет темный цвет и по меньшей мере один из соседних пикселей имеет белый цвет. Таким образом, на Фиг. 18 все ядра слева от вертикальной линии 1802 в этом варианте реализации являются контурными. При этом в альтернативных вариантах реализации разделение на возможные 512 контурных ядер или схем между контурными ядрами слева от вертикальной пунктирной линии 1802, а также на неконтурные ядра справа от пунктирной вертикальной линии 1802 может отличаться. Более эффективные способы могут задействовать небольшое количество логических утверждений для отнесения пикселя к контурному или неконтурному в зависимости от двоичных значений для непосредственно прилегающих к нему пикселей при условии одинаковости классификации контурных и неконтурных пикселей в соответствии с методом обнаружения контурного ядра.
i
На Фиг. 19 приведена вторая блок-схема из серии блок-схем, демонстрирующих один из вариантов реализации раскрываемого в настоящем документе способа предварительного анализа резкости. Обведенный кругом символ «А» 1902 указывает на продолжение схемы от соответствующего обведенного символа «А» 1520 в представленной на Фиг. 15 блок-схеме. Аналогичные условные иллюстрации используются для соединения последующих блок-схем. На этапе 1904 серое изображение разбивается на неперекрывающиеся блоки. Разбиение изображения описано выше со ссылкой на Фиг. 14. Может быть задействовано множество различных типов разбивки. Блоки могут быть квадратными, прямоугольными или иметь иные формы, которые могут быть составлены вместе для полного заполнения двухмерного изображения. Размеры блоков могут быть различными в различных вариантах реализации и для различных исходных изображений, а размеры и формы блоков могут быть различными для одного и того же исходного изображения. Способы разбивки могут быть направлены на разбивку изображения с целью минимизации отклонений интенсивности внутри блоков или могут быт ограничены другими типами вычисленных значений для блоков. Разбивка также применяется в том числе к производным изображениям, включая бинаризованное изображение и контурные изображения. Затем в цикле  шагов 1906-1908, вычисляется и сохраняется контраст С для каждого непериметрального (расположенного не вдоль периметра) блока i в сером изображении. Ниже со ссылкой на Фиг. 20 описываются периметральные (расположенного вдоль периметра) и непериметральные блоки. На этапе 1910 используется методика установления порога для формирования бинаризованного изображения из серого изображения. Может использоваться заранее установленный порог, или в определенных вариантах реализации порог может быть вычислен на основе распределения значений интенсивности на сером изображении. При одном подходе сначала может использоваться заранее определенный подход, после чего может быть рассчитано второе уточненное пороговое значение на основе контрастов в частях серого изображения, соответствующих белым и черным пикселям в исходном бинаризованном изображении. В цикле  этапов 1912-1915 количество контуров в каждом непериметральном блоке бинаризованного серого изображения вычисляется по одному из методов классификации контуров, описанных выше со ссылкой на Фиг. 18.
3
4
5
На Фиг. 20 представлен выбор блоков-кандидатов из исходного изображения и бинаризованного исходного изображения для последующего анализа резкости. На Фиг. 20 левый прямоугольник 2002 представляет собой исходное изображение. Горизонтальной стрелкой 2004 представлен выбор блоков-кандидатов. Правый наружный прямоугольник 2006 вновь представляет собой исходное изображение, а заштрихованные области 2008-2011 - области исходного изображения, содержащие выбранные блоки-кандидаты для дальнейшего анализа. Первым критерием 2012 для блоков-кандидатов является то, что они не располагаются вдоль периметра исходного изображения, где периметральные блоки - это те блоки, которые находятся между наружной пунктирной линией 2014 и внутренней пунктирной линией 2016 правого прямоугольника 2006, показанного на Фиг. 20. В периметральных блоках вероятно возникновение оптических дефектов, в том числе смаза и иных типов искажений. Ширина этой периметральной зоны может быть определена заранее и содержаться в виде значения для периметра или вводимого аргумента или может рассчитываться на основании интенсивности и цвета пикселей, а также их распределения. Второй критерий 2018 заключается в том, что блоки-кандидаты должны иметь отношение контурных пикселей к общему количеству пикселей в блоке, которое превосходило бы пороговое значение t. Количество контурных пикселей выбирается из бинаризованной версии блока. Следует отметить, что, как указано выше, серое изображение разбивается на блоки и размеры, места расположения и ориентации этих блоков используются для разбиения исходных и бинаризованных изображений, а также контурных изображений на соответствующие блоки. В альтернативных вариантах реализации можно разбить исходное изображение, а не серое изображение. Иными словами, блоки, созданные при исходной разбивке, представляют собой не только разбивку разбитого изображения, но и различные изображения полученные из разбитого изображения или связанные с ним. Как описано выше со ссылкой на Фиг. 18, контурные пиксели выбираются из общего количества пикселей в каждом блоке с учетом двоичных значений соседних пикселей. Третий критерий 2020 заключается в том, что в бинаризованной версии блоков блоки-кандидаты должны иметь отношение пикселей с текстовыми значениями к общему количеству пикселей менее порогового значения t. В обычном документе текст представлен темным цветом, а фон содержащих текст областей - светлым. Таким образом, двоичное значение для текстовых пикселей составляет 0 в содержащих текст областях. При этом в определенных текстовых документах символы имеют светлый цвет на темном фоне. В этом случае в бинаризованном блоке содержащей текст области двоичное значение текстовых пикселей составляет «1», если два двоичных значения равны «0» и «1», или «255», если два двоичных значения равны «0» и «255». Таким образом, третий критерий 2020 указывает на то, что отношение текстовых пикселей к общему количеству пикселей в блоке должно быть меньше порогового значения, поскольку в обычных содержащих текст областях большинство пикселей являются фоновыми пикселями. Окончательный критерий 2022 заключается в том, что контраст для блока-кандидата в исходном изображении должен быть больше порогового значения t. Содержащие текст блоки в содержащих текст областях исходного изображения обычно имеют относительно высокий контраст с цветом текста, а их интенсивность обычно достаточно сильно отличается от фонового цвета и интенсивности. Четыре критерия-2012, 2018, 2020 и 2022 - для выбора блоков-кандидатов для последующего анализа предназначены для выбора блоков и оптически устойчивых содержащих текст областей в исходном и производном изображении.
1
1
1
i
2
2
2
1
2
На Фиг. 21 представлено определение количества резких пикселей (num_sharp) и количества контурных пикселей (num_edge) в блоке исходного изображения и производных изображений. Для вычисления количества резких пикселей (num_sharp) в блоке используется первый порог t. Пиксели в блоке контурного изображения со значениями интенсивности свыше порогового значения t считаются резкими пикселями. Порог t выбирается путем снижения порога со значения 255 до тех пор, пока сумма количества резких пикселей во всех блоках контурного изображения, соответствующих рассматриваемому блоку исходного изображения, не станет больше или равной количеству контурных пикселей, рассчитанных по бинаризованной версии блока исходного изображения 2102. Таким образом, на Фиг. 21 рассматривается отдельный блок - блок i исходного изображения. Соответствующие блоки четырех контурных изображений 2104-2107 изображены в центральной колонке на Фиг. 21, под которой изображен соответствующий бинаризованный серый блок i 2108. Количество контурных пикселей в бинаризованном сером блоке i 2108 используется для определения значения порога t. Второй порог (t) используется для вычисления количества контурных пикселей в каждом блоке контурного изображения 2104-2107. Существует множество способов для вычисления порога t. При одном способе для t назначается значение, равное указанной доле t. Например, один из методов для расчета t заключается в следующем:
,
2
i
i
1
2
где w<1. Как вариант, порог t может быть вычислен как величина, пропорциальная константе дисперсии шума σ для блока i в исходном изображении. Дисперсия σ для блока исходного изображения i может быть определена методами машинного обучения или на основе гистограммы для расчета дисперсии шума. Как показано на Фиг. 21, для расчета количества резких пикселей в заданном блоке i количество резких пикселей в каждом соответствующем блоке контурного изображения рассчитывается путем установления порогов на основе порога t. Количество резких пикселей в каждом блоке контурного изображения затем складывается для определения количества резких пикселей в блоке i. Например, на Фиг. 21 после применения порогов рассчитывается количество резких пикселей в каждом из четырех контурных блоков 2104-2107 в виде значений  2114,  2115,  2116 и  2117. Эти значения затем складываются вместе для получения количества резких пикселей в блоке i. Аналогичным образом порог t используется для каждого блока контурного изображения 2104-2107, соответствующего блоку i для создания количества контуров в каждом из соответствующих блоков контурного изображения  2120,  2121,  2122 и  2123. После этого эти значения складываются вместе для определения количества контурных пикселей в блоке. После этого вычисляется отношение резких пикселей к контурным пикселям как количество резких пикселей в блоке i, разделенное на количество контурных пикселей в блоке i. Очевидно, что суммирование количества резких пикселей и количества контурных пикселей, вычисленное с помощью применения порогов в блоках контурного изображения, соответствующих блоку i, может дать значение превышающее фактическое значение контурных и резких пикселей, но это только отношение накопленного счета резких и контурных пикселей в соответствующих блоках контурного изображения, рассчитываемых и использующихся для анализа.
3
4
i
5
На Фиг. 22-24 представлены блок-схемы, дополняющие описание и иллюстрацию первого варианта реализации раскрываемого в настоящем документе способа предварительного анализа резкости. Блок-схема, приведенная на Фиг. 22, продолжает блок-схему на Фиг. 19, начиная с обведенной буквы, как описано выше. На этапе 2202 для набора переменных textBlocks присваивается пустое множество значение. После этого в цикле  для этапов 2204-2210 из блоков серого изображения выбираются блоки-кандидаты и добавляются к набору переменных textBlocks, при этом в наборе переменных textBlocks после завершения цикла for этапов 2204-2210 содержатся блоки-кандидаты, выбранные с помощью описанных критериев со ссылкой на Фиг. 20. Каждый блок i серого изображения рассматривается в цикле  для этапов 2204-2210. Если рассматриваемый блок i находится в области периметра серого изображения, как определено на этапе 2205, блок i не добавляется к набору блоков-кандидатов textBlocks и потокам управления на этапе 2210. Если количество контурных пикселей, рассчитанное для бинаризованной версии блока i в цикле  для этапов 1912-1915 на Фиг. 19 и разделенное на общее количество пикселей в блоке i, меньше или равно пороговому значению t в соответствии с определением на этапе 2206, то блок i не добавляется к набору блоков-кандидатов, а поток управления переходит к этапу 2210. Если количество пикселей с текстовым значением, разделенное на количество пикселей в блоке, больше или равно пороговому значению t в соответствии с определением на этапе 2207, то блок i не добавляется к набору блоков-кандидатов, а поток управления переходит к этапу 2210. Если контраст C, блока i, рассчитанный для исходного изображения, меньше или равна пороговому значению t в соответствии с определением на этапе 2208, то блок i не добавляется к набору блоков-кандидатов, а поток управления переходит к этапу 2210. На этапе 2209 блок i добавляется к набору блоков-кандидатов, поскольку блок i выполнил все ограничения, указанные выше со ссылкой на Фиг. 20 и представленные на этапах 2206-2208 на Фиг. 22.
x
x
y
y
-x
y
x
x
y
y
-x
y
1
2
На Фиг. 23 приводится продолжение блок-схемы на Фиг. 22 - отношение общего количества резких пикселей к контурным пикселям для каждого из четырех контурных изображений k, k,, k, и k,, вычисляется в цикле  для этапов 2302-2309. Цикл  этапов 2302-2309 во внешнем контуре учитывает каждое контурное изображение k, k,, k, и k,. На этапе 2303 количество резких пикселей и количество контурных пикселей рассматриваемого контурного изображения k в массиве num_sharp и массиве num_edges устанавливается на 0. Затем во внутреннем цикле  на этапах 2304-2307 учитывается каждый блок i из блоков-кандидатов, содержащихся в рассматриваемом наборе textBlocks. На этапе 2305 используется порог t для расчета количества резких пикселей в блоке i, и это количество резких пикселей добавляется для рассматриваемого контурного изображения num_sharp[k]. На этапе 2306 рассчитывается количество контурных пикселей в рассматриваемом блоке i контурного изображения k по порогу t и добавляется к количеству контурных пикселей для контурного изображения knum_edges[k]. После обработки всех блоков-кандидатов во внутреннем цикле  этапов 2304-2307 для рассматриваемого контурного изображения k значение резкости для контурного изображения k рассчитывается как количество резких пикселей, поделенное на количество контурных пикселей для контурного изображения k на этапе 2308, при этом рассчитанное значение хранится в массиве sharpness для контурного изображения k.
6
На Фиг. 24 представлены окончательные блок-схемы, иллюстрирующие реализацию раскрываемого в настоящем документе способа предварительного анализа резкости. На этапе 2402 массив резкости (sharpness array), который включает рассчитанную резкость для каждого контурного изображения, сортируется по значениям в порядке возрастания. Если отношение максимального значения резкости к минимальному значению резкости превосходит порог t, как определено на этапе 2404, то на этапе 2405 возвращается значение минимальной резкости для любого из контурных изображений как оценка резкости для исходного изображения. В этом случае искажение изображения, вероятно, будет результатом смаза за счет движения. В противном случае на этапе 2406 локальной переменной sum присваивается значение 0. Затем в цикле  этапов 2408-2410 значения резкости для контурного изображения суммируются. Наконец, значение, сохраненное в локальной переменной sum, делится на количество контурных изображений, 4, а результат деления возвращается в виде оценки резкости для исходного изображения на этапе 2412. В этом случае искажение изображения, вероятно, будет результатом недостаточной фокусировки.
Далее подведен итог по первой реализации описанного в настоящем документе способа предварительного анализа резкости. В способ вводится исходное цифровое изображение. Из исходного цифрового изображения формируются соответствующие серое и бинаризованное изображения. Также из серого изображения создаются четыре контурных изображения путем свертки с четырьмя ядрами дифференциальных операторов. Исходное изображение разделяется на блоки, и эти блоки рассматриваются во всех производных изображениях: серых, бинаризованных и контурных изображениях. Иными словами, в заданном изображении заданный блок содержит пиксели с одинаковыми индексами пикселей во всех производных изображениях, а также в исходном изображении. С помощью величины контраста, рассчитанной для каждого блока исходного изображения, и количества пикселей в каждом блоке, рассчитанного для исходного серого изображения, выбирается набор блоков-кандидатов для последующего анализа. Блоки-кандидаты используются для определения отношения резких пикселей к количеству контурных пикселей для каждого из контурных изображений. Эти отношения, называемые значениями «резкости», затем используются для выбора окончательного значения резкости для исходного изображения. Окончательное значение резкости представляет собой минимальное значение резкости, рассчитанное для любого из контурных изображений, или среднее значение резкости из четырех контурных изображений.
Естественно, для первой реализации может существовать широкий ряд альтернативных реализаций и вариаций. Например, любое из множества пороговых значений, описанных со ссылкой на блок-схемы, представленные на Фиг. 15, 19 и 22-24, может быть рассчитано или указано другим способом. Несмотря на то, что в описанном выше варианте реализации создаются и используются четыре контурных изображения, в альтернативных вариантах реализации может использоваться большее или меньшее количество контурных изображений. Возможны отклонения в вычислении различных вычисленных значений, описанных со ссылкой на блок-схемы, при этом способ предварительного анализа резкости должен быть вычислительно-эффективным для возможности его исполнения в режиме реального времени для ряда различных целей, например для предварительной оценки изображений, отображаемых в видоискателе или на ЖК-дисплее перед захватом изображения мобильными устройствами получения изображений. Именно по этой причине ядра малого размера используются для получения контурных изображений путем свертки, и для определения контурных пикселей у которых оцениваются значения интенсивности соседних пикселей. Более того, количество более медленных и более сложных арифметических операций, в том числе умножение, возведение в квадрат, извлечение квадратного корня, минимизируется, благодаря чему обеспечивается вычислительная эффективность.
На Фиг. 25-30 представлен второй вариант реализации раскрываемого в настоящем документе способа предварительного анализа резкости. На Фиг. 25 представлены операции дилатации и эрозии, выполняемые путем свертки ядер размером 3×3 или соседних пикселей с бинаризованным изображением. В операции свертки ядро накладывается на пиксель изображения и его окрестность. В случае дилатации соответствующий пиксель в расширенном (дилатированном) изображении получает максимальное значение пикселя, расположенного под ядром или его окрестности, а при операции эрозии соответствующий пиксель в эродированном изображении получает минимальное значение пикселя, расположенного ниже ядра или его окрестности. Эффект дилатации обычно увеличивает размер темных признаков при более светлом фоне, а эффект эрозии сокращает размер темных признаков на белом фоне бинаризованного изображения. На Фиг. 25 бинаризованное изображение 2502 представляет собой квадратное изображение с белым фоном 2504 и более мелкий квадратный черный признак 2506. При операции расширения 2508 создается расширенное изображение 2510 с увеличенным размером центрального черного признака 2512. На третьем представлении изображения 2514 показана заштрихованная область изображения 2516, на которой изначально белые пиксели на бинаризованном изображении 2502 сменились на черные пиксели в результате операции дилатации. Аналогичным образом на эродированном изображении 2518 центральный черный признак сократился в размере 2520. В четвертом представлении изображения 2522 штриховка используется для иллюстрации области 2524 эродированного изображения, на которой содержатся пиксели, которые теперь стали белыми, но исходно были черными в исходном бинаризованном изображении. В альтернативном варианте реализации способа предварительного анализа резкости применяется дилатация или эрозия или оба этих приема для формирования областей пикселей, например области 2516 и 2524 на Фиг. 25, на которых значения пикселей изменяются в результате операций дилатаци и эрозии. Эти пиксели представляют пиксели, ранее расположенные на контуре интенсивности или рядом с ним в исходном изображении.
На Фиг. 26-30 представлены блок-схемы, иллюстрирующие альтернативный вариант реализации раскрываемого в настоящей заявке способа предварительного анализа резкости. На Фиг. 26-30 описывается логика, заменяющая блок-схему 23 в первой описанной реализации предварительного анализа резкости. Иными словами, при замене Фиг. 26-30 на Фиг. 23 создается альтернативная реализация, описанная на Фиг. 15, 19, 22, 26-30 и 24. В сущности, при альтернативной реализации применяются различные методы для вычисления значения резкости каждого из контурных изображений.
Начиная с Фиг. 26 на этапе 2602 оператор дилатации, описанный выше со ссылкой на Фиг. 25, свертывается с бинаризованным изображением для образования расширенного (дилатированного) изображения. На этапе 2604 оператор эрозии свертывается с бинаризованным изображением для формирования эродированного изображения, что также описано выше со ссылкой на Фиг. 25. На этапе 2606 формируется фильтр контуров-кандидатов для выбора в качестве контуров-кандидатов тех пикселей, которые изменили значения при переходе от серого бинаризованного изображения к расширенному изображению и (или) которые изменили значение в эродированном изображении по отношению к серому бинаризованному изображению. Иными словами, на Фиг. 25 контуры-кандидаты - это те пиксели, которые лежат в одной из областей 2516 и 2524 или в обеих этих областях и представляют изменения значений при расширении и эрозии. В цикле  этапов 2608-2610 всем массивам num_sharp и num_edges задается значение 0.
1
2
Далее на Фиг. 27 во внешнем цикле  этапов 2702-2710 рассматривается каждый блок из набора содержащих текст блоков-кандидатов, содержащихся в наборе, на который ссылается заданная переменная textBlocks. На этапе 2703 применяется фильтр контуров-кандидатов, созданный на этапе 2606 на Фиг. 26, для получения исходного набора кандидатов из рассматриваемого блока i. Затем во внутреннем цикле  этапов 2704-2708 для каждого соответствующего блока i в контурных изображениях формируется набор кандидатов резких пикселей и набор кандидатов контурных пикселей. На этапе 2705 для пикселей в рассматриваемом блоке контурного изображения создается логическая схема, при этом они соответствуют исходным кандидатам, созданным на этапе 2703. Пиксели с интенсивностью менее порогового значения не принимаются к рассмотрению. На этапе 2706 набор кандидатов резких пикселей рассматриваемого контурного блока, называемый «k_sharp_candidates», выбирается из пикселей, оставшихся после этапа 2705 за счет применения порога t. Аналогичным образом на этапе 2707 выбирается набор кандидатов резких пикселей рассматриваемого контурного блока с применением порога t для пикселей, оставшихся после этапа 2705. После завершения внутреннего цикла  для этапов 2705-2708 подготавливается набор резких кандидатов и контурных кандидатов для каждого из блоков, соответствующих рассматриваемому блоку i в каждом из контурных изображений. Затем на этапе 2709 вызывается подпрограмма «резкость и контур» для обработки наборов пикселей-кандидатов, сформированных во внутреннем цикле  этапов 2704-2708.
На Фиг. 28 показана блок-схема для подпрограммы «резкость и контур», вызываемой на этапе 2709 на Фиг. 27. Во внешнем цикле  этапов 2802-2812 рассматривается каждый пиксель из набора исходных кандидатов, сформированных на этапе 2703 на Фиг. 27. На этапе 2803 все значения в двух массивах sharp и edge устанавливаются на 0. Затем во внутреннем цикле  этапов 2804-2810 рассматриваемый пиксель оценивается в каждом содержащем этот пиксель блоке контурного изображения. Если рассматриваемый пиксель не соответствует пикселю с максимальным значением рядом с ним в пределах рассматриваемого блока контурного изображения, как определено на этапе 2805, то пиксель более не рассматривается, а поток управления переходит к этапу 2810 для определения того, будет ли выполнена следующая итерация во внутреннем цикле  этапов 2804-2810. Если рассматриваемый пиксель является одним из кандидатов резких пикселей для рассматриваемого контурного изображения, как определено на этапе 2806, то значение пикселя помещается в элементе из массива sharp для рассматриваемого контурного изображения на этапе 2807, а если рассматриваемые пиксели находятся в наборе кандидатов контурных пикселей в рассматриваемом блоке контурного изображения в соответствии с определением на этапе 2808, то значение пикселя помещается в элемент массива edge, соответствующий рассматриваемому контурному изображению. Таким образом, в цикле  этапов 2804-2810 пиксель считается потенциально резким или контурным, только если рассматриваемый пиксель имеет максимальное значение в своем окружении в пределах содержащего пиксель блока контурного изображения. На этапе 2811 вызывается подпрограмма «обновление».
На Фиг. 29 показана блок-схема для подпрограммы «обновление», вызываемой на этапе 2811 на Фиг. 28. На этапе 2902 локальным переменным best_sharp, top_sharp, best_edge и top_edge задается значение -1. Затем в цикле for этапов 2904-2913 значение рассматриваемого пикселя в четырех контурных блоках оценивается для выбора контурного блока, в котором пиксель является резким пикселем с высочайшим значением (при наличии), и контурного блока, в котором пиксель является контурным пикселем с высочайшим значением (при наличии). Количество резких пикселей для контурного изображения, содержащего выбранный контурный блок, в котором пиксель имеет высочайшее значение для резкого пикселя, обновляется на этапе 2911, а количество контурных пикселей для контурного изображения, содержащего выбранный контурный блок, в котором пиксель имеет высочайшее значение для контурного пикселя, обновляется на этапе 2913. Иными словами, каждый пиксель может быть добавлен к общему количеству резких пикселей только для одного блока контурного изображения и может быть добавлен к общему количеству контурных пикселей только для одного блока контурного изображения. На этапе 2905, когда значение рассматриваемого пикселя в рассматриваемом блоке контурного изображения превышает значение, сохраненное в локальной переменной best_sharp, в соответствии с определением на этапе 2905, локальная переменная best_sharp обновляется до значения рассматриваемого пикселя в рассматриваемом блоке контурного изображения, а локальной переменной top_sharp присваивается значение рассматриваемого контурного изображения. На этапе 2907, когда значение рассматриваемого пикселя в рассматриваемом блоке контурного изображения превышает значение, сохраненное в локальной переменной best_edge, в соответствии с определением на этапе 2907, локальная переменная best_edge обновляется до значения рассматриваемого пикселя в рассматриваемом блоке контурного изображения, а локальной переменной top_edge на этапе 2908 присваивается значение рассматриваемого контурного изображения. После завершения цикла for для этапов 2904-2909, если значение локальной переменной top_sharp не равно -1, как определено на этапе 2910, то количество резких пикселей в контурном изображении, указываемое текущим значением top_sharp, прирастает на этапе 2911. Если на этапе 2912 значение, сохраненное в локальной переменной top_sharp, не равно -1, то на этапе 2913 количество резких пикселей в контурном изображении, указываемое текущим значением локальной переменной top_sharp, прирастает.
На Фиг. 30 показана блок-схема, продолжающая блок-схему на Фиг. 26. Блок-схема на Фиг. 30 содержит цикл  для этапов 3002-3004, в котором вычисляются значения показателя резкости для каждого контурного изображения как отношение количества резких пикселей к количеству контуров в контурном изображении. Это вычисление значений показателей резкости для каждого контурного изображения выполняется для окончательного определения значения резкости для исходного изображения на Фиг. 24, как описано выше.
Подводя итог, описанный выше альтернативный вариант реализации со ссылками на Фиг. 25-30 использует другой способ для вычисления значений показателя резкости контурных изображений. При этом способе в каждом блоке изображения и в контурных изображениях выбирается исходный набор пикселей-кандидатов из пикселей, которые изменяют значение при дилатации и эрозии соответствующего блока бинаризованного изображения. Эти исходные пиксели-кандидаты затем оцениваются в каждом блоке контурного изображения, соответствующем блоку исходного изображения, который содержит пиксель-кандидат. Пиксель-кандидат должен иметь высочайшее значение в окружении в пределах рассматриваемого контурного изображения, чтобы он мог быть определен как резкий пиксель или контурный пиксель в контурном изображении. Более того, обновляется не более одного контурного изображения исходя из значения пикселя относительно количества резких пикселей, и только одно контурное изображение обновляется на основе значения пикселя по отношению к количеству контурных пикселей.
Так же как и в первом варианте реализации, для второго варианта реализации существует множество возможных отклонений, включая тип операторов, используемых для дилатации и эрозии и размер окрестности для оценки того, имеет ли пиксель максимальное значение в окружении в пределах контурного изображения.
На Фиг. 31 представлена структурная схема компьютерной системы высокого уровня, например компьютерной системы, в которой применяется раскрываемый способ предварительного анализа резкости для получения метрики пригодности для последующей обработки изображения. Мобильные устройства получения изображений, включая смартфоны и цифровые камеры, могут быть включены в схему аналогичным образом, а также содержать процессоры, память и внутренние шины. Знакомым с современной наукой и технологиями будет понятно, что программы или подпрограммы управления, содержащие машинные команды, которые хранятся в физической памяти устройства под управлением процессора, представляют компонент управления для устройства и являются настолько же физическими, осязаемыми и важными, как и любой другой компонент электромеханического устройства, включая устройства захвата изображений. Компьютерная система содержит один или несколько центральных процессоров (ЦП) 3102-3105, один или более электронных модулей памяти 3108, взаимосвязанных с ЦП через шину подсистемы ЦП/память 3110 или несколько шин, первый мост 3112, который соединяет шину подсистемы ЦП/память 3110 с дополнительными шинами 3114 и 3116, либо другие виды средств высокоскоростного соединения, в том числе множественные высокоскоростные последовательные линии. Эти шины или последовательные линии, в свою очередь, соединяют ЦП и память со специализированными процессорами, такими как графический процессор 3118, а также с одним или более дополнительными мостами 3120, взаимосвязанными с высокоскоростными последовательными линиями или несколькими контроллерами 3122-3127, например с контроллером 3127, который предоставляет доступ к различным типам запоминающих устройств большой емкости 3128, а также электронным дисплеям, устройствам ввода-вывода и другим подобным компонентам и вычислительным ресурсам.
В ряде различных типов систем, включая системы обработки изображений, для вычисления расчетного уровня точности или расчетного уровня неточности для обработки изображения, связанного с вычисленным значением резкости, может использоваться значение резкости, создаваемое описанными выше вариантами реализации способа предварительного анализа резкости. Значение резкости наряду с дополнительными промежуточными значениями, вычисленными способом предварительного анализа резкости, может вводиться в различные типы классификаторов, например классификатор случайного леса, для определения расчетной точности или неточности для обработки изображения или может вводиться в регрессор, обученный на основе базы данных сфотографированных документов различных типов, наряду с фактическими точностями или неточностями, полученными при применении к ним процессов получения изображений. В определенных вариантах реализации ввод в классификатор или обученный регрессор содержит значения резкости для каждого из контурных изображений, вычисленную контрастность, количество фрагментов текста, отношение текстовых пикселей к общему количеству пикселей в бинаризованном изображении и иные подобные вычисленные значения. В классификатор или регрессор может быть введена дополнительная информация с учетом статистики по размеру признаков текстовых символов в содержащих текст областях документа и иных статистических данных, вычисленных для опознанных символов.
Хотя настоящее изобретение описывается на примере конкретных вариантов реализации, предполагается, что оно не будет ограничено только этими вариантами. Специалистам в данной области техники будут очевидны возможные модификации в пределах сущности настоящего изобретения. Например, любые из множества различных параметров реализации и проектирования, в том числе модульная организация, язык программирования, аппаратная платформа, структуры управления, структуры данных и прочие параметры реализации и проектирования, могут варьироваться для получения альтернативных вариантов реализации настоящего способа предварительного анализа резкости.
Следует понимать, что представленное выше описание раскрытых вариантов осуществления предоставлено для того, чтобы дать возможность любому специалисту в данной области повторить или применить настоящее описание. Специалистам в данной области техники будут очевидны возможные модификации представленных вариантов реализации, при этом общие принципы, представленные здесь, без отступления от сущности и объема настоящего изобретения могут быть применены в рамках других вариантов реализации. Таким образом, подразумевается, что настоящее изобретение не ограничено представленными здесь вариантами реализации. Напротив, в его объем входят все возможные варианты реализации, согласующиеся с раскрываемыми в настоящем документе принципами и новыми отличительными признаками.