Восстановление трехмерного объекта по плоскому изображению java. Изображение трехмерных объектов. Активный параллаксный метод регистрации трехмерных объектов

Viber OUT 06.04.2019
Viber OUT

Uninstall Tool – отличная программка для деинсталлирования программ и всевозможных файлов. Благодаря своему маленькому размерчику и быстродействию, утилита завоевала большое количество симпатий, к тому же Uninstall Tool распространяется разработчиками абсолютно бесплатно и не требует ключа или кода активации. Вам достаточно скачать ее к себе на компьютер и установить, а далее – использовать на всю ее мощность. Причем, программа Uninstall Tool является действительно очень мощным деинсталлятором, который с легкостью заменит стандартную программу Установки и Удаления программ Windows.

Так в чем же главные преимущества программы Uninstall Tool, чем она так примечательна? Например, тем, что максимально полновесно удаляет любые программы: не останется никаких файлов или пустых папок, записей реестра и прочего – программа удалит все подчистую! Также Анинстал Тул находит и отображает все скрытые установленные программы, а если вы часто качаете что-то из Интернета, то поверьте – таких на вашем компьютере не мало!

Скачать Uninstall Tool бесплатно

Скачать Uninstall Tool можно абсолютно бесплатно по ссылке ниже. Вам даже не понадобится торрент, можно качать сразу программу целиком, так как она имеет очень маленький размер. Но не смотря на это очень большой функционал. Добавлю еще, что в программе есть различные фильтры для сортировки программ: по дате добавления, размеру, названию. А также имеет очень удобную строку поиска, от вас потребуется только ввести название или его часть, и нужная вам программа мигом будет найдена!

Процесс вывода трехмерной графической информации более сложный, чем соответствующий двумерный процесс. В двумерном случае просто задается окно в двумерном мировом координатном пространстве и поля вывода на двумерной видовой поверхности. В общем случае объекты, описанные в мировых координатах, отсекаются по границе видимого объема, а после этого преобразуются в поле вывода для дисплея. Сложность, характерная для трехмерного случая, возникает потому, что видовая поверхность не имеет третьего измерения.

Несоответствие между пространственными объектами и плоскими изображениями устраняется путем введения проекций, которые отображают трехмерные объекты на двумерной проекционной картинной плоскости (КП).

Рис. 3.44. Процесс вывода трехмерной графической информации

В процессе вывода трехмерной графической информации (рис. 3 .44.) мы задаем видимый объем (ВО) в мировом пространстве, проекцию на КП и поле вывода на видовой поверхности. В общем случае объекты, определенные в трехмерном мировом пространстве, отсекаются по границам трехмерного видимого объема и после этого проецируются. То, что попадает в пределы окна, которое само является проекцией видимого объема на картинную плоскость, затем преобразуется (отображается) в поле вывода и отображается на графическом устройстве.

Рис. 3.45. Картинная плоскость и определяющие ее параметры

Картинная плоскость определяется (рис. 3 .45.) некоторой точкой на плоскости, которую будем называть опорной точкой (ОТ) инормалью к картинной плоскости (НКП). КП может произвольным образом располагаться относительно проецируемых объектов, заданных в мировых координатах. Она может пересекать их, проходить впереди или позади объектов.

Для того чтобы задать окно, нам необходима система координат на КП, которую назовем системой координат UV . Началом ее служит ОТ. Направление осиV на КП определяетвектор вертикали (ВВ): проекция ВВ на КП совпадает с осьюV .

ОТ и два направления вектора НКП и ВВ определяются в правосторонней мировой системе координат. Имея на КП систему UV , можем задать минимальное и максимальное значенияU иV , определяющие окно (рис. 3 .46.).

Рис. 3.46. Окно вывода на картинной плоскости

Отметим, что окно не обязательно должно быть симметрично относительно ОТ.

Видимый объем частично определяется окном и ограничивает ту часть мирового пространства, которая будет спроецирована.

В случае центральной проекции ВО определяется также центром проекции (рис. 3 .47.). Этот параметр задается в мировых координатах относительно ОТ. ВО представляет собой неограниченную в одну сторону пирамиду, вершина которой находится в центре проекции, а боковые стороны проходят через окно.

Рис. 3.47. Видимый объем для центральной проекции

Точки, лежащие позади центра проекции, не включаются в ВО и, следовательно, не будут проецироваться.

Рис. 3.48. Видимый объем параллельной проекции

В случае параллельных проекций ВО определяется также направлением проецирования (рис. 3 .48.). Он представляет собой неограниченный параллелепипед, стороны которого параллельны направлению проецирования.

В общем случае направление проецирования может не совпадать с НКП.

В случае ортографических параллельных проекций (но не косоугольных) боковые стороны ВО перпендикулярны КП.

В некоторых случаях может потребоваться сделать ВО конечным (рис. 3 .49.- 3 .51.). Для этого задаются ПСП (передняя секущая плоскость) и ЗСП (задняя секущая плоскость).

Рис. 3.49. Усеченный ВО для центральной проекции

Рис. 3.50. Усеченный ВО для ортографической параллельной проекции

Рис. 3.51. Усеченный ВО для косоугольной параллельной проекции.

Нормаль НКП направлена относительно направления проецирования и также является нормалью к ПСП и ЗСП.

Здравствуйте дорогие читатели блога! Вы наверное уже видели, как путем вывода линий и фигур создаются простые изображения . Сложные изображения, такие как фотографии, обычно создаются отдельно, например, в результате сканирования или применения графических редакторов. Также можно создать изображения и помещать набор пикселей в массив. Эта процедура широко применяется при генерировании фрактальных изображений.

Если изображение хранятся в файлах на диске компьютера или в глобальной сети, их можно прочитать, а затем отобразить на экране с помощью объекта класса Graphics. Начиная с Java SE 1.5, организовать чтение изображений очень легко. Если рисунок хранится в локальном файле, достаточно использовать следующий фрагмент кода:

String filename = "..."; Image image = ImageIO.read(new File(filename));

При вызове метода можно также указать URL:

String filename = "..."; Image image = ImageIO.read(new URL(urlname));

Если рисунок не доступен, метод read() генерирует исключение IOException. Пока будем считать, что наша простая программа перехватывает исключение и выводит на экран содержимое стека.

Public void paintComponent(Graphics g) { ... g.drawImage(image, x, y, null); }

Программа, приведенная в конце урока, делает немного больше, многократно отображая указанное изображение. Результат работы программы показан на рис.1. Вывод осуществляется с помощью метода paintComponent(). Сначала одна копия рисунка помещается в левый верхний угол окна, а затем вызывается метод copyArea(), который копирует его.

For(int i = 0; i * imageWidth <= getWidth(); i++) for(int j = 0; j * imageHeight <= getHeight(); j++) if(i + j > 0) g.copyArea(0, 0, imageWidth, imageHeight, i * imageWidth, j * imageHeight);

Ниже приведен полный исходный код программы для работы с изображениями:

Import java.awt.*; import java.io.*; import javax.imageio.*; import javax.swing.*; public class ImageTest { public static void main(String args) { EventQueue.invokeLater(new Runnable() { public void run() { ImageFrame frame = new ImageFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class ImageFrame extends JFrame { public ImageFrame() { setTitle("ImageTest"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // Добавление компонента к фрейму. ImageComponent component = new ImageComponent(); add(component); } public static final int DEFAULT_WIDTH = 300; public static final int DEFAULT_HEIGHT = 200; } class ImageComponent extends JComponent { public ImageComponent() { // Получаем изображения. try { image = ImageIO.read(new File("src/ball.png")); } catch(IOException e) { e.printStackTrace(); } } public void paintComponent(Graphics g) { if(image == null) return; int imageWidth = image.getWidth(this); int imageHeight = image.getHeight(this); // Отображение рисунка в левом верхнем углу. g.drawImage(image, 0, 0, null); // Многократный вывод изображения в панели. for(int i = 0; i * imageWidth 0) g.copyArea(0, 0, imageWidth, imageHeight, i * imageWidth, j * imageHeight); } private Image image; }

Не забудьте добавить мячик ball.png в папку src. Без изображении мячика, прогармма не будет работать.

Задача восстановления трехмерной формы объекта или координат в пространстве широко распространена. Например, она постоянно возникает при использовании чертежей, являющихся ортографическими проекциями.

Рис. 3-48 Результат проецирования в примере 3-29.

Хорошо известен метод восстановления трехмерного объекта или координаты по двум или более представленным на чертеже видам (ортографическим проекциям). Метод же восстановления трехмерного координатного вектора по двум перспективным проекциям, например по двум фотографиям, не столь хорошо известен. Конечно, если метод пригоден для перспективных проекций, то он подходит также и для более простых ортографических проекций и фактически для всех рассмотренных в предыдущих разделах проекций. Как будет показано ниже, при наличии определенной дополнительной информации не надо иметь точную информацию о самом преобразовании.

Прежде чем рассматривать задачу в общем виде, обратимся к специальному случаю восстановления трехмерных координат точки по двум или более ортографическим проекциям. На рис. 3-49 представлены ортографические виды (проекции) спереди, справа и сверху. При определении трехмерных координат точки вид спереди дает значения координат и , вид справа - и , вид сверху - и , т.е.

.

Заметим, что для каждой координаты мы получаем два значения. В математике в подобном случае говорят, что на задачу наложены избыточные условия. Ведь надо найти только три независимые величины, тогда как известны шесть определяющих их условий (уравнений). Для любой измерительной системы в общем случае , , . Так как неизвестно, какое из значений верно, то наиболее разумным решением будет усреднить их.

Вернувшись теперь к восстановлению трехмерных координат по перспективным проекциям, напомним, что обобщенное перспективное преобразование представляется в виде матриц размера . Таким образом,

.

Рис. 3-49 Восстановление трехмерной формы по ортографическим проекциям.

Результаты могут быть спроецированы на двумерную плоскость, скажем на плоскость , с помощью

.

Объединение двух матриц дает

.

Полезно записать это преобразование в виде

. (3-71)

Заметим, что и - это координаты перспективной проекции на плоскость . Могли бы также использоваться проекции на плоскости или . Расписав в явном виде матричное уравнение (3-71), получим

Подставим значение из (3-72с) в уравнения (3-72а) и (3-72b):

По предложению Сазерленда эту пару уравнений можно рассматривать тремя разными способами. В первом предполагаются известными , , , . Тогда у нас есть два уравнения с двумя неизвестными и . Таким образом, эти уравнения можно использовать для непосредственного вычисления координат перспективной проекции. Именно этот подход применялся во всех предыдущих рассуждениях в данной главе.

При другом подходе полагаются известными , , . В этом случае получается два уравнения от трех неизвестных пространственных координат , , . Эту систему уравнений невозможно решить. Однако, если известны две перспективные проекции, скажем две фотографии, тогда уравнения (3-73) можно записать для обеих проекций. В результате получим

где верхние индексы 1 и 2 обозначают первую и вторую перспективные проекции. Заметим, что преобразования и не обязательно должны быть одинаковыми. Эти уравнения можно переписать в матричной форме

,

Уравнения (3-73) представляют четыре уравнения от трех неизвестных пространственных координат , , . Для нахождения решения матрица не может быть инвертирована, так как она не квадратная. Снова, как и в случае восстановления трехмерных координат по ортографическим проекциям, условия избыточны и, таким образом, задача может быть решена только в некотором усредненном или наиболее подходящем смысле.

Усредненное решение можно вычислить, вспомнив, что матрица, умноженная на свою транспонированную матрицу, является квадратной. Таким образом, умножив обе части уравнения (3-74) на , получим

.

Вычислив обратную матрицу , получим усредненное решение для , т.е.

. (3-75)

Если решения для нет, то наложенные условия избыточны и не существует единственного решения, обеспечивающего наименьшую ошибку. Этот метод иллюстрируется на примере.

Пример 3-30 Трехмерное восстановление

Предположим, что обмеренные координаты точки на одной перспективной проекции равны и на другой. Первое преобразование перспективной проекции является результатом поворота на вокруг оси и последующего переноса на 2 единицы в отрицательном направлении оси . Точка проекции находится в , а результат проецируется на плоскость . Это действительно является двуточечной перспективной проекцией. Второе преобразование является результатом поворотов на вокруг каждой из осей , . Точка проекции находится в , а результат проецируется на плоскость , т.е. является трехточечной перспективной проекцией. Таким образом преобразования и

и .

Отметим, что последние две строки и должны быть переписаны, чтобы учесть тот факт, что является проецированием на плоскость . Тогда матрица

Решив уравнение, получим , т.е. центр единичного куба.

В качестве третьего подхода к рассмотрению уравнений (3-73) отметим, что если известны координаты нескольких точек в объектном пространстве и на перспективной проекции, то можно найти элементы преобразования . Эти элементы впоследствии можно использовать для нахождения местоположения неизвестных точек, используя описанный выше второй метод. Чтобы показать это, перепишем (3-73) в виде. Таким образом, находится преобразование, породившее перспективную проекцию, например фотографию. Заметим, что в этом случае не требовалось никакой предварительной информации о преобразовании. Если, например, это были фотографии, то не требовалось знать ни о местоположении, ни об ориентации фотокамеры. В матричном виде система уравнений записывается в таком виде:

, (3-77)

где нижние индексы соответствуют точкам с известным местоположением. Уравнения (3-77) записываются в более компактном виде:

Так как уравнения (3-77) являются однородными уравнениями, то они содержат произвольный масштабный коэффициент. Следовательно, можно приравнять единице и нормализовать результирующее преобразование. Система сводится к 11 уравнениям или 5 1/2 точки. Если преобразование нормализовано, то последний столбец в переносится в правую часть и решается неоднородное матричное уравнение. Ниже приводится пример.

Подстановка этих результатов в матрицу дает

.

Здравствуйте, дорогие читатели.

В настоящее время в различных областях деятельности, в таких как производство, медицина, компьютерная графика, робототехника и техническое зрение активно используется трехмерное моделирование и прототипирование объектов реального мира. В связи с этим все более актуальным становится разработка 3d сканеров и камер, которые создают 3d модель регистрируемого объекта.

Немного истории

В 1999 году компания 3DVSystems, мировой лидер в области трехмерных видеоизображений, разработала видеокамеру ZCam c уникальной технологией измерения расстояния до объектов в режиме реального времени. Эта технология позволяла воспринимать и обрабатывать трехмерное изображение, будучи направленной на объект всего лишь с одной его стороны. В 2009 году Microsoft выкупил активы 3DVSystems и на базе ZCam начал разрабатываться контроллер для игровой приставки Xbox. В 2010 году Microsoft анонсировал всеми любимый Kinect - игровой контроллер, позволяющий управлять игрой своим телом. Компания Artec-group производит 3d-сканеры для оцифровывания формы объекта в режиме реального времени. Такие сканеры могут применяться в медицине, производстве и тюнинге автомобилей и создании спецэффектов в кино и видео играх.

Рис.1. Пример использования алгоритмов в видео играх

0.Параллаксный метод регистрации 3d объектов

Системы регистрации трехмерных объектов могут быть построены на различных принципах, одним из которых является стереоскопический принцип. Стереоскопическая система состоит из двух камер, регистрирующих объект с разных, но не слишком сильно отличающихся ракурсов. На полученных изображениях определяются соответствующие точки (стереоотождествление). Затем, зная внутренние параметры камер стереопары, а также их взаимное расположение, можно определить трехмерные координаты точек объекта методом триангуляции . Несмотря на успехи последних лет, в решении данной задачи остается ряд вопросов, связанных с принципиальными ограничениями данного метода, в частности, со стереоотождествлением точек объектов, не обладающих ярко выраженной текстурой или имеющих большие нетекстурированные (однородные) области .


Рис.2. Пример стерео пары

Чтобы преодолеть эти недостатки стереоскопического метода, можно заменить одну из камер стереопары проектором и получить устройство регистрации трехмерных объектов, основанное на активном параллаксном принципе. Схема системы, построенной на данном принципе, показана на рисунке: на объект проецируется некоторая картина (структурированная подсветка), ее искажения, вызванные формой объекта, регистрируются камерой .


Рис.3. Принципиальная схема работы системы, построенной на активном параллаксном методе

1.Активный параллаксный метод регистрации трехмерных объектов

В настоящее время разработано множество различных вариантов картин для использования в системах структурированной подсветки, представляющих собой как серии изменяющихся картин (картины с временным мультиплексированием), так и неизменные картины с использованием различных вариантов цветовой кодировки . Временная кодировка использует последовательность черно-белых картин, как показано на рис.4, а. Идея этого метода состоит в том, чтобы кодировать положение пикселя на матрице проектора набором интенсивностей в последовательности проецируемых картин. Набор картин, показанный на рис. 2, а, использует «битовое» кодирование: набор двухцветных (черно-белых) картин представляет собой двоичный код, определяющий «номер» пикселя в строке. Помимо «битового» кодирования также используются другие методы двоичного кодирования (сдвиг бинарной картины, код Грея и другие ). Такой способ не чувствителен к цвету поверхности, позволяет кодировать каждый пиксель на матрице проектора, однако требует статичности положения объекта
из-за большого количества используемых картин.


Рис. 4. Картины, используемые для создания структурированной подсветки: а - с временным кодированием, б – с цветовым кодированием

Цветовая кодировка, пример которой показан на рис.4, б, использует только одну картину. Положение каждого пикселя однозначно кодируется значением цвета данного пикселя и нескольких его «соседей». При создании картины с цветовой кодировкой обычно стремятся получить минимальный размер окрестности (количество «соседей») пикселя, требуемый для однозначного восстановления, и минимальное количество различных цветов (для повышения надежности определения каждого цвета). Такими свойствами обладают M-последовательности или последовательности де Брёйна (de Brujin) . Преимуществом такого метода является возможность восстановления формы объекта всего лишь по одной картине, и как следствие, возможность регистрирования движущихся объектов. К недостаткам следует отнести чувствительность метода декодирования цветной картины к структуре регистрируемой поверхности и ее цвету.

2. Алгоритмы обработки зарегистрированных изображений

Используемая картина подсветки, показанная на рис.5, представляет собой 128 узких вертикальных полос шести цветов (трех основных – R, G, B, и трех дополнительных – C, M, Y), разделенных промежутками черного цвета. Последовательность цветов получена при помощи генератора М-последовательностей, сочетание из каждых 3 соседних полос встречается только один раз.

Рис. 5. Используемая последовательность цветов

Алгоритм обработки изображений решает две основные задачи:
1. Детекцию полос на изображении и определение положения центральной линии для каждой полосы (выделение полос);
2. Определение цвета для каждого выделенного участка полосы (классификация по цветам).

3. Выделение центров полос

Алгоритмы выделения полос для различных картин подсветки с цветовым кодированием можно разделить на два типа: с выделением краев (edges) и с выделением пиков (peaks). Используемая картина подсветки содержит промежутки черного цвета и требует использования алгоритма второго типа. Для выделения полос на изображении можно использовать прямой метод поиска локальных максимумов, метод пересечения нулевой линии второй производной (детектор лаплассиана гауссиана (LoG)) или метод Канни (Canny) . Зарегистрированное изображение содержит три цветовых канала (R,G,B), поэтому для применения вышеупомянутых методов требуется или преобразование к одному каналу с использованием его для обработки, или объединение результатов выделения полос по нескольким каналам. После первичного выделения центров полос данными методами обычно производится субпиксельное уточнение координат максимумов или с использованием интерполяции параболой , или определением центра тяжести по нормализованным значениям в окрестности.

В различных работах предложены следующие методы решения данной задачи: в работе использовался метод Канни (Canny) по яркостной составляющей (Y) после преобразования в цветовое пространство YCbCr; в работе использовался прямой метод поиска локальных максимумов вдоль линий сканирования по трем цветовым каналам R,G,B с последующим объединением результатов на этапе субпиксельного уточнения; в работе выделение центров полос осуществлялось по второй производной значения цвета (V) после преобразования в цветовое пространство HSV.

На рис.6 представлено изображение, зарегистрированное в темной комнате. В работе были рассмотрены реализации алгоритмов поиска максимумов и определения их цвета, работающие для изображения произведенного без сторонней засветки. Однако, при добавлении внешнего источника света, алгоритмы показывали неустойчивую работу.


Рис.6. Изображение, зарегистрированное в темной комнате без засветки

Для выбора оптимального цветового преобразования для выделения максимумов был проведен анализ сечений изображений, зарегистрированных в ходе проведения экспериментов, и оценена пригодность использования различных величин с точки зрения выбора надежных пороговых значений алгоритма. В работе были показаны значения различных величин: цветовых каналов R,G и B, среднего арифметического по трем данным каналам, яркостной составляющей (Y) после преобразования в YCbCr и значения цвета (V) после преобразования в HSV в сечении изображения объекта, перпендикулярном направлению проецируемых полос. Также, в работе был сделан вывод, что при использовании линейной комбинации цветов (R+G+B) чистые цвета сильно подавляются, и могут быть пропущены. По результатам анализа можно сделать вывод, что наиболее стабильную детекцию центров полос можно получить, используя значение цвета V.


Рис. 7. Значения различных величин в сечении изображения объекта, перпендикулярном направлению проецируемых полос.

В ходе выполнения работы в среде MatLab были реализованы алгоритмы выделения центров полос по значению цвета V и среднеквадратичного из каналов RGB с использованием прямого метода поиска локальных максимумов и метода, подобного методу Канни. При реализации прямого метода поиска максимумов были заданы два пороговых значения: – минимальное абсолютное значение в предполагаемом максимуме, – минимальное значение разности значений в предполагаемом максимуме и его «соседях». При реализации метода Канни на этапе немаксимального подавления вместо значений модуля градиента в первом случае используются непосредственно сами значения V, как в работе , а во втором случае-среднеквадратичное из RGB. Перед преобразованием изображения в цветовое пространство HSV к изображению был применен сглаживающий гауссов фильтр; для субпиксельного уточнения координат максимумов использовалась интерполяция параболой по строке изображения.

Для оценки результатов работы двух методов по различным цветовым каналам использовались изображения, зарегистрированные в ходе проведения экспериментов на стенде, использованном в работе . Характеристики использованных устройств и условий регистраций в ходе эксперимента подробно описаны в конце данной статьи.
Количественная оценка зависимости результатов детекции полос от используемого цветового канала (R+G+B, Y или V) производилась по изображениям объекта в виде гладкой белой плоскости («Плоскость») и гладкого белого объекта (гипсовый бюст Ленина, «Бюст»). Сравнивалось количество точек центров полос, обнаруженных алгоритмом при работе по рассматриваемому цветовому каналу изображения при подсветке картиной с цветными полосами, и количество точек центров полос, обнаруженных тем же алгоритмом при работе по каналу яркости Y изображения при подсветке картиной с белыми полосами. Значения порогов для каждого цветового канала были выбрано как, где максимальное значение для данного цветового канала в пределах рассматриваемого фрагмента изображения, – единая для всех каналов фиксированная величина. Результаты подтвердили сделанный ранее вывод о предпочтительном использовании значения цвета V.

Для оценки зависимости результатов детекции полос от используемого метода (прямой метод поиска локальных максимумов или метод Канни) использовались те же изображения. Количественная оценка в данном случае возможна только для объекта «Плоскость», поскольку для него можно определить «истинное» количество точек центров полос как произведение количества полос на количество строк изображения. Для обоих методов при детекции полос на плоском объекте по V был получен одинаковый максимальный результат. Для объекта «Бюст» возможно проведение качественной оценки, результаты детекции полос приведены на рис. 8. Видно, что метод Канни позволяет детектировать больше точек локальных максимумов при том же пороговом значении за счет использования «сильного» и «слабого» порогов, однако это преимущество незначительно. Основным преимуществом метода Канни является то, что выбранные точки уже связаны в фрагменты полос, что можно использовать далее на этапах классификации и декодирования для повышения общей надежности работы алгоритма.


Рис. 8. Результаты работы алгоритмов выделения полос: (а) прямой метод, (б) метод Канни

4 Классификация выделенных полос по цвету. Кластеризация

На данном этапе решается задача классификации выделенных точек-центров полос по цвету на 7 типов: 6 типов, соответствующим 6 используемым цветам и «неклассифицированные» точки, которые нельзя надежно соотнести ни с одним из используемых цветов. Для решения данной задачи можно применить ряд различных методов, среди которых можно выделить две группы: методы с фиксированными порогами и адаптивные методы.

Рассмотрим возможные варианты решения этой задачи в различных цветовых пространствах: YCbCr и HSV, представленные в литературе. Классификация производится пороговым методом, пороговые значения выбраны заранее. Использование алгоритма кластеризации позволяет адаптировать алгоритм к изменению внешней освещенности и повысить надежность классификации при работе с цветными объектами.Рассмотрим алгоритмы кластеризации в цветовых пространствах YCbCr (по разностным компонентам Cb и Cr) и HSV (по насыщенности S и тону Н).

Алгоритм кластеризации состоит из двух повторяющихся действий:
Отнести каждую точку к кластеру, расстояние до центральной точки которого наименьшее из всех;
Используя текущее распределение точек по кластерам, определить среднее значение для каждого кластера и присвоить это значение центральной точке кластера.


Рис.9. Гистограмма полученная с белой плоскости


Рис.10. Влияние структуры объекта на качество гистограммы. Слева- гистограмма, полученная при обработке кадра с белым бюстом. Справа-гистограмма, полученная при обработке кадра с цветной игрушкой


Рис.11. Результаты кластеризации для белого объекта а, б - кластеризация в цветовом пространстве Cb-Cr; в, г - кластеризация в цветовом пространстве H-S

Принадлежность точки к кластеру показана цветом, расположение точек соответствует их координатам в плоскости CbCr (рис. 12, а) и в плоскости HS (рис. 12, б). Из рисунков видно, что алгоритм неверно классифицирует множество точек с низким значением насыщенности S. Причиной этой ошибки является метод расчета расстояния от точки до центра кластера, которое определяется без учета формы кластера. Для кластеризации в декартовом пространстве расстояние от точки до центра кластера без учета формы кластеров.

Данную проблему можно устранить при кластеризации по цветовому тону H и насыщенности S, и введения искусственного коэффициента анизотропии. В этом случае расстояние от произвольной точки до ближайшего кластера можно посчитать по формуле, где k < 1. Введение такой анизотропии позволит учесть «вытянутость» кластера вдоль S. На рисунке рис. 11, в, г приведены результаты кластеризации по значениям H и S при k = 1/3. Использован сдвиг по цветовому тону для сохранения целостности красного кластера.

Также на рисунках рис. 12, б, г можно заметить множество, которые нельзя с уверенностью отнести к какому либо из кластеров. Вводя пороговое значение по насыщенности S или по расстоянию до центра кластера можно выделить данные точки в кластер «неклассифицированных».


Рис.12 Результат работы алгоритмов выделения полос и кластеризации

Произведя декодировку получим трехмерное облако точек:


Рис.13. Восстановленное трехмерное облако точек для белого объекта

К сожалению, при добавлении слабого фона или текстуры вносятся нелинейные искажения и алгоритм перестает работать. О том, как боролись с фоном и делали алгоритм адаптивным - в следующей части.

Список литературы

1. Hartley R.I., Zisserman A. Multiple View Geometry. Cambridge, UK: Cambridge University Press, 2000.
2. Scharstein D., Szeliski R.A taxonomy and evaluation of dense two frame stereocorrespondence algorithms // International Journal of Computer Vision. 2002. Vol. 47(1-3).
P. 7–42.
3. Salvi J., Pages J., Batlle J. Pattern codification strategies in structured light systems // Pattern Recognition. 2004. Vol. 37(4). P. 827–849.
4. Geng J. Structured-light 3d surface imaging: a tutorial // Advances in Optics and Photonics. 2011. Vol. 3. P. 128–160.
5. Сафрошкин М.А. Экспериментальные исследования параллаксного метода регистрации 3д объектов с цветным кодированием // Молодежный Научно Технический Вестник, 2013. URL: sntbul.bmstu.ru/doc/608517.html .
6. Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде MatLab. М.: Техносфера, 2006.
7. Fechteler P., Eisen P. Adaptive color classification for structured light systems // Computer Vision and Pattern Recognition Workshops, 2008. CVPRW "08. IEEE Computer Society Conference. P. 1-7.
8. Fechteler P., Eisen P., Rurainsky J. Fast and High resolution 3D face scanning // Image Processing, 2007. ICIP 2007. IEEE International Conference. P. 81-847. V.K. De Wansa Wickramarante, V.V. Ryazanov, A.P. Vinogradov. Accurate reconstruction of 3D model of a human face using structured light // Pattern Recognition and Image Analysis, 2008. Vol. 18, No. 3, P. 442-446.
9. Xing Lu, Jung-Hong Zhou, Dong-Dong Liu, Jue Zhang, Application of color structured light pattern to measurement of large out-of-plane deformation // Acta-Mech. Sin(2011). Vol. 27(6). P. 1098-1104.
10. Permuter, H.; Francos, J.; Jermyn, I.H. A study of Gaussian mixture models of color and texture features for image classification and segmentation // Pattern Recognition, 2006. Vol. 39, No. 4, P. 695–706.6. Zhang Z. Flexible camera calibration by viewing a plane from unknown orientations // International Conference on Computer Vision, 1999. P. 666–673.
11. Zhang Z. Flexible camera calibration by viewing a plane from unknown orientations // International Conference on Computer Vision, 1999. P. 666–673.
12. Falcao G., Hurtos N., Massich J. Plane-based calibration of a projector-camera system // VIBOT Master, 2008.
13. V.K. De Wansa Wickramarante, V.V. Ryazanov, A.P. Vinogradov. Accurate reconstruction of 3D model of a human face using structured light // Pattern Recognition and Image Analysis, 2008. Vol. 18, No. 3, P. 442-446

Теги: Добавить метки



Рекомендуем почитать

Наверх