Face Engine SDK  5.34.0
A face detection, recognition and tracking engine.
ICrowdEstimator.h
1 #pragma once
2 
3 #include <fsdk/Def.h>
4 #include <fsdk/FSDKError.h>
5 #include <fsdk/IRefCounted.h>
6 #include <fsdk/Types/Image.h>
7 #include <fsdk/Types/Ref.h>
8 #include <fsdk/Types/Result.h>
9 #include <fsdk/Types/ResultValue.h>
10 #include <fsdk/Types/Span.h>
11 #include <fsdk/IPointBatch.h>
12 
13 namespace fsdk {
14 
15 #ifndef DOXYGEN_SHOULD_SKIP_THIS
16  DECLARE_SMARTPTR(ICrowdEstimator);
17 #endif
18 
31  CET_COUNT
32  };
33 
38  struct CrowdEstimation {
39  size_t count;
40  IPointBatchPtr points;
41  };
42 
57  };
58 
70  const Image& image,
71  const Rect& rect,
72  CrowdEstimation& estimation,
73  EstimationRequest request = EstimationRequest::estimateHeadCount) const noexcept = 0;
74 
89  Span<const Image> images,
90  Span<const Rect> rects,
91  Span<CrowdEstimation> estimations,
92  EstimationRequest request = EstimationRequest::estimateHeadCount) const noexcept = 0;
93 
106  virtual Result<FSDKError> validate(
107  Span<const Image> images,
108  Span<const Rect> rects,
109  Span<Result<FSDKError>> errors,
110  EstimationRequest request = EstimationRequest::estimateHeadCount) const noexcept = 0;
111 
117  virtual CrowdEstimatorType getType() const noexcept = 0;
118  };
119 
122  return static_cast<ICrowdEstimator::EstimationRequest>(static_cast<int>(a) | static_cast<int>(b));
123  }
124 
126 } // namespace fsdk
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:70
SDK namespace.
Definition: IAGSEstimator.h:8
A structure that encapsulates an action result enumeration.
Definition: Result.h:27
virtual CrowdEstimatorType getType() const noexcept=0
Returns a type of the estimator.
Get number of peoples (heads)
Definition: ICrowdEstimator.h:55
Crowd estimation structure.
Definition: ICrowdEstimator.h:38
size_t count
The number of peoples (heads) on the image.
Definition: ICrowdEstimator.h:39
Common SDK error codes.
virtual Result< FSDKError > estimate(const Image &image, const Rect &rect, CrowdEstimation &estimation, EstimationRequest request=EstimationRequest::estimateHeadCount) const noexcept=0
Estimates the crowd on the target image.
Single network mode - only Crowd estimation will be used.
Definition: ICrowdEstimator.h:29
Base strong reference counted object interface.
Definition: IRefCounted.h:37
Default type which is specified in config file.
Definition: ICrowdEstimator.h:28
Common SDK definitions.
Double network mode - Crowd + HumanDetector (by default) or Crowd + HeadDetector. ...
Definition: ICrowdEstimator.h:30
Crowd estimator interface.
Definition: ICrowdEstimator.h:49
Image.
Definition: Image.h:38
EstimationRequest
EstimationRequest lists all possible estimation types that ICrowdEstimator can estimate.
Definition: ICrowdEstimator.h:54
Get number of people (heads) and head coordinates.
Definition: ICrowdEstimator.h:56
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Rect > rects, Span< Result< FSDKError >> errors, EstimationRequest request=EstimationRequest::estimateHeadCount) const noexcept=0
Validate input of multiple frames in a single function call.
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
IPointBatchPtr points
Coordinates of people heads. Empty if not requested.
Definition: ICrowdEstimator.h:40
Reference counted object interface.
CrowdEstimatorType
CrowdEstimator type enumeration.
Definition: ICrowdEstimator.h:27