Основные этапы этого конвейера восприятия

RGBD-канал камеры от ASUS Xtion

1. Реализован конвейер для фильтрации и подгонки к плоскости RANSAC.

Статистический фильтр выбросов

Это используется для удаления точек, не удовлетворяющих заданным критериям. В этом мы установили 2 вещи:

  1. Количество соседей, которые необходимо учитывать.
  2. Расстояние, при превышении которого точка считается выбросом.

Даунсэмплинг сетки гласных

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

Проходная фильтрация (обрезка)

Указание оси приводит к обрезке в этом направлении с заданной величиной. Я поставил сквозной фильтр для

  1. x ось для фильтрации окружающих бункеров.
  2. z ось для фильтрации подставки стола

Консенсус случайной выборки (RANSAC)

RANSAC используется для кластеризации точек, когда:

  1. Конкретная форма кластера известна.
  2. Количество кластеров известно.

Мы знали, что есть только 1 (номер) таблица, а также ее планарная (форма). Таким образом, был использован RANSAC.

Объекты находятся в отличии от модели подгонки плоскости RANSAC

2. Реализован конвейер, включая кластеризацию для сегментации.

DBSCAN (евклидова кластеризация)

Используется, когда количество кластеров неизвестно (это похоже на сценарий из реальной жизни, где это почти всегда верно). Учитывая радиус d и количество рассматриваемых точек N, он сегментирует точки на точки, тем самым сегментируя поток RGBD камеры на отдельные объекты.

2. Извлеченные функции и обучение SVM. Реализовано распознавание объектов.

Особенности Извлечь

Извлечение хороших характеристик приводит к лучшему и надежному распознаванию объектов.

(куб) RGB = RG и ось b, где точка представляет значение R, G и B в точке.

(цилиндр) HSV = Hue - это цвет (угловое смещение), насыщенность - это интенсивность цвета (радиальное смещение), а значение - это звуковая яркость (высота).

Обучение с помощью HSV приводит к лучшим результатам, чем аналоги RGB, потому что оно имеет низкую зависимость от уровней яркости.

цветовая гистограмма (использует информацию о цвете как функцию)

  1. Разделите диапазон значений на разные ячейки.
  2. Поместите входящие значения в соответствующие ячейки.
  3. Нормализация может помочь сопоставить объекты разного размера.
  4. Сравните полученное цветовое распределение с объектом, который нужно найти.

Нормали поверхности (использует информацию о форме как элемент)

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

Код гистограммы можно найти в файле features.py.

Машина опорных векторов (SVM)

Характеристики сохраняются в виде нормализованной гистограммы (единичная дисперсия и нулевое среднее) и передаются в SVM для обучения.

  1. Учитывая особенности и метки точек данных, он обучается и вычисляет границу решения.
  2. Использует границу решения для прогнозирования новой метки новых точек данных.

Шаги, предпринятые для использования SVM:

  1. Прочтите входные изображения.
  2. Extract цветной (характерный) вектор.
  3. Нормализуйте вектор до zero mean и unit variance.
  4. Определите вектор метки.
  5. Перемешайте и разделите данные на наборы training и testing.
  6. Определите классификатор.
  7. Обучите классификатор.

Технические характеристики ИмяЗначениеИтерации99Bins32Точность90% (приблизительно)

Обнаружение объектов

Обученная модель SVM классифицирует точки захвата в объект. Точность модели зависит от качества и количества выборок данных объекта, на которых была обучена SVM. Файлы output_*.yaml для test\*.world можно найти в pr2_robot/scripts/. Только glue не обнаруживался в test3.world, потому что book был перед ним. При удалении книги впереди клей успешно обнаружился. Выходной файл этого сценария обозначен как output_3_glue_detected.yaml.

Заключение:

Будущая работа

Этот проект можно импровизировать, включив в него операции выбора и размещения. Это также улучшит распознавание объектов, потому что некоторые из объектов позади других, например, в test3.world, glue находится за book, если book поднят и помещен (в другом месте или в Dropbox), клей будет легко обнаружен, как видно из outputdglue_detected.yaml.

Кроме того, обнаружение столкновений является важным аспектом для эффективных и безопасных манипуляций робота.

Терпит неудачу

Этот проект может потерпеть неудачу, если:

  1. Количество столов неизвестно; RANSAC должен знать количество кластеров, чтобы быть эффективным.
  2. Если не обучен для облака точек объекта; это можно улучшить, обучив SVM на наборе данных из множества облаков точек реальных объектов.
  3. Сквозные фильтры необходимо изменять для разных сценариев, чтобы лучше фильтровать анализ только ценностных объектов.