Lens AI Profiler Cpp
imagesampler.h
1 
6 #ifndef CONFIDENCE_METRICS_H
7 #define CONFIDENCE_METRICS_H
8 
9 #include <opencv2/core.hpp>
10 #include <opencv2/highgui.hpp>
11 #include <opencv2/imgproc.hpp>
12 #include <opencv2/opencv.hpp>
13 #include <vector>
14 #include <algorithm>
15 #include <cmath>
16 #include <fstream>
17 #include <iostream>
18 #include <sstream>
19 #include <stdexcept>
20 #include <kll_sketch.hpp>
21 
22 #include "iniparser.h"
23 #include "saver.h"
24 #include "generic.h"
25 
26 // Typedef for distribution box data structure (assuming datasketches::kll_sketch<unit>)
28 
33 class ImageSampler {
34 public:
39  ImageSampler(const std::string& conf_path, int save_interval, const std::string& model_type);
40  ~ImageSampler();
41 
48  int sample(const void *raw_output, cv::Mat &img, bool save_sample);
49 
56  float margin_confidence(std::vector<float>& prob_dist, bool sorted);
57 
64  float least_confidence(std::vector<float>& prob_dist, bool sorted);
65 
72  float ratio_confidence(std::vector<float>& prob_dist, bool sorted);
73 
79  float entropy_confidence(std::vector<float>& prob_dist);
80  std::string statSavepath;
81  std::string dataSavepath;
82 
83 private:
84  // Member variables for storing confidence metric statistics
85  distributionBox marginConfidenceBox;
86  distributionBox leastConfidenceBox;
87  distributionBox ratioConfidenceBox;
88  distributionBox entropyConfidenceBox;
89  std::string model_type;
90  Saver *saver;
91  //ImageUploader *uploader;
92  std::map<std::string, std::vector<std::string>> samplingConfig;
93  void registerStatistics(const std::string& name);
94 
101  float computeConfidence(const std::string& name, std::vector<float>& confidence);
102 
110  bool isThresholdExceeded(const std::string& name, float stat_score, const std::vector<std::string>& config);
111 
112  void updateSamplingStatistics(const std::string& name, float confidence_score);
113 };
114 
115 #endif // CONFIDENCE_METRICS_H
116 
Class for selecting uncertain image samples for further analysis based on various confidence metrics.
Definition: imagesampler.h:33
float entropy_confidence(std::vector< float > &prob_dist)
Calculates entropy-based confidence.
Definition: imagesampler.cpp:153
ImageSampler(const std::string &conf_path, int save_interval, const std::string &model_type)
Constructor to initialize ImageSampler object with configuration file path.
Definition: imagesampler.cpp:25
int sample(const void *raw_output, cv::Mat &img, bool save_sample)
Selects uncertain image samples based on configured criteria.
Definition: imagesampler.cpp:57
float margin_confidence(std::vector< float > &prob_dist, bool sorted)
Calculates margin confidence (difference between top two probabilities)
Definition: imagesampler.cpp:100
float least_confidence(std::vector< float > &prob_dist, bool sorted)
Calculates least confidence (normalized maximum probability)
Definition: imagesampler.cpp:117
float ratio_confidence(std::vector< float > &prob_dist, bool sorted)
Calculates ratio confidence (ratio of top two probabilities)
Definition: imagesampler.cpp:137
Definition: saver.h:39