Высокоуровневый класс для сопоставления шаблонов с использованием подхода LINEMOD на основе данных RGB и глубины. Подробнее...
#include <pcl/recognition/linemod/line_rgbd.h>
Классы | |
| struct | Detection |
| Обнаружение LineRGBD. Подробнее... |
|
Открытые функции-члены | |
| LineRGBD () | |
| Конструктор. Подробнее... |
|
| virtual | ~LineRGBD ()=default |
| Деструктор. Подробнее... |
|
| bool | loadTemplates (const std::string &file_name, std::size_t object_id=0) |
| Загружает шаблоны из файла LMT (LineMod Template). Подробнее... |
|
| bool | addTemplate (const SparseQuantizedMultiModTemplate &sqmmt, pcl::PointCloud< pcl::PointXYZRGBA > &cloud, std::size_t object_id=0) |
| void | setDetectionThreshold (float threshold) |
| Задаёт порог для откликов обнаружения. Подробнее... |
|
| void | setGradientMagnitudeThreshold (const float threshold) |
| Задаёт порог величины цветовых градиентов. Подробнее... |
|
| void | setIntersectionVolumeThreshold (const float threshold=1.0f) |
| Задаёт порог, определяющий, следует ли объединять два обнаружения одного шаблона. Подробнее... |
|
| void | setInputCloud (const typename pcl::PointCloud< PointXYZT >::ConstPtr &cloud) |
| Задаёт входное облако с координатами точек xyz. Подробнее... |
|
| void | setInputColors (const typename pcl::PointCloud< PointRGBT >::ConstPtr &cloud) |
| Задаёт входное облако со значениями rgb. Подробнее... |
|
| int | createAndAddTemplate (pcl::PointCloud< pcl::PointXYZRGBA > &cloud, const std::size_t object_id, const MaskMap &mask_xyz, const MaskMap &mask_rgb, const RegionXY ®ion) |
| Создаёт шаблон из указанных данных и добавляет его в очередь сопоставления. Подробнее... |
|
| void | detect (std::vector< typename pcl::LineRGBD< PointXYZT, PointRGBT >::Detection > &detections) |
| Выполняет обнаружение и заполняет переданный вектор экземплярами обнаруженных объектов. Подробнее... |
|
| void | detectSemiScaleInvariant (std::vector< typename pcl::LineRGBD< PointXYZT, PointRGBT >::Detection > &detections, float min_scale=0.6944444f, float max_scale=1.44f, float scale_multiplier=1.2f) |
| Выполняет обнаружение с частичной инвариантностью к масштабу. Подробнее... |
|
| void | computeTransformedTemplatePoints (const std::size_t detection_id, pcl::PointCloud< pcl::PointXYZRGBA > &cloud) |
| Вычисляет и возвращает облако точек для указанного обнаружения. Подробнее... |
|
| std::vector< std::size_t > | findObjectPointIndices (const std::size_t detection_id) |
| Находит индексы точек входного облака, соответствующих указанному обнаружению. Подробнее... |
|
Открытые атрибуты | |
| pcl::LINEMOD | linemod_ |
|
Экземпляр LINEMOD. Подробнее... |
|
| pcl::ColorGradientModality< PointRGBT > | color_gradient_mod_ |
| Модальность цветового градиента. Подробнее... |
|
| pcl::SurfaceNormalModality< PointXYZT > | surface_normal_mod_ |
| Модальность нормалей поверхности. Подробнее... |
|
| pcl::PointCloud< PointXYZT >::ConstPtr | cloud_xyz_ |
| Облако точек XYZ. Подробнее... |
|
| pcl::PointCloud< PointRGBT >::ConstPtr | cloud_rgb_ |
|
Облако точек RGB. Подробнее... |
|
| pcl::PointCloud< pcl::PointXYZRGBA >::CloudVectorType | template_point_clouds_ |
| Облака точек, соответствующие шаблонам. Подробнее... |
|
| std::vector< pcl::BoundingBoxXYZ > | bounding_boxes_ |
| Ограничивающие параллелепипеды, соответствующие шаблонам. Подробнее... |
|
| std::vector< std::size_t > | object_ids_ |
|
Идентификаторы объектов, соответствующие шаблонам. Подробнее... |
|
| std::vector< typename pcl::LineRGBD< PointXYZT, PointRGBT >::Detection > | detections_ |
| Обнаружения, полученные при последнем вызове метода detect (...). Подробнее... |
|
Защищённые функции-члены | |
| std::vector< std::size_t > | alignTemplatePoints (const std::size_t detection_id) |
| Совмещает точки шаблона с точками, найденными в позиции обнаружения указанного объекта. Подробнее... |
|
| void | refineDetectionsAlongDepth () |
| Уточняет найденные обнаружения по глубине. Подробнее... |
|
| void | applyProjectiveDepthICPOnDetections () |
| Применяет проективный ICP к обнаружениям, чтобы найти их точное положение по глубине. Подробнее... |
|
| void | removeOverlappingDetections () |
| Проверяет наличие перекрывающихся обнаружений, удаляет их и оставляет только самое сильное. Подробнее... |
|
Защищённые статические функции-члены | |
| static float | computeBoundingBoxIntersectionVolume (const BoundingBoxXYZ &box1, const BoundingBoxXYZ &box2) |
| Вычисляет объём пересечения двух ограничивающих параллелепипедов. Подробнее... |
|
Подробное описание
template<typename PointXYZT, typename PointRGBT = PointXYZT>
class pcl::LineRGBD< PointXYZT, PointRGBT >
Высокоуровневый класс для сопоставления шаблонов с использованием подхода LINEMOD на основе данных RGB и глубины.
Определение в строке 73 файла line_rgbd.h.
Документация конструктора и деструктора
LineRGBD()
| inline |
Конструктор.
Определение в строке 98 файла line_rgbd.h.
~LineRGBD()
| virtualdefault |
Деструктор.
Документация функций-членов
addTemplate()
| bool pcl::LineRGBD< PointXYZT, PointRGBT >::addTemplate | ( | const SparseQuantizedMultiModTemplate & | sqmmt, |
| pcl::PointCloud< pcl::PointXYZRGBA > & | cloud, | ||
| std::size_t |
object_id = 0 | ||
| ) |
Определение в строке 314 файла line_rgbd.hpp.
Ссылки: pcl::copyPointCloud(), pcl::BoundingBoxXYZ::depth, pcl::BoundingBoxXYZ::height, pcl::BoundingBoxXYZ::width, pcl::BoundingBoxXYZ::x, pcl::BoundingBoxXYZ::y и pcl::BoundingBoxXYZ::z.
alignTemplatePoints()
| inlineprotected |
Совмещает точки шаблона с точками, найденными в позиции обнаружения указанного объекта.
Идентификатор обнаружения относится к последнему вызову метода detect (...).
- Параметры
-
[in] detection_id Идентификатор обнаружения (соответствует последнему вызову метода detect (...)).
Определение в строке 248 файла line_rgbd.h.
applyProjectiveDepthICPOnDetections()
| protected |
Применяет проективный ICP к обнаружениям, чтобы определить их правильное положение по глубине.
Определение в строке 721 файла line_rgbd.hpp.
Ссылки: pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::bounding_box, pcl::PointCloud< PointT >::height, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::region, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::template_id, pcl::PointCloud< PointT >::width, pcl::RegionXY::x, pcl::RegionXY::y и pcl::BoundingBoxXYZ::z.
computeBoundingBoxIntersectionVolume()
| staticprotected |
Вычисляет объём пересечения двух ограничивающих параллелепипедов.
- Параметры
-
[in] box1 Первый ограничивающий параллелепипед. [in] box2 Второй ограничивающий параллелепипед.
Определение в строке 936 файла line_rgbd.hpp.
Ссылки: pcl::BoundingBoxXYZ::depth, pcl::BoundingBoxXYZ::height, pcl::BoundingBoxXYZ::width, pcl::BoundingBoxXYZ::x, pcl::BoundingBoxXYZ::y и pcl::BoundingBoxXYZ::z.
computeTransformedTemplatePoints()
| void pcl::LineRGBD< PointXYZT, PointRGBT >::computeTransformedTemplatePoints | ( | const std::size_t | detection_id, |
| pcl::PointCloud< pcl::PointXYZRGBA > & | cloud | ||
| ) |
Вычисляет и возвращает облако точек для указанного обнаружения.
Это шаблонное облако точек, преобразованное в координаты обнаружения. ID обнаружения относится к последнему вызову метода detect (...).
- Параметры
-
[in] detection_id ID обнаружения (в соответствии с последним вызовом метода detect (...)). [out] cloud Хранилище для преобразованных точек.
Определение в строке 594 файла line_rgbd.hpp.
Ссылки: pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size(), pcl::PointCloud< PointT >::width, pcl::BoundingBoxXYZ::x, pcl::BoundingBoxXYZ::y и pcl::BoundingBoxXYZ::z.
createAndAddTemplate()
| int pcl::LineRGBD< PointXYZT, PointRGBT >::createAndAddTemplate | ( | pcl::PointCloud< pcl::PointXYZRGBA > & | cloud, |
| const std::size_t | object_id, | ||
| const MaskMap & | mask_xyz, | ||
| const MaskMap & | mask_rgb, | ||
| const RegionXY & | region | ||
| ) |
Создаёт шаблон из указанных данных и добавляет его в очередь сопоставления.
- Параметры
-
cloud object_id [in] mask_xyz маска, определяющая, какие части модальности xyz используются для создания шаблона. [in] mask_rgb маска, определяющая, какие части модальности rgb используются для создания шаблона. [in] region область, которая будет связана с шаблоном (может быть больше фактических карт модальностей).
Определение в строке 221 файла line_rgbd.hpp.
Ссылки: pcl::copyPointCloud(), pcl::BoundingBoxXYZ::depth, pcl::BoundingBoxXYZ::height, pcl::BoundingBoxXYZ::width, pcl::BoundingBoxXYZ::x, pcl::BoundingBoxXYZ::y и pcl::BoundingBoxXYZ::z.
detect()
| void pcl::LineRGBD< PointXYZT, PointRGBT >::detect | ( | std::vector< typename pcl::LineRGBD< PointXYZT, PointRGBT >::Detection > & | detections | ) |
Выполняет обнаружение и заполняет переданный вектор экземплярами обнаружений.
- Параметры
-
[out] detections Хранилище для экземпляров обнаружений.
Определение в строке 395 файла line_rgbd.hpp.
Ссылки: pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::bounding_box, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::detection_id, pcl::RegionXY::height, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::object_id, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::region, pcl::SparseQuantizedMultiModTemplate::region, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::response, pcl::LINEMODDetection::score, pcl::LINEMODDetection::template_id, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::template_id, pcl::RegionXY::width, pcl::LINEMODDetection::x, pcl::BoundingBoxXYZ::x, pcl::RegionXY::x, pcl::LINEMODDetection::y, pcl::BoundingBoxXYZ::y, pcl::RegionXY::y и pcl::BoundingBoxXYZ::z.
detectSemiScaleInvariant()
| void pcl::LineRGBD< PointXYZT, PointRGBT >::detectSemiScaleInvariant | ( | std::vector< typename pcl::LineRGBD< PointXYZT, PointRGBT >::Detection > & | detections, |
| float |
min_scale = 0.6944444f, | ||
| float |
max_scale = 1.44f, | ||
| float |
scale_multiplier = 1.2f | ||
| ) |
Выполняет обнаружение с частичной инвариантностью к масштабу.
Для этого шаблон фактически масштабируется до разных размеров.
Определение в строке 493 файла line_rgbd.hpp.
Ссылки: pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::bounding_box, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::detection_id, pcl::RegionXY::height, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::object_id, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::region, pcl::SparseQuantizedMultiModTemplate::region, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::response, pcl::LINEMODDetection::scale, pcl::LINEMODDetection::score, pcl::LINEMODDetection::template_id, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::template_id, pcl::RegionXY::width, pcl::LINEMODDetection::x, pcl::BoundingBoxXYZ::x, pcl::RegionXY::x, pcl::LINEMODDetection::y, pcl::BoundingBoxXYZ::y, pcl::RegionXY::y и pcl::BoundingBoxXYZ::z.
findObjectPointIndices()
| inline |
Находит индексы точек входного облака, соответствующих указанному обнаружению.
ID обнаружения относится к последнему вызову метода detect (...).
- Параметры
-
[in] detection_id ID обнаружения (в соответствии с последним вызовом метода detect (...)).
Определение в строке 229 файла line_rgbd.h.
loadTemplates()
| bool pcl::LineRGBD< PointXYZT, PointRGBT >::loadTemplates | ( | const std::string & | file_name, |
| std::size_t |
object_id = 0 | ||
| ) |
Загружает шаблоны из файла LMT (шаблон LineMod).
Заменяет старые шаблоны.
Файлы шаблонов LineMod — это TAR-файлы, в которых хранятся пары наборов данных PCD вместе с их дескрипторами LINEMOD в формате SparseQuantizedMultiModTemplate.
- Параметры
-
[in] file_name Имя файла, в котором хранятся шаблоны. object_id
- Возвращаемое значение
- true, если операция выполнена успешно, иначе false.
Определение в строке 77 файла line_rgbd.hpp.
Ссылки: pcl::BoundingBoxXYZ::depth, pcl::SparseQuantizedMultiModTemplate::deserialize(), pcl::io::TARHeader::file_name, pcl::io::TARHeader::getFileSize(), pcl::BoundingBoxXYZ::height, pcl::io::raw_close(), pcl::io::raw_lseek(), pcl::io::raw_open(), pcl::io::raw_read(), pcl::PCDReader::read(), pcl::BoundingBoxXYZ::width, pcl::BoundingBoxXYZ::x, pcl::BoundingBoxXYZ::y и pcl::BoundingBoxXYZ::z.
refineDetectionsAlongDepth()
| protected |
Уточняет найденные обнаружения по глубине.
Определение в строке 641 файла line_rgbd.hpp.
Ссылки: pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::bounding_box, pcl::BoundingBoxXYZ::depth, pcl::RegionXY::height, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::region, pcl::RegionXY::width, pcl::RegionXY::x, pcl::RegionXY::y и pcl::BoundingBoxXYZ::z.
removeOverlappingDetections()
| protected |
Проверяет обнаружения на перекрытие, удаляет перекрывающиеся и оставляет только наиболее сильное.
Определение в строке 802 файла line_rgbd.hpp.
Ссылки: pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::bounding_box, pcl::BoundingBoxXYZ::depth, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::detection_id, pcl::BoundingBoxXYZ::height, pcl::RegionXY::height, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::object_id, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::region, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::response, pcl::LineRGBD< PointXYZT, PointRGBT >::Detection::template_id, pcl::BoundingBoxXYZ::width, pcl::RegionXY::width, pcl::BoundingBoxXYZ::x, pcl::RegionXY::x, pcl::BoundingBoxXYZ::y, pcl::RegionXY::y и pcl::BoundingBoxXYZ::z.
setDetectionThreshold()
| inline |
Задаёт пороговое значение для откликов обнаружения.
Значения отклика находятся в диапазоне от 0 до 1, где 1 — наилучшее значение.
- Параметры
-
[in] threshold Пороговое значение, используемое для определения обнаружения шаблона.
Определение в строке 131 файла line_rgbd.h.
setGradientMagnitudeThreshold()
| inline |
Задаёт пороговое значение величины цветовых градиентов.
Цветовые градиенты, величина которых ниже этого порога, не учитываются в процессе обнаружения.
- Параметры
-
[in] threshold Пороговое значение величины цветовых градиентов.
Определение в строке 141 файла line_rgbd.h.
setInputCloud()
| inline |
Задаёт входное облако с координатами точек xyz.
Облако должно быть организованным.
- Параметры
-
[in] cloud Входное облако с координатами точек xyz.
Определение в строке 163 файла line_rgbd.h.
setInputColors()
| inline |
Задаёт входное облако со значениями RGB.
Облако должно быть организованным.
- Параметры
-
[in] cloud Входное облако со значениями RGB.
Определение в строке 175 файла line_rgbd.h.
setIntersectionVolumeThreshold()
| inline |
Задаёт пороговое значение, определяющее, следует ли объединять два обнаружения одного шаблона.
Если отношение площади пересечения ограничивающих рамок двух обнаружений к площади исходных рамок превышает заданный порог, обнаружения объединяются. Если обнаружение A перекрывается с обнаружением B, а B — с C, то A, B и C объединяются. Пороговое значение должно находиться в диапазоне от 0 до 1.
- Параметры
-
[in] threshold Пороговое значение отношения площади пересечения ограничивающих рамок к площади исходных рамок.
Определение в строке 154 файла line_rgbd.h.
Описание данных-членов
bounding_boxes_
| std::vector<pcl::BoundingBoxXYZ> pcl::LineRGBD< PointXYZT, PointRGBT >::bounding_boxes_ |
Ограничивающие рамки, соответствующие шаблонам.
Определение в строке 301 файла line_rgbd.h.
cloud_rgb_
| pcl::PointCloud<PointRGBT>::ConstPtr pcl::LineRGBD< PointXYZT, PointRGBT >::cloud_rgb_ |
Облако точек RGB.
Определение в строке 296 файла line_rgbd.h.
cloud_xyz_
| pcl::PointCloud<PointXYZT>::ConstPtr pcl::LineRGBD< PointXYZT, PointRGBT >::cloud_xyz_ |
Облако точек XYZ.
Определение в строке 294 файла line_rgbd.h.
color_gradient_mod_
| pcl::ColorGradientModality<PointRGBT> pcl::LineRGBD< PointXYZT, PointRGBT >::color_gradient_mod_ |
Модальность цветового градиента.
Определение в строке 289 файла line_rgbd.h.
detections_
| std::vector<typename pcl::LineRGBD<PointXYZT, PointRGBT>::Detection> pcl::LineRGBD< PointXYZT, PointRGBT >::detections_ |
Результаты обнаружения, полученные при последнем вызове метода detect (...).
Определение в строке 306 файла line_rgbd.h.
linemod_
| pcl::LINEMOD pcl::LineRGBD< PointXYZT, PointRGBT >::linemod_ |
Экземпляр LINEMOD.
Определение в строке 287 файла line_rgbd.h.
object_ids_
| std::vector<std::size_t> pcl::LineRGBD< PointXYZT, PointRGBT >::object_ids_ |
Идентификаторы объектов, соответствующие шаблонам.
Определение в строке 303 файла line_rgbd.h.
surface_normal_mod_
| pcl::SurfaceNormalModality<PointXYZT> pcl::LineRGBD< PointXYZT, PointRGBT >::surface_normal_mod_ |
Модальность нормалей поверхности.
Определение в строке 291 файла line_rgbd.h.
template_point_clouds_
| pcl::PointCloud<pcl::PointXYZRGBA>::CloudVectorType pcl::LineRGBD< PointXYZT, PointRGBT >::template_point_clouds_ |
Облака точек, соответствующие шаблонам.
Определение в строке 299 файла line_rgbd.h.
Документация этого класса создана на основе следующих файлов:
- pcl/recognition/linemod/line_rgbd.h
- pcl/recognition/impl/linemod/line_rgbd.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_line_r_g_b_d.html