УДК 004.89: 004.93
К.Л. РУЧКИН, канд. физ.-мат. наук, доц., ГУВЗ "ДонНТУ", Донецк,
Е.Л. ШЕВЧЕНКО, аспирант, ГУВЗ "ДонНТУ", Донецк
МЕТОД ОБНАРУЖЕНИЯ НЕСКОЛЬКИХ СФЕРИЧЕСКИХ
ОБЪЕКТОВ В ПРОСТРАНСТВЕ
В данной работе продолжены исследования, посвященные решению задачи поиска нескольких сферических поверхностей по заданному трехмерному массиву точек в пространстве. Предложен подход, позволяющий локализовать в пространстве такие объекты и вычислить их параметры. Рассмотрены пути сокращения вычислительной сложности предложенного алгоритма. Ил.: 1. Библиогр.: 8 назв.
Ключевые слова: сферические объекты в пространстве, поиск нескольких сферических поверхностей, вычислительная сложность.
Постановка проблемі и анализ литературы.. В настоящее время, в связи с развитием трехмерных сканеров, сенсоров Kinect и других технических средств анализа трехмерного пространства, появляется все большее количество задач, связанных с обнаружением и локализацией в пространстве различных трехмерных объектов [1]. Эти задачи решаются с помощью обобщения классического преобразования Хафа на трехмерный случай [2]. Обобщенное преобразование Хафа для 3D данных (3D GHT - 3D Generalized Hough Transform) позволяет находить в трёхмерном массиве (облаке) точек единичные объекты произвольной формы (плоскость, сфера, цилиндр, конус). Основным недостатком обобщенного метода является высокая сложность алгоритма.
Обобщению преобразования Хафа на трехмерный случай посвящены работы [1 - б]. Рассмотрим их подробнее.
В работе [2] описан новый подход к обнаружению 3D объектов произвольной формы в заданном облаке точек пространства. Представлено расширение обобщённого преобразования Хафа, позволяющее находить заданные объекты в облаке точек, которые получены из данных лазерного дальномера.
В работе [3] описывается метод восстановления 3D моделей зданий из снимков двухмерных изображений. Метод основан на определении уровней детализации. Рассматривается каждый из трёх уровней детализации. Также в работе рассматривается применение преобразования Хафа для обнаружения границ зданий.
В работе [4] описан быстрый, точный алгоритм с низкой вычислительной сложностью, позволяющий определить локализацию лица. Этот алгоритм надежно работает в жестких условиях сцены и при
© К.А. Ручкин, Е.А. Шевченко, 2013
различных позициях лица на ней. Он использует пространственное маскирование зон цвета лица в нормализованное воспринимаемое оттенок-насыщенность-яркость пространство, где применяется фильтр Canny. Далее области лица аппроксимируются эллипсами ограниченных пропорций с использованием нечеткого преобразования Хафа.
В работе [5] предлагается ориентационно-инвариантный метод, основанный на изучении локальных особенностей, которые помогают обнаруживать и определять положение моделей в пространстве, принадлежащих классам объекта. Это обобщение метода Неявной Формы Модели (ISM) для 3D случая с измененной схемой голосования.
В работе [6] описывается применение расширенного обобщенного преобразования Хафа в облаке 3D точек для биометрических приложений. В частности, описывается процесс обнаружения координат лица по обнаруженному кончику носа, который обнаруживается с помощью преобразования Хафа. Входящими данными выступает трехмерное облако точек, полученное сканированием лица.
В работах [7 - 8], хотя и рассматривается обобщённый алгоритм Хафа, однако не рассмотрена возможность поиска нескольких пространственных объектов.
Целью данной работы является разработка эффективного обобщенного преобразования Хафа для поиска нескольких пространственных сферических объектов (сфер).
Пространственное преобразование Хафа. Обобщенное преобразование Хафа для 3D данных (3D GHT) позволяет находить в трёхмерном облаке точек заданные объекты произвольной формы и вычислять их положение в пространстве. Метод построен на основании обобщённого преобразования Хафа для 2D данных. Главным отличием трёхмерного от двумерного преобразования является то, что вектора градиента, заменяются векторами нормалей, которыми задаётся трёхмерный объект. Вектора нормалей получаются путём вычисления расстояний от точек объекта до, так называемой, опорной точки. Опорная точка может находиться в любом месте пространства, но вполне ожидаемым вариантом в плане сокращения длин векторов является размещение этой точки в предполагаемом геометрическом центре объекта. Для получения точек границ объекта можно воспользоваться триангуляцией этого объекта или другими доступными методами.
Для каждой точки границы объекта вычисляем длину вектора нормали. Кроме длины, основными свойствами этих векторов являются ещё углы ориентации у и ф, где ф - задает угол проекции вектора на плоскость OXY к оси OX; у - задаёт угол вектора к оси OZ. Аналогично
двумерному случаю построим R-таблицу, задающую трехмерный объект. В трехмерном случае вместо одномерной таблицы будет двумерная, каждому вектору соответствуют два угла - у и ф. Закрепив за каждым номером ячейки строго определённые углы, восстановим точки в пространстве, которыми задан объект. Располагая опорную точку в определённом месте пространства, сможем найти вектор расстояния от каждой точки параметризируемого объекта до опорной точки. Таким образом, можно вычислить три параметра для каждого полученного вектора - два угла (а и в) и расстояние г:
г - [(хр ~ Хс)2 + (ур ~ Ус)2 + (гр ~ 2с)2]
* р ■'%‘СУ (,
а - агссо8
рс
Л
V
рс (
Р - агссо8
/
^/2,
Л
V
г 8Іи(а)
г
где хр , ур, гр - координаты точки, принадлежащей объекту; хс, ус, гс -
координаты опорной точки.
Теперь рассмотрим процесс поиска параметризованного ранее объекта в облаке точек данных. Преобразовав предыдущие формулы, сможем вычислить координаты этой искомой точки.
Создадим трёхмерный аккумуляторный массив, в котором будем хранить информацию об опорных точках. Зная позицию ячейки в массиве, сможем восстановить координаты опорной точки, закреплённой за этой ячейкой. Каждую точку облака точек данных, подставляя в вышеописанные уравнение, а так же последовательно подставляя все значения г, а, в из R-таблицы, получим координаты опорной точки. Ячейку аккумуляторного массива, закреплённую за этой точкой, на каждом шаге увеличиваем на единицу.
Выполним преобразование для всего облака точек и получим заполненный аккумуляторный массив. Найдя ячейку в этом массиве с максимальным значением, сможем восстановить значение опорной точки, а соответственно и положение самого искомого объекта. Значение этой ячейки будет описывать количество точек исходного облака точек, которые принадлежат объекту.
Поиск сферы в пространстве. Обобщённое преобразование Хафа для 3D данных может успешно применяться для распознавания сферы или сферической поверхности. Сферическая поверхность - это замкнутая поверхность, созданная из бесконечного множества точек,
равноудалённых от некоторой точки. В случае сферы целесообразно
чтобы опорная точка совпадала с центром сферы. При этом длина вектора от опорной точки до любой точки сферы будет одинаковой и равной радиусу сферы. Это избавляет от необходимости построения R-таблицы распознаваемого объекта и ставит необходимым условием знать только радиус искомой сферы, и сокращает количество операций. Поиск сферы в пространстве с помощью данного метода описывается следующим алгоритмом:
Задать точность вычислений (количество промежуточных углов) при поиске точек сферы - Ш, Ш.
Задать радиус искомой сферы - Ия
Задать количество точек облака данных -М
Заполнить массив Ба1а[М][3]
размерности аккумуляторного массива -Ах, Ау, А^
Создать массив центров сфер -Асиш[Ах][Ау][А2]
Обнулить массив Асиш[Ах][Ау][А2]
Создать массив облака точек данных - Эа1а[М] [3]
Цикл по всем точкам облака данных й от 1 до М с шагом 1
Цикл по всем углам А^1еА1рИа от 0 до РІ с шагом РІ/ иі
±
Цикл по всем углам А^1еБе1а от 0 до 2*Р1 с шагом 2*РШ2
ЬХс = Эа1а[й][1] + К5*$т(А^1еА1рЬа)*со$(А^1еВе1а); ЬУс = Эа1а[й][2] + К5*$т(А^1еА1рЬа)*$т(А^1еВе1а); Ь2с = Эа1а[й][3] + КБ*со$(А^1еА1рЬа); Асиш[ЬХс][ЬУс][Ь2с] = Асиш[ЬХс][ЬУс][Ь2с] + 1;
В аккумуляторном массиве Асиш[Ах][Ау][А2] найти ячейку с наибольшим значением
І
По индексам 1, _], к найденной ячейки Асиш[1]Ц][к] восстановить координаты центра сферы
і
Вывести координаты центра сферы и количество точек облака данных, принадлежащих сфере
Отобразить найденную сферу в пространстве
Рис. Блок-схема алгоритма преобразования Хафа для поиска сферы в трёхмерном пространстве
Поиск нескольких сфер в одном накопительном массиве.
Рассмотрим задачу поиска нескольких сфер, заданного радиуса в облаке точек. Пусть при поиске каждого нового объекта аккумуляторный массив заполняется заново и выполняется следующий алгоритм.
1. Заполнение аккумуляторного массива.
2. Поиск глобального максимума в нем.
3. Восстановление исходного объекта по найденному максимуму и сохранение его параметров.
4. Поиск среди всех точек входящих данных тех, которые принадлежат найденному объекту и удаление этих точек из исходной выборки.
5. Если число оставшихся точек меньше порога (или другое условие остановки алгоритма), то выводим на экран результаты поиска или сохраняем их в файл, иначе переход к шагу 1.
Как видно из описанного алгоритма, он позволяет находить не только параметры найденных объектов, но и точки входящей выборки, которые ему принадлежат. Недостатком этого алгоритма является увеличение времени поиска в N раз по сравнению с поиском одного объекта, где N - количество найденных объектов. Также время выполнения увеличивается из-за того, что для каждого найденного объекта должны быть найдены точки исходной выборки, принадлежащие ему, и удалены. При этом время заполнения аккумуляторного массива на порядок больше времени, необходимого для поиска максимума в нем.
Способы повышения эффективности алгоритма. Рассмотрим возможность сокращения времени поиска нескольких объектов.
Первый подход основан на предположении, что локальные максимумы накопительного массива, соответствующие искомым объектам, расположены на достаточном расстоянии друг от друга. С помощью этого удается исключить шаги повторного заполнения аккумуляторного массива, удаления точек из исходной выборки. Это, в свою очередь, почти в N раз сокращает время выполнения (где N - число искомых объектов).
Другой подход основан на анализе вида аккумуляторного пространства. Так, если в решаемой задаче заранее известен радиус сферы, то сферу в аккумуляторном пространстве можно задать с помощью координат её центра. Размерность аккумуляторного пространства можно задать произвольно, но чем она больше, тем меньше будут возможные отклонения от искомого центра сферы. Таким образом, при увеличении размерности аккумуляторного массива отклонение
положения найденного радиуса от его эталонного значения будет уменьшаться.
Уменьшить количество вычислений можно также, если известны границы поиска центра сферы. Для этого необходимо проанализировать входящую выборку точек (вероятностный подход). Пусть заранее неизвестны зоны, в которых точки могут располагаться более плотно и зоны их меньшей плотности. Тогда будем предполагать, что наши точки распределены в пространстве равномерно. Далее находим границы подпространства, в которое попадают все точки и координаты минимума и максимума среди входящих точек для каждой оси.
Выводы. В работе исследовано обобщённое пространственное преобразование Хафа. Получен алгоритм поиска одного или нескольких сферических объектов в пространстве, основанный на преобразовании Хафа. Предложены способы сокращения вычислений алгоритма за счет использования информации о количестве объектов, их размере и расположении в пространстве.
Список литературы: 1. Ручкин К.А. Метод обнаружения окружностей в пространстве по трехмерному массиву данных / К.А. Ручкин // Интеллектуальные системы принятия решений и проблемы вычислительного интеллекта: Материалы международной научной конференции (Херсон, 20І2) / Херсонский национальный технический университет. -Херсон: Херсонский национальный технический университет, 20І2. - С. 405-40б. 2. Khoshelham K. Extending Generalized Hough Transform to detect 3D objects in laser range data / K. Khoshelham // IAPRS Volume XXXVI, Part 3. - 2007. - P. 20б-210. 3. Arefi H. Levels of detail in 3D building reconstruction from lidar data / H. Arefi, J. Engels, M. Hahn and others / Stuttgart: Stuttgart University of Applied Sciences; Munich: Bundeswehr University Munich, 200В. - 490 p. 4. Pietrowcew A. Face detection in color images using fuzzy Hough transform / A. Pietrowcew // Opto-Electronics Review. - 2003. - Vol. 11 (3). - P. 247-251. 5. Knopp J. Orientation Invariant 3D Object Classification using Hough Transform Based Methods / J. Knopp, M. Prasad, L. Van Gool // 3D0R40. - ACM, New York, 2010. - P. 15-20. б. Bevilacqua V. Extending Hough Transform to a Points’ Cloud for 3D-Face Nose-Tip Detection / V. Bevilacqua, P. Casorio, G. Mastronardi // Advanced Intelligent Computing Theories and Applications. With Aspects of Artificial Intelligence. - Springer Berlin Heidelberg, 200В. - P. 1200-1209. 7. Ручкин К.А. Разработка компьютерной системы для построения и анализа сечений Пуанкаре / К.А. Ручкин // Искусственный интеллект. - 2009. - № І. - C. ВЗ-В7. S. Левчук Ю.А. Алгоритм нахождения линий дорожной разметки / Ю.А. Левчук, А.Г. Новиков, В.Г. Дзюба // Электроника и связь. - 2009. - N° 4 - 5. - С. 277-279.
Надійшла до редакції 25.03.2013
Статью представил д-р. физ.-мат. наук, проф. ДонНТУ Шелепов В.Ю.
УДК 004.89, 004.93
Метод виявлення кількох сферичних об'єктів у просторі / Ручкін К.А., Шевченко Е.О. // Вісник НТУ "ХПІ". Серія: Інформатика та моделювання. - Харків: НТУ "ХПІ". - 2013. - № 39 (1012). - С. 1б2 - 1бВ.
У даній роботі продовжені дослідження, присвячені вирішенню завдання пошуку декількох сферичних поверхонь у просторі, заданих тривимірним масивом крапок. Запропоновано підхід, що дозволяє локалізувати в просторі такі об'єкти та обчислити їхні параметри. Докладно досліджена обчислювальна складність запропонованого алгоритму. Іл.: 1. Бібліогр.: 8 назв.
Ключові слова: сферичні об‘єкти у простіру, пошук декількох сферичних поверхнь, обчислювальна складність.
UDC 004.89, 004.93
Methods for detection of several spherical objects in space / Ruchkin K.A., Shevchenko E.O. // Herald of the National Technical University "KhPI". Subject issue: Information Science and Modelling. - Kharkov: NTU "KhPI". - 2013. - №. 39 (1012). - P. 162 -168.
In this work the researches devoted to the decision of the task of search of several spherical surfaces in space, the points set by a three-dimensional array are continued. The approach allowing to localize in space such objects and to calculate their parameters is offered. Explicitly computing complexity of the offered algorithm is researched. Figs.: 1. Refs.: 8 titles
Keywords: spherical objects in space, search of several spherical surfaces, computing complexity.