Spec-Zone.ru › PointCloudLibrary

Этот класс реализует алгоритм неявной модели формы, описанный в статье "Hough Transforms and 3D SURF for robust three dimensional classication" авторов Яна Кноппа1, Мукты Прасада, Герт Виллемс1, Раду Тимофте и Люка Ван Гоола. Подробнее...

#include <pcl/recognition/implicit_shape_model.h>

Collaboration graph
[легенда]

Вложенные классы

структура LocationInfo
Эта структура хранит информацию о ключевой точке. Подробнее...
структура TermCriteria
Эта структура используется для определения окончания процесса кластеризации k-средних. Подробнее...
структура VisualWordStat
Структура для хранения визуального слова. Подробнее...

Публичные типы

using ISMModelPtr = pcl::features::ISMModel::Ptr
using Feature = pcl::Feature< PointT, pcl::Histogram< FeatureSize > >
using FeaturePtr = typename Feature::Ptr

Общедоступные члены-функции

ImplicitShapeModelEstimation ()
Простой конструктор, который инициализирует всё. Подробнее...
virtual ~ImplicitShapeModelEstimation ()
Простой деструктор. Подробнее...
std::vector< typename pcl::PointCloud< PointT >::Ptr > getTrainingClouds ()
Этот метод просто возвращает облака, которые были установлены как обучающие облака. Подробнее...
void setTrainingClouds (const std::vector< typename pcl::PointCloud< PointT >::Ptr > &training_clouds)
Позволяет установить облака для обучения модели ISM. Подробнее...
std::vector< unsigned int > getTrainingClasses ()
Возвращает массив классов, указывающий к какому классу принадлежит соответствующее обучающее облако. Подробнее...
void setTrainingClasses (const std::vector< unsigned int > &training_classes)
Позволяет установить метки классов для соответствующих обучающих облаков. Подробнее...
std::vector< typename pcl::PointCloud< NormalT >::Ptr > getTrainingNormals ()
Этот метод возвращает соответствующее облако нормалей для каждого обучающего облака точек. Подробнее...
void setTrainingNormals (const std::vector< typename pcl::PointCloud< NormalT >::Ptr > &training_normals)
Позволяет установить нормали для обучающих облаков, которые были переданы через метод setTrainingClouds. Подробнее...
float getSamplingSize ()
Возвращает размер выборки, используемый для упрощения облаков. Подробнее...
void setSamplingSize (float sampling_size)
Изменяет размер выборки, используемый для упрощения облаков. Подробнее...
FeaturePtr getFeatureEstimator ()
Возвращает текущий оценщик признаков, используемый для извлечения описателей. Подробнее...
void setFeatureEstimator (FeaturePtr feature)
Изменяет оценщик признаков. Подробнее...
unsigned int getNumberOfClusters ()
Возвращает количество кластеров, используемых для кластеризации описателей. Подробнее...
void setNumberOfClusters (unsigned int num_of_clusters)
Изменяет количество кластеров. Подробнее...
std::vector< float > getSigmaDists ()
Возвращает массив значений сигма. Подробнее...
void setSigmaDists (const std::vector< float > &training_sigmas)
Этот метод позволяет установить значение сигма, используемое для вычисления изученных весов для каждого класса. Подробнее...
bool getNVotState ()
Возвращает состояние коэффициента Nvot из [Knopp et al., 2010, (4)]. Если значение равно false, то коэффициент принимается равным 1.0. Подробнее...
void setNVotState (bool state)
Изменяет состояние коэффициента Nvot из [Knopp et al., 2010, (4)]. Подробнее...
bool trainISM (ISMModelPtr &trained_model)
Этот метод выполняет обучение и формирует визуальный словарь. Подробнее...
pcl::features::ISMVoteList< PointT >::Ptr findObjects (ISMModelPtr model, typename pcl::PointCloud< PointT >::Ptr in_cloud, typename pcl::PointCloud< Normal >::Ptr in_normals, int in_class_of_interest)
Эта функция ищет класс, указанный пользователем, в заданном облаке точек и возвращает список голосов. Подробнее...

Защищённые члены-функции

bool extractDescriptors (std::vector< pcl::Histogram< FeatureSize > > &histograms, std::vector< LocationInfo, Eigen::aligned_allocator< LocationInfo > > &locations)
Извлекает дескрипторы из входных облаков точек. Подробнее...
bool clusterDescriptors (std::vector< pcl::Histogram< FeatureSize > > &histograms, Eigen::MatrixXi &labels, Eigen::MatrixXf &clusters_centers)
Этот метод выполняет кластеризацию дескрипторов. Подробнее...
void calculateSigmas (std::vector< float > &sigmas)
Этот метод вычисляет значение сигмы, используемое для вычисления выученных весов для каждого класса. Подробнее...
void calculateWeights (const std::vector< LocationInfo, Eigen::aligned_allocator< LocationInfo > > &locations, const Eigen::MatrixXi &labels, std::vector< float > &sigmas, std::vector< std::vector< unsigned int > > &clusters, std::vector< std::vector< float > > &statistical_weights, std::vector< float > &learned_weights)
Эта функция формирует визуальный словарь и вычисляет веса, описанные в [Knopp et al., 2010, (5)]. Подробнее...
void simplifyCloud (typename pcl::PointCloud< PointT >::ConstPtr in_point_cloud, typename pcl::PointCloud< NormalT >::ConstPtr in_normal_cloud, typename pcl::PointCloud< PointT >::Ptr out_sampled_point_cloud, typename pcl::PointCloud< NormalT >::Ptr out_sampled_normal_cloud)
Упрощает облако с помощью принципов сетки вокселей. Подробнее...
void shiftCloud (typename pcl::PointCloud< PointT >::Ptr in_cloud, Eigen::Vector3f shift_point)
Этот метод просто смещает точки облаков относительно заданной точки. Подробнее...
Eigen::Matrix3f alignYCoordWithNormal (const NormalT &in_normal)
Этот метод просто вычисляет матрицу поворота, чтобы заданная нормаль совпадала с осью Y после преобразования. Подробнее...
void applyTransform (Eigen::Vector3f &io_vec, const Eigen::Matrix3f &in_transform)
Этот метод применяет преобразование, заданное в in_transform, к вектору io_vector. Подробнее...
void estimateFeatures (typename pcl::PointCloud< PointT >::Ptr sampled_point_cloud, typename pcl::PointCloud< NormalT >::Ptr normal_cloud, typename pcl::PointCloud< pcl::Histogram< FeatureSize > >::Ptr feature_cloud)
Этот метод оценивает особенности для заданного облака точек. Подробнее...
double computeKMeansClustering (const Eigen::MatrixXf &points_to_cluster, int number_of_clusters, Eigen::MatrixXi &io_labels, TermCriteria criteria, int attempts, int flags, Eigen::MatrixXf &cluster_centers)
Выполняет кластеризацию K-средних. Подробнее...
void generateCentersPP (const Eigen::MatrixXf &data, Eigen::MatrixXf &out_centers, int number_of_clusters, int trials)
Генерирует центры кластеров, как описано в Arthur, David and Sergei Vassilvitski (2007) k-means++: The Advantages of Careful Seeding. Подробнее...
void generateRandomCenter (const std::vector< Eigen::Vector2f, Eigen::aligned_allocator< Eigen::Vector2f > > &boxes, Eigen::VectorXf &center)
Генерирует случайный центр кластера. Подробнее...
float computeDistance (Eigen::VectorXf &vec_1, Eigen::VectorXf &vec_2)
Вычисляет квадратное расстояние между двумя векторами. Подробнее...
ImplicitShapeModelEstimation & operator= (const ImplicitShapeModelEstimation &)
Запрещает оператор присваивания. Подробнее...

Защищенные атрибуты

std::vector< typename pcl::PointCloud< PointT >::Ptr > training_clouds_
Хранит облака, используемые для обучения. Подробнее...
std::vector< unsigned int > training_classes_
Хранит номер класса для каждого облака из training_clouds_. Подробнее...
std::vector< typename pcl::PointCloud< NormalT >::Ptr > training_normals_
Хранит нормали для каждого облака обучения. Подробнее...
std::vector< float > training_sigmas_
Этот массив хранит значения сигмы для каждого класса обучения. Подробнее...
float sampling_size_
Это значение используется для упрощения. Подробнее...
Feature::Ptr feature_estimator_
Хранит оценщик признаков. Подробнее...
unsigned int number_of_clusters_
Количество кластеров, используется для кластеризации описателей во время обучения. Подробнее...
bool n_vot_ON_
Если установлено в false, то Nvot-коэффициент из [Knopp et al., 2010, (4)] равен 1,0. Подробнее...

Статические защищенные атрибуты

static const int PP_CENTERS = 2
Это константа, используемая для указания того, что для кластеризации K-средних центры должны быть сгенерированы, как описано в Arthur, David and Sergei Vassilvitski (2007) k-means++: Преимущества тщательного посева. Подробнее...
static const int USE_INITIAL_LABELS = 1
Это константа, используемая для указания того, что входные метки должны быть взяты как начальное приближение для кластеризации K-средних. Подробнее...

Подробное описание

шаблон<int FeatureSize, typename PointT, typename NormalT = pcl::Normal>
класс pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >

Этот класс реализует алгоритм Неявной Модели Формы, описанный в "Преобразования Гаусса и 3D SURF для надежной трехмерной классификации" Ян Кнопп1, Мукта Прасад, Герт Виллемс1, Раду Тимофте и Люк Ван Гоул.

У него две основные функции-члена. Одна для обучения, используя данные, для которых мы знаем, к какому классу они относятся. И вторая для изучения облака на предмет наличия класса, который нас интересует. Реализация алгоритма Неявной Модели Формы, описанного в "Преобразования Гаусса и 3D SURF для надежной трехмерной классификации" Ян Кнопп, Мукта Прасад, Герт Виллемс, Раду Тимофте и Люк Ван Гоул

Авторы: Роман Шаповалов, Александр Велижев, Сергей Ушаков

Определение в строке 241 файла implicit_shape_model.h.

Документация по определениям типов членов

Feature

шаблон<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
используя pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::Feature = pcl::Feature<PointT, pcl::Histogram<FeatureSize> >

Определение в строке 246 файла implicit_shape_model.h.

FeaturePtr

шаблон<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
используя pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::FeaturePtr = typename Feature::Ptr

Определение в строке 247 файла implicit_shape_model.h.

ISMModelPtr

шаблон<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
используя pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::ISMModelPtr = pcl::features::ISMModel::Ptr

Определение в строке 245 файла implicit_shape_model.h.

Конструктор & Деструктор

ImplicitShapeModelEstimation()

шаблон<int FeatureSize, typename PointT , typename NormalT >
pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::ImplicitShapeModelEstimation

Простой конструктор, который инициализирует всё.

Определение в строке 549 файла implicit_shape_model.hpp.

~ImplicitShapeModelEstimation()

шаблон<int FeatureSize, typename PointT , typename NormalT >
pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::~ImplicitShapeModelEstimation
виртуальный

Простой деструктор.

Определение в строке 563 файла implicit_shape_model.hpp.

Документация по функциям-членам

alignYCoordWithNormal()

шаблон<int FeatureSize, typename PointT , typename NormalT >
Eigen::Matrix3f pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::alignYCoordWithNormal ( const NormalT & in_normal )
защищённый

Этот метод просто вычисляет матрицу вращения, так что заданная нормаль будет соответствовать оси Y после преобразования.

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

Параметры
[вход] in_normal нормаль, для которой необходимо вычислить матрицу вращения

Определение в строке 1193 файла implicit_shape_model.hpp.

Ссылки pcl::B.

applyTransform()

шаблон<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::applyTransform ( Eigen::Vector3f & io_vec,
const Eigen::Matrix3f & in_transform
)
защищённый

Этот метод применяет преобразование, заданное в in_transform, к вектору io_vector.

Параметры
[вход] io_vec вектор, который нужно преобразовать
[вход] in_transform матрица, содержащая преобразование

Определение в строке 1224 файла implicit_shape_model.hpp.

calculateSigmas()

шаблон<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::calculateSigmas ( std::vector< float > & sigmas )
защищённый

Этот метод вычисляет значение sigma, используемое для вычисления выученных весов для каждого класса.

Параметры
[выход] sigmas вычисленные sigmas.

Определение в строке 934 файла implicit_shape_model.hpp.

calculateWeights()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::calculateWeights ( const std::vector< LocationInfo, Eigen::aligned_allocator< LocationInfo > > & locations,
const Eigen::MatrixXi & labels,
std::vector< float > & sigmas,
std::vector< std::vector< unsigned int > > & clusters,
std::vector< std::vector< float > > & statistical_weights,
std::vector< float > & learned_weights
)
protected

Эта функция формирует визуальный словарь и вычисляет веса, описанные в [Knopp et al., 2010, (5)].

Параметры
[in] locations массив, содержащий описание каждой ключевой точки: её положение, к какому облаку она относится и ожидаемое направление к центру
[in] labels метки, полученные во время кластеризации k-средних
[in] sigmas массив сигм для каждого класса
[in] clusters кластеры, полученные во время кластеризации k-средних
[out] statistical_weights хранит вычисленные статистические веса
[out] learned_weights хранит вычисленные усреднённые веса

Определение в строке 985 файла implicit_shape_model.hpp.

clusterDescriptors()

template<int FeatureSize, typename PointT , typename NormalT >
bool pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::clusterDescriptors ( std::vector< pcl::Histogram< FeatureSize > > & histograms,
Eigen::MatrixXi & labels,
Eigen::MatrixXf & clusters_centers
)
protected

Этот метод выполняет кластеризацию дескрипторов.

Параметры
[in] histograms дескрипторы для кластеризации
[out] labels содержит метки для каждого дескриптора
[out] clusters_centers хранит центры кластеров

Определение в строке 908 файла implicit_shape_model.hpp.

computeDistance()

template<int FeatureSize, typename PointT , typename NormalT >
float pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::computeDistance ( Eigen::VectorXf & vec_1,
Eigen::VectorXf & vec_2
)
protected

Вычисляет квадратное расстояние между двумя векторами.

Параметры
[in] vec_1 первый вектор
[in] vec_2 второй вектор

Определение в строке 1514 файла implicit_shape_model.hpp.

Ссылки на pcl::geometry::distance().

computeKMeansClustering()

template<int FeatureSize, typename PointT , typename NormalT >
double pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::computeKMeansClustering ( const Eigen::MatrixXf & points_to_cluster,
int number_of_clusters,
Eigen::MatrixXi & io_labels,
TermCriteria criteria,
int attempts,
int flags,
Eigen::MatrixXf & cluster_centers
)
protected

Выполняет кластеризацию K-средних.

Параметры
[in] points_to_cluster точки для кластеризации
[in] number_of_clusters желаемое количество кластеров
[out] io_labels параметр вывода, который хранит метку для каждой точки
[in] criteria определяет, когда необходимо завершить вычислительный процесс. Например, если достигнута желаемая точность или количество итераций превысило заданное значение
[in] attempts количество попыток вычисления кластеризации
[in] flags если установлено USE_INITIAL_LABELS, то начальное приближение меток берётся из io_labels
[out] cluster_centers будет хранить центры кластеров

Определение в строке 1256 файла implicit_shape_model.hpp.

estimateFeatures()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::estimateFeatures ( typename pcl::PointCloud< PointT >::Ptr sampled_point_cloud,
typename pcl::PointCloud< NormalT >::Ptr normal_cloud,
typename pcl::PointCloud< pcl::Histogram< FeatureSize > >::Ptr feature_cloud
)
protected

Этот метод оценивает характеристики для заданного облака точек.

Параметры
[in] sampled_point_cloud выборка облака точек, для которых должны быть вычислены характеристики
[in] normal_cloud нормали для исходного облака точек
[out] feature_cloud будет хранить вычисленные гистограммы (характеристики) для заданного облака

Определение в строке 1231 файла implicit_shape_model.hpp.

Ссылки на pcl::PointCloud< PointT >::makeShared() и pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::setInputNormals().

extractDescriptors()

template<int FeatureSize, typename PointT , typename NormalT >
bool pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::extractDescriptors ( std::vector< pcl::Histogram< FeatureSize > > & histograms,
std::vector< LocationInfo, Eigen::aligned_allocator< LocationInfo > > & locations
)
protected

Извлекает описатели из входных облаков.

Параметры
[out] histograms будет хранить описатели для каждой ключевой точки
[out] locations будет содержать подробную информацию (например, направление, начальную ключевую точку) для соответствующих описателей

Определение в строке 847 файла implicit_shape_model.hpp.

Ссылки на pcl::PointCloud< PointT >::begin(), pcl::geometry::distance() и pcl::PointCloud< PointT >::points.

findObjects()

template<int FeatureSize, typename PointT , typename NormalT >
pcl::features::ISMVoteList< PointT >::Ptr pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::findObjects ( ISMModelPtr model,
typename pcl::PointCloud< PointT >::Ptr in_cloud,
typename pcl::PointCloud< Normal >::Ptr in_normals,
int in_class_of_interest
)

Эта функция ищет класс, представляющий интерес, в заданном облаке и возвращает список голосов.

Параметры
[in] model обученная модель, которая будет использоваться для поиска объектов
[in] in_cloud входное облако, которое необходимо исследовать
[in] in_normals облако нормалей, соответствующее входному облаку
[in] in_class_of_interest класс, который мы ищем

Определение в строке 752 файла implicit_shape_model.hpp.

Ссылки на pcl::features::ISMVoteList< PointT >::addVote(), pcl::PointCloud< PointT >::points, pcl::PointCloud< PointT >::size() и pcl::InterestPoint::strength.

generateCentersPP()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::generateCentersPP ( const Eigen::MatrixXf & data,
Eigen::MatrixXf & out_centers,
int number_of_clusters,
int trials
)
protected

Генерирует центры кластеров, как описано в Arthur, David и Sergei Vassilvitski (2007) k-means++: Преимущества тщательной инициализации.

Параметры
[in] data точки для кластеризации
[out] out_centers будет содержать сгенерированные центры
[in] number_of_clusters определяет количество желаемых центров кластеров
[in] trials количество попыток сгенерировать центр

Определение в строке 1422 файла implicit_shape_model.hpp.

generateRandomCenter()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::generateRandomCenter ( const std::vector< Eigen::Vector2f, Eigen::aligned_allocator< Eigen::Vector2f > > & boxes,
Eigen::VectorXf & center
)
protected

Генерирует случайный центр для кластера.

Параметры
[in] boxes содержит минимальные и максимальные значения для каждой размерности
[out] center будет содержать сгенерированный центр

Определение в строке 1498 файла implicit_shape_model.hpp.

getFeatureEstimator()

template<int FeatureSize, typename PointT , typename NormalT >
pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::FeaturePtr pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getFeatureEstimator

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

Определение в строке 639 файла implicit_shape_model.hpp.

getNumberOfClusters()

template<int FeatureSize, typename PointT , typename NormalT >
unsigned int pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getNumberOfClusters

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

Определение в строке 653 файла implicit_shape_model.hpp.

getNVotState()

template<int FeatureSize, typename PointT , typename NormalT >
bool pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getNVotState

Возвращает состояние коэффициента Nvot из [Knopp et al., 2010, (4)], если установлено в false, то коэффициент принимается равным 1,0.

Это всего лишь своего рода эвристика. По умолчанию поведение соответствует статье. Поэтому вы можете проигнорировать это, если хотите.

Определение в строке 684 файла implicit_shape_model.hpp.

getSamplingSize()

template<int FeatureSize, typename PointT , typename NormalT >
float pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getSamplingSize

Возвращает размер выборки, используемый для упрощения облака.

Определение в строке 624 файла implicit_shape_model.hpp.

getSigmaDists()

template<int FeatureSize, typename PointT , typename NormalT >
std::vector< float > pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getSigmaDists

Возвращает массив значений сигма.

Определение в строке 668 файла implicit_shape_model.hpp.

getTrainingClasses()

template<int FeatureSize, typename PointT , typename NormalT >
std::vector< unsigned int > pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getTrainingClasses

Возвращает массив классов, указывающий, к какому классу принадлежит соответствующее обучающее облако.

Определение в строке 591 файла implicit_shape_model.hpp.

getTrainingClouds()

template<int FeatureSize, typename PointT , typename NormalT >
std::vector< typename pcl::PointCloud< PointT >::Ptr > pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getTrainingClouds

Этот метод просто возвращает облака, которые были установлены в качестве обучающих облаков.

Определение в строке 574 файла implicit_shape_model.hpp.

getTrainingNormals()

template<int FeatureSize, typename PointT , typename NormalT >
std::vector< typename pcl::PointCloud< NormalT >::Ptr > pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::getTrainingNormals

Этот метод возвращает соответствующее облако нормалей для каждого обучающего облака точек.

Определение в строке 607 файла implicit_shape_model.hpp.

operator=()

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
ImplicitShapeModelEstimation& pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::operator= ( const ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT > & )
protected

Запрещает оператор присваивания.

setFeatureEstimator()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setFeatureEstimator ( FeaturePtr feature )

Изменяет оценщик признаков.

Parameters
[in] feature оценщик признаков, который будет использоваться для извлечения описателей. Обратите внимание, что он должен быть полностью инициализирован и настроен.

Определение в строке 646 файла implicit_shape_model.hpp.

setNumberOfClusters()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setNumberOfClusters ( unsigned int num_of_clusters )

Изменяет количество кластеров.

Parameters
num_of_clusters требуемое количество кластеров

Определение в строке 660 файла implicit_shape_model.hpp.

setNVotState()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setNVotState ( bool state )

Изменяет состояние коэффициента Nvot из [Knopp et al., 2010, (4)].

Parameters
[in] state желаемое состояние; если false, то Nvot принимается равным 1,0

Определение в строке 691 файла implicit_shape_model.hpp.

setSamplingSize()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setSamplingSize ( float sampling_size )

Изменяет размер выборки, используемый для упрощения облака.

Parameters
[in] sampling_size желаемый размер ячейки сетки

Определение в строке 631 файла implicit_shape_model.hpp.

setSigmaDists()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setSigmaDists ( const std::vector< float > & training_sigmas )

Этот метод позволяет установить значение сигмы, используемое для вычисления выученных весов для каждого класса.

Parameters
[in] training_sigmas новые сигмы для каждого класса. Если вы хотите, чтобы эти значения вычислялись автоматически, просто передайте пустой массив. Автоматический режим вычисляет максимальное расстояние между точками объектов и принимает 10% от этого значения, как рекомендуется в статье. Если есть несколько объектов одного класса, то вычисляется среднее максимальное расстояние и берется 10%. Обратите внимание, что каждый класс имеет свое собственное значение сигмы.

Определение в строке 675 файла implicit_shape_model.hpp.

setTrainingClasses()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setTrainingClasses ( const std::vector< unsigned int > & training_classes )

Позволяет задать метки классов для соответствующих обучающих облаков.

Parameters
[in] training_classes массив меток классов

Определение в строке 598 файла implicit_shape_model.hpp.

setTrainingClouds()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setTrainingClouds ( const std::vector< typename pcl::PointCloud< PointT >::Ptr > & training_clouds )

Позволяет задать облака для обучения модели ISM.

Parameters
[in] training_clouds массив облаков точек для обучения

Определение в строке 581 файла implicit_shape_model.hpp.

setTrainingNormals()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::setTrainingNormals ( const std::vector< typename pcl::PointCloud< NormalT >::Ptr > & training_normals )

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

Parameters
[in] training_normals массив облаков, каждое облако — это облако нормалей

Определение в строке 614 файла implicit_shape_model.hpp.

shiftCloud()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::shiftCloud ( typename pcl::PointCloud< PointT >::Ptr in_cloud,
Eigen::Vector3f shift_point
)
protected

Этот метод просто смещает точки облака относительно переданной точки.

Parameters
[in] in_cloud облако для смещения
[in] shift_point точка, относительно которой будет смещено облако

Определение в строке 1179 файла implicit_shape_model.hpp.

Ссылки на pcl::PointCloud< PointT >::points.

simplifyCloud()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::simplifyCloud ( typename pcl::PointCloud< PointT >::ConstPtr in_point_cloud,
typename pcl::PointCloud< NormalT >::ConstPtr in_normal_cloud,
typename pcl::PointCloud< PointT >::Ptr out_sampled_point_cloud,
typename pcl::PointCloud< NormalT >::Ptr out_sampled_normal_cloud
)
protected

Упрощает облако с использованием принципов воксельного грида.

Parameters
[in] in_point_cloud облако, которое нужно упростить
[in] in_normal_cloud нормали облака, которое нужно упростить
[out] out_sampled_point_cloud упрощённое облако
[out] out_sampled_normal_cloud и соответствующие нормали

Определение в строке 1115 файла implicit_shape_model.hpp.

Ссылки на pcl::geometry::distance(), pcl::FilterIndices< PointT >::filter(), pcl::Filter< PointT >::filter(), pcl::VoxelGrid< PointT >::getCentroidIndex(), pcl::PCLBase< PointT >::setIndices(), pcl::PCLBase< PointT >::setInputCloud(), pcl::VoxelGrid< PointT >::setLeafSize(), pcl::VoxelGrid< PointT >::setSaveLeafLayout(), и pcl::PointCloud< PointT >::size().

trainISM()

template<int FeatureSize, typename PointT , typename NormalT >
bool pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::trainISM ( ISMModelPtr & trained_model )

Этот метод выполняет обучение и формирует визуальный словарь.

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

Parameters
[out] trained_model обученная модель

Определение в строке 698 файла implicit_shape_model.hpp.

Документация по данным члена

feature_estimator_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
Feature::Ptr pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::feature_estimator_
protected

Хранит оценщик признаков.

Определение в строке 603 файла implicit_shape_model.h.

n_vot_ON_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
bool pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::n_vot_ON_
protected

Если установлено в false, то коэффициент Nvot из [Knopp et al., 2010, (4)] равен 1,0.

Определение в строке 609 файла implicit_shape_model.h.

number_of_clusters_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
unsigned int pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::number_of_clusters_
protected

Число кластеров, используется для кластеризации дескрипторов во время обучения.

Определение в строке 606 файла implicit_shape_model.h.

PP_CENTERS

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
const int pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::PP_CENTERS = 2
staticprotected

Это константа, используемая для указания того, что центры для кластеризации k-means должны быть сгенерированы, как описано в работе Arthur, David and Sergei Vassilvitski (2007) k-means++: The Advantages of Careful Seeding.

Определение в строке 614 файла implicit_shape_model.h.

sampling_size_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
float pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::sampling_size_
protected

Это значение используется для упрощения.

Оно устанавливает размер ячейки сетки.

Определение в строке 600 файла implicit_shape_model.h.

training_classes_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
std::vector<unsigned int> pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::training_classes_
protected

Хранит номер класса для каждого облака из training_clouds_.

Определение в строке 589 файла implicit_shape_model.h.

training_clouds_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
std::vector<typename pcl::PointCloud<PointT>::Ptr> pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::training_clouds_
protected

Хранит облака, используемые для обучения.

Определение в строке 586 файла implicit_shape_model.h.

training_normals_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
std::vector<typename pcl::PointCloud<NormalT>::Ptr> pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::training_normals_
protected

Хранит нормали для каждого облака обучения.

Определение в строке 592 файла implicit_shape_model.h.

training_sigmas_

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
std::vector<float> pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::training_sigmas_
protected

Этот массив хранит значения сигмы для каждого класса обучения.

Если размер этого массива равен 0, то значения сигмы будут рассчитаны автоматически.

Определение в строке 597 файла implicit_shape_model.h.

USE_INITIAL_LABELS

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
const int pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::USE_INITIAL_LABELS = 1
staticprotected

Это константа, используемая для указания того, что входные метки должны быть взяты как начальное приближение для кластеризации k-means.

Определение в строке 618 файла implicit_shape_model.h.


The documentation for this class was generated from the following files:
  • pcl/recognition/implicit_shape_model.h
  • pcl/recognition/impl/implicit_shape_model.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1ism_1_1_implicit_shape_model_estimation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API