Cpp-Processing
Classes | Typedefs | Enumerations | Functions
celantur Namespace Reference

Classes

struct  CelanturDetection
 Structure to hold information about a detection made by the Celantur SDK. More...
 
class  ModelCompileException
 Exception class for errors during model compilation. This exception is thrown when there are issues encountered while compiling a machine learning model. More...
 
class  ModelLoadException
 Exception class for errors during model loading. This exception is thrown when there are issues encountered while loading a machine learning model. More...
 
class  DimensionMismatchException
 Exception class for dimension mismatches. This exception is thrown when there is a mismatch in expected dimensions, such as input size or tensor shapes. More...
 
struct  DetectionProcessingConfig
 Configuration that describes processing of a particular class This structure contains the type of blurring to be applied to detections of a specific class. More...
 
struct  ProcessorParams
 Structure to hold parameters for the image processor. This structure contains various settings for configuring the image processing. More...
 
struct  ImageMetadata
 Metadata associated with an image or frame. for now, just a placeholder. More...
 
struct  FrameMetadata
 Metadata associated with a video frame. for now, just a placeholder. More...
 
struct  MatContainer
 Container for an image and its associated metadata. for now, just a placeholder. More...
 
struct  ModelThresholds
 Structure to hold model threshold values for different object classes. This structure contains threshold values for detecting faces, license plates, persons, and vehicles. Class ids are identical to the celantur container. More...
 
struct  CPUInfo
 Structure to hold CPU information. More...
 
struct  Dims
 Structure to hold dimensions information. This structure contains the name, number of dimensions, dimension sizes, and whether it is an input dimension. More...
 
struct  ExifMetadata
 Structure to manage EXIF metadata for images. This structure encapsulates EXIF data and provides methods to manipulate and retrieve information from it. It is used in conjunction with JPEG encoding and decoding functions to preserve image metadata. More...
 

Typedefs

typedef DimensionMismatchException dimension_mismatch_exception
 Alias for backward compatibility. More...
 
typedef std::map< CelanturClassId, DetectionProcessingConfigPerTypeProcessingConfig
 Configuration map for processing different detection types. This map associates each CelanturClassId with its corresponding DetectionProcessingConfig, allowing for fine-tuned processing settings based on the type of detection. More...
 
typedef std::tuple< int, int, int > MinOptMaxDims
 A tuple representing minimum, optimal, and maximum dimensions. This tuple is used to specify the range of dimensions for model optimization. The three integers represent the minimum, optimal, and maximum dimensions respectively. More...
 
typedef std::map< std::string, std::any > InferenceEnginePluginSettings
 The settings for the inference engine used during runtime. The settings are passed as a map of key-value pairs. More...
 
typedef std::map< std::string, std::any > InferenceEnginePluginCompileSettings
 The settings for compiling the model for the inference engine. The settings are passed as a map of key-value pairs. More...
 

Enumerations

enum class  BlurType { None = 0 , BBox_Oval = 1 , BBox_Rectangle = 2 , Segmentation = 3 }
 Enum to describe the blur in celantur::DetectionProcessingConfig. More...
 
enum class  CelanturClassId { LicensePlate = 101 , Person = 102 , Face = 103 , Vehicle = 104 }
 Class ids enum that is used in celantur::CelanturDetection and celantur::DetectionProcessingConfig to describe detection class Class ids are identical to the celantur container. More...
 
enum class  Rotation { None = 0 , Rotated90Clockwise = 1 , Rotated180 = 2 , Rotated90CounterClockwise = 3 }
 Enum to represent image rotation states. is used in celantur::FrameMetadata to describe the rotation of the frame. More...
 
enum class  OptimisationLevel { Low , Medium , Full }
 Enumeration for different levels of optimization. This enum is used to specify the desired level of optimization during model compilation. More...
 
enum class  CompilePrecision { FP32 , FP16 , INT8 }
 Enumeration for different precision levels during model compilation. This enum is used to specify the desired precision for model weights and computations. Most engines support only FP32. Currently, only TensorRT supports FP16. INT8 is supported by TensorRT and OpenVINO, but requires special model provided to you by Celantur. More...
 
enum class  LogSeverity { Error , Warning , Debug }
 Enumeration for different log severity levels. More...
 

Functions

const PerTypeProcessingConfig DEFAULT_PER_TYPE_PROCESSING_CONFIG ({ {CelanturClassId::LicensePlate, DetectionProcessingConfig{ BlurType::BBox_Rectangle, 0.3f, 0.0f, 1.0f, true }}, {CelanturClassId::Person, {BlurType::None}}, {CelanturClassId::Face, { BlurType::BBox_Oval, 0.3f, 0.0f, 0.2f, true }}, {CelanturClassId::Vehicle, {BlurType::None}}, })
 Default per-type processing configuration. More...
 
CPUInfo get_cpu_info ()
 Function to retrieve CPU information. More...
 
void serialise_image_metrics_to_json (cv::Mat image, std::vector< CelanturDetection > detections, std::string image_name, std::string input_folder, std::ostream &os)
 serialise detections to JSON format. Is identical to the celantur-container functionality. More...
 
std::vector< CelanturDetectionfilter_detections_by_threshold (const std::vector< CelanturDetection > &detections, const ModelThresholds &thresholds)
 Filter detections based on confidence thresholds for different object classes. This function takes a vector of CelanturDetection objects and filters them according to the specified thresholds for each class. More...
 
std::vector< CelanturDetectionfilter_detections_by_class_name (const std::vector< CelanturDetection > &detections, const std::set< std::string > &classes)
 Filter detections based on a set of class names. This function takes a vector of CelanturDetection objects and filters them to include only those whose class names are present in the provided set. More...
 
std::vector< CelanturDetectionfilter_detections_by_class (const std::vector< CelanturDetection > &detections, const std::set< CelanturClassId > &classes)
 Filter detections by type. This function takes a vector of CelanturDetection objects and filters them to include only those whose class IDs are present in the provided set. More...
 
cv::Mat visualise_detections (const cv::Mat image, std::vector< CelanturDetection > detections)
 Visualise detections on an image. This function takes an input image and a vector of CelanturDetection objects, and draws bounding boxes and class labels on the image to visualize the detections. Can be used for debug purposes. More...
 
std::vector< unsigned char > jpeg_encode (cv::Mat image, int jpeg_quality=95, std::optional< ExifMetadata > exif_metadata=std::nullopt)
 Encode an image to JPEG format with optional EXIF metadata. This function compresses the input image to JPEG format, allowing specification of JPEG quality and embedding of EXIF metadata if provided. More...
 
cv::Mat jpeg_decode (const unsigned char *data, size_t size)
 Decode a JPEG image from a byte array. This function takes a byte array containing JPEG-encoded data and decodes it into an OpenCV cv::Mat image. More...
 
cv::Mat jpeg_decode (std::vector< unsigned char > data)
 Decode a JPEG image from a vector of bytes. More...
 
ExifMetadata jpeg_get_exif_metadata (const unsigned char *data, size_t size)
 Extract EXIF metadata from a JPEG byte array. This function parses the EXIF metadata from a JPEG image provided as a byte array and returns it as an ExifMetadata object. More...
 
cv::Mat rotate_image (const cv::Mat &image, int orientation)
 Rotate an image based on EXIF orientation. This function rotates the input image according to the specified EXIF orientation value, ensuring correct display orientation. More...