cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::io::semantic_kitti_pair_dataset_t< DataType > Class Template Reference

Semantic KITTI frame pair dataset loader. More...

#include <semantic_kitti_pair_dataset.hpp>

Inheritance diagram for toolbox::io::semantic_kitti_pair_dataset_t< DataType >:

Public Types

using pair_type = semantic_kitti_frame_pair_t< DataType >
 
using base_type = dataset_t< semantic_kitti_pair_dataset_t< DataType >, pair_type >
 
- Public Types inherited from toolbox::io::dataset_t< Derived, DataType >
using data_type = DataType
 数据类型别名/Type alias for data type
 

Public Member Functions

 semantic_kitti_pair_dataset_t (const std::string &sequence_path, std::size_t skip=1)
 Constructor.
 
void set_skip (std::size_t skip)
 Set skip parameter.
 
std::size_t get_skip () const
 Get current skip value.
 
void set_cache_size (std::size_t size)
 Set maximum pair cache size.
 
void enable_motion_filter (bool enable)
 Enable/disable motion filtering.
 
void set_motion_thresholds (DataType min_translation, DataType min_rotation)
 Set motion thresholds for filtering.
 
std::size_t size_impl () const
 Get number of frame pairs.
 
std::optional< pair_typeat_impl (std::size_t index) const
 Load frame pair at specific index.
 
const semantic_kitti_dataset_t< DataType > & get_base_dataset () const
 Get the underlying base dataset.
 
std::size_t get_source_frame_index (std::size_t pair_index) const
 Get source frame index for a pair.
 
std::size_t get_target_frame_index (std::size_t pair_index) const
 Get target frame index for a pair.
 
void clear_cache () const
 Clear all caches.
 
std::vector< std::size_t > get_pairs_with_labels (const std::vector< uint16_t > &require_labels, std::size_t min_points=100) const
 Get pairs with specific semantic constraints.
 
std::map< std::string, DataType > compute_motion_statistics () const
 Compute motion statistics for the dataset.
 
- Public Member Functions inherited from toolbox::io::dataset_t< Derived, DataType >
std::size_t size () const
 获取数据集大小/Get the size of the dataset
 
std::optional< DataType > operator[] (std::size_t index) const
 通过下标访问数据/Access data by index
 
std::optional< DataType > at (std::size_t index) const
 通过下标访问数据/Access data by index
 
std::optional< DataType > get_item (std::size_t index) const
 获取指定索引的数据/Get data at the specified index
 
std::optional< DataType > get_next ()
 获取下一个元素并推进内部索引/Get the next element and advance the internal index
 
std::optional< DataType > peek_next () const
 查看下一个元素但不推进索引/Peek the next element without advancing the index
 
void reset_iterator ()
 重置内部迭代器索引/Reset the internal iterator index
 
std::size_t current_index () const
 获取当前迭代器索引/Get the current iterator index
 
 dataset_t (const dataset_t &)=delete
 禁用拷贝构造/Copy constructor is disabled
 
dataset_toperator= (const dataset_t &)=delete
 禁用拷贝赋值/Copy assignment is disabled
 
 dataset_t (dataset_t &&)=delete
 禁用移动构造/Move constructor is disabled
 
dataset_toperator= (dataset_t &&)=delete
 禁用移动赋值/Move assignment is disabled
 

Additional Inherited Members

- Protected Member Functions inherited from toolbox::io::dataset_t< Derived, DataType >
 dataset_t ()=default
 构造函数/Constructor
 
 ~dataset_t ()=default
 析构函数/Destructor
 

Detailed Description

template<typename DataType = float>
class toolbox::io::semantic_kitti_pair_dataset_t< DataType >

Semantic KITTI frame pair dataset loader.

Template Parameters
DataTypeThe floating point type (float or double)

This dataset provides pairs of frames with semantic labels, useful for semantic SLAM and scene flow estimation.

semantic_kitti_pair_dataset_t<float> dataset("/path/to/semantic_kitti/sequences/08", 5);
for (const auto& pair : dataset) {
// Extract static points for registration
auto [src_static, tgt_static] = pair.extract_static_points();
// Register static points
icp.set_initial_transform(pair.relative_transform);
auto result = icp.align(src_static, tgt_static);
// Extract dynamic objects for tracking
auto [src_dynamic, tgt_dynamic] = pair.extract_dynamic_points();
}
Semantic KITTI frame pair dataset loader.
Definition semantic_kitti_pair_dataset.hpp:39

Member Typedef Documentation

◆ base_type

template<typename DataType = float>
using toolbox::io::semantic_kitti_pair_dataset_t< DataType >::base_type = dataset_t<semantic_kitti_pair_dataset_t<DataType>, pair_type>

◆ pair_type

template<typename DataType = float>
using toolbox::io::semantic_kitti_pair_dataset_t< DataType >::pair_type = semantic_kitti_frame_pair_t<DataType>

Constructor & Destructor Documentation

◆ semantic_kitti_pair_dataset_t()

template<typename DataType >
toolbox::io::semantic_kitti_pair_dataset_t< DataType >::semantic_kitti_pair_dataset_t ( const std::string &  sequence_path,
std::size_t  skip = 1 
)
explicit

Constructor.

Parameters
sequence_pathPath to sequence directory
skipNumber of frames to skip between source and target
Exceptions
kitti_invalid_sequenceif directory structure is invalid

Member Function Documentation

◆ at_impl()

template<typename DataType >
std::optional< semantic_kitti_frame_pair_t< DataType > > toolbox::io::semantic_kitti_pair_dataset_t< DataType >::at_impl ( std::size_t  index) const

Load frame pair at specific index.

Parameters
indexPair index
Returns
Frame pair data with labels or nullopt on error

◆ clear_cache()

template<typename DataType = float>
void toolbox::io::semantic_kitti_pair_dataset_t< DataType >::clear_cache ( ) const
inline

Clear all caches.

◆ compute_motion_statistics()

template<typename DataType >
std::map< std::string, DataType > toolbox::io::semantic_kitti_pair_dataset_t< DataType >::compute_motion_statistics ( ) const

Compute motion statistics for the dataset.

Returns
Map with statistics (mean/std translation, rotation, etc.)

◆ enable_motion_filter()

template<typename DataType = float>
void toolbox::io::semantic_kitti_pair_dataset_t< DataType >::enable_motion_filter ( bool  enable)
inline

Enable/disable motion filtering.

Parameters
enableEnable filtering of pairs with insufficient motion

◆ get_base_dataset()

template<typename DataType = float>
const semantic_kitti_dataset_t< DataType > & toolbox::io::semantic_kitti_pair_dataset_t< DataType >::get_base_dataset ( ) const
inline

Get the underlying base dataset.

Returns
Reference to semantic KITTI dataset

◆ get_pairs_with_labels()

template<typename DataType >
std::vector< std::size_t > toolbox::io::semantic_kitti_pair_dataset_t< DataType >::get_pairs_with_labels ( const std::vector< uint16_t > &  require_labels,
std::size_t  min_points = 100 
) const

Get pairs with specific semantic constraints.

Parameters
require_labelsLabels that must be present in both frames
min_pointsMinimum points per label
Returns
Indices of pairs meeting criteria

◆ get_skip()

template<typename DataType = float>
std::size_t toolbox::io::semantic_kitti_pair_dataset_t< DataType >::get_skip ( ) const
inline

Get current skip value.

Returns
Number of frames between source and target

◆ get_source_frame_index()

template<typename DataType = float>
std::size_t toolbox::io::semantic_kitti_pair_dataset_t< DataType >::get_source_frame_index ( std::size_t  pair_index) const
inline

Get source frame index for a pair.

Parameters
pair_indexIndex of the pair
Returns
Source frame index in the sequence

◆ get_target_frame_index()

template<typename DataType = float>
std::size_t toolbox::io::semantic_kitti_pair_dataset_t< DataType >::get_target_frame_index ( std::size_t  pair_index) const
inline

Get target frame index for a pair.

Parameters
pair_indexIndex of the pair
Returns
Target frame index in the sequence

◆ set_cache_size()

template<typename DataType = float>
void toolbox::io::semantic_kitti_pair_dataset_t< DataType >::set_cache_size ( std::size_t  size)
inline

Set maximum pair cache size.

Parameters
sizeMaximum number of pairs to cache

◆ set_motion_thresholds()

template<typename DataType = float>
void toolbox::io::semantic_kitti_pair_dataset_t< DataType >::set_motion_thresholds ( DataType  min_translation,
DataType  min_rotation 
)
inline

Set motion thresholds for filtering.

Parameters
min_translationMinimum translation (meters)
min_rotationMinimum rotation (radians)

◆ set_skip()

template<typename DataType = float>
void toolbox::io::semantic_kitti_pair_dataset_t< DataType >::set_skip ( std::size_t  skip)
inline

Set skip parameter.

Parameters
skipNumber of frames between source and target

◆ size_impl()

template<typename DataType = float>
std::size_t toolbox::io::semantic_kitti_pair_dataset_t< DataType >::size_impl ( ) const
inline

Get number of frame pairs.

Returns
Number of available pairs

The documentation for this class was generated from the following files: