RU2628172C1 - Method and system for determining expanded contours on digital images - Google Patents
Method and system for determining expanded contours on digital images Download PDFInfo
- Publication number
- RU2628172C1 RU2628172C1 RU2016124833A RU2016124833A RU2628172C1 RU 2628172 C1 RU2628172 C1 RU 2628172C1 RU 2016124833 A RU2016124833 A RU 2016124833A RU 2016124833 A RU2016124833 A RU 2016124833A RU 2628172 C1 RU2628172 C1 RU 2628172C1
- Authority
- RU
- Russia
- Prior art keywords
- contour
- gradient
- pixel
- digital image
- map
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/181—Segmentation; Edge detection involving edge growing; involving edge linking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
- G06T7/41—Analysis of texture based on statistical description of texture
- G06T7/44—Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
Description
ОБЛАСТЬ ИЗОБРЕТЕНИЯFIELD OF THE INVENTION
Настоящий документ относится к обработке изображений и, в частности, способам и системам для определения контуров на цифровых изображениях, включая криволинейные контуры, которые, в частности, применяются для определения контуров на цифровых изображениях при подготовке к различным типам последующей автоматизированной обработки цифрового изображения, включая оптическое распознавание символов.This document relates to image processing and, in particular, to methods and systems for determining the contours of digital images, including curved contours, which, in particular, are used to determine the contours of digital images in preparation for various types of subsequent automated processing of digital images, including optical character recognition.
УРОВЕНЬ ТЕХНИКИBACKGROUND
Печатные документы на естественном языке до сих пор являются широко распространенным средством коммуникации между людьми, в организациях и используются для донесения информации до ее потребителей. С появлением повсеместно используемых мощных вычислительных ресурсов, включая персональные вычислительные ресурсы, реализованные в смартфонах, планшетах, ноутбуках и персональных компьютерах, а также с распространением более мощных вычислительных ресурсов облачных вычислительных сервисов, центров обработки данных и корпоративных серверов организаций и предприятий, шифрование и обмен информацией на естественном языке все более часто выполняются в виде электронных документов. Печатные документы по своей сути представляют собой изображения, в то время как электронные документы содержат последовательности цифровых кодов символов и знаков на естественном языке. Поскольку электронные документы имеют перед печатными документами преимущества по стоимости, возможностям передачи и рассылки, простоте редактирования и изменения, а также по надежности хранения, за последние 50 лет развилась целая отрасль, поддерживающая способы и системы преобразования печатных документов в электронные. Компьютерные способы и системы оптического распознавания символов совместно с электронными сканерами обеспечивают надежное и экономичное получение изображений печатных документов и компьютерную обработку получаемых цифровых изображений, содержащих текст, для создания электронных документов, соответствующих печатным. Дизайнеры, разработчики, производители и поставщики вычислительных способов и систем оптического распознавания символов постоянно ищут новые способы, системы и подсистемы, которые эффективно реализуют множество различных типов автоматизированных процессов, используемых при подготовке цифровых изображений к автоматизированному оптическому распознаванию символов.Printed documents in natural language are still a widespread means of communication between people in organizations and are used to convey information to its consumers. With the advent of ubiquitous powerful computing resources, including personal computing resources implemented in smartphones, tablets, laptops and personal computers, as well as with the spread of more powerful computing resources of cloud computing services, data centers and corporate servers of organizations and enterprises, encryption and exchange of information in natural language are increasingly performed in the form of electronic documents. Printed documents are inherently images, while electronic documents contain sequences of digital codes of characters and signs in a natural language. Since electronic documents have advantages over printed documents in terms of cost, transfer and distribution capabilities, ease of editing and modification, as well as storage reliability, an entire industry has developed over the past 50 years that supports methods and systems for converting printed documents into electronic ones. Computer methods and optical character recognition systems in conjunction with electronic scanners provide reliable and economical acquisition of images of printed documents and computer processing of digital images containing text to create electronic documents corresponding to printed ones. Designers, developers, manufacturers and suppliers of computing methods and optical character recognition systems are constantly looking for new methods, systems and subsystems that effectively implement many different types of automated processes used in the preparation of digital images for automated optical character recognition.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
Настоящий документ относится к автоматизированным способам и системам, контролируемым с помощью различных ограничений и параметров, которые позволяют выявлять на цифровых изображениях контуры, в том числе криволинейные контуры. Некоторые из этих параметров ограничивают определение контуров теми контурами, в которых локальная кривизна контура не превышает пороговую локальную кривизну, и теми контурами, которые перпендикулярны к градиентам яркости, по крайней мере, пороговых значений модулей. Описанные в текущем документе способы и системы определяют на цифровом изображении затравочные точки, дополняют отрезки линий, исходящие от затравочных точек и выступающие в качестве начального контура, совпадающего с затравочной точкой, после чего итеративно дополняют начальный контур, добавляя отрезки линии к одному или обоим концам контура. Обнаруженные контуры выборочно объединяются и фильтруются, чтобы определить набор актуальных контуров для использования в последующих задачах обработки изображений.This document relates to automated methods and systems controlled by various constraints and parameters, which allow the detection of contours in digital images, including curved contours. Some of these parameters limit the definition of contours to those contours in which the local curvature of the contour does not exceed the threshold local curvature, and to those contours that are perpendicular to the brightness gradients of at least threshold module values. The methods and systems described in the current document determine the seed points in a digital image, supplement the line segments emanating from the seed points and act as an initial contour coinciding with the seed point, and then iteratively supplement the initial contour by adding line segments to one or both ends of the contour . Detected contours are selectively combined and filtered to determine the set of relevant contours for use in subsequent image processing tasks.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
На Фиг. 1 приведена схема архитектуры вычислительной системы верхнего уровня, подобной той вычислительной системе, на которой реализованы раскрываемые в текущем документе способы определения контуров.In FIG. 1 is a diagram of the architecture of a top-level computing system similar to that computing system on which the contour detection methods disclosed in the current document are implemented.
На Фиг. 2A-D показаны два типа портативных устройств полученияIn FIG. 2A-D show two types of portable receiving devices
изображений.images.
На Фиг. 3 показано типовое изображение с цифровым кодированием.In FIG. 3 shows a typical digitally encoded image.
На Фиг. 4 показан один из вариантов цветовой модели RGB.In FIG. 4 shows one of the options for the RGB color model.
На Фиг. 5 показана другая цветовая модель «Оттенок-насыщенность-светлота» («HSL»).In FIG. 5 shows another hue-saturation-lightness (HSL) color model.
На Фиг. 6 показано формирование полутонового или бинарного изображения из цветного изображения.In FIG. 6 shows the formation of a grayscale or binary image from a color image.
На Фиг. 7 показано дискретное вычисление градиента яркости.In FIG. 7 shows a discrete calculation of the brightness gradient.
На Фиг. 8 показан градиент, рассчитанный для точки на непрерывнойIn FIG. 8 shows the gradient calculated for a point on a continuous
поверхности.surface.
На Фиг. 9 показан ряд примеров градиента яркости.In FIG. 9 shows a number of examples of the brightness gradient.
На Фиг. 10 показано применение ядра к изображению.In FIG. 10 shows the application of the kernel to an image.
На Фиг. 11 показана свертка изображения.In FIG. 11 shows a convolution of the image.
На Фиг. 12 показан некоторый пример ядра и методики обработки изображений на основе ядра.In FIG. 12 shows some example of a kernel and kernel-based image processing techniques.
На Фиг. 13-14 показан общий подход к определению контура, используемый в раскрываемых в данном документе способах и системах.In FIG. 13-14 show a general approach to determining the contour used in the methods and systems disclosed herein.
На Фиг. 15-26 показан частный вариант реализации раскрываемых в настоящем документе способов и систем.In FIG. 15-26 show a particular embodiment of the methods and systems disclosed herein.
На Фиг. 27A-G показан с использованием блок-схем и представлений структур данных один из вариантов реализации раскрываемых в данном документе способов определения контуров на цифровых изображениях, используемых во множестве различных устройств, приборов и вычислительных систем в качестве начального шага различных типов процессов автоматической обработки цифровых изображений.In FIG. 27A-G shows, using flowcharts and representations of data structures, one embodiment of the disclosed methods for determining the contours of digital images used in many different devices, instruments, and computing systems as an initial step in various types of digital image automatic processing processes.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИDESCRIPTION OF PREFERRED EMBODIMENTS
Настоящий документ относится к способам и системам определения контуров, включая криволинейные контуры, на цифровых изображениях для использования в последующих задачах обработки цифровых изображений, включая оптическое распознавание символов. В первом подразделе ниже приводится краткое введение в архитектуру вычислительной системы, цифровые изображения и способы обработки цифровых изображений со ссылками на Фиг. 1-12. В следующем подразделе приводится подробное описание раскрываемых в настоящем документе способов и систем со ссылками на Фиг. 13-26. В итоговом подразделе приводится одна из возможных реализаций способов и систем настоящего изобретения, которая иллюстрируется блок-схемами со ссылками на Фиг. 27A-G.This document relates to methods and systems for determining contours, including curved contours, in digital images for use in subsequent digital image processing tasks, including optical character recognition. The first subsection below provides a brief introduction to the architecture of a computing system, digital images, and digital image processing methods with reference to FIG. 1-12. The following subsection provides a detailed description of the methods and systems disclosed herein with reference to FIG. 13-26. The final subsection provides one possible implementation of the methods and systems of the present invention, which is illustrated in block diagrams with reference to FIG. 27A-G.
ОбзорOverview
На Фиг. 1 приведена схема архитектуры вычислительной системы верхнего уровня, подобной той вычислительной системе, на которой реализованы раскрываемые в текущем документе способы определения контуров. Мобильные устройства получения изображений, включая смартфоны и цифровые камеры, могут быть представлены схематически аналогичным образом и также могут содержать процессоры, память и внутренние шины. Знакомым с современной наукой и технологиями будет понятно, что программы или подпрограммы управления, содержащие машинные команды, которые хранятся в физической памяти устройства под управлением процессора, представляют компонент управления для устройства и являются настолько же физическими, материальными и важными, как и любой другой компонент электромеханического устройства, включая устройства получения изображений. Компьютерная система содержит один или более центральных процессоров (ЦП) 102-105, один или более электронных модулей памяти 108, взаимосвязанных с ЦП через шину подсистемы ЦП/памяти 110 или несколько шин, первый мост 112, который соединяет шину подсистемы ЦП/памяти 110 с дополнительными шинами 114 и 116, либо другие виды средств высокоскоростного соединения, в том числе множественные высокоскоростные последовательные соединения. Эти шины или последовательные соединения, в свою очередь, соединяют ЦП и память со специализированными процессорами, такими как графический процессор 118, а также с одним или более дополнительными мостами 120, взаимосвязанными с высокоскоростными последовательными соединениями или несколькими контроллерами 122-127, например с контроллером 127, который предоставляет доступ к различным типам запоминающих устройств большой емкости 128, электронным дисплеям, устройствам ввода и другим подобным компонентам, подкомпонентам и вычислительным ресурсам.In FIG. 1 is a diagram of the architecture of a top-level computing system similar to that computing system on which the contour detection methods disclosed in the current document are implemented. Mobile imaging devices, including smartphones and digital cameras, can be represented schematically in the same way and can also contain processors, memory and internal buses. Those familiar with modern science and technology will understand that control programs or routines containing machine instructions stored in the physical memory of the device under the control of the processor represent a control component for the device and are as physical, material and important as any other electromechanical component devices, including imaging devices. A computer system comprises one or more central processing units (CPUs) 102-105, one or more
На Фиг. 2A-D показаны два типа портативных устройств получения изображений. На Фиг. 2А-С показана цифровая камера 202. Цифровая камера содержит объектив 204, кнопку спуска затвора 205, нажатие которой пользователем приводит к получению цифрового изображения, которое соответствует отраженному свету, поступающему в объектив 204 цифровой камеры. С задней стороны цифровой камеры, которая видна пользователю, когда он держит камеру при съемке цифровых изображений, находится видоискатель 206 и жидкокристаллический дисплей видоискателя 208. С помощью видоискателя 206 пользователь может напрямую просматривать создаваемое объективом 204 камеры изображение, а с помощью жидкокристаллического дисплея 208 - просматривать электронное отображение создаваемого в настоящей момент объективом изображения. Обычно пользователь камеры настраивает фокус камеры с помощью кольца фокусировки 210, смотря при этом через видоискатель 206 или рассматривая изображение на жидкокристаллическом дисплее 208 для выбора требуемого изображения перед нажатием на кнопку 105 спуска затвора с целью цифрового получения изображения и сохранения изображения в электронной памяти цифровой камеры.In FIG. 2A-D show two types of portable image acquisition devices. In FIG. 2A-C, a
На Фиг. 2D показан типовой смартфон с передней стороны 220 и задней стороны 222. На задней стороне 222 имеется объектив 224 цифровой камеры и датчик приближения и (или) цифровой экспонометр 226. На передней стороне смартфона 220 под управлением приложения может отображаться получаемое изображение 226, аналогично работе жидкокристаллического дисплея 208 видоискателя цифровой камеры, а также сенсорная кнопка 228 спуска затвора, при прикосновении к которой происходит получение цифрового изображения и сохранение его в памяти смартфона.In FIG. A typical smartphone is shown in 2D on the
На Фиг. 3 показано типовое изображение с цифровым кодированием. Кодированное изображение включает двумерный массив пикселей 302. На Фиг. 3 каждый небольшой квадрат, например, квадрат 304, является пикселем, который обычно определяется как наименьшая часть детализации изображения, для которой предусматривается цифровая кодировка. Каждый пиксель представляет собой место, обычно представленное парой цифровых значений, соответствующих значениям на осях прямоугольной систем координат х и у, 306 и 308 соответственно. Таким образом, например, пиксель 304 имеет координаты х, у (39,0), а пиксель 312 - координаты (0,0). В цифровой кодировке пиксель представлен числовыми значениями, указывающими на то, как область изображения, соответствующая пикселю, представляется при печати, отображается на экране компьютера или ином дисплее. Обычно для черно-белых изображений для представления каждого пикселя используется единичное значение в интервале от 0 до 255 с числовым значением, соответствующем уровню серого, на котором передается пиксель. В общепринятом понимании значение «0» соответствует черному цвету, а значение «255» - белому. Для цветных изображений может применяться множество различных числовых значений, указывающих на цвет. В одной из стандартных цветовых моделей, показанной на Фиг. 3, каждый пиксель связан с тремя значениями или координатами (r, g, b), которые указывают на яркость красного, зеленого и синего компонента цвета, отображаемого в соответствующей пикселю области.In FIG. 3 shows a typical digitally encoded image. The encoded image includes a two-dimensional array of
На Фиг. 4 показан один из вариантов цветовой модели RGB. Тремя координатами основных цветов (r, g, b) представлен весь спектр цветов, как было показано выше со ссылкой на Фиг. 3. Цветовая модель может считаться соответствующей точкам в пределах единичного куба 402, в котором трехмерное цветовое пространство определяется тремя осями координат: (1) r 404; (2) g 406; и (3) b 408. Таким образом, координаты отдельного цвета находятся в интервале от 0 до 1 по каждой из трех цветовых осей. Например, чистый синий цвет максимально возможной яркости соответствует точке 410 по оси b с координатами (0,0,1). Белый цвет соответствует точке 412 с координатами (1,1,1,), а черный цвет - точке 414, началу системы координат с координатами (0,0,0).In FIG. 4 shows one of the options for the RGB color model. The three coordinates of the primary colors (r, g, b) represent the entire spectrum of colors, as shown above with reference to FIG. 3. The color model can be considered corresponding to the points within the
На Фиг. 5 показана другая цветовая модель «Оттенок-насыщенность-светлота» («HSL»). В этой цветовой модели цвета содержатся в трехмерной бипирамидальной призме 500 с шестигранным сечением. Оттенок (h) связан с доминантной длиной волны излучения света, воспринимаемого наблюдателем. Значение оттенка находится в интервале от 0° до 360°, начиная с красного цвета 502 в точке 0°, проходя через зеленый 504 в точке 120°, синий 506 в точке 240°, и заканчивая красным 502 в точке 660°. Насыщенность (s), находящаяся в интервале от 0 до 1, обратно связана с количеством белого и черного цвета, смешанного при определенной длине волны или оттенке. Например, чистый красный цвет 502 является полностью насыщенным при насыщенности s=1,0, в то же время розовый цвет имеет насыщенность менее 1,0, но более 0,0, белый цвет 508 является полностью ненасыщенным с s=0,0, а черный цвет 510 также является полностью ненасыщенным с s=0,0. Полностью насыщенные цвета находятся на периметре среднего шестигранника, содержащего точки 502, 504 и 506. Шкала оттенков серого проходит от черного 510 до белого 508 по центральной вертикальной оси 512, представляющей полностью ненасыщенные цвета без оттенка, но с различными пропорциями черного и белого. Например, черный 510 содержит 100% черного и не содержит белого, белый 508 содержит 100% белого и не содержит черного, а исходная точка 513 содержит 50% черного и 50% белого. Светлота (), представленная центральной вертикальной осью 512, указывает на уровень освещенности в интервале от 0 для черного 510, при =0,0, до 1 для белого 508, при =1,0. Для произвольного цвета, представленного на Фиг. 5 точкой 514, оттенок определяется как угол θ 516, между первым вектором из исходной точки 513 к точке 502 и вторым вектором из исходной точки 513 к точке 520, в которой вертикальная линия 522, проходящая через точку 514, пересекает плоскость 524, включающую исходную точку 513 и точки 502, 504 и 506. Насыщенность представлена отношением расстояния представленной точки 514 от вертикальной оси 512 d' к длине горизонтальной линии, проходящей через точку 520 от исходной точки 513 к поверхности бипирамидальной призмы 500, d. Светлота представлена вертикальным расстоянием от представленной точки 514 до вертикального уровня точки 510, представляющей черный цвет. Координаты конкретного цвета в цветовой модели HSL (h, s, ) могут быть получены на основе координат цвета в цветовой модели RGB (r, g, b) следующим образом:In FIG. 5 shows another hue-saturation-lightness (HSL) color model. In this color model, colors are contained in a three-dimensional
где значения r, g и b соответствуют яркости красного, зеленого и синего первичных цветов, нормализованных на интервале [0, 1]; Cmax представляет нормализованное значение яркости, равное максимальному значению из r, g и b; Cmin представляет собой нормализованное значение яркости, равное минимальному значению из r, g и b; а Δ определяется как Cmax - Cmin.where the values of r, g and b correspond to the brightness of red, green and blue primary colors, normalized to the interval [0, 1]; C max represents the normalized brightness value equal to the maximum value of r, g and b; C min is the normalized brightness value equal to the minimum value of r, g and b; and Δ is defined as C max - C min .
На Фиг. 6 показано формирование полутонового или бинарного изображения из цветного изображения. В цветном изображении каждый пиксель обычно связан с тремя значениями: а, b и с 602. Разные цветовые модели используют для представления конкретного цвета разные значения а, b и с. Полутоновое изображение содержит для каждого пикселя только одно значение яркости 604. Бинарное изображение является частным случаем полутонового изображения, которое имеет только два значения яркости «0» и «1». Обычно серые изображения могут иметь 256 или 65 536 разных значений яркости для каждого пикселя, представленного байтом или 16-битным словом соответственно. Таким образом, чтобы преобразовать цветное изображение в полутоновое, три значения а, b и с цветных пикселей необходимо преобразовать в одно значение яркости для полутонового или бинарного изображения. На первом шаге три значения цвета а, b и с, преобразуются в значение яркости L, обычно в интервале [0,0, 1,0] 606. Для определенных цветовых моделей к каждому из цветовых значений 608 применяется функция, и результаты суммируются 610, давая значение яркости. В других цветовых моделях каждое цветовое значение умножается на коэффициент, и полученные результаты суммируются 612, давая значение яркости. В некоторых цветовых системах одно из трех цветовых значений является, фактически, значением 614 яркости. Наконец, в общем случае к трем цветовым значениям 616 применяется функция, которая дает значение яркости. Затем значение яркости квантуется 618, позволяя получить значение яркости оттенков серого в требуемом интервале, обычно [0, 255] для полутоновых изображений и (0,1) для бинарных изображений.In FIG. 6 shows the formation of a grayscale or binary image from a color image. In a color image, each pixel is usually associated with three values: a, b, and 602. Different color models use different values of a, b, and c to represent a particular color. A grayscale image contains for each pixel only one
На Фиг. 7 показано дискретное вычисление градиента яркости. На Фиг. 7 показан небольшой квадратный участок 702 цифрового изображения. Каждая клетка, например, клетка 704, представляет пиксель, а числовое значение в клетке, например, значение «106» в клетке 704, представляет яркость серого цвета. Допустим, пиксель 706 имеет значение яркости «203». Этот пиксель и четыре смежных с ним пикселя показаны на крестообразной схеме 708 справа от участка 702 цифрового изображения. Рассматривая левый 710 и правый 712 соседние пиксели, изменение значения яркости в направлении х, Δх можно дискретно вычислить как:In FIG. 7 shows a discrete calculation of the brightness gradient. In FIG. 7 shows a small
Рассматривая нижний 714 и верхний 716 соседние пиксели, изменение значения яркости в вертикальном направлении Δу можно вычислить как:Considering the lower 714 and upper 716 adjacent pixels, the change in the brightness value in the vertical direction Δy can be calculated as:
Вычисленное значение Δх является оценкой частного дифференциала непрерывной функции яркости относительно оси х в центральном пикселе 706:The calculated Δx value is an estimate of the partial differential of the continuous brightness function with respect to the x axis in the central pixel 706:
Частный дифференциал функции F относительно координаты у в центральном пикселе 706 рассчитывается по Δу:The partial differential of the function F relative to the coordinate у in the
Градиент яркости в пикселе 706 может быть рассчитан следующим образом:The brightness gradient in the
где i и j представляют собой единичные векторы в направлениях х и у. Модуль вектора градиента и угол вектора градиента далее рассчитываются следующим образом:where i and j are unit vectors in the x and y directions. The modulus of the gradient vector and the angle of the gradient vector are further calculated as follows:
Функция atan2(y, х) определена как: (1) arctan(y/x), где х>0; (2) arctan(y/x)+π, где х<0 и у≥0; (3) arctan(y/x) - π, где х<0 и у<0; (4) π/2, где х=0 и у>0; (5) -π/2, где х=0 и у<0; и (6) не определено, где х=0 и у=0. Направление вектора 720 градиента яркости и угол θ 722 показаны наложенными на участок 702 цифрового изображения на Фиг. 7. Следует учесть, что точки вектора градиента расположены в направлении резкого увеличения яркости от пикселя 706. Модуль вектора градиента указывает на ожидаемое увеличение яркости на единицу приращения в направлении градиента. Конечно же, поскольку градиент оценивается исключительно с помощью дискретных операций, в вычислении, показанном на Фиг. 7, направление и модуль градиента представлены исключительно оценками.The function atan2 (y, x) is defined as: (1) arctan (y / x), where x> 0; (2) arctan (y / x) + π, where x <0 and y≥0; (3) arctan (y / x) - π, where x <0 and y <0; (4) π / 2, where x = 0 and y> 0; (5) -π / 2, where x = 0 and y <0; and (6) it is not defined where x = 0 and y = 0. The direction of the
На Фиг. 8 показан градиент, рассчитанный для точки на непрерывной поверхности. На Фиг. 8 представлена непрерывная поверхность z=F(x,y). Непрерывная поверхность 802 строится относительно трехмерной декартовой системы координат 804 и имеет похожую на шляпу форму. Для отображения непрерывного множества точек с постоянным значением z на поверхности могут быть построены контурные линии, например, контурная линия 806. В конкретной точке 808 на контуре, построенном на поверхности, вектор градиента 810, рассчитанный для точки, расположен перпендикулярно к контурной линии и точкам в направлении максимально резкого наклона вверх на поверхности от точки 808.In FIG. Figure 8 shows the gradient calculated for a point on a continuous surface. In FIG. Figure 8 shows the continuous surface z = F (x, y). The
Обычно вектор градиента яркости направлен перпендикулярно границе яркости, при этом чем больше модуль градиента, тем острее граница, т.е. тем больше разность в яркости пикселей с двух сторон границы. На Фиг. 9 показан ряд примеров градиента яркости. Каждый пример, например, пример 902, содержит центральный пиксель, для которого рассчитывается градиент, и четыре прилегающих пикселя, которые используются для расчета Δх и Δу. Наиболее резкие границы яркости показаны в первой колонке 904. В этих случаях модуль градиента составляет не менее 127,5, а в третьем случае 906-180,3. Относительно небольшая разность на границе, показанная в примере 908, создает градиент с модулем всего 3,9. Во всех случаях вектор градиента расположен перпендикулярно очевидному направлению границы яркости, проходящего через центральный пиксель.Usually, the luminance gradient vector is directed perpendicular to the luminance boundary, and the larger the gradient modulus, the sharper the boundary, i.e. the greater the difference in brightness of pixels on both sides of the border. In FIG. 9 shows a number of examples of the brightness gradient. Each example, for example, example 902, contains a central pixel for which the gradient is calculated, and four adjacent pixels, which are used to calculate Δx and Δy. The sharpest boundaries of brightness are shown in the
Многие методы обработки изображений включают применение ядер к сетке пикселей, составляющей изображение. На Фиг. 10 показано применение ядра к изображению. На Фиг. 10 небольшая часть изображения 1002 представлена в виде прямоугольной сетки пикселей. Небольшое ядро 3×3 k 1004 показано ниже изображения I 1002. Ядро применяется к каждому пикселю изображения. В случае ядра 3×3, такого как ядро k 1004, показанное на Фиг. 10, для пикселей на границе можно использовать модифицированное ядро, также изображение можно раздвинуть, скопировав значения яркости для пикселей границы в описывающий прямоугольник из пикселей, чтобы иметь возможность применять ядро к каждому пикселю исходного изображения. Чтобы применить ядро к пикселю изображения, ядро 1004 численно накладывается на окрестности пикселя, к которому применяется 1006 ядро с такими же размерами в пикселях, как у ядра. Применение ядра на окрестностях пикселя, к которому применяется ядро, позволяет получить новое значение для пикселя в преобразованном изображении, полученном применением ядра к пикселям исходного изображения. Для некоторых типов ядер новое значение пикселя, к которому применено ядро, In, вычисляется как сумма произведений значения ядра и пикселя, соответствующего значению 1008 ядра. В других случаях новое значение пикселя является более сложной функцией окрестности для пикселя и ядра 1010. В некоторых других типах обработки изображений новое значение пикселя генерируется функцией, применяемой к окрестностям пикселя без использования ядра 1012.Many image processing methods include applying cores to the pixel grid that makes up the image. In FIG. 10 shows the application of the kernel to an image. In FIG. 10, a small portion of the
На Фиг. 11 показана свертка изображения. Обычно ядро свертки последовательно применяется к каждому пикселю изображения, в некоторых случаях к каждому пикселю изображения, не принадлежащему границе, или, в других случаях, для создания новых значений преобразованного изображения. На Фиг. 11 ядро 3×3, выделенное штриховкой 1102, было последовательно применено к первой строке пикселей, не принадлежащих границе в изображении 1104. Каждое новое значение, созданное в результате применения ядра к пикселю в исходном изображении 1106, было перенесено в преобразованное изображение 1107. Другими словами, ядро было последовательно применено к исходным окрестностям каждого пикселя в исходном изображении для создания преобразованного изображения. Этот процесс называется «сверткой» и слабо связан с математической операцией свертки, которая выполняется путем умножения изображений, к которым применено преобразование Фурье с последующим обратным преобразованием Фурье по произведению.In FIG. 11 shows a convolution of the image. Typically, the convolution kernel is applied sequentially to each pixel of the image, in some cases to each pixel of the image that does not belong to the border, or, in other cases, to create new values for the converted image. In FIG. 11, the 3 × 3 core, highlighted by hatching 1102, was sequentially applied to the first row of pixels that do not belong to the border in
На Фиг. 12 показан некоторый пример ядра и методики обработки изображений на основе ядра. В процессе, называемом «медианной фильтрацией», значения яркости в окрестности исходного изображения 1202 были отсортированы 1204 по возрастанию модулей, и новым значением 1208 для соответствующей окрестности преобразованного изображения было выбрано среднее значение 1206. Гауссово сглаживание и очистка от шумов включают применение гауссова ядра 1210 ко всем окрестностям 1214 исходного изображения для создания значения для центрального пикселя окрестности 1216 в соответствующей окрестности обработанного изображения. Значения в гауссовом ядре рассчитываются по выражению, например, такому, как выражение 1218, и используются для создания дискретного представления гауссовой поверхности над окрестностью, образованной вращением кривой нормального распределения вокруг вертикальной оси, совпадающей с центральным пикселем. Горизонтальная и вертикальная компоненты градиента изображения для каждого пикселя могут быть получены применением соответствующих ядер градиента Gx 1220 и Gy 1222. Были указаны только три из множества различных типов методик обработки изображения на основе свертки.In FIG. 12 shows some example of a kernel and kernel-based image processing techniques. In a process called “median filtering,” luminance values in the vicinity of the
Способы и системы, к которым относится настоящий документMethods and systems to which this document relates
На Фиг. 13-14 показан общий подход к определению контура, используемый в раскрываемых в данном документе способах и системах. На Фиг. 13 показано определение контура, выполняемое на примере цифрового изображения в соответствии с раскрываемыми в настоящем документе способами и системами. Цифровое изображение 1302 представляет собой фотографию стола 1304, расположенного рядом со стеной 1306 с обоями, в которой имеется окно 1308, через которое виден внешний пейзаж. В этом примере цифровое изображение проходит автоматическую обработку для определения интересующих нас физических объектов. В первой серии шагов обработки цифрового изображения с помощью способов определения контуров, которые описываются в настоящем изобретении, определяются контуры, которые, скорее всего, будут соответствовать контурам и границам интересующих физических объектов, расположенные на границах яркости, имеющихся на цифровом изображении. По результатам определения контуров создается карта контуров 1310, в которой содержатся контуры, соответствующие границам стола 1304, контуры, соответствующие границам документа, лежащего на столе 1312, и контуры, соответствующие части оконной рамы 1314. Другие нежелательные контуры, соответствующие границам яркости, не были определены из-за ограничений и значений параметров, которые управляют определением контура или были отфильтрованы на карте контуров. После этого могут быть выполнены дополнительные шаги по обработке цифрового изображения для определения контуров, также можно использовать дополнительную информацию, содержащуюся в исходном изображении 1302, для опознания и классификации изображенных физических объектов, включая стол, документ и оконную раму. Как было сказано выше, раскрываемые в настоящем документе способы и системы определения контуров подразумевают различные ограничения и параметры для управления определением контуров, чтобы идентифицировать контуры для конкретных целей. В частности, в показанном на Фиг. 13 примере существует множество границ яркости на исходном изображении, соответствующих текстуре пунктирных линий на обоях на стене 1306 за столом. Может быть задан параметр, регулирующий минимальную длину выявляемых контуров, который может иметь значение, исключающее текстуру обоев. Ограничения и значения параметров определяются, в частности, последующими шагами обработки цифровых изображений, которые предполагается применять к цифровому изображению.In FIG. 13-14 show a general approach to determining the contour used in the methods and systems disclosed herein. In FIG. 13 illustrates the definition of a contour performed by the example of a digital image in accordance with the methods and systems disclosed herein. The
На Фиг. 14 показан общий подход к определению контуров с использованием раскрываемых в настоящем документе способов и систем. На первом этапе 1402 исходное изображение 1302 обрабатывается с целью определения кандидатов начальных (затравочных) точек, из которых могут быть построены и продлены контуры. Результатом первого этапа может являться карта затравочных точек 1404. На втором этапе 1406 начальные границы продлеваются в двух направлениях из каждой затравочной точки для создания начальных контуров 1408. На заключительном этапе 1410 начальные контуры продлеваются и объединяются для создания итогового множества контуров, затем они могут быть отфильтрованы для создания множества определенных контуров 1412, которое может использоваться для последующих задач обработки изображения. Как подробно описано ниже, каждый из этапов 1402, 1406 и 1410, показанных на Фиг. 14, включает многочисленные процессы и подпроцессы. Эти процессы и подпроцессы связаны с генерацией и хранением множества различных типов промежуточных результатов и данных в памяти и на запоминающих устройствах. В различных вариантах реализации способов и систем настоящего изобретения могут использоваться различные типы представления данных и промежуточных результатов. Например, в одном варианте реализации промежуточный результат может быть представлен двумерной картой с элементами, соответствующими пикселям на цифровом изображении, в другом варианте реализации он может быть представлен сохраненными структурами данных со ссылками на исходное изображение или промежуточные карты.In FIG. Figure 14 shows a general approach to loop detection using the methods and systems disclosed herein. In a
На Фиг. 15-26 показан частный вариант реализации раскрываемых в настоящем документе способов и систем. На Фиг. 15-26 приведены подробные пошаговые иллюстрации, способствующие пониманию блок-схем, а также приводится описание блок-схем с учетом того, какой вариант реализации описан в последующем подразделе.In FIG. 15-26 show a particular embodiment of the methods and systems disclosed herein. In FIG. Figures 15-26 provide detailed step-by-step illustrations that help to understand the flowcharts, and also describe the flowcharts taking into account which implementation option is described in the next subsection.
На Фиг. 15 показан первый этап сжатия. На Фиг. 15 исходное полученное цифровое изображение 1502 имеет высоту 1536 пикселей и ширину 2048 пикселей. Разность между высотой и шириной составляет 512 пикселей 1504. Исходное изображение 1502, сжатое с различными коэффициентами сжатия, позволяет получить сжатые изображения 1506 и 1507. Первое сжатое изображение 1506 сжимается с коэффициентом сжатия и, в результате, имеет высоту 768 пикселей и ширину 1024 пикселей. Разность между шириной и высотой сжатого изображения составляет 256 пикселей 1508. Второе сжатое изображение сжимается с коэффициентом сжатия , при этом разность между шириной и высотой второго сжатого изображения составляет 128 пикселей 1510. В описываемом варианте реализации изобретения исходное изображение сжимается с одним или более коэффициентами сжатия для создания одного или более соответствующих сжатых изображений, на которых разность между шириной и высотой изображения ниже порогового числа пикселей, например, ниже 300 пикселей. Для сжатия цифрового изображения могут использоваться различные способы. В одном простом способе для создания сжатых изображений из исходного изображения удаляются равноудаленные строки и столбцы пикселей. При более сложных способах могут выполняться различные способы сглаживания, сдвига и интерполяции для предотвращения непреднамеренного удаления необходимых деталей или их искажения при сжатии.In FIG. 15 shows a first compression step. In FIG. 15, the original obtained
На Фиг. 16 показан следующий этап обработки при реализации процесса определения контуров. Исходное изображение или сжатая версия исходного изображения 1602 сглаживается 1604 с помощью медианного фильтра или свертки с применением гауссова ядра с целью создания сглаженного изображения 1606. Затем к каждому цифровому каналу сглаженного изображения применяются ядра градиента Gx и Gy для создания трех пар карт 1608-1613 горизонтальной компоненты градиента и вертикальной компоненты градиента. Например, ядро горизонтальной компоненты градиента, прошедшее свертку с красным каналом сглаженного изображения 1614, создает карту горизонтальной компоненты градиента для красного канала 1608. Понятие «Gi(X)» используется как для указания на свертку ядра градиента в направлении i с цветовым каналом X изображения, так и для указания на карту градиента, создаваемую при свертке. При формировании и сохранении в памяти шести карт компонент градиента 1608-1613 или, как вариант, при их оперативном формировании модули компонент градиента затем используются для создания «карты градиента» 1616. Каждый элемент карты градиента, например, элемент i 1618, содержит модуль градиента 1620 и угол направления градиента 1622. Небольшая блок-схема на Фиг. 16 показывает процесс формирования карты градиента. Сначала на этапе 1624 для каждого цветового канала вычисляется сумма абсолютных значений компонент градиента и сохраняется в переменных Ri, Gi и Bi. Если Ri превышает Gi, в соответствии с определением на этапе 1626, и если Ri превышает Bi, в соответствии с определением на этапе 1628, на этапе 1630 рассчитывается градиент для клетки или пикселя i с использованием компонент градиента для красного канала. Если Ri не превышает ни Gi, ни Bi, то на этапе 1632 определяется, является ли Bi больше Gi. Если Bi превышает Gi, то на этапе 1634 на основе компонент градиента синего канала рассчитывается модуль и направление градиента для клетки или пикселя i. В ином случае модуль и угол направления градиента рассчитываются по компонентам градиента зеленого канала на этапе 1636. Этот процесс, показанный на блок-схемах 1624, 1626, 1628, 1630, 1632, 1634 и 1636, повторяется для каждого пикселя или клетки i в сглаженном изображении 1606. Следует отметить, что в отдельных вариантах реализации свертка выполняется только для пикселей изображения внутри окрестностей пикселей, для которых возможно наложение ядра, при этом в создаваемой с помощью свертки карты будет меньшее количество столбцов и строк, чем в исходной карте. В других вариантах реализации все исходные изображения расширяются путем копирования, с тем, чтобы ядра могли быть применены ко всем пикселям или клеткам в изображении или для граничных пикселей и клеток используются модифицированные ядра. В связи с этим карта градиента 1616 представляет собой карту модулей и направлений градиентов для каждого пикселя или клетки сглаженного изображения, при этом градиент для каждого пикселя основан на цветовом канале сглаженного изображения, для которого сумма компонент градиента является максимальной.In FIG. 16 shows the next processing step in the implementation of the contour determination process. The original image or compressed version of the
На Фиг. 17 показано ядро подавления немаксимумов («ядро NMS»). Ядро 1702 NMS содержит три области: (1) центральный пиксель 1704; (2) непосредственная окрестность 1706; и (3) расширенная окрестность 1708. Применение ядра NMS для пикселей подразумевает такое наложение ядра NMS, чтобы область 1704 центрального пикселя ядра NMS накладывалась на пиксель, к которому применяется ядро. При наложении ядра решается, передается ли яркость пикселя, к которому применяется ядро, соответствующему пикселю или клетке итогового изображения или карте, или на итоговую карту или изображение передается значение яркости 0. Если яркость пикселя, находящегося под центральным пикселем ядра NMS, выше яркости пикселя, находящегося в непосредственной окрестности ядра NMS, и если яркость пикселя под областью центрального пикселя выше или равна яркости любого пикселя, лежащего в расширенной окрестности, то на итоговое изображение или карту передается значение яркости центрального пикселя. В ином случае на итоговое изображение или карту передается значение 0. Процесс принятия решений формально выражен 1710 на Фиг. 17. При свертке изображения или карты с ядром NMS для передачи на итоговое изображение или карту выбираются пиксели или клетки изображения или карты с максимальными локальными значениями яркости.In FIG. 17 shows a non-maximum suppression core (“NMS core”). The
На Фиг. 18 показаны дополнительные шаги процесса определения контура, приводящие к созданию карты точек, которая содержит указания на исходные пиксели, из которых начинаются контуры, что было описано выше со ссылкой на карту точек 1404 на Фиг. 14. Карта градиента 1802, сформированная в ходе описанного выше процесса со ссылкой на Фиг. 16, свертывается с ядром NMS для создания промежуточной карты точек 1804. Ядро NMS рассматривает компонент модуля градиента для каждой клетки карты градиента и передает модули максимальных локальных градиентов с карты градиента на промежуточную карту точек 1804. Далее к промежуточной карте точек применяется пороговая фильтрация 1806 для создания итоговой карты точек 1808, содержащей самые большие модули градиента, при этом все другие клетки содержат значение 0 в результате свертки с ядром NMS или установления порога. В некоторых вариантах реализации создается индекс 1810, содержащий отсортированные ссылки на исходные пиксели на карте точек для создания отсортированной карты точек 1812. Индекс сортируется по убыванию значений модуля, поэтому большая часть перспективных затравочных пикселей обрабатываются с более высоким приоритетом, чем менее перспективные затравочные пиксели. Следует отметить, что в альтернативных вариантах реализации может использоваться отсортированный массив структур данных, каждая из которых содержит координаты и модуль градиента для затравочного пикселя, а не сохраняет резервную карту точек. В качестве пикселей затравочных точек обычно используются пиксели, соответствующие самым явным границам яркости на цифровом изображении.In FIG. 18 shows additional steps of the contour determination process leading to the creation of a point map that contains indications of the source pixels from which the outlines begin, as described above with reference to the
При наличии карты точек, отсортированной карты точек или иной структуры данных, содержащей затравочные точки, процесс определения контуров продолжается как описано выше со ссылкой на карту или изображение 1408 на Фиг. 14 для начала построения контура от затравочных пикселей или точек. На Фиг. 19 показан общий процесс построения контура. Из заданного затравочного пикселя или точки на карте точек 1902 начальный контур может иметь одно из возможных направлений, показанных стрелками, например, стрелкой 1904. На этапе 1906 выбора исходного направления контура выбирается определенное направление для начального контура и создается вектор 1908 длины L, конец которого соответствует затравочному пикселю 1902, а направление - выбранному направлению. При этом начальный контур представляет собой отрезок с двумя конечными точками, соответствующими концу и началу построенного вектора. В приведенном ниже описании векторы также могут называться «отрезками», поскольку, как описано ниже, контур представлен последовательностью векторов «голова к хвосту». Эти элементы представления контура могут быть закодированы как векторы с начальной точкой, модулем или углом направления или в виде отрезков с координатами начальной и конечной точки отрезка.With a point map, a sorted point map, or other data structure containing seed points, the contour determination process continues as described above with reference to the map or
На Фиг. 20 представлен расчет величины проекции градиента пикселя р по вектору начального контура r, исходящего из затравочного пикселя или затравочной точки i. Как показано на Фиг. 20, предполагаемый исходный вектор r 2002 для контура, совпадающего с затравочным пикселем i 2004, рассматривается в процессе выбора направления начального контура. Пиксель р 2006 расположен вдоль вектора r 2002. Имеется вектор градиента 2008, связанный с пикселемр на карте градиента. Этот вектор градиента имеет угол направления θр 2010, который также присутствует на карте градиента. Угол 2012, θr, является углом направления для вектора r. Угол Ψ 2014 является углом между вектором градиента для пикселя р и вектором r 2002. Вектор pr 2016 является проекцией вектора градиента 2008 на вектор r 2002. В показанных на Фиг. 20 конструкциях угол Ψ легко рассчитывается 2018 на основе углов наклона θр и θr. Отношение модулей векторов pr и вектора градиента для пикселя р равно косинусу угла Ψ 2220. Таким образом, модуль вектора проекции pr вычисляется как произведение косинуса Ψ и модуля вектора градиента, исходящего из пикселя р 2222. Как вариант, для расчета модуля вектора проекции pr 2224 может использоваться скалярное произведение вектора градиента 2202 и вектора r. Замена результата 2222 на выражение скалярного произведения дает выражение для определения модуля вектора проекции pr 2226. Аналогичные конструкции могут быть сгенерированы для всех возможных относительных положений вектора градиента для пикселя р и начального вектора контура r.In FIG. 20 shows a calculation of the magnitude of the projection of the gradient of the pixel p from the vector of the initial contour r, originating from the seed pixel or seed point i. As shown in FIG. 20, the estimated
На Фиг. 21 показано создание промежуточных вычисляемых значений, которые используются в процессе выбора направлений границы для затравочных пикселей. На Фиг. 21 показан затравочный пиксель с координатами (х,у) 2102 вместе с кандидатом вектора начального контура 2104. Для кандидата вектора границы создаются два промежуточных результата 2108 и Н(х,у,r) 2110, где r является вектором 2104 и также называется направлением начальной границы, при этом фактически имеется в виду угол направления вектора r. Имеется 10 пикселей, включая затравочный пиксель 2102, которые находятся под вектором 2104, представляющим кандидата начального контура. Значение вычисляется как сумма модулей проекций векторов, связанных с пикселями i1-i10, разделенные на количество элементов множества пикселей под начальным контуром. H(х,у,r) представляет собой гистограмму 2112, на которой направление градиента пикселей под вектором начального контура представлено в виде бинов гистограммы. Как показано в выражении 2114, количество пикселей, зарегистрированных в каждом бине Hi гистограммы, соответствует количеству пикселей с направлением градиента в интервале представленных бином направлений. Бин 2116 с максимальным значением соответствует общему направлению градиента пикселей под начальным контуром. При правильном направлении начального контура направление вектора 2104 должно быть в целом перпендикулярно направлениям градиента пикселей под вектором 2104.In FIG. Figure 21 shows the creation of intermediate calculated values that are used in the process of selecting border directions for seed pixels. In FIG. 21 shows a seed pixel with coordinates (x, y) 2102 together with the candidate vector of the
На Фиг. 22 представлена блок-схема процесса выбора направления границы, в которой выбирается направление начального контура для затравочного пикселя. На этапе 2202 процесс получает координаты затравочного пикселя. На этапе 2204 происходит инициализация пустого множества кандидатов. Множество кандидатов является множеством структур данных кандидатов, каждое из которых включает направление r и значение . В цикле for этапов 2206-2213 рассматривается каждое из направлений r от 0° до 360°. Следует, опять же, отметить, что r в настоящем описании считается как вектором, так и направлением, где направление представляет собой направление ориентации вектора r. На этапе 2207 для рассматриваемого направления вычисляется гистограмма H(x,y,r). На этапе 2208 для бина с максимальным значением в H(х,у,r) устанавливается индекс j. На этапе 2209 определяется, является ли направление r перпендикулярным углу в диапазоне углов, соответствующих бину с максимальным значением и его ближайшим соседям. Если направление r является перпендикулярным углу в этом диапазоне, то на этапе 2210 определяется, превышает ли значение или число пикселей, назначенное бину с максимальным значением, пороговое значение В. Если да, то на этапе 2211 рассчитывается значение для рассматриваемого направления и, на этапе 2212, в множество кандидатов добавляется запись для рассматриваемого направления. После завершения цикла for этапов 2206-2213, если количество элементов в множестве кандидатов меньше 0, как определено на этапе 2214, то на этапе 2215 возвращается вектор со значением 0 для указания на то, что предпочтительное направление контура для затравочного пикселя не может быть установлено. В ином случае на этапе 2216 выбирается один кандидат из множества кандидатов с наибольшим значением . Если значение для выбранного кандидата превышает пороговое значение , как определено на этапе 2218, то на этапе 2220 возвращается направление r, содержащееся в выбранном кандидате. В противном случае на этапе 2215 возвращается нулевой вектор, указывающий на невозможность определения направления для затравочного пикселя. Таким образом, выбор исходного направления контура для затравочного пикселя включает выбор направления, согласованного с направлениями векторов градиента для пикселей в окрестности начального контура, когда в окрестности имеется консенсус относительно направления градиента.In FIG. 22 is a flowchart of a process for selecting a direction of a boundary in which a direction of an initial contour for a seed pixel is selected. At
Следует отметить, что в некоторых случаях бин гистограммы с максимальным значением будет отсутствовать. В основном в таких случаях способ потерпит неудачу из-за выбора порога на основе порогового значения В. В других случаях, при наличии бинов гистограммы с максимальными значениями, можно с учетом дополнительной информации или выбрать один из бинов гистограммы с максимальным значением как соответствующий направлению градиента для окрестности, или отказаться от определения направления, вернув вектор 0.It should be noted that in some cases the bin of the histogram with the maximum value will be absent. Basically, in such cases, the method will fail due to the choice of the threshold based on the threshold value B. In other cases, if there are histogram bins with maximum values, you can take into account additional information or select one of the histogram bins with the maximum value as corresponding to the gradient direction for neighborhood, or refuse to determine the direction by returning the
На Фиг. 23 и 24 представлен выбор направления для продления контура. Процесс выбора направления продления контура в целом аналогичен процессу выбора исходных направлений контура для затравочных пикселей, описанному выше со ссылкой на Фиг. 20-22. Однако в процессе продления контура следующий вектор длины L продлевается из конечного пикселя строящегося контура, а не путем построения двух векторов из затравочной точки в двух противоположных направлениях. На Фиг. 23 показан следующий вектор-кандидат 2302, продленный из конечного пикселя 2304 формируемого контура. В этом случае в качестве направлений кандидатов рассматриваются только направления с углом 2α 2306. Иными словами, следующий отрезок контура 2302 может быть наклонен относительно направления предыдущего уже существующего отрезка контура 2308 на угол α. В ином случае процесс выбора направления аналогичен процессу выбора направления для начальных векторов, соответствующих начальному контуру для затравочного пикселя.In FIG. 23 and 24 show the choice of direction for extending the contour. The process of selecting the direction of extending the contour is generally similar to the process of selecting the initial directions of the contour for the seed pixels described above with reference to FIG. 20-22. However, in the process of extending the contour, the next vector of length L is extended from the final pixel of the contour under construction, and not by constructing two vectors from the seed point in two opposite directions. In FIG. 23 shows the following
На Фиг. 25 показан процесс построения контура. Этот процесс начинается в затравочном пикселе 2502. Исходный вектор 2504 строится для образования начального контура с направлением, выбранным согласно приведенному выше описанию со ссылкой на Фиг. 20-22. Затем начальный вектор продлевается в каждом направлении за счет последовательного добавления продлевающих векторов, например, векторов 2506-2508 для каждого конца контура. Если направление следующего продления из конкретной конечной точки контура определить невозможно, то продление контура в этом направлении оканчивается в этой конечной точке.In FIG. 25 shows the process of constructing a contour. This process begins at the
На Фиг. 26 представлено соединение двух контуров для образования единого результирующего контура. На Фиг. 26 первый многосегментный контур 2602 заканчивается в конечной точке 2604, а второй многосегментный контур 2606 заканчивается в конечной точке 2608. Первый и второй контуры 2602 и 2606 могут представлять две дискретных и различных границы яркости в пределах изображения или могут представлять две части одной границы яркости с разрывом, разделяющим эти две части. В последнем случае обе части соединяются для формирования единого непрерывного контура. В процессе объединения оба контура продлеваются из соответствующих конечных точек, на что указывают пунктирные векторы 2610 и 2612, продолжающиеся из конечных отрезков 2614 и 2616 первого 2602 и второго 2606 контуров. В качестве направления продления может быть выбрано направление конечного отрезка каждого контура, включающего одну или две конечных точки, или может определяться путем использования аппроксимации, исходя из направлений n конечных отрезков каждого контура. Может использоваться множество различных способов, в том числе способы линейной регрессии, при которых конечная часть контуров выражается с помощью линейной и квадратичной или кубической аппроксимации, если конечные части контуров, по всей видимости, криволинейные. Продления в примере на Фиг. 26 пересекаются в точке 2620. Угол пересечения β 2622 и перпендикулярные расстояния d1 2624 и d2 2626 вычисляются, чтобы определить, следует ли объединять эти два контура. Если угол β не превышает порогового значения, и если минимальное из двух расстояний d1 и d2 не превышает минимальное расстояние, то строится связующий отрезок 2630 для объединения двух контуров с целью создания единого результирующего контура.In FIG. 26 shows the connection of two loops to form a single resulting loop. In FIG. 26, the first
Блок-схемыFlowcharts
В настоящем подразделе рассматривается серия блок-схем, которые иллюстрируют один из вариантов реализации раскрываемых в настоящем документе способов и систем. Эти блок-схемы частично основаны на рассмотренных ранее Фиг. 13-26, которые иллюстрируют многие процессы и подпроцессы, входящие в определение контура.This subsection discusses a series of flowcharts that illustrate one embodiment of the methods and systems disclosed herein. These flowcharts are based in part on the previously discussed FIGS. 13-26, which illustrate many of the processes and subprocesses that are part of the definition of the circuit.
На Фиг. 27A-G показан с использованием блок-схем и представлений структур данных один из вариантов реализации раскрываемых в данном документе способов определения контуров на цифровых изображениях, используемых во множестве различных устройств, приборов и вычислительных систем в качестве начального шага различных типов процессов автоматической обработки цифровых изображений.In FIG. 27A-G shows, using flowcharts and representations of data structures, one embodiment of the disclosed methods for determining the contours of digital images used in many different devices, instruments, and computing systems as an initial step in various types of digital image automatic processing processes.
На Фиг. 27А представлена блок схема процедуры «найти контуры», которая описывает один из вариантов реализации раскрываемого в данном документе способа определения контуров на цифровом изображении. На этапе 2702 происходит получение цифрового изображения, а также выделение и инициализация массива контуров из структур данных контуров. На этапе 2703 определяется минимальный коэффициент сжатия Cmin, необходимый для сжатия полученного изображения так, чтобы разница между высотой и шириной сжатого изображения была ниже указанного порогового числа пикселей. На этапе 2704 определяется максимальный используемый коэффициент сжатия Cmax. В цикле for этапов 2705-2707 итеративно вызывается подпрограмма «определить контуры» для сжатия исходного изображения с коэффициентом сжатия в интервале [Cmin, Cmax] и определения контуров в сжатом изображении. Количество сжатых изображений, сформированных в цикле for, может зависеть от параметризованной итерации интервала коэффициента сжатия, от размеров полученного цифрового изображения и от других факторов. В некоторых случаях формируется только одно сжатое изображение. В других случаях контуры определяются без сжатия на исходном изображении, если диспропорция размеров исходного изображения меньше порогового числа пикселей. На этапе 2708 вызывается подпрограмма «объединить определенные контуры» для совмещения контуров, выявленных в цикле for этапов 2705-2707. На этапе 2709 вызывается подпрограмма «выбрать итоговые контуры» для выбора итогового множества контуров в качестве идентифицированных контуров для использования в последующих процессах обработки цифрового изображения.In FIG. 27A is a flowchart of a “find outlines” procedure that describes one embodiment of a method for determining outlines in a digital image disclosed herein. At
На Фиг. 27В представлена структура данных, использующаяся в описанном варианте реализации. Структура данных контуров 2712 представляет собой массив данных контуров, каждый из которых включает массив cs 2713, в котором хранится начальная точка и конечная точка 2714 для индивидуальных контуров, выявленных в конкретном сжатом изображении или, в определенных случаях, исходном изображении. Помимо того, структура данных контуров содержит указание на количество выявленных контуров 2716 и ссылку 2717 на сжатое изображение или, в определенных случаях, на исходное изображение 2718, в котором определены контуры. Это, конечно же, только одна из возможных структур данных, используемых в одном из возможных способов для представления контуров, выявленных в одном или более цифровых изображениях.In FIG. 27B shows a data structure used in the described embodiment. The
На Фиг. 27С показана блок-схема подпрограммы «определить контуры», вызываемой на этапе 2706 на Фиг. 27А. На этапе 2720 принимается изображение (обычно сжатое изображение C) и ссылка на структуру данных контуров. На этапе 2721 устанавливаются значения для ряда параметров, которые управляют определением контуров. К ним относятся: (1) L, длина отрезков, используемых для построения контуров; (2) α, максимальный угол изгиба следующего отрезка по отношению к текущему, конечному отрезку контура; (3) h, количество бинов в гистограмме Н(х,у,r); (4) В, минимальное значение бина гистограммы с максимальным значением; (5) , минимальное значение начального отрезка; и (6) Re, радиус окрестности контура. Эти значения могут быть жестко заданы, поступать из файла конфигурации или указываться через интерфейс пользователя.In FIG. 27C shows a block diagram of a “determine contours” routine called in
На этапе 2722, полученное изображение С сглаживается, как описано выше со ссылкой на этап 1604 на Фиг. 16. В цикле for этапов 2723-2725 создаются карты градиента для каждого из трех цветовых каналов в сжатом изображении С, как описано выше со ссылкой на Фиг. 16. На этапе 2726 создаются карта градиента и карта точек с индексом (1802 и 1812 на Фиг. 18). В цикле for этапов 2727-2730, в карту градиента вносится запись для каждого пикселя i изображения С, как описано выше со ссылкой на Фиг. 16. На этапе 2731 к карте градиента применяется ядро NMS для формирования промежуточной карты точек (1804 на Фиг. 18). На этапе 2732 промежуточная карта точек фильтруется до 0 записей j, для которых модули градиента будут меньше порогового значения (1806 на Фиг. 18). На этапе 2733 на карте точек (1810 на Фиг. 18) создается отсортированный индекс. Наконец, на этапе 2734 вызывается подпрограмма «построить контуры» для построения контуров, совпадающих с некоторыми из затравочных пикселей, на которые указывает карта точек, созданная на этапах 2731-2733.At
На Фиг. 27D показана блок-схема подпрограммы «построить контуры», вызываемой на этапе 2734 на Фиг. 27С. На этапе 2736 подпрограмма получает сжатое изображение С, карту точек с индексом и ссылку на структуру данных контуров. В цикле for этапов 2737-2751 рассматриваются все затравочные точки на карте точек в порядке убывания значений модуля градиента, при этом используется индекс, связанный с картой точек. На этапе 2738 вызывается подпрограмма «выбрать направление границы для затравочной точки» с целью определения направления начального контура, включая совмещение построенного вектора с затравочной точкой. Следует отметить, что подпрограмма «выбрать направление границы для затравочной точки» описана выше со ссылкой на Фиг. 22. Если направление не возвращается, текущая итерация цикла for этапов 2737-2751 заканчивается, и рассматривается следующая затравочная точка. В противном случае на этапе 2740 из затравочной точки создается исходный вектор в соответствии с заданным направлением, как описано выше со ссылкой на Фиг. 19. Во внутреннем цикле for этапов 2741-2749 начальный контур продлевается в обоих направлениях через вызванную на этапе 2745 подпрограмму «выбрать направление границы для продления». Эта подпрограмма описана выше со ссылкой на Фиг. 24, а процесс построения контуров в целом описан выше со ссылкой на Фиг. 25. После завершения контура все затравочные точки в окрестности контура, определенной радиусом Re, удаляются с карты точек и из индекса для предотвращения инициации новых контуров в чрезмерной близости к установленному текущему контуру. Наконец, после завершения внешнего цикла for этапов 2737-2751, на этапе 2752 заполняется структура данных контура в массиве контуров.In FIG. 27D shows a block diagram of the construct contours subroutine called in
На Фиг. 27Е показана блок-схема подпрограммы «объединить определенные контуры», вызываемой на этапе 2708 на Фиг. 27А. На этапе 2754 размещается структура данных результатов и принимается ссылка на структуру данных контуры. В цикле for этапов 2756-2759 рассматриваются структура данных каждого контура в структуре данных контуров. Структура данных каждого контура в структуре данных контуров соответствует конкретному сжатому изображению или в определенных случаях исходному изображению. На этапе 2757 вызывается подпрограмма «соединить контуры» для объединения любых частей более длинных контуров, разделенных разрывом, как описано выше со ссылкой на Фиг. 26, и контуров, выявленных для рассматриваемого сжатого изображения. На этапе 2758 вызывается подпрограмма «изменить масштаб контуров» для изменения масштаба определенных в сжатом изображении контуров до масштаба исходного изображения. На этапе 2760 вызывается подпрограмма «выполнить слияние контуров» для слияния всех контуров, обнаруженных во всех сжатых изображениях, а на этапе 2761 производится объединение контуров, переданных в структуру данных результатов, путем вызова подпрограммы «соединить контуры». Следует отметить, что подпрограмма «соединить контуры» считается полиморфной и принимает ссылку на структуру данных контуров и на индекс сжатого изображения, как описано на этапе 2757, или принимает один аргумент, ссылающийся на структуру данных результатов.In FIG. 27E shows a block diagram of a “merge defined circuits” routine called up at
На Фиг. 27F показана блок-схема подпрограммы «соединить контуры», вызываемой на этапе 2757 на Фиг. 27. На этапе 2764 подпрограмма получает сжатое изображение С, использующееся в качестве индекса для структуры данных контуров, ссылка на которую также передается в подпрограмму. В цикле do-while этапов 2765-2773 объединяются пары контуров, выявленных в сжатом изображении С. На этапе 2766 локальной переменной прогресс присваивается значение false (ложь). На этапе 2767 для пары контуров с конечными точками на расстоянии D одна от другой выполняется поиск выявленных контуров. Следует отметить, что для D в определенных вариантах реализации могут быть заданы параметры. При обнаружении следующей пары в соответствии с определением на этапе 2768, на этапах 2769-2771 выполняется рассмотрение с учетом конечных точек и продлений двух контуров, которое рассматривалось выше со ссылкой на Фиг. 26, чтобы определить, следует ли объединять два контура. Если обнаружено, что два контура следует объединить, то на этапе 2772 локальная переменная прогресс получает значение true (истина), и два контура объединяются, как было рассмотрено выше со ссылкой на Фиг. 26. Один из исходных контуров пары удаляется, а другой изменяется, чтобы соответствовать двум объединенным контурам. Цикл do-while этапов 2766-2773 продолжает итерации до тех пор, пока локальная переменная прогресс принимает значение true (истина), как определено на этапе 2773.In FIG. 27F shows a block diagram of a connect loop routine called in
На Фиг. 27G показана блок-схема подпрограммы «выполнить слияние контуров», вызываемой на этапе 2760 на Фиг. 27Е. На этапе 2776 подпрограмма получает ссылку на структуру данных результатов и на структуру данных контуров. Затем в цикле do-while этапов 2777-2785 определенные на сжатом изображении контуры объединяются со структурой данных результатов. На этапе 2778 локальной переменной прогресс присваивается значение false (ложь). На этапе 2779 в определенных контурах на сжатом изображении выполняется поиск следующего контура, не совпадающего с любым контуром, уже имеющимся в структуре данных результатов, найденный контур сохраняется в структуре данных контуров. Если в соответствии с определением на этапе 2780 такой контур обнаружен, то на этапе 2781 определяются все контуры, совпадающие с найденным контуром среди контуров, определенных в сжатом изображении. На этапе 2782 выбирается лучший из этих контуров, который и добавляется к структуре данных результатов. Для выбора лучшего контура могут использоваться различные критерии, в том числе длина. Два контура могут считаться совпадающими, если они совместно используют количество пикселей, превышающее пороговое количество пикселей, если их совпадающая часть больше пороговой доли общего числа пикселей в контурах или при иных условиях. Затем, на этапе 2783 из структуры данных контуров удаляются изначально обнаруженный контур и совпадающие контуры. На этапе 2784 локальной переменной прогресс присваивается значение true (истина). Цикл do-while повторяется до тех пор, пока на этапе 2785 локальной переменной прогресс не будет присвоено значение false (ложь).In FIG. 27G shows a block diagram of the “perform contour merge” routine called in
Хотя настоящее изобретение описывается на примере конкретных вариантов реализации, предполагается, что оно не будет ограничено только этими вариантами реализации. Специалистам в данной области техники будут очевидны возможные модификации в пределах сущности настоящего изобретения. Например, любые из множества различных параметров реализации и проектирования, в том числе модульная организация, язык программирования, аппаратная платформа, структуры управления, структуры данных и прочие параметры реализации и проектирования могут варьироваться для получения альтернативных вариантов реализации способов и систем настоящего изобретения.Although the present invention is described using specific embodiments as an example, it is contemplated that it will not be limited only to these embodiments. Possible modifications within the spirit of the present invention will be apparent to those skilled in the art. For example, any of a variety of different implementation and design parameters, including modular organization, programming language, hardware platform, control structures, data structures, and other implementation and design parameters may vary to provide alternative implementations of the methods and systems of the present invention.
Следует понимать, что представленное выше описание вариантов реализации изобретения приведено для того, чтобы дать возможность любому специалисту в данной области техники воспроизвести или применить настоящее изобретение. Специалистам в данной области техники будут очевидны возможные модификации представленных вариантов реализации, при этом общие принципы, представленные здесь без отступления от сущности и объема настоящего изобретения, могут быть применены в рамках других вариантов реализации. Таким образом, подразумевается, что настоящее изобретение не ограничено представленными здесь вариантами реализации. Напротив, в его объем входят все возможные варианты реализации, согласующиеся с раскрываемыми в настоящем документе принципами и новыми отличительными признаками.It should be understood that the above description of embodiments of the invention is provided in order to enable any person skilled in the art to reproduce or apply the present invention. Possible modifications to the presented embodiments will be apparent to those skilled in the art, while the general principles presented herein without departing from the spirit and scope of the present invention can be applied within other embodiments. Thus, it is understood that the present invention is not limited to the embodiments presented here. On the contrary, it includes all possible implementation options that are consistent with the principles and new distinguishing features disclosed in this document.
Claims (110)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2016124833A RU2628172C1 (en) | 2016-06-22 | 2016-06-22 | Method and system for determining expanded contours on digital images |
| US15/195,759 US10503997B2 (en) | 2016-06-22 | 2016-06-28 | Method and subsystem for identifying document subimages within digital images |
| US15/195,726 US10387744B2 (en) | 2016-06-22 | 2016-06-28 | Method and system for identifying extended contours within digital images |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2016124833A RU2628172C1 (en) | 2016-06-22 | 2016-06-22 | Method and system for determining expanded contours on digital images |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2628172C1 true RU2628172C1 (en) | 2017-08-15 |
Family
ID=59641791
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2016124833A RU2628172C1 (en) | 2016-06-22 | 2016-06-22 | Method and system for determining expanded contours on digital images |
Country Status (1)
| Country | Link |
|---|---|
| RU (1) | RU2628172C1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2787072C1 (en) * | 2019-06-11 | 2022-12-28 | Цзянсу Вокэйшнл Колледж Оф Агрикальче Энд Форестри | Method for promptly detecting surface defects of crown caps based on image processing |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6690842B1 (en) * | 1996-10-07 | 2004-02-10 | Cognex Corporation | Apparatus and method for detection and sub-pixel location of edges in a digital image |
| RU2325044C1 (en) * | 2007-02-21 | 2008-05-20 | Московский государственный университет инженерной экологии | Gradient method of object contour extraction at halftone raster image matrix |
| RU2383925C2 (en) * | 2007-10-22 | 2010-03-10 | Государственное образовательное учреждение высшего профессионального образования Курский государственный технический университет | Method of detecting contours of image objects and device for realising said method |
| US8295607B1 (en) * | 2008-07-09 | 2012-10-23 | Marvell International Ltd. | Adaptive edge map threshold |
-
2016
- 2016-06-22 RU RU2016124833A patent/RU2628172C1/en active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6690842B1 (en) * | 1996-10-07 | 2004-02-10 | Cognex Corporation | Apparatus and method for detection and sub-pixel location of edges in a digital image |
| RU2325044C1 (en) * | 2007-02-21 | 2008-05-20 | Московский государственный университет инженерной экологии | Gradient method of object contour extraction at halftone raster image matrix |
| RU2383925C2 (en) * | 2007-10-22 | 2010-03-10 | Государственное образовательное учреждение высшего профессионального образования Курский государственный технический университет | Method of detecting contours of image objects and device for realising said method |
| US8295607B1 (en) * | 2008-07-09 | 2012-10-23 | Marvell International Ltd. | Adaptive edge map threshold |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2787072C1 (en) * | 2019-06-11 | 2022-12-28 | Цзянсу Вокэйшнл Колледж Оф Агрикальче Энд Форестри | Method for promptly detecting surface defects of crown caps based on image processing |
| RU2821377C1 (en) * | 2023-05-29 | 2024-06-21 | Федеральное государственное автономное образовательное учреждение высшего образования "Уральский федеральный университет имени первого Президента России Б.Н. Ельцина" | Method of tracking objects on video |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2680765C1 (en) | Automated determination and cutting of non-singular contour of a picture on an image | |
| RU2628266C1 (en) | Method and system of preparing text-containing images to optical recognition of symbols | |
| US10387744B2 (en) | Method and system for identifying extended contours within digital images | |
| US8134578B2 (en) | Hybrid importance maps for content aware digital image resizing | |
| US10366469B2 (en) | Method and system that efficiently prepares text images for optical-character recognition | |
| US8374428B2 (en) | Color balancing for partially overlapping images | |
| CN112581629A (en) | Augmented reality display method and device, electronic equipment and storage medium | |
| US12124534B2 (en) | Method for generating a plurality of sets of training image data for training machine learning model | |
| CN109636890B (en) | Texture fusion method and device, electronic equipment, storage medium and product | |
| US10902657B2 (en) | Jointly editing related objects in a digital image | |
| CN107154030A (en) | Image processing method and device, electronic equipment and storage medium | |
| CN106548455A (en) | For adjusting the apparatus and method of the brightness of image | |
| US8655100B2 (en) | Correcting an artifact in an image | |
| CN111583381A (en) | Rendering method and device of game resource map and electronic equipment | |
| US20210342972A1 (en) | Automatic Content-Aware Collage | |
| CN113506305A (en) | Image enhancement method, semantic segmentation method and device for 3D point cloud data | |
| EP4270321B1 (en) | Graphic rendering method and apparatus, and storage medium | |
| CN117897723A (en) | System and method for learning tone curves for local image enhancement | |
| RU2626661C1 (en) | Method and subsystem of determining digital images of fragments containing documents | |
| US11200708B1 (en) | Real-time color vector preview generation | |
| CN110942488B (en) | Image processing device, image processing system, image processing method, and recording medium | |
| RU2608239C1 (en) | Method and system for determining suitability of document image for optical character recognition and other image processing operations | |
| EP4350280A1 (en) | Three-dimensional measurement device | |
| RU2628172C1 (en) | Method and system for determining expanded contours on digital images | |
| RU2636097C1 (en) | Method and system of preparing text-containing images to optical recognition of symbols |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| QZ41 | Official registration of changes to a registered agreement (patent) |
Free format text: LICENCE FORMERLY AGREED ON 20151118 Effective date: 20171031 |
|
| QC41 | Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right |
Free format text: LICENCE FORMERLY AGREED ON 20151118 Effective date: 20180710 |
|
| PC43 | Official registration of the transfer of the exclusive right without contract for inventions |
Effective date: 20181121 |
|
| QB4A | Licence on use of patent |
Free format text: LICENCE FORMERLY AGREED ON 20201211 Effective date: 20201211 |
|
| QC41 | Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right |
Free format text: LICENCE FORMERLY AGREED ON 20201211 Effective date: 20220311 |