УДК 004.932.2 Шигаров Алексей Олегови ч,
научный сотрудник, Институт динамики систем и теории управления СО РАН,
тел.: 8 (3952) 45-31-02, e-mail: [email protected] Фёдоров Роман Константинович канд. техн. наук, старший научный сотрудник, Институт динамики систем и теории управления СО РАН
тел.: 8 (3952) 45-31-08, e-mail: [email protected]
АЛГОРИТМ ОБНАРУЖЕНИЯ ПУСТОГО МЕСТА НА СТРАНИЦЕ ДОКУМЕНТА
A.O. Shigarov, R.K. Fedorov
AN ALGORITHM FOR DETECTION OF WHITESPACE
ON DOCUMENT PAGE
Аннотация. В данной работе предлагается алгоритм обнаружения пустого места на странице документа, расположенного между фрагментами текста. Предлагаемый алгоритм может использоваться для анализа компоновки документов (сегментации страниц). В частности, он может использоваться для обнаружения колонок в таблицах и многоколонном тексте.
Ключевые слова: документ, анализ, алгоритм, распознавание, пустое место.
Abstract. In the paper an algorithm for detection of whitespace located between texts on a document page is proposed. The algorithm can be used for the document layout analysis (page segmentation). In particular, it can be used to column detection in tables and multi-column text.
Keywords: document, analysis, algorithm, recognition, whitespace.
Введение
В настоящее время в мире накоплено большое количество документов [5]. Для автоматизации извлечения информации из документов разрабатываются системы анализа и распознавания документов (АРД) [6]. Важной задачей АРД является анализ компоновки (или сегментация) - разделение документа на части (например, колонки, рисунки, таблицы).
Для выделения страничных и табличных колонок можно использовать анализ пустого места (whitespace), т. е. места внутри документа, не занятого текстом. Колонки отделяются друг от друга вертикальными промежутками пустого места, как показано на рис. 1. В данной работе предлагается оригинальный алгоритм для обнаружения промежутков пустого места на странице документа. Предлагаемый алгоритм выполняет поиск проме-
Вертикальные промежутки пустого места
Рис. 1. Разделение колонок текста и табличных столбцов пустыми областями
Рис. 2. Обнаружение пустых областей
жутков, расположенных вертикально, т. е. максимально вытянутых по вертикали. При этом если оси координат поменять местами, то он будет выполнять поиск промежутков, расположенных горизонтально, т. е. максимально вытянутых по горизонтали. Предлагаемый алгоритм является простым для реализации.
Различные подходы к анализу компоновки документа (сегментации страницы) рассматриваются в обзоре [3]. Решения описанной задачи разделения страниц и таблиц на колонки предлагается в работе [2]. В работе [2] кратко обсуждаются алгоритмы [1, 7], позволяющие выделять пустые места. Авторы [2] указывают, что эти алгоритмы являются сложными для реализации и не получили широкого распространения.
В работе [2] предлагается алгоритм поиска пустого места на странице документа в терминах задачи вычисления наибольшего пустого прямоугольника (largest empty rectangle problem) [4]. Входом этого алгоритма является ограничивающий прямоугольник, внутри которого располагаются преграды (прямоугольники, стороны которых параллельны соответствующим сторонам ограничивающего прямоугольника). Алгоритм выполняет поиск наибольшего пустого прямоугольника, который расположен внутри ограничивающего прямоугольника и не пересекается ни с одной преградой. Для обнаружения промежутков на странице выполняется поиск n лучших решений (пустых прямоугольников) по убыванию. При этом используется жадный алгоритм. После того как найден максимальный пустой прямоугольник, он рассматривается как преграда во время поиска последующих пустых прямоугольников.
Алгоритм обнаружения промежутков
В предлагаемом алгоритме используется прямоугольная система координат, в которой координата х возрастает слева направо, координа-
та у возрастает сверху вниз (рис. 2). При описании этого алгоритма используется следующая нотация.
Прямоугольник, стороны которого параллельны соответствующим осям координат:
Ь =(Х, У,, Хг, Уь X
- задается координатами своих сторон: левой -Х = хг (Ь) , верхней - у = у (Ь), правой -
Хг = Хг (Ь) и нижней - Уь = Уъ (Ь).
Вертикальная линия ортогональная оси абсцисс:
1 = (х, У,, Уъ)
- задается тройкой координат: х-координатой -х = х(1), верхней границей - У = У (I), и нижней
границей - Уъ = Уъ (I) .
Вход данного алгоритма состоит из 1) ограничивающего прямоугольника bbox, который, как правило, ограничивает страницу документа или некоторую её часть (например, таблицу), и 2) множества прямоугольников (преград)
Л = {/>,,..., Ьп}, п е N. которые, как правило, ограничивают некоторые блоки текста. При этом прямоугольники из множества В расположены внутри ограничивающего прямоугольника bbox, не пересекаясь с его границами, и не пересекаются между собой.
Предлагаемый алгоритм включает два этапа. На первом этапе для каждого прямоугольника Ь : Ь е В, из его боковых сторон (левой и правой) протягиваются (продлеваются) соответственно две прямые линии (линейки) вверх и вниз до тех пор, пока они не упрутся в другой прямоугольник Ь': Ь' е В, Ь' Ф Ь, либо в верхнюю или нижнюю грань ограничивающего прямоугольника bbox, как показано на рис. 2, а. Линии, полученные при протягивании левых боковых сторон прямоугольников, составляют множество Ь . Линии, получен-
иркутским государственный университет путей сообщения
ные при протягивании правых боковых сторон
прямоугольников, составляют множество Ь .
На втором этапе среди полученных линий
выбираются пары линий (/,/), где первая линия / либо получена при протягивании правой боковой
стороны прямоугольника из В - I е Ь , либо является левой стороной ограничивающего прямоугольника bbox, а вторая линия I либо получена при протягивании левой боковой стороны прямоугольника из В - I е Ь, либо является правой стороной ограничивающего прямоугольника ЬЬох.
При этом между линиями из такой пары (1,1) не должно быть ни одного прямоугольника из мно-
тШШ
жества В, а их верхние и нижние границы должны совпадать соответственно, т. е.
1) ^Ь: Ь е В, х(1г) < х, (Ь) и хг (Ь) < х(,)
и (уд)<ухь)<уь(1) илиуд) <уь(ъ) <уь(1)),
2)у(/) = у(/~)иу(/) = Л(/~).
Каждая пара таких линий (линеек) составляет отдельный промежуток, как показано на рис. 2 б. Множество всех полученных в результате промежутков является выходом данного алгоритма О = ..,£,„},да е N.
Предлагаемый алгоритм описан с помощью псевдокода на рис. 3 (этап 1) и рис. 4 (этап 2). Далее приводятся пояснения представленного псев-
Вход: ЬЬох, 5 = . Выход: С = ■•■,£„,},и? е N .
01 создать прямоугольник Ь0 х1 (ЬЬох), у (ЬЬох), хг (ЬЬох), у (ЬЬох) )
02 создать прямоугольник Ьи+1 х1 (ЬЬох), у (ЬЬох), хг (ЬЬох), у (ЬЬох))
03 добавить прямоугольники Ь0
04 БСЖТ^О^х,))
05 ^г 7 = 1 ,7? с1о
Ъп+1 в список B
06
07
08
09
10 11 12
13
14
15
16
17
18
19
20
21 22
У„Уг,У„Уг <-null
for j = /'-1,0 do
if yt (Ъг) > УЪ (Ъ;) then
if yt = null и x(Ъ.) < x,(Ъг) < Xr(Ъ.) then yt ^ Уъ(Ъ.) if yr = nul1 и x,(Ъ]) < xr(Ъг) < xr(Ъ.) then yr ^ Уъ(Ъ.) if y,,yr Ф null then выход из цикла no j for 7 = 7+1,77 + 1 do
if УЪ (Ъг) < yt(Ъ.) then
if yl = nu11 и x,(Ъ.) < x,(Ъг) < xr(Ъ.) then yL ^ yt(Ъ.)
if y^ = nu11 и x, (Ъ. ) < xr (Ъг ) < xr (Ъ. ) then yJ_ ^ yt (Ъj )
if Уi,Уг ^ nu11 then выход из цикла по j if список L не содержит линию с координатами ^xl(Ъг),y,y j then
создать линию I ^^xt (Ъг ), У, У j добавить линию 7 в список L if список ¿не содержит линию с координатами ^хг(6Дyr,yr) then
создать линию 7 <— ^xr(bj),yr,yr j
добавить линию / в список L Рис. 3. Псевдокод алгоритма обнаружения промежутков пустого места, этап 1
23 создать линию / <—(x,(bbox),>'i(bbox),>'fe(bbox))
24 создать линию / <—(xr(bbox),>'i(bbox),>'fe(bbox))
25 добавить линию / в список L
26 добавить линию l в список L
27 SORT (L, (x,ytj)
28 SORT (Z, (*,;;,))
29 for / = 1,5 + 1 do
30 for j = l,p + l do
31 if x(/~)<x(/;) и y(ji) = y(!J) и y(ji) = y(!J) then
32 создать промежуток g <— x(/;.)_y(/;.
33 добавить промежуток g в список G
34 выход из цикла по j
Рис. 4. Псевдокод алгоритма обнаружения промежутков пустого места, этап 2
докода. Для простоты предполагается, что множества представлены в виде списков. В данном алгоритме функция SORT (S, (c, С)) упорядочивает элементы (линии, прямоугольники) списка S лексикографически по возрастанию их (сг,с2)-координат, т. е. Vs,s : s,s е S выполняется условие s < s, если либо с, (5) < с, (v), либо c1(s) = c1(s) и c2(s) <c2(s). Формируются два
прямоугольника. Один соответствует верхней грани ограничивающего прямоугольника (строка 01), а другой - его нижней грани (строка 02). Прямоугольники Ь0 и 6и+1 добавляются в список B
(строка 03). Прямоугольники в списке B упорядочиваются лексикографически по возрастанию их (yt, X) - координат сверху вниз слева направо
(строка 04). Перебираются прямоугольники из B сверху вниз слева направо (строки 05-22). Перебираются прямоугольники из B справа налево снизу вверх (линии из боковых сторон текущего прямоугольника протягиваются вверх) (строки 0711). Перебираются прямоугольники из B сверху вниз слева направо (линии из боковых сторон текущего прямоугольника протягиваются вниз) (строки 12-16). Если в результате выполнения этапа 1 получены следующие непустые множества линий:
тогда выполняется второй этап.
На этапе 2 формируются две линии. Одна
линия / соответствует левой стороне ограничи-
вающего прямоугольника (строка 23), а другая линия I - его правой стороне (строка 24). Линия / добавляется в список L (строка 25). а / - в список
L (строка 26). Линии в списках L и L упорядочиваются лексикографически по возрастанию своих (л*, уг) -координат слева направо сверху вниз
(строки 27-28). Перебираются линии из списка L слева направо сверху вниз (строки 29-34). Перебираются линии из списка L слева направо сверху вниз (строки 30-34).
Вычислительная сложность данного алгоритма равна O(n2).
Заключение. Предлагаемый алгоритм может использоваться в задачах сегментации таблиц на отдельные столбцы, в частности в методе, предлагаемом в работах [8, 9]. Кроме того, этот алгоритм может использоваться для сегментации страниц, в частности для выделения колонок в многоколонных текстах. При этом предлагаемый алгоритм является достаточно простым для реализации.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Baird H. S., Jones S. E., Fortune S. J. Image Segmentation by Shape-Directed Covers // In Proc. Int. Conf on Pattern Recognition. - USA. - 1990. -Vol. 1. - P. 820-825.
2. Breuel T. M. Two Geometric Algorithms for Layout Analysis // Lecture Notes in Computer Science : In Proc. of the 5th Int. Workshop on Document Analysis Systems. - Vol. 2423. P.
иркутским государственный университет путей сообщения
188-199.
3. Cattoni R., Coianiz T., Messelodi S., Modena C. M. Geometric layout Analysis Techniques for Document Image Understanding : a Review // Technical report. IRST. Trento. - Italy. - 1998. -P. 68
4. Chaudhuri J., Nandy S. C., Das S., Largest Empty Rectangle Among a Point Set // Journal of Algorithms. - 2003. - Vol. 46. - Issue 1. - P. 54-78.
5. Lyman P., Varian H. R. How Much Information? // Technical Report. 2003. - URL : http://www.sims.berkeley.edu/ how-much-info-2003.
6. Machine Learning in Document Analysis and Recognition / Eds. : Marinai S., Fujisawa H. // Series:
Studies in Computational Intelligence. - 2008. -Vol. 90. P. - 434.
7. Orlowski M. A New Algorithm for the Largest Empty Rectangle Problem // Algorithmica. - 1990. - Vol. 5, No. 1-4. - P. 65-73.
8. Shigarov A. O., Bychkov I. V., Ruzhnikov G. M., Khmel'nov A. E. A Method for Table Detection in Metafiles // Pattern Recognition and Image Analysis. - 2009. - Vol. 19, No 4. - P. 693-697.
9. Бычков И. В., Ружников Г. М., Хмельнов А. Е., Шигаров А. О. Эвристический метод обнаружения таблиц в разноформатных документах // Вычислительные технологии. - 2009. - Т. 14. -№ 2.- C. 58-73.
УДК 621.7, 532.5 Курносов Николай Ефимович,
д-р техн. наук, профессор, зав. каф. «Транспортно-технологические машины и оборудование», Пензенский государственный университет, тел.: (8412) 36-80-71, e-mail: [email protected]
Лебединский Константин Валерьевич, аспирант, вед. инженер каф. «Транспортно-технологические машины и оборудование», Пензенский государственный университет, тел.: (8412) 36-80-71, e-mail: [email protected]
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ КАВИТАЦИОННОГО ПРОЦЕССА В ЗАКРУЧЕННЫХ ПОТОКАХ ЖИДКОСТИ
N.E. Kurnosov, K. V. Lebedinsky
COMPUTER SIMULATION OF CAVITATIONAL PROCESS IN THE TWIRLED STREAMS OF THE FLUID
Аннотация. Рассмотрена модель закрученного течения жидкости и образования в потоке зоны пониженного давления. Определены режимы, минимизирующие необходимые энергозатраты для возникновения кавитации. Выполнена экспериментальная проверка адекватности полученных моделей, изложены рекомендации по использованию результатов исследования.
Ключевые слова: закрученный поток, кавитация, вихревое устройство.
Abstract. The model of the twirled current of a fluid and formation in a stream of a lowered pressure zone is considered. ^nditions minimizing necessary power inputs for origin of a cavitation are certain. Experimental inspection of adequacy of the received models is executed, recommendations on use of results of research are stated.
Keywords: twirled stream, cavitation, vortical device.
В настоящее время эффекты гидродинамической кавитации широко используются для разработки новых технологических процессов и повышения эффективности работы существующего
оборудования в области физико-химической интенсификации различных технологических процессов. Анализ работ, связанных с возникновением и развитием гидродинамической кавитации в жидкостях, показывает недостаточность данных по теории возникновения кавитации в закрученных потоках жидкости. Отсутствуют также работы по моделированию процесса гидродинамической кавитации, позволяющие выявить закономерности и сформировать рекомендации по минимизации энергозатрат на образование кавитационной зоны в потоке жидкости. Практически не изучена гидродинамическая кавитация в целой группе кавита-ционных устройств, использующих закрученное или вихревое течение жидкости. [1-5] Согласно экспериментальным исследованиям [6], режим кавитации в различных гидрокавитационных устройствах наблюдается при организации течения жидкости с соответствующей скоростью при давлении от 0,5 МПа.
В связи с этим возникает необходимость продолжения работ в области моделирования ка-витационных процессов в жидких средах при их закрученном течении. Работа по исследованию