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

Semantic KITTI dataset loader. More...

#include <semantic_kitti_dataset.hpp>

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

Public Types

using frame_type = semantic_kitti_frame_t< DataType >
 
using base_type = dataset_t< semantic_kitti_dataset_t< DataType >, frame_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_dataset_t (const std::string &sequence_path)
 Constructor.
 
void enable_label_validation (bool validate)
 Set whether to validate labels match point count.
 
void set_cache_size (std::size_t max_cached_frames)
 Set cache size for loaded frames.
 
std::size_t size_impl () const
 Get number of frames in the sequence.
 
std::optional< frame_typeat_impl (std::size_t index) const
 Load frame at specific index.
 
std::set< uint16_t > get_unique_labels (bool scan_all=false) const
 Get all unique labels in the dataset.
 
std::map< uint16_t, std::string > get_label_names () const
 Get label name mapping.
 
std::map< uint16_t, std::size_t > compute_label_statistics (std::size_t max_frames=0) const
 Compute label statistics across all frames.
 
std::vector< std::size_t > get_frames_with_label (uint16_t label, std::size_t min_points=1) const
 Get frames containing specific label.
 
bool has_labels () const
 Check if labels are available.
 
std::string get_label_file (std::size_t index) const
 Get label file path for specific frame.
 
const kitti_odometry_dataset_t< DataType > & get_base_dataset () const
 Get the underlying base dataset.
 
void clear_cache () const
 Clear all caches.
 
- 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_dataset_t< DataType >

Semantic KITTI dataset loader.

Template Parameters
DataTypeThe floating point type (float or double)

This dataset extends KITTI odometry with semantic labels for each point.

semantic_kitti_dataset_t<float> dataset("/path/to/semantic_kitti/sequences/08");
// Get label statistics
auto stats = dataset.compute_label_statistics();
for (const auto& [label, count] : stats) {
<< ": " << count << " points\n";
}
// Process frames
for (const auto& frame : dataset) {
// Extract road points
auto road_cloud = frame.get_labeled_cloud(kitti_semantic_labels::ROAD);
// Extract all static objects
auto static_cloud = frame.get_labeled_cloud({
});
}
Semantic KITTI dataset loader.
Definition semantic_kitti_dataset.hpp:48
constexpr uint16_t VEGETATION
Definition kitti_extended.hpp:250
std::string get_label_name(uint16_t label)
Get human-readable label name.
Definition kitti_extended_impl.hpp:458
constexpr uint16_t BUILDING
Definition kitti_extended.hpp:247
constexpr uint16_t ROAD
Definition kitti_extended.hpp:243

Member Typedef Documentation

◆ base_type

template<typename DataType = float>
using toolbox::io::semantic_kitti_dataset_t< DataType >::base_type = dataset_t<semantic_kitti_dataset_t<DataType>, frame_type>

◆ frame_type

template<typename DataType = float>
using toolbox::io::semantic_kitti_dataset_t< DataType >::frame_type = semantic_kitti_frame_t<DataType>

Constructor & Destructor Documentation

◆ semantic_kitti_dataset_t()

template<typename DataType >
toolbox::io::semantic_kitti_dataset_t< DataType >::semantic_kitti_dataset_t ( const std::string &  sequence_path)
explicit

Constructor.

Parameters
sequence_pathPath to sequence directory
Exceptions
kitti_invalid_sequenceif directory structure is invalid

Member Function Documentation

◆ at_impl()

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

Load frame at specific index.

Parameters
indexFrame index
Returns
Frame data with labels or nullopt on error

◆ clear_cache()

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

Clear all caches.

◆ compute_label_statistics()

template<typename DataType >
std::map< uint16_t, std::size_t > toolbox::io::semantic_kitti_dataset_t< DataType >::compute_label_statistics ( std::size_t  max_frames = 0) const

Compute label statistics across all frames.

Parameters
max_framesMaximum frames to scan (0 = all)
Returns
Map from label ID to total point count

◆ enable_label_validation()

template<typename DataType = float>
void toolbox::io::semantic_kitti_dataset_t< DataType >::enable_label_validation ( bool  validate)
inline

Set whether to validate labels match point count.

Parameters
validateEnable validation

◆ get_base_dataset()

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

Get the underlying base dataset.

Returns
Reference to base KITTI odometry dataset

◆ get_frames_with_label()

template<typename DataType >
std::vector< std::size_t > toolbox::io::semantic_kitti_dataset_t< DataType >::get_frames_with_label ( uint16_t  label,
std::size_t  min_points = 1 
) const

Get frames containing specific label.

Parameters
labelLabel ID to search for
min_pointsMinimum number of points with this label
Returns
Frame indices containing the label

◆ get_label_file()

template<typename DataType = float>
std::string toolbox::io::semantic_kitti_dataset_t< DataType >::get_label_file ( std::size_t  index) const
inline

Get label file path for specific frame.

Parameters
indexFrame index
Returns
Path to .label file

◆ get_label_names()

template<typename DataType = float>
std::map< uint16_t, std::string > toolbox::io::semantic_kitti_dataset_t< DataType >::get_label_names ( ) const
inline

Get label name mapping.

Returns
Map from label ID to human-readable name

◆ get_unique_labels()

template<typename DataType >
std::set< uint16_t > toolbox::io::semantic_kitti_dataset_t< DataType >::get_unique_labels ( bool  scan_all = false) const

Get all unique labels in the dataset.

Parameters
scan_allIf true, scan all frames (slow). If false, use cached info.
Returns
Set of unique label IDs

◆ has_labels()

template<typename DataType = float>
bool toolbox::io::semantic_kitti_dataset_t< DataType >::has_labels ( ) const
inline

Check if labels are available.

Returns
True if label files exist

◆ set_cache_size()

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

Set cache size for loaded frames.

Parameters
max_cached_framesMaximum number of frames to keep in memory

◆ size_impl()

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

Get number of frames in the sequence.

Returns
Number of available frames

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