| Face Engine SDK 5.32.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/Span.h>
10 #include <fsdk/IPointBatch.h>
11
12 namespace fsdk {
13
14 #ifndef DOXYGEN_SHOULD_SKIP_THIS
15 DECLARE_SMARTPTR(ICrowdEstimator);
16 #endif
17
26 enum CrowdEstimatorType {
27 CET_DEFAULT = 0,
28 CET_SINGLE_NET = 1,
29 CET_TWO_NETS = 2,
30 CET_COUNT
31 };
32
37 struct CrowdEstimation {
38 size_t count;
39 IPointBatchPtr points;
40 };
41
48 struct ICrowdEstimator : IRefCounted {
53 enum EstimationRequest {
54 estimateHeadCount = 0,
55 estimateHeadCountAndCoords = 1 << 0,
56 };
57
68 virtual Result<FSDKError> estimate(
69 const Image& image,
70 const Rect& rect,
71 CrowdEstimation& estimation,
72 EstimationRequest request = EstimationRequest::estimateHeadCount) const noexcept = 0;
73
87 virtual Result<FSDKError> estimate(
88 Span<const Image> images,
89 Span<const Rect> rects,
90 Span<CrowdEstimation> estimations,
91 EstimationRequest request = EstimationRequest::estimateHeadCount) const noexcept = 0;
92
105 virtual Result<FSDKError> validate(
106 Span<const Image> images,
107 Span<const Rect> rects,
108 Span<Result<FSDKError>> errors,
109 EstimationRequest request = EstimationRequest::estimateHeadCount) const noexcept = 0;
110
116 virtual CrowdEstimatorType getType() const noexcept = 0;
117 };
118
119 inline ICrowdEstimator::EstimationRequest
120 operator|(ICrowdEstimator::EstimationRequest a, ICrowdEstimator::EstimationRequest b) {
121 return static_cast<ICrowdEstimator::EstimationRequest>(static_cast<int>(a) | static_cast<int>(b));
122 }
123
125 } // namespace fsdk
DECLARE_SMARTPTR
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:56
fsdk
SDK namespace.
Definition: IAGSEstimator.h:8
fsdk::Result
A structure that encapsulates an action result enumeration.
Definition: Result.h:27
fsdk::ICrowdEstimator::getType
virtual CrowdEstimatorType getType() const noexcept=0
Returns a type of the estimator.
fsdk::ICrowdEstimator::estimateHeadCount
Get number of peoples (heads)
Definition: ICrowdEstimator.h:54
fsdk::CrowdEstimation
Crowd estimation structure.
Definition: ICrowdEstimator.h:37
fsdk::CrowdEstimation::count
size_t count
The number of peoples (heads) on the image.
Definition: ICrowdEstimator.h:38
FSDKError.h
Common SDK error codes.
fsdk::ICrowdEstimator::estimate
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.
fsdk::CET_SINGLE_NET
Single network mode - only Crowd estimation will be used.
Definition: ICrowdEstimator.h:28
fsdk::IRefCounted
Base strong reference counted object interface.
Definition: IRefCounted.h:37
fsdk::CET_DEFAULT
Default type which is specified in config file.
Definition: ICrowdEstimator.h:27
Def.h
Common SDK definitions.
fsdk::CET_TWO_NETS
Double network mode - Crowd + HumanDetector (by default) or Crowd + HeadDetector. ...
Definition: ICrowdEstimator.h:29
fsdk::ICrowdEstimator
Crowd estimator interface.
Definition: ICrowdEstimator.h:48
fsdk::Image
Image.
Definition: Image.h:38
fsdk::ICrowdEstimator::EstimationRequest
EstimationRequest
EstimationRequest lists all possible estimation types that ICrowdEstimator can estimate.
Definition: ICrowdEstimator.h:53
fsdk::ICrowdEstimator::estimateHeadCountAndCoords
Get number of people (heads) and head coordinates.
Definition: ICrowdEstimator.h:55
fsdk::BaseRect< int >
fsdk::ICrowdEstimator::validate
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.
fsdk::Span
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
fsdk::CrowdEstimation::points
IPointBatchPtr points
Coordinates of people heads. Empty if not requested.
Definition: ICrowdEstimator.h:39
IRefCounted.h
Reference counted object interface.
fsdk::CrowdEstimatorType
CrowdEstimatorType
CrowdEstimator type enumeration.
Definition: ICrowdEstimator.h:26