Conscience Core
CscDetectorResources.h
Go to the documentation of this file.
1 #ifndef CscDetectorResources_H
2 #define CscDetectorResources_H
3 
4 #include <string>
5 #include <filesystem>
6 #include <memory>
7 
11 
12 using std::string;
14 namespace fs = std::filesystem;
15 template<class T>
16 using ptr = std::shared_ptr<T>;
17 
20  private:
21  inline static ptr<CscResourceSpec> getServiceResourceSpecWithBackwardCompatibility(
22  string resourceId,
23  fs::path obsoleteFilePathCoreRelative
24  ) {
25  fs::path coreRelativePath = fs::path(__FILE__).parent_path().parent_path();
26  try {
27  if (fs::exists(coreRelativePath)) {
28 
29  fs::path corePath = fs::canonical(coreRelativePath);
30  fs::path obsoleteFullPath = corePath / obsoleteFilePathCoreRelative;
31  if (fs::exists(obsoleteFullPath)) {
32  return std::make_shared<CscLocalFileResourceSpec>(obsoleteFullPath);
33  }
34  }
35  } catch(std::filesystem::filesystem_error const& ex) {
36  // legacy location cannot be resolved - whatever, we choose the standard way!
37  }
38  return std::make_shared<CscResourceFromServiceSpec>(resourceId);
39  }
40 
41  public:
42  inline static ptr<CscResourceSpec> mireAstral = getServiceResourceSpecWithBackwardCompatibility(
43  "mire_astral.png", "DetectorEngine/mire_astral_v0.2.png"
44  );
45  inline static ptr<CscResourceSpec> haarCascadeFrontalFace = getServiceResourceSpecWithBackwardCompatibility(
46  "haarcascade_frontalface.xml", "DetectorEngineFiles/haarcascade_frontalface_default.xml"
47  );
48  inline static ptr<CscResourceSpec> haarCascadeMireA = getServiceResourceSpecWithBackwardCompatibility(
49  "haarcascade_mireA_classifier.xml", "DetectorEngineFiles/mireA/mireA_classifier.xml"
50  );
51  inline static ptr<CscResourceSpec> haarCascadeMireB = getServiceResourceSpecWithBackwardCompatibility(
52  "haarcascade_mireB_classifier.xml", "DetectorEngineFiles/mireB/mireB_classifier.xml"
53  );
54  inline static ptr<CscResourceSpec> haarCascadePedestrian = getServiceResourceSpecWithBackwardCompatibility(
55  "haarcascade_pedestrian.xml", "DetectorEngineFiles/pedestrian/pedestrian.xml"
56  );
57  inline static ptr<CscResourceSpec> haarCascadeHandDefault = getServiceResourceSpecWithBackwardCompatibility(
58  "haarcascade_hand_default.xml", "conscience_test_data/haarcascade_hand_default.xml"
59  );
60  inline static ptr<CscResourceSpec> haarCascadeHandFist = getServiceResourceSpecWithBackwardCompatibility(
61  "haarcascade_hand_fist.xml", "conscience_test_data/haarcascade_hand_fist.xml"
62  );
63  inline static ptr<CscResourceSpec> haarCascadeHandPalm = getServiceResourceSpecWithBackwardCompatibility(
64  "haarcascade_hand_palm.xml", "conscience_test_data/haarcascade_hand_palm.xml"
65  );
66  inline static ptr<CscResourceSpec> haarCascadePerson = getServiceResourceSpecWithBackwardCompatibility(
67  "haarcascade_person.xml", "DetectorEngineFiles/haarcascade_person.xml"
68  );
69 
70  static ptr<CscResourceSpec> DNNConfigurationYoloV4(const string & dataSet) {
71  return std::make_shared<CscResourceFromServiceSpec>("dnn_yolov4_" + dataSet + ".cfg");
72  }
73 
74  static ptr<CscResourceSpec> DNNWeightsYoloV4(const string & dataSet) {
75  return std::make_shared<CscResourceFromServiceSpec>("dnn_yolov4_" + dataSet + ".weights");
76  }
77 
78  static ptr<CscResourceSpec> DNNNamesYoloV4(const string & dataSet) {
79  return std::make_shared<CscResourceFromServiceSpec>("dnn_yolov4_" + dataSet + ".names.json");
80  }
81 
83  return std::make_shared<CscResourceFromServiceSpec>("dnn_yolov8x.onnx");
84  }
85 
86  };
87 }
88 
89 #endif
CscResourceSpec.h
conscience_core::core_objects::resources
Definition: CscLocalFileResourceSpec.h:18
conscience_core::detector_engine::CscDetectorResources::DNNWeightsYoloV4
static ptr< CscResourceSpec > DNNWeightsYoloV4(const string &dataSet)
Definition: CscDetectorResources.h:74
conscience_core::detector_engine
Definition: ConscienceVisionDetectorRepository.cpp:30
conscience_core::detector_engine::CscDetectorResources
Definition: CscDetectorResources.h:19
conscience_core::detector_engine::CscDetectorResources::DNNNamesYoloV4
static ptr< CscResourceSpec > DNNNamesYoloV4(const string &dataSet)
Definition: CscDetectorResources.h:78
conscience_core::detector_engine::CscDetectorResources::DNNConfigurationYoloV4
static ptr< CscResourceSpec > DNNConfigurationYoloV4(const string &dataSet)
Definition: CscDetectorResources.h:70
conscience_core::detector_engine::CscDetectorResources::DNNWeightsYoloV8
static ptr< CscResourceSpec > DNNWeightsYoloV8()
Definition: CscDetectorResources.h:82
CscResourceFromServiceSpec.h
CscLocalFileResourceSpec.h
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29