Использование Kinect для обнаружения объектов на полу

Допустим, у меня есть кинект, указывающий на пол.

Если я размещу 3 или 4 объекта на полу, как я могу определить плоскость, на которой находятся эти объекты?

Как я могу обнаружить ярко окрашенные объекты на этом этаже?


person Joseph Le Brech    schedule 08.02.2012    source источник


Ответы (1)


Kinect возвращает вам матричную deph-карту, которая представляет расстояние от любой поверхности до сенсора и соответствует модель камеры-обскуры можно сопоставить каждую меру глубины с соответствующим значением RGB. Я буду считать, что вы уже знаете, как соотнести каждый пиксель матрицы глубины с его X, Y, Z в пространстве и его значением RGB. Если нет, вам нужно будет провести дальнейшее исследование и понять, как осуществляется стереокорреляция между датчиком глубины и камерой RGB.

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

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

С помощью 3 центральных точек A', B' и C' вы сможете найти искомую плоскость, как показано на рисунке ниже:

В поисках самолета

Объяснение: плоскость может быть представлена ​​как точка (положение) и нормаль (ориентация). Учитывая, что все ваши объекты будут точно в той плоскости, которую вы пытаетесь найти, все, что вам нужно, это 3 точки, A, B, C, которые будут представлять собой треугольник внутри этой плоскости. Нормаль этого треугольника равна (A - B) x (C - B) - здесь x представляет векторное произведение - и совпадает с плоскостью. Таким образом, ваша плоскость будет любой из этих трех точек и нормального треугольника. Если размеры объекта значительны, вам нужно будет принять их во внимание, чтобы определить положение вашей плоскости.

person Ian Medeiros    schedule 08.02.2012
comment
Хорошо. Я проделал с ним некоторые работы, а также выполнил несколько проектов по компьютерному зрению. Хороший взгляд! - person Ian Medeiros; 08.02.2012
comment
Я хочу создать игру в понг, используя футбольные мячи для управления веслами. - person Joseph Le Brech; 08.02.2012