3DiVi Face SDK  3.21.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Свойства Группы
AgeGenderEstimator.h
См. документацию.
1 
13 #ifndef __PBIO_API__PBIO__AGE_GENDER_ESTIMATOR_H_
14 #define __PBIO_API__PBIO__AGE_GENDER_ESTIMATOR_H_
15 
16 #include <sstream>
17 #include <vector>
18 
19 
20 #include "ComplexObject.h"
21 #include "RawSample.h"
22 #include "SmartPtr.h"
23 #include "Error.h"
24 #include "stl_wraps_impls/WrapOStreamImpl.h"
25 
26 
32 namespace pbio
33 {
34 
35 class FacerecService;
36 
46 class AgeGenderEstimator : public ComplexObject
47 {
48 public:
49 
55  typedef LightSmartPtr<AgeGenderEstimator>::tPtr Ptr;
56 
62  enum Age
63  {
69  AGE_KID = 0,
70 
76  AGE_YOUNG = 1,
77 
83  AGE_ADULT = 2,
84 
91  };
92 
98  enum Gender
99  {
106 
113  };
114 
120  struct AgeGender
121  {
128 
135 
141  float age_years;
142  };
143 
164  AgeGender estimateAgeGender(const pbio::RawSample &sample) const;
165 
166 private:
167 
169  const DHPtr &dll_handle,
170  void* impl);
171 
172  friend class FacerecService;
173  friend class object_with_ref_counter<AgeGenderEstimator>;
174 };
175 
176 } // pbio namespace
177 
178 
179 
183 
184 namespace pbio
185 {
186 
187 inline
188 AgeGenderEstimator::AgeGenderEstimator(
189  const DHPtr &dll_handle,
190  void* impl):
191 ComplexObject(dll_handle, impl)
192 {
193  // nothing else
194 }
195 
196 
197 inline
199 {
200  void* exception = NULL;
201 
202  int32_t age_class, gender;
203  float age_years;
204 
205  _dll_handle->AgeGenderEstimator_estimateAgeGender(
206  _impl,
207  (pbio::facerec::RawSampleImpl const*) sample._impl,
208  &age_class,
209  &gender,
210  &age_years,
211  &exception);
212 
213  checkException(exception, *_dll_handle);
214 
215  AgeGender result;
216  result.age = (Age) age_class;
217  result.gender = (Gender) gender;
218  result.age_years = age_years;
219 
220  return result;
221 }
222 
223 
224 
225 } // pbio namespace
226 
227 #endif // __PBIO_API__PBIO__AGE_GENDER_ESTIMATOR_H_
Gender gender
Пол.
Definition: AgeGenderEstimator.h:134
AgeGender estimateAgeGender(const pbio::RawSample &sample) const
Определить пол и возраст поданного лица.
Definition: AgeGenderEstimator.h:198
Интерфейсный объект для создания других интерфейсных объектов.
Definition: FacerecService.h:64
Возраст в диапазоне [55; inf).
Definition: AgeGenderEstimator.h:90
Интерфейсный объект, хранящий образец лица.
Definition: RawSample.h:49
Возраст в диапазоне [37; 55).
Definition: AgeGenderEstimator.h:83
Age age
Возраст.
Definition: AgeGenderEstimator.h:127
Age
Возрастные группы.
Definition: AgeGenderEstimator.h:62
Возраст в диапазоне [0; 18).
Definition: AgeGenderEstimator.h:69
Error - класс исключений, выбрасываемых при возникновении ошибок.
RawSample - Интерфейсный объект, хранящий образец лица.
Возраст в диапазоне [18; 37).
Definition: AgeGenderEstimator.h:76
Пол и возраст.
Definition: AgeGenderEstimator.h:120
Интерфейсный объект для определения пола и возраста.
Definition: AgeGenderEstimator.h:46
SmartPtr.
Gender
Пол.
Definition: AgeGenderEstimator.h:98
float age_years
Возраст в виде числа.
Definition: AgeGenderEstimator.h:141
LightSmartPtr< AgeGenderEstimator >::tPtr Ptr
Псевдоним для типа умного указателя на AgeGenderEstimator.
Definition: AgeGenderEstimator.h:55
Женский.
Definition: AgeGenderEstimator.h:105
Мужской.
Definition: AgeGenderEstimator.h:112