Spec-Zone.ru › PointCloudLibrary

Высокоуровневый класс для сопоставления шаблонов с использованием подхода LINEMOD на основе данных RGB и глубины. Подробнее...

#include <pcl/recognition/linemod/line_rgbd.h>

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

Классы

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 &region)
Создаёт шаблон из указанных данных и добавляет его в очередь сопоставления. Подробнее...
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 и глубины.

Автор
Stefan Holzer

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

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

LineRGBD()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
pcl::LineRGBD< PointXYZT, PointRGBT >::LineRGBD ( )
inline

Конструктор.

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

~LineRGBD()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
virtual pcl::LineRGBD< PointXYZT, PointRGBT >::~LineRGBD ( )
virtualdefault

Деструктор.

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

addTemplate()

template<typename PointXYZT , typename PointRGBT >
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()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
std::vector<std::size_t> pcl::LineRGBD< PointXYZT, PointRGBT >::alignTemplatePoints ( const std::size_t detection_id )
inlineprotected

Совмещает точки шаблона с точками, найденными в позиции обнаружения указанного объекта.

Идентификатор обнаружения относится к последнему вызову метода detect (...).

Параметры
[in] detection_id Идентификатор обнаружения (соответствует последнему вызову метода detect (...)).

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

applyProjectiveDepthICPOnDetections()

template<typename PointXYZT , typename PointRGBT >
void pcl::LineRGBD< PointXYZT, PointRGBT >::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()

template<typename PointXYZT , typename PointRGBT >
float pcl::LineRGBD< PointXYZT, PointRGBT >::computeBoundingBoxIntersectionVolume ( const BoundingBoxXYZ & box1,
const BoundingBoxXYZ & box2
)
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()

template<typename PointXYZT , typename PointRGBT >
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()

template<typename PointXYZT , typename PointRGBT >
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()

template<typename PointXYZT , typename PointRGBT >
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()

template<typename PointXYZT , typename PointRGBT >
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()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
std::vector<std::size_t> pcl::LineRGBD< PointXYZT, PointRGBT >::findObjectPointIndices ( const std::size_t detection_id )
inline

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

ID обнаружения относится к последнему вызову метода detect (...).

Параметры
[in] detection_id ID обнаружения (в соответствии с последним вызовом метода detect (...)).

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

loadTemplates()

template<typename PointXYZT , typename PointRGBT >
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()

template<typename PointXYZT , typename PointRGBT >
void pcl::LineRGBD< PointXYZT, PointRGBT >::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()

template<typename PointXYZT , typename PointRGBT >
void pcl::LineRGBD< PointXYZT, PointRGBT >::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()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
void pcl::LineRGBD< PointXYZT, PointRGBT >::setDetectionThreshold ( float threshold )
inline

Задаёт пороговое значение для откликов обнаружения.

Значения отклика находятся в диапазоне от 0 до 1, где 1 — наилучшее значение.

Параметры
[in] threshold Пороговое значение, используемое для определения обнаружения шаблона.

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

setGradientMagnitudeThreshold()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
void pcl::LineRGBD< PointXYZT, PointRGBT >::setGradientMagnitudeThreshold ( const float threshold )
inline

Задаёт пороговое значение величины цветовых градиентов.

Цветовые градиенты, величина которых ниже этого порога, не учитываются в процессе обнаружения.

Параметры
[in] threshold Пороговое значение величины цветовых градиентов.

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

setInputCloud()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
void pcl::LineRGBD< PointXYZT, PointRGBT >::setInputCloud ( const typename pcl::PointCloud< PointXYZT >::ConstPtr & cloud )
inline

Задаёт входное облако с координатами точек xyz.

Облако должно быть организованным.

Параметры
[in] cloud Входное облако с координатами точек xyz.

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

setInputColors()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
void pcl::LineRGBD< PointXYZT, PointRGBT >::setInputColors ( const typename pcl::PointCloud< PointRGBT >::ConstPtr & cloud )
inline

Задаёт входное облако со значениями RGB.

Облако должно быть организованным.

Параметры
[in] cloud Входное облако со значениями RGB.

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

setIntersectionVolumeThreshold()

template<typename PointXYZT , typename PointRGBT = PointXYZT>
void pcl::LineRGBD< PointXYZT, PointRGBT >::setIntersectionVolumeThreshold ( const float threshold = 1.0f )
inline

Задаёт пороговое значение, определяющее, следует ли объединять два обнаружения одного шаблона.

Если отношение площади пересечения ограничивающих рамок двух обнаружений к площади исходных рамок превышает заданный порог, обнаружения объединяются. Если обнаружение A перекрывается с обнаружением B, а B — с C, то A, B и C объединяются. Пороговое значение должно находиться в диапазоне от 0 до 1.

Параметры
[in] threshold Пороговое значение отношения площади пересечения ограничивающих рамок к площади исходных рамок.

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

Описание данных-членов

bounding_boxes_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
std::vector<pcl::BoundingBoxXYZ> pcl::LineRGBD< PointXYZT, PointRGBT >::bounding_boxes_

Ограничивающие рамки, соответствующие шаблонам.

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

cloud_rgb_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
pcl::PointCloud<PointRGBT>::ConstPtr pcl::LineRGBD< PointXYZT, PointRGBT >::cloud_rgb_

Облако точек RGB.

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

cloud_xyz_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
pcl::PointCloud<PointXYZT>::ConstPtr pcl::LineRGBD< PointXYZT, PointRGBT >::cloud_xyz_

Облако точек XYZ.

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

color_gradient_mod_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
pcl::ColorGradientModality<PointRGBT> pcl::LineRGBD< PointXYZT, PointRGBT >::color_gradient_mod_

Модальность цветового градиента.

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

detections_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
std::vector<typename pcl::LineRGBD<PointXYZT, PointRGBT>::Detection> pcl::LineRGBD< PointXYZT, PointRGBT >::detections_

Результаты обнаружения, полученные при последнем вызове метода detect (...).

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

linemod_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
pcl::LINEMOD pcl::LineRGBD< PointXYZT, PointRGBT >::linemod_

Экземпляр LINEMOD.

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

object_ids_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
std::vector<std::size_t> pcl::LineRGBD< PointXYZT, PointRGBT >::object_ids_

Идентификаторы объектов, соответствующие шаблонам.

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

surface_normal_mod_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
pcl::SurfaceNormalModality<PointXYZT> pcl::LineRGBD< PointXYZT, PointRGBT >::surface_normal_mod_

Модальность нормалей поверхности.

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

template_point_clouds_

template<typename PointXYZT , typename PointRGBT = PointXYZT>
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

Spec-Zone.ru

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