Алгоритм сегментации, разделяющий граф супервокселей. Подробнее...
#include <pcl/segmentation/cpc_segmentation.h>
Общедоступные члены-функции | |
| CPCSegmentation () | |
| ~CPCSegmentation () override | |
| void | segment () |
| Объединить суперпиксели, используя срезы через локальные выпуклости. Подробнее... |
|
| void | setCutting (const std::uint32_t max_cuts=20, const std::uint32_t cutting_min_segments=0, const float cutting_min_score=0.16, const bool locally_constrained=true, const bool directed_cutting=true, const bool clean_cutting=false) |
| Определяет, нужно ли использовать секущие плоскости. Подробнее... |
|
| void | setRANSACIterations (const std::uint32_t ransac_iterations) |
| Установить количество итераций для шага взвешенного RANSAC (лучшие оценки срезов) Подробнее... |
|
|
| |
| LCCPSegmentation () | |
| virtual | ~LCCPSegmentation () |
| void | reset () |
| Сбросить внутреннюю память. Подробнее... |
|
| void | setInputSupervoxels (const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &supervoxel_clusters_arg, const std::multimap< std::uint32_t, std::uint32_t > &label_adjacency_arg) |
| Установить кластеры суперпикселей, а также граф смежности для сегментации. Эти параметры генерируются с помощью класса SupervoxelClustering. Подробнее... |
|
| void | segment () |
| Объединить суперпиксели, используя локальную выпуклость. Подробнее... |
|
| void | relabelCloud (pcl::PointCloud< pcl::PointXYZL > &labeled_cloud_arg) |
| Переименовывает облако с метками суперпикселей с вычисленными метками сегмента. Подробнее... |
|
| void | getSegmentToSupervoxelMap (std::map< std::uint32_t, std::set< std::uint32_t > > &segment_supervoxel_map_arg) const |
| Получить карту <SegmentID, std::set<SuperVoxel IDs> > Подробнее... |
|
| void | getSupervoxelToSegmentMap (std::map< std::uint32_t, std::uint32_t > &supervoxel_segment_map_arg) const |
| Получить карту <Supervoxel_ID, Segment_ID> Подробнее... |
|
| void | getSegmentAdjacencyMap (std::map< std::uint32_t, std::set< std::uint32_t > > &segment_adjacency_map_arg) |
| Получить карту <SegmentID, std::set<Neighboring SegmentIDs> > Подробнее... |
|
| float | getConcavityToleranceThreshold () const |
| Получить порог допуска вогнутости. Подробнее... |
|
| void | getSVAdjacencyList (SupervoxelAdjacencyList &adjacency_list_arg) const |
| Получить граф смежности суперпикселей с классифицированными рёбрами (boost::adjacency_list). Подробнее... |
|
| void | setConcavityToleranceThreshold (float concavity_tolerance_threshold_arg) |
| Установить порог для нормали. Подробнее... |
|
| void | setSmoothnessCheck (bool use_smoothness_check_arg, float voxel_res_arg, float seed_res_arg, float smoothness_threshold_arg=0.1) |
| Определяет, выполняется ли проверка гладкости во время сегментации, пытаясь аннулировать рёбра негладких соединённых рёбер (шагов). Подробнее... |
|
| void | setSanityCheck (const bool use_sanity_criterion_arg) |
| Определяет, хотим ли мы использовать критерий разумности для аннулирования отдельных соединённых блоков. Подробнее... |
|
| void | setKFactor (const std::uint32_t k_factor_arg) |
| Установить значение, используемое для k выпуклости. Подробнее... |
|
| void | setMinSegmentSize (const std::uint32_t min_segment_size_arg) |
| Установить значение min_segment_size_, используемое в mergeSmallSegments. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| using | SupervoxelAdjacencyList = boost::adjacency_list< boost::setS, boost::setS, boost::undirectedS, std::uint32_t, EdgeProperties > |
| using | VertexIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::vertex_iterator |
| using | AdjacencyIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::adjacency_iterator |
| using | VertexID = typename boost::graph_traits< SupervoxelAdjacencyList >::vertex_descriptor |
| using | EdgeIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::edge_iterator |
| using | OutEdgeIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::out_edge_iterator |
| using | EdgeID = typename boost::graph_traits< SupervoxelAdjacencyList >::edge_descriptor |
|
| |
| void | mergeSmallSegments () |
| Сегменты, меньшие min_segment_size_, объединяются с меткой самого крупного соседа. Подробнее... |
|
| void | computeSegmentAdjacency () |
| Вычисление смежности сегментов. Подробнее... |
|
| void | prepareSegmentation (const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &supervoxel_clusters_arg, const std::multimap< std::uint32_t, std::uint32_t > &label_adjacency_arg) |
| Вызывается в setInputSupervoxels в основном для резервирования необходимой памяти. Подробнее... |
|
| void | doGrouping () |
| Выполнить поиск в глубину по графу и рекурсивно сгруппировать все суперпиксели с выпуклыми соединениями. Подробнее... |
|
| void | recursiveSegmentGrowing (const VertexID &queryPointID, const unsigned int group_label) |
| Присваивает соседей точки запроса к той же группе, что и точка запроса. Подробнее... |
|
| void | calculateConvexConnections (SupervoxelAdjacencyList &adjacency_list_arg) |
| Вычисляет выпуклость ребер и сохраняет это в графе смежности. Подробнее... |
|
| void | applyKconvexity (const unsigned int k_arg) |
| Соединения выпуклые только в том случае, если это верно для по крайней мере k_arg общих соседей двух областей. Подробнее... |
|
| bool | connIsConvex (const std::uint32_t source_label_arg, const std::uint32_t target_label_arg, float &normal_angle) |
| Возвращает true, если соединение между источником и целью выпуклое. Подробнее... |
|
|
| |
| float | concavity_tolerance_threshold_ |
| *** Параметры *** /// Подробнее... |
|
| bool | grouping_data_valid_ |
| Помечает, если данные группировки (sv_adjacency_list_, sv_label_to_seg_label_map_, processed_) доступны. Подробнее... |
|
| bool | supervoxels_set_ |
| Помечает, если суперпиксели были установлены вызовом setInputSupervoxels. Подробнее... |
|
| bool | use_smoothness_check_ |
| Определяет, используется ли проверка гладкости во время сегментации. Подробнее... |
|
| float | smoothness_threshold_ |
| Два суперпикселя не гладкие, если расстояние между их плоскостями DIST > (ожидаемое_расстояние + smoothness_threshold_*разрешение_пикселя). Подробнее... |
|
| bool | use_sanity_check_ |
| Определяет, используем ли мы проверку на корректность, которая пытается найти и сделать недействительными одиночные соединенные области. Подробнее... |
|
| float | seed_resolution_ |
| Разрешение начальной точки суперпикселей (используется только для проверки гладкости) Подробнее... |
|
| float | voxel_resolution_ |
| Разрешение пикселя, используемое для построения суперпикселей (используется только для проверки гладкости) Подробнее... |
|
| std::uint32_t | k_factor_ |
| Коэффициент, используемый для k-выпуклости. Подробнее... |
|
| std::uint32_t | min_segment_size_ |
| Минимальный размер сегмента. Подробнее... |
|
| std::map< std::uint32_t, bool > | processed_ |
| Хранит метки суперпикселей, которые уже посещались во время рекурсивной группировки. Подробнее... |
|
| SupervoxelAdjacencyList | sv_adjacency_list_ |
| Граф смежности с метками суперпикселей в качестве узлов и ребрами между смежными суперпикселями. Подробнее... |
|
| std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > | sv_label_to_supervoxel_map_ |
| карта от меток суперпикселей до объектов суперпикселей Подробнее... |
|
| std::map< std::uint32_t, std::uint32_t > | sv_label_to_seg_label_map_ |
| Хранение соответствия между исходными метками суперпикселей и новыми метками сегментации. Подробнее... |
|
| std::map< std::uint32_t, std::set< std::uint32_t > > | seg_label_to_sv_list_map_ |
| отображение метки сегмента на множество меток суперпикселей Метка на множество меток Суперпикселей Подробнее... |
|
| std::map< std::uint32_t, std::set< std::uint32_t > > | seg_label_to_neighbor_set_map_ |
| отображение < ID сегмента, множество меток соседних сегментов> Подробнее... |
|
Подробное описание
шаблон<typename PointT>
класс pcl::CPCSegmentation< PointT >
Алгоритм сегментации, разделяющий граф суперпикселей.
Он использует плоскости, индуцированные локальными вогнутостями, для рекурсивной сегментации. Плоскости оцениваются с использованием локально ограниченного прямого RANSAC.
- Примечание
- Если вы используете это в научной работе, пожалуйста, процитируйте следующую статью: М. Шёлер, Ж. Папон, Ф. Вергоэтер Ограниченные плоские срезы - Разбиение объекта для облаков точек В труду IEEE Конференции по компьютерному зрению и распознаванию образов (CVPR) 2015 Наследует большую часть своей функциональности от LCCPSegmentation
Определение в строке 66 файла cpc_segmentation.h.
Документация конструктора и деструктора
CPCSegmentation()
| pcl::CPCSegmentation< PointT >::CPCSegmentation |
Определение в строке 45 файла cpc_segmentation.hpp.
~CPCSegmentation()
| overridedefault |
Документация по членам-функциям
segment()
| void pcl::CPCSegmentation< PointT >::segment |
Объединение суперпикселей с помощью плоскостей по локальным выпуклостям.
Входные параметры генерируются с помощью класса SupervoxelClustering. Для получения выходных данных используйте метод relabelCloud.
- Примечание
- Существует три способа получить сегментацию после этого (унаследованное от LCCPSegmentation): relabelCloud, getSupervoxelToSegmentMap и getSupervoxelToSegmentMap
Определение в строке 59 файла cpc_segmentation.hpp.
setCutting()
| inline |
Определяет, хотим ли мы использовать секущие плоскости.
- Аргументы
-
[in] max_cuts Максимальное количество разрезов [in] cutting_min_segments Минимальный размер сегмента для разреза [in] cutting_min_score Минимальный балл, который должен получить предлагаемый разрез для выполнения [in] locally_constrained Определяет, ограничиваем ли мы наши разрезы локально [in] directed_cutting Определяет, предпочитаем ли мы разрезы, перпендикулярные направлению ребра [in] clean_cutting Определяет, делаем ли мы срез только по ребрам с суперпикселями по разные стороны от плоскости (чистое) или по всем ребрам в пределах расстояния seed_resolution_ до плоскости (не чистое). Последнее использовалось в статье.
Определение в строке 107 файла cpc_segmentation.h.
setRANSACIterations()
| inline |
Установить количество итераций для шага взвешенного RANSAC (лучшие оценки срезов)
- Параметры
-
[in] ransac_iterations Количество итераций
Определение в строке 125 файла cpc_segmentation.h.
The documentation for this class was generated from the following files:
- pcl/segmentation/cpc_segmentation.h
- pcl/segmentation/impl/cpc_segmentation.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_c_p_c_segmentation.html