MeiCam SDK For iOS  3.6.1
NvsHumanDetectionHandle.h
Go to the documentation of this file.
1 //================================================================================
2 //
3 // (c) Copyright China Digital Video (Beijing) Limited, 2017. All rights reserved.
4 //
5 // This code and information is provided "as is" without warranty of any kind,
6 // either expressed or implied, including but not limited to the implied
7 // warranties of merchantability and/or fitness for a particular purpose.
8 //
9 //--------------------------------------------------------------------------------
10 // Birth Date: Sep 24. 2020
11 // Author: NewAuto video team
12 //================================================================================
13 
14 #pragma once
15 #import <Foundation/Foundation.h>
16 #import <UIKit/UIKit.h>
17 #import "NvsCommonDef.h"
18 
27 typedef enum {
48 
57 typedef enum {
63 
72 typedef enum {
81 
90 typedef enum {
99 
108 typedef enum {
120 
129 typedef enum {
135 
136 
137 typedef enum {
145 
146 typedef enum {
150 
151 NVS_EXPORT @interface NvsDetectionPosition2D : NSObject
152 
153 @property (nonatomic, assign) CGFloat x;
154 @property (nonatomic, assign) CGFloat y;
155 
156 @end
157 
158 NVS_EXPORT @interface NvsDetectionPosition3D : NSObject
159 
160 @property (nonatomic, assign) CGFloat x;
161 @property (nonatomic, assign) CGFloat y;
162 @property (nonatomic, assign) CGFloat z;
163 
164 @end
165 
174 NVS_EXPORT @interface NvsDetectionConfig : NSObject
175 
176 @property (nonatomic, assign) int64_t faceFeature;
177 @property (nonatomic, assign) int64_t faceAction;
178 @property (nonatomic, assign) int64_t avatarExpression;
179 
180 @end
181 
189 NVS_EXPORT @interface NvsFaceData2D : NSObject
190 
191 @property (assign, nonatomic) NvsRect bbox;
192 
199 @property (strong, nonatomic) NSArray <NvsDetectionPosition2D *>*points;
207 @property (strong, nonatomic) NSArray *visibilities;
215 @property (assign, nonatomic) CGFloat yaw;
223 @property (assign, nonatomic) CGFloat pitch;
231 @property (assign, nonatomic) CGFloat roll;
232 
233 @end
234 
242 NVS_EXPORT @interface NvsFaceData3D : NSObject
243 
244 @property (strong, nonatomic) NSArray <NvsDetectionPosition3D *>*vertices;
245 @property (strong, nonatomic) NvsDetectionPosition3D *trans;
246 @property (strong, nonatomic) NvsDetectionPosition3D *rot;
247 
248 @end
249 
257 NVS_EXPORT @interface NvsFaceFeature : NSObject
258 
259 @property (assign, nonatomic) NSInteger faceId;
260 @property (assign, nonatomic) CGFloat score;
261 @property (strong, nonatomic) NvsFaceData2D* faceData2D;
262 @property (strong, nonatomic) NvsFaceData3D* faceData3D;
263 @property (strong, nonatomic) NSArray *actions;
264 @property (strong, nonatomic) NSArray *avatarExpressions;
265 
266 @end
267 
275 NVS_EXPORT @interface NvsHumanFeature : NSObject
276 
277 @property(nonatomic, strong) NSMutableArray<NvsFaceFeature *>*faceFeatureArray;
278 
287 - (NSUInteger)getFaceFeatureCount;
288 
297 - (void)addFaceFeatureArray:(NvsFaceFeature *)faceFeature;
298 
307 - (void)removeFaceFeatureArrayByIndexes:(NSUInteger)index;
308 
309 @end
310 
311 NVS_EXPORT @interface NvsHumanDetectionHandle : NSObject
312 
313 @property(assign, nonatomic) int64_t humanDetectHandle;
314 
326 - (void)setDetectionIntegerParam:(int)param value:(int)value;
327 
339 - (void)setDetectionFloatParam:(int)param value:(float)value;
340 
352 - (void)setDetectionBooleanParam:(int)param value:(BOOL)value;
353 
377 - (NvsHumanFeature*)detect:(void *)imageBuffer pixelFormat:(int)pixelFormat
378  imageWidth:(int)imageWidth
379  imageHeight:(int)imageHeight
380  imageStride:(int)imageStride
381  orientation:(int)orientation
382  config:(NvsDetectionConfig*)config;
383 
384 @end
HUMAN_DETECTION_FACE_ACTION_YAW
@ HUMAN_DETECTION_FACE_ACTION_YAW
Shake head.
Definition: NvsHumanDetectionHandle.h:140
HUMAN_DETECTION_FEATURE_SEMI_IMAGE_MODE
@ HUMAN_DETECTION_FEATURE_SEMI_IMAGE_MODE
Semi-image detection mode.
Definition: NvsHumanDetectionHandle.h:34
NvsHumanDetectionAvartaType
NvsHumanDetectionAvartaType
Definition: NvsHumanDetectionHandle.h:146
HUMAN_DETECTION_LANDMARKS_SMOOTH_THRESH
@ HUMAN_DETECTION_LANDMARKS_SMOOTH_THRESH
Landmarks smooth thresh.
Definition: NvsHumanDetectionHandle.h:75
HUMAN_DETECTION_FACE_FEATURE_2D
@ HUMAN_DETECTION_FACE_FEATURE_2D
Face landmarks detection.
Definition: NvsHumanDetectionHandle.h:131
NvsDetectionPosition3D
Definition: NvsHumanDetectionHandle.h:159
HUMAN_DETECTION_FEATURE_MULTI_THREAD
@ HUMAN_DETECTION_FEATURE_MULTI_THREAD
Multi thread detection.
Definition: NvsHumanDetectionHandle.h:35
HUMAN_DETECTION_FEATURE_FACE_LANDMARK
@ HUMAN_DETECTION_FEATURE_FACE_LANDMARK
Landmarks on human face.
Definition: NvsHumanDetectionHandle.h:29
HUMAN_DETECTION_MIN_RATIO
@ HUMAN_DETECTION_MIN_RATIO
Min face ratio.
Definition: NvsHumanDetectionHandle.h:78
HUMAN_DETECTION_LANDMARKS_SMOOTH
@ HUMAN_DETECTION_LANDMARKS_SMOOTH
Enable landmarks smooth.
Definition: NvsHumanDetectionHandle.h:92
NvsRect
Rectangle.
Definition: NvsCommonDef.h:276
HUMAN_DETECTION_FACE_COUNT
@ HUMAN_DETECTION_FACE_COUNT
Max face detection count.
Definition: NvsHumanDetectionHandle.h:59
HUMAN_DETECTION_FEATURE_AVATAR_EXPRESSION
@ HUMAN_DETECTION_FEATURE_AVATAR_EXPRESSION
Avatar Expressions of human face.
Definition: NvsHumanDetectionHandle.h:31
HUMAN_DETECTION_FEATURE_HAND_LANDMARK
@ HUMAN_DETECTION_FEATURE_HAND_LANDMARK
Hand landmarks.
Definition: NvsHumanDetectionHandle.h:39
HUMAN_DETECTION_FEATURE_HAND_ACTION
@ HUMAN_DETECTION_FEATURE_HAND_ACTION
Hand actions.
Definition: NvsHumanDetectionHandle.h:40
NvsHumanFeature
Human feature detected, which holds features for each person.
Definition: NvsHumanDetectionHandle.h:276
HUMAN_DETECTION_FEATURE_FACE_ACTION
@ HUMAN_DETECTION_FEATURE_FACE_ACTION
Actions of human face.
Definition: NvsHumanDetectionHandle.h:30
HUMAN_DETECTION_FACE_ACTION_LIPS_PART
@ HUMAN_DETECTION_FACE_ACTION_LIPS_PART
Lips part.
Definition: NvsHumanDetectionHandle.h:139
HUMAN_DETECTION_FACE_ACTION_BROW_JUMP
@ HUMAN_DETECTION_FACE_ACTION_BROW_JUMP
Raise brow.
Definition: NvsHumanDetectionHandle.h:142
HUMAN_DETECTION_FEATURE_SEGMENTATION_SKY
@ HUMAN_DETECTION_FEATURE_SEGMENTATION_SKY
Sky segmentation.
Definition: NvsHumanDetectionHandle.h:44
HUMAN_DETECTION_FEATURE_EYEBALL_LANDMARK
@ HUMAN_DETECTION_FEATURE_EYEBALL_LANDMARK
Eyeball landmarks.
Definition: NvsHumanDetectionHandle.h:42
NvsHumanDetectionFaceFeatureType
NvsHumanDetectionFaceFeatureType
Definition: NvsHumanDetectionHandle.h:130
HUMAN_DETECTION_RESET_TRACKING
@ HUMAN_DETECTION_RESET_TRACKING
Reset tracking.
Definition: NvsHumanDetectionHandle.h:96
HUMAN_DETECTION_FEATURE_SEGMENTATION_BACKGROUND
@ HUMAN_DETECTION_FEATURE_SEGMENTATION_BACKGROUND
Background segmentation.
Definition: NvsHumanDetectionHandle.h:38
HUMAN_DETECTION_FACE_ACTION_PITCH
@ HUMAN_DETECTION_FACE_ACTION_PITCH
Nod.
Definition: NvsHumanDetectionHandle.h:141
HUMAN_DETECTION_FACE_ACTION_EYE_BLINK
@ HUMAN_DETECTION_FACE_ACTION_EYE_BLINK
Eye blink.
Definition: NvsHumanDetectionHandle.h:138
NvsFaceData2D
2D face data.
Definition: NvsHumanDetectionHandle.h:190
NvsFaceFeature
Face feature detected.
Definition: NvsHumanDetectionHandle.h:258
HUMAN_DETECTION_AVATAR_EXPRESSION
@ HUMAN_DETECTION_AVATAR_EXPRESSION
Avatar expression.
Definition: NvsHumanDetectionHandle.h:147
NvsHumanDetectionFloatParam
NvsHumanDetectionFloatParam
Definition: NvsHumanDetectionHandle.h:73
HUMAN_DETECTION_FEATURE_SEGMENTATION_HALF_BODY
@ HUMAN_DETECTION_FEATURE_SEGMENTATION_HALF_BODY
Half body segmentation.
Definition: NvsHumanDetectionHandle.h:45
HUMAN_DETECTION_FEATURE_EXTRA
@ HUMAN_DETECTION_FEATURE_EXTRA
Extra features of human face.
Definition: NvsHumanDetectionHandle.h:37
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_NV12
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_NV12
YUV 4:2:0 12bpp (2 channels, one channel is a continuous luminance channel, and the other channel is ...
Definition: NvsHumanDetectionHandle.h:111
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_YUV420
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_YUV420
YUV 4:2:0 12bpp (3 channels, one luminance channel, the other two are U component and V component cha...
Definition: NvsHumanDetectionHandle.h:112
NvsHumanDetectionHandle
Definition: NvsHumanDetectionHandle.h:312
NvsHumanDetectionFaceAction
NvsHumanDetectionFaceAction
Definition: NvsHumanDetectionHandle.h:137
HUMAN_DETECTION_FEATURE_SINGLE_THREAD
@ HUMAN_DETECTION_FEATURE_SINGLE_THREAD
Single thread detection.
Definition: NvsHumanDetectionHandle.h:36
HUMAN_DETECTION_PE_RIGID_SMOOTH
@ HUMAN_DETECTION_PE_RIGID_SMOOTH
Enable rigid transform smooth.
Definition: NvsHumanDetectionHandle.h:93
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_RGBA8
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_RGBA8
RGBA 32bpp.
Definition: NvsHumanDetectionHandle.h:113
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_NV21
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_NV21
YUV 4:2:0 12bpp (2 channels, one channel is a continuous luminance channel, and the other channel is ...
Definition: NvsHumanDetectionHandle.h:110
NvsDetectionPosition2D
Definition: NvsHumanDetectionHandle.h:152
HUMAN_DETECTION_PE_RIGID_SMOOTH_THRESH
@ HUMAN_DETECTION_PE_RIGID_SMOOTH_THRESH
Rigid transform smooth thresh.
Definition: NvsHumanDetectionHandle.h:76
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_BGR8
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_BGR8
BGR 24bpp.
Definition: NvsHumanDetectionHandle.h:116
HUMAN_DETECTION_FEATURE_IMAGE_MODE
@ HUMAN_DETECTION_FEATURE_IMAGE_MODE
Image detection mode.
Definition: NvsHumanDetectionHandle.h:33
HUMAN_DETECTION_SNAP_MOUTH_THRESH
@ HUMAN_DETECTION_SNAP_MOUTH_THRESH
Snap mouth thresh.
Definition: NvsHumanDetectionHandle.h:77
NvsDetectionConfig
Human detection configuration. For valid detection configuration flags, please refer to [HUMAN_DETECT...
Definition: NvsHumanDetectionHandle.h:175
HUMAN_DETECTION_FACE_ACTION_FULL
@ HUMAN_DETECTION_FACE_ACTION_FULL
All face actions.
Definition: NvsHumanDetectionHandle.h:143
NVS_EXPORT
#define NVS_EXPORT
Definition: NvsCommonDef.h:20
HUMAN_DETECTION_FEATURE_MULTI_DETECT
@ HUMAN_DETECTION_FEATURE_MULTI_DETECT
Multiple detect, say multiple rois detection.
Definition: NvsHumanDetectionHandle.h:43
NvHumanDetectionBooleanParam
NvHumanDetectionBooleanParam
Definition: NvsHumanDetectionHandle.h:91
HUMAN_DETECTION_FEATURE_HAND_BONE
@ HUMAN_DETECTION_FEATURE_HAND_BONE
Hand bones.
Definition: NvsHumanDetectionHandle.h:41
NvsDetectionPosition2D::y
CGFloat y
Definition: NvsHumanDetectionHandle.h:154
NvsCommonDef.h
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_RGB8
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_RGB8
RGB 24bpp.
Definition: NvsHumanDetectionHandle.h:115
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_BGRA8
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_BGRA8
BGRA 32bpp.
Definition: NvsHumanDetectionHandle.h:114
NvsFaceData3D
3D face data.
Definition: NvsHumanDetectionHandle.h:243
HUMAN_DETECTION_FEATURE_VIDEO_MODE
@ HUMAN_DETECTION_FEATURE_VIDEO_MODE
Video detection mode.
Definition: NvsHumanDetectionHandle.h:32
HUMAN_DETECTION_FACE_FEATURE_3D
@ HUMAN_DETECTION_FACE_FEATURE_3D
Face pose estimation.
Definition: NvsHumanDetectionHandle.h:132
NvsHumanDetectionVideoFramePixelFormat
NvsHumanDetectionVideoFramePixelFormat
Definition: NvsHumanDetectionHandle.h:109
HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_GRAY8
@ HUMAN_DETECTION_VIDEO_FRAME_PIXEL_FORMAT_GRAY8
GRAY 8bpp.
Definition: NvsHumanDetectionHandle.h:117
NvsHumanDetectionFeature
NvsHumanDetectionFeature
Definition: NvsHumanDetectionHandle.h:28
HUMAN_DETECTION_CAMERA_FOVY
@ HUMAN_DETECTION_CAMERA_FOVY
Camera fovy.
Definition: NvsHumanDetectionHandle.h:74
HumanDetectionIntergerParam
HumanDetectionIntergerParam
Definition: NvsHumanDetectionHandle.h:58
HUMAN_DETECTION_FREQUENCY
@ HUMAN_DETECTION_FREQUENCY
Detection frequency.
Definition: NvsHumanDetectionHandle.h:60
HUMAN_DETECTION_FACE_FEATURE_FULL
@ HUMAN_DETECTION_FACE_FEATURE_FULL
All face feature.
Definition: NvsHumanDetectionHandle.h:133
HUMAN_DETECTION_PE_RIGID_TRANSFORM
@ HUMAN_DETECTION_PE_RIGID_TRANSFORM
Do rigid transform only.
Definition: NvsHumanDetectionHandle.h:94
HUMAN_DETECTION_SNAP_MOUTH
@ HUMAN_DETECTION_SNAP_MOUTH
Snap mouth.
Definition: NvsHumanDetectionHandle.h:95
NvsDetectionPosition2D::x
CGFloat x
Definition: NvsHumanDetectionHandle.h:153