Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/recognition/implicit_shape_model.h>

Collaboration graph
[обозначения]

Классы

struct LocationInfo
Эта структура хранит информацию о ключевой точке. Подробнее...
struct TermCriteria
Эта структура используется для определения завершения процесса кластеризации методом k-средних. Подробнее...
struct 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)
Этот метод применяет к вектору io_vector преобразование, заданное в in_transform. Подробнее...
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_ {0.1f}
Это значение используется для упрощения. Подробнее...
Feature::Ptr feature_estimator_
Хранит средство вычисления признаков. Подробнее...
unsigned int number_of_clusters_ {184}
Количество кластеров, используемое для кластеризации дескрипторов во время обучения. Подробнее...
bool n_vot_ON_ {true}
Если задано значение false, коэффициент Nvot из [Knopp et al., 2010, (4)] равен 1.0. Подробнее...

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

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

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

template<int FeatureSize, typename PointT, typename NormalT = pcl::Normal>
class pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >

Этот класс реализует алгоритм неявной модели формы (Implicit Shape Model), описанный в статье «Hough Transforms and 3D SURF for robust three dimensional classification» авторов Jan Knopp, Mukta Prasad, Geert Willems, Radu Timofte и Luc Van Gool.

В классе есть две основные функции-члена. Первая используется для обучения на данных, для которых известна принадлежность к классу. Вторая предназначена для поиска в облаке объектов интересующего класса. Реализация алгоритма ISM, описанного в статье «Hough Transforms and 3D SURF for robust three dimensional classification» авторов Jan Knopp, Mukta Prasad, Geert Willems, Radu Timofte и Luc Van Gool.

Авторы: Roman Shapovalov, Alexander Velizhev, Sergey Ushakov

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

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

Feature

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
using pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::Feature = pcl::Feature<PointT, pcl::Histogram<FeatureSize> >

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

FeaturePtr

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

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

ISMModelPtr

template<int FeatureSize, typename PointT , typename NormalT = pcl::Normal>
using pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::ISMModelPtr = pcl::features::ISMModel::Ptr

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

Документация конструктора и деструктора

ImplicitShapeModelEstimation()

template<int FeatureSize, typename PointT , typename NormalT >
pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::ImplicitShapeModelEstimation ( )
по умолчанию

Простой конструктор, инициализирующий все элементы.

~ImplicitShapeModelEstimation()

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

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

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

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

alignYCoordWithNormal()

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

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

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

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

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

Ссылки: pcl::B.

applyTransform()

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

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

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

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

calculateSigmas()

template<int FeatureSize, typename PointT , typename NormalT >
void pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::calculateSigmas ( std::vector< float > & sigmas )
protected

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

Параметры
[out] sigmas вычисленные сигмы.

Определение в строке 905 файла 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 содержит вычисленные обученные веса

Определение в строке 956 файла 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 содержит центры кластеров

Определение в строке 879 файла 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 второй вектор

Определение в строке 1485 файла 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 будет содержать центры кластеров

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

Ссылки: pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::TermCriteria::epsilon_, pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::TermCriteria::max_count_ и pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::TermCriteria::type_.

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 будет содержать вычисленные гистограммы (признаки) для заданного облака

Определение в строке 1202 файла 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 будет содержать полную информацию (например, направление и исходную ключевую точку) для соответствующих дескрипторов

Определение в строке 818 файла 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 класс, который требуется найти

Определение в строке 723 файла 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 and Sergei Vassilvitski (2007) k-means++: The Advantages of Careful Seeding.

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

Определение в строке 1393 файла 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 будет содержать сгенерированный центр

Определение в строке 1469 файла 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

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

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

getNumberOfClusters()

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

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

Определение в строке 624 файла 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.

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

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

getSamplingSize()

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

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

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

getSigmaDists()

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

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

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

getTrainingClasses()

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

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

Определение в строке 562 файла 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

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

Определение в строке 545 файла 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

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

Определение в строке 578 файла 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 )

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

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

Определение в строке 617 файла 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 )

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

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

Определение в строке 631 файла 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)].

Параметры
[in] state требуемое состояние; если значение равно false, то Nvot принимается равным 1.0

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

setSamplingSize()

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

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

Параметры
[in] sampling_size требуемый размер ячейки сетки

Определение в строке 602 файла 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 )

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

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

Определение в строке 646 файла 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 )

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

Параметры
[in] training_classes массив меток классов

Определение в строке 569 файла 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.

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

Определение в строке 552 файла 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.

Параметры
[in] training_normals массив облаков, каждое из которых содержит нормали

Определение в строке 585 файла 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

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

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

Определение в строке 1150 файла 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

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

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

Определение в строке 1086 файла 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 )

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

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

Параметры
[out] trained_model обученная модель

Определение в строке 669 файла 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

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

Определение в строке 602 файла 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_ {true}
protected

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

Определение в строке 608 файла 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_ {184}
protected

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

Определение в строке 605 файла 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.

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

sampling_size_

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

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

Оно задаёт размер ячейки сетки.

Определение в строке 599 файла 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_.

Определение в строке 588 файла 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

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

Определение в строке 585 файла 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

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

Определение в строке 591 файла 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, значения сигма будут вычислены автоматически.

Определение в строке 596 файла 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.

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


Документация для этого класса была сгенерирована из следующих файлов:
  • 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