Conscience Core
CscDetectorEngineYoloV8.h
Go to the documentation of this file.
1 //
2 // ConscienceDetectorEngineX.hpp
3 // ConscienceRobotManager
4 //
5 // Created by Xavier de Caseneuve on 26/05/2020.
6 // Copyright © 2020 Conscience Robotics. All rights reserved.
7 //
8 
9 #ifndef CscDetectorEngineYoloV8_h
10 #define CscDetectorEngineYoloV8_h
11 
15 #include <opencv2/core/types.hpp>
16 
17 using std::ostream;
19 
21 
23 
109 };
110 
112 
114 public:
120  string name;
122 
123  DetectableObjectClass(DetectableObjectClassId classId, int conscienceObjectModelId, const string &name, float sizeCentimeters);
125 
126  operator string() const;
127  friend ostream &operator<<(ostream &out, const DetectableObjectClass &objectClass) {
128  out << string(objectClass);
129  return out;
130  }
131 
132  bool operator==(const DetectableObjectClass &rhs) const;
133  bool operator!=(const DetectableObjectClass &rhs) const;
134 };
135 
136 static const map<DetectableObjectTypes, const DetectableObjectClass> detectableObjectClasses = {
217 };
218 
220 public:
221  CscDetectorEngineYoloV8(ptr<CscDNNPool::SafeNeuralNetwork>, const map<DetectableObjectClassId, const DetectableObjectClass> &detectedObjectClasses, bool drawPredictionOnImage, const string &name);
222 
223  ptr<DetectionResult> detectOnImage(
224  const DetectorSourceImage &image, ptr<DetectionParameters> parameters) override;
225 
226  CscDetectorEngineYoloV8 *setDetectedRectanglesColor(const cv::Scalar &detectedRectanglesColor);
227  CscDetectorEngineYoloV8 *setMinConfidenceThreshold(float minConfidenceThreshold);
228 
232  CscDetectorEngineYoloV8 *setCropImage(bool cropImage);
233 
234  virtual bool equals(CscDetectorEngine *) const override;
235 
236 private:
237  float minConfidenceThreshold = 0.8;
238  bool cropImage = false;
239 
240  ptr<SafeNeuralNetwork> neuralNetwork;
241 
242  const bool drawPredictionOnImage;
243  const map<DetectableObjectClassId, const DetectableObjectClass> detectedObjectClasses;
244 
245  cv::Scalar detectedRectanglesColor = cv::Scalar(255, 178, 50);
246 
247  std::unique_ptr<CscLogger> logger;
248 };
249 }
250 
251 #endif /* ConscienceDetectorEngine_hpp */
conscience_core::detector_engine::DetectableObjectType_Frisbee
@ DetectableObjectType_Frisbee
Definition: CscDetectorEngineYoloV8.h:58
conscience_core::detector_engine::DetectableObjectType_Phone
@ DetectableObjectType_Phone
Definition: CscDetectorEngineYoloV8.h:96
conscience_core::detector_engine::DetectableObjectType_TrafficLight
@ DetectableObjectType_TrafficLight
Definition: CscDetectorEngineYoloV8.h:38
conscience_core::detector_engine::DetectableObjectClass::name
string name
Definition: CscDetectorEngineYoloV8.h:120
conscience_core::detector_engine::DetectableObjectType_Orange
@ DetectableObjectType_Orange
Definition: CscDetectorEngineYoloV8.h:78
conscience_core::detector_engine::DetectableObjectType_Remote
@ DetectableObjectType_Remote
Definition: CscDetectorEngineYoloV8.h:94
conscience_core::detector_engine::DetectableObjectType_Person
@ DetectableObjectType_Person
Definition: CscDetectorEngineYoloV8.h:29
conscience_core::detector_engine::DetectableObjectType_Motorbike
@ DetectableObjectType_Motorbike
Definition: CscDetectorEngineYoloV8.h:32
conscience_core::detector_engine::DetectableObjectType_Elephant
@ DetectableObjectType_Elephant
Definition: CscDetectorEngineYoloV8.h:49
conscience_core::detector_engine::CscDetectorEngine
Definition: CscDetectorEngine.h:107
conscience_core::axiomes::operator!=
bool operator!=(const CscPoint2d &a, const CscPoint2d &b)
Definition: Csc2dTypes.cpp:111
conscience_core::detector_engine::CscDetectorEngineYoloV8
Definition: CscDetectorEngineYoloV8.h:219
Csc3dElementModelsRepository.h
conscience_core::detector_engine::SafeNeuralNetwork
CscDNNPool::SafeNeuralNetwork SafeNeuralNetwork
Definition: CscDetectorEngineHandPose.h:25
conscience_core::detector_engine::DetectableObjectType_Laptop
@ DetectableObjectType_Laptop
Definition: CscDetectorEngineYoloV8.h:92
conscience_core::detector_engine::DetectableObjectType_Suitcase
@ DetectableObjectType_Suitcase
Definition: CscDetectorEngineYoloV8.h:57
conscience_core::detector_engine::DetectableObjectType_BaseballBat
@ DetectableObjectType_BaseballBat
Definition: CscDetectorEngineYoloV8.h:63
conscience_core::detector_engine::DetectableObjectType_Cake
@ DetectableObjectType_Cake
Definition: CscDetectorEngineYoloV8.h:84
conscience_core::detector_engine::DetectableObjectType_Tie
@ DetectableObjectType_Tie
Definition: CscDetectorEngineYoloV8.h:56
conscience_core::detector_engine
Definition: ConscienceVisionDetectorRepository.cpp:30
conscience_core::detector_engine::DetectableObjectType_Kite
@ DetectableObjectType_Kite
Definition: CscDetectorEngineYoloV8.h:62
conscience_core::detector_engine::DetectableObjectType_StopSign
@ DetectableObjectType_StopSign
Definition: CscDetectorEngineYoloV8.h:40
conscience_core::detector_engine::DetectableObjectType_Bed
@ DetectableObjectType_Bed
Definition: CscDetectorEngineYoloV8.h:88
conscience_core::detector_engine::DetectableObjectClass::sizeCentimeters
float sizeCentimeters
Definition: CscDetectorEngineYoloV8.h:121
conscience_core::detector_engine::DetectableObjectType_Bicycle
@ DetectableObjectType_Bicycle
Definition: CscDetectorEngineYoloV8.h:30
CscDetectorEngine.h
conscience_core::detector_engine::DetectableObjectType_Boat
@ DetectableObjectType_Boat
Definition: CscDetectorEngineYoloV8.h:37
conscience_core::detector_engine::DetectableObjectType_KnifeBall
@ DetectableObjectType_KnifeBall
Definition: CscDetectorEngineYoloV8.h:72
conscience_core::detector_engine::DetectableObjectType_Truck
@ DetectableObjectType_Truck
Definition: CscDetectorEngineYoloV8.h:36
conscience_core::detector_engine::DetectableObjectClass::classId
DetectableObjectClassId classId
Definition: CscDetectorEngineYoloV8.h:118
conscience_core::detector_engine::DetectableObjectClass::operator<<
friend ostream & operator<<(ostream &out, const DetectableObjectClass &objectClass)
Definition: CscDetectorEngineYoloV8.h:127
conscience_core::detector_engine::DetectableObjectType_Skateboard
@ DetectableObjectType_Skateboard
Definition: CscDetectorEngineYoloV8.h:65
conscience_core::core_objects::element_3d::CscObjectModel::MODEL_ID_CHAIR
static constexpr int MODEL_ID_CHAIR
Definition: Csc3dElementModelsRepository.h:198
conscience_core::detector_engine::DetectableObjectType_Pizza
@ DetectableObjectType_Pizza
Definition: CscDetectorEngineYoloV8.h:82
conscience_core::detector_engine::DetectableObjectType_Bird
@ DetectableObjectType_Bird
Definition: CscDetectorEngineYoloV8.h:43
conscience_core::detector_engine::DetectableObjectType_TeddyBear
@ DetectableObjectType_TeddyBear
Definition: CscDetectorEngineYoloV8.h:106
conscience_core::detector_engine::DetectableObjectType_Toothbrush
@ DetectableObjectType_Toothbrush
Definition: CscDetectorEngineYoloV8.h:108
conscience_core::detector_engine::DetectableObjectClassId
int DetectableObjectClassId
Definition: CscDetectorEngineYoloV8.h:111
conscience_core::detector_engine::DetectableObjectType_Fork
@ DetectableObjectType_Fork
Definition: CscDetectorEngineYoloV8.h:71
conscience_core::detector_engine::DetectableObjectType_Giraffe
@ DetectableObjectType_Giraffe
Definition: CscDetectorEngineYoloV8.h:52
conscience_core::detector_engine::DetectableObjectType_Chair
@ DetectableObjectType_Chair
Definition: CscDetectorEngineYoloV8.h:85
conscience_core::core_objects::element_3d
Definition: CommandParseContext.h:19
conscience_core::detector_engine::DetectableObjectType_Horse
@ DetectableObjectType_Horse
Definition: CscDetectorEngineYoloV8.h:46
conscience_core::detector_engine::DetectableObjectType_Vase
@ DetectableObjectType_Vase
Definition: CscDetectorEngineYoloV8.h:104
logger
static std::unique_ptr< CscLogger > logger
Definition: gltfHelpers.cpp:6
conscience_core::detector_engine::DetectableObjectType_SportsBall
@ DetectableObjectType_SportsBall
Definition: CscDetectorEngineYoloV8.h:61
conscience_core::detector_engine::DetectableObjectType_Refrigerator
@ DetectableObjectType_Refrigerator
Definition: CscDetectorEngineYoloV8.h:101
conscience_core::detector_engine::DetectableObjectType_FireHydrant
@ DetectableObjectType_FireHydrant
Definition: CscDetectorEngineYoloV8.h:39
conscience_core::detector_engine::detectableObjectClasses
static const map< DetectableObjectTypes, const DetectableObjectClass > detectableObjectClasses
Definition: CscDetectorEngineYoloV8.h:136
conscience_core::detector_engine::DetectableObjectType_Mouse
@ DetectableObjectType_Mouse
Definition: CscDetectorEngineYoloV8.h:93
conscience_core::detector_engine::DetectableObjectType_Bus
@ DetectableObjectType_Bus
Definition: CscDetectorEngineYoloV8.h:34
conscience_core::detector_engine::DetectableObjectType_Oven
@ DetectableObjectType_Oven
Definition: CscDetectorEngineYoloV8.h:98
conscience_core::detector_engine::DetectableObjectType_Broccoli
@ DetectableObjectType_Broccoli
Definition: CscDetectorEngineYoloV8.h:79
conscience_core::detector_engine::DetectableObjectType_Microwave
@ DetectableObjectType_Microwave
Definition: CscDetectorEngineYoloV8.h:97
conscience_core::detector_engine::DetectableObjectType_HandBag
@ DetectableObjectType_HandBag
Definition: CscDetectorEngineYoloV8.h:55
conscience_core::detector_engine::DetectableObjectType_Bear
@ DetectableObjectType_Bear
Definition: CscDetectorEngineYoloV8.h:50
conscience_core::detector_engine::DetectableObjectType_Bench
@ DetectableObjectType_Bench
Definition: CscDetectorEngineYoloV8.h:42
conscience_core::detector_engine::DetectableObjectType_Cow
@ DetectableObjectType_Cow
Definition: CscDetectorEngineYoloV8.h:48
conscience_core::detector_engine::DetectableObjectType_ParkingMeter
@ DetectableObjectType_ParkingMeter
Definition: CscDetectorEngineYoloV8.h:41
conscience_core::detector_engine::DetectableObjectType_Bottle
@ DetectableObjectType_Bottle
Definition: CscDetectorEngineYoloV8.h:68
conscience_core::detector_engine::DetectableObjectType_Donut
@ DetectableObjectType_Donut
Definition: CscDetectorEngineYoloV8.h:83
conscience_core::detector_engine::DetectableObjectType_Bannana
@ DetectableObjectType_Bannana
Definition: CscDetectorEngineYoloV8.h:75
CscDNNPool.h
conscience_core::detector_engine::DetectableObjectType_Sink
@ DetectableObjectType_Sink
Definition: CscDetectorEngineYoloV8.h:100
conscience_core::core_objects::element_3d::CscObjectModel::MODEL_ID_BED
static constexpr int MODEL_ID_BED
Definition: Csc3dElementModelsRepository.h:197
conscience_core::detector_engine::DetectableObjectType_Cup
@ DetectableObjectType_Cup
Definition: CscDetectorEngineYoloV8.h:70
conscience_core::detector_engine::DetectableObjectType_BaseballGlove
@ DetectableObjectType_BaseballGlove
Definition: CscDetectorEngineYoloV8.h:64
conscience_core::detector_engine::DetectableObjectType_Scissors
@ DetectableObjectType_Scissors
Definition: CscDetectorEngineYoloV8.h:105
conscience_core::detector_engine::DetectorSourceImage
Definition: CscDetectorEngine.h:66
conscience_core::detector_engine::DetectableObjectType_PottedPlant
@ DetectableObjectType_PottedPlant
Definition: CscDetectorEngineYoloV8.h:87
conscience_core::detector_engine::DetectableObjectType_Carrot
@ DetectableObjectType_Carrot
Definition: CscDetectorEngineYoloV8.h:80
conscience_core::detector_engine::DetectableObjectType_Dog
@ DetectableObjectType_Dog
Definition: CscDetectorEngineYoloV8.h:45
conscience_core::detector_engine::DetectableObjectType_TennisRacket
@ DetectableObjectType_TennisRacket
Definition: CscDetectorEngineYoloV8.h:67
conscience_core::detector_engine::DetectableObjectType_Bowl
@ DetectableObjectType_Bowl
Definition: CscDetectorEngineYoloV8.h:74
conscience_core::detector_engine::DetectableObjectType_Keyboard
@ DetectableObjectType_Keyboard
Definition: CscDetectorEngineYoloV8.h:95
conscience_core::detector_engine::DetectableObjectType_Toaster
@ DetectableObjectType_Toaster
Definition: CscDetectorEngineYoloV8.h:99
conscience_core::detector_engine::DetectableObjectType_Zebra
@ DetectableObjectType_Zebra
Definition: CscDetectorEngineYoloV8.h:51
conscience_core::detector_engine::DetectableObjectType_Airplane
@ DetectableObjectType_Airplane
Definition: CscDetectorEngineYoloV8.h:33
conscience_core::detector_engine::DetectableObjectType_TV
@ DetectableObjectType_TV
Definition: CscDetectorEngineYoloV8.h:91
conscience_core::detector_engine::DetectableObjectType_Toilet
@ DetectableObjectType_Toilet
Definition: CscDetectorEngineYoloV8.h:90
conscience_core::detector_engine::DetectableObjectType_Train
@ DetectableObjectType_Train
Definition: CscDetectorEngineYoloV8.h:35
conscience_core::detector_engine::DetectableObjectType_Sandwich
@ DetectableObjectType_Sandwich
Definition: CscDetectorEngineYoloV8.h:77
conscience_core::detector_engine::DetectableObjectType_Cat
@ DetectableObjectType_Cat
Definition: CscDetectorEngineYoloV8.h:44
conscience_core::detector_engine::DetectableObjectType_WineGlass
@ DetectableObjectType_WineGlass
Definition: CscDetectorEngineYoloV8.h:69
conscience_core::detector_engine::DetectableObjectType_Apple
@ DetectableObjectType_Apple
Definition: CscDetectorEngineYoloV8.h:76
conscience_core::detector_engine::DetectableObjectType_Backpack
@ DetectableObjectType_Backpack
Definition: CscDetectorEngineYoloV8.h:53
conscience_core::detector_engine::DetectableObjectClass::conscienceObjectModelId
int conscienceObjectModelId
Definition: CscDetectorEngineYoloV8.h:119
conscience_core::detector_engine::DetectableObjectType_Snowboard
@ DetectableObjectType_Snowboard
Definition: CscDetectorEngineYoloV8.h:60
conscience_core::detector_engine::DetectableObjectType_Book
@ DetectableObjectType_Book
Definition: CscDetectorEngineYoloV8.h:102
conscience_core::detector_engine::DetectableObjectType_HairDrier
@ DetectableObjectType_HairDrier
Definition: CscDetectorEngineYoloV8.h:107
conscience_core::detector_engine::DetectableObjectType_Skis
@ DetectableObjectType_Skis
Definition: CscDetectorEngineYoloV8.h:59
conscience_core::detector_engine::DetectableObjectType_Clock
@ DetectableObjectType_Clock
Definition: CscDetectorEngineYoloV8.h:103
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::detector_engine::DetectableObjectTypes
DetectableObjectTypes
Definition: CscDetectorEngineYoloV8.h:28
conscience_utils::equals
bool equals(const map< K, V > &map1, const map< K, V > &map2)
Definition: conscience_util.h:527
conscience_core::detector_engine::DetectableObjectType_Sheep
@ DetectableObjectType_Sheep
Definition: CscDetectorEngineYoloV8.h:47
conscience_core::detector_engine::DetectableObjectType_DiningTable
@ DetectableObjectType_DiningTable
Definition: CscDetectorEngineYoloV8.h:89
conscience_core::detector_engine::DetectableObjectType_Spoon
@ DetectableObjectType_Spoon
Definition: CscDetectorEngineYoloV8.h:73
conscience_core::detector_engine::DetectableObjectType_Couch
@ DetectableObjectType_Couch
Definition: CscDetectorEngineYoloV8.h:86
conscience_core::detector_engine::DetectableObjectType_Car
@ DetectableObjectType_Car
Definition: CscDetectorEngineYoloV8.h:31
conscience_core::detector_engine::DetectableObjectType_Umbrella
@ DetectableObjectType_Umbrella
Definition: CscDetectorEngineYoloV8.h:54
conscience_core::detector_engine::DetectableObjectType_HotDog
@ DetectableObjectType_HotDog
Definition: CscDetectorEngineYoloV8.h:81
conscience_core::axiomes::operator==
bool operator==(const CscPoint2d &a, const CscPoint2d &b)
Definition: Csc2dTypes.cpp:107
conscience_core::detector_engine::DetectableObjectClass
Definition: CscDetectorEngineYoloV8.h:113
conscience_core::detector_engine::DetectableObjectType_Surfboard
@ DetectableObjectType_Surfboard
Definition: CscDetectorEngineYoloV8.h:66