SAFR Windows SDK
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Properties Events
RealNetworks.ArgusKit.TrackedFace Class Reference

Represents a face that is tracked by the object tracker. More...

Inheritance diagram for RealNetworks.ArgusKit.TrackedFace:
RealNetworks.ArgusKit.TrackedObject

Public Member Functions

override TrackedObject Copy ()
 Returns a copy of the receiver. More...
 
- Public Member Functions inherited from RealNetworks.ArgusKit.TrackedObject
override bool Equals (object obj)
 Returns true if two tracked objects are the same. Two tracked objects are considered the same if they share the same local id. More...
 
bool Equals (TrackedObject other)
 Returns true if two tracked objects are the same. Two tracked objects are considered the same if they share the same local id. More...
 
override int GetHashCode ()
 Returns the receiver's hash code. More...
 
override string ToString ()
 Returns a debug description. More...
 
void UpdateLiveness (uint evaluationWindowSize, uint fakeEvaluationWindowSize, float minConfirmationRatio, float livenessThreshold, float livenessFakeThreshold)
 

Public Attributes

Int64? LinkedTrackedPersonLocalId = null
 
- Public Attributes inherited from RealNetworks.ArgusKit.TrackedObject
bool IsSpeculated => MaxSimilarityScore.HasValue && MaxSimilarityScore.Value < 1
 MaxSimilarityScore is less than 1. More...
 

Additional Inherited Members

- Public Types inherited from RealNetworks.ArgusKit.TrackedObject
enum  AttributeSet {
  AttributeSet.Empty = 0, AttributeSet.Unrecognized = 1, AttributeSet.Recognized = 2, AttributeSet.Identified = 4,
  AttributeSet.New = 8, AttributeSet.Lingering = 16, AttributeSet.Speculated = 32, AttributeSet.Stranger = 64,
  AttributeSet.Concern = 128, AttributeSet.Threat = 256
}
 
- Static Public Member Functions inherited from RealNetworks.ArgusKit.TrackedObject
static bool operator== (TrackedObject lhs, TrackedObject rhs)
 Returns true if two tracked objects are the same. Two tracked objects are considered the same if they share the same local id. More...
 
static bool operator!= (TrackedObject lhs, TrackedObject rhs)
 Returns true if the two tracked objects are different. More...
 
- Properties inherited from RealNetworks.ArgusKit.TrackedObject
DetectedObjectType ObjectType [get]
 Type of detected object this is tracking. More...
 
Int64 LocalId [get]
 The local identifier for this face. This identifier is assigned by the face detector and remains valid throughout the lifetime of the face object. The local identifier is unique with respect to the local machine. More...
 
Person Person [get, set]
 Returns the person associated with this tracked object; null is returned if the object is not a person. More...
 
bool IsNew [get, set]
 Returns true if this is a face that the recognizer has never seen before and thus it just created a person ID for it. More...
 
DetectedFace Face [get]
 Returns face representation if detected object is a face. Will be deprecated soon. Use DetectedObject instead. More...
 
IDetectedObject DetectedObject [get, set]
 Returns the most recently detected object. More...
 
bool Occluded [get, set]
 True if the face is partially covered by some other tracked face. More...
 
bool Isolated [get, set]
 True if the face does not intersect any other tracked face. More...
 
TrackedObjectState State = TrackedObjectState.Detected [get, set]
 Returns the current state of the tracked face. More...
 
bool? AllowRecognizerToLearn [get, set]
 
PredictedFace MostRecentPredictedFace [get, set]
 The face that was predicted for the current frame. Nil means that no prediction was possible. More...
 
Timestamp TimeOfInitialDetection [get]
 The time when this face was detected for the first time. More...
 
int RecognitionCount = 0 [get, set]
 The number of recognition attempts. More...
 
bool IsLingering [get]
 Returns true if the face is currently in limbo. Meaning that the face has not been detected in the most recent frames although I think it should still be visible to the camera. It's just that the face is currently not detectable because e.g. the person is looking down, etc, pp. We continue tracking the face for a couple frames before we drop it for good. The face will move out of the in limbo state if we are again able to detect it after a few frames. More...
 
int LingeringCount = 0 [get, set]
 The number of frames for which this face has been lingering. More...
 
bool IsZombie [get]
 Returns true if the tracked face is a zombie. A zombie is a tracked face that has disappeared from the video / screen but for which there is an recognition attempt outstanding. The zombie will be kept around until the recognition attempt has completed. More...
 
RecognitionAttemptActiveRecognitionAttempt [get, set]
 Returns information about the recognition attempt that is currently executing. More...
 
RecognitionAttemptMostRecentRecognitionAttempt [get, set]
 Returns the outcome of the most recent recognition attempt. Nil is returned if no attempt to recognize the face has been made yet. More...
 
RecognitionCandidateMostRecentPersistedCandidate [get, set]
 The most recently persisted face. More...
 
RecognitionAttemptMostRecentPersistenceAttempt [get, set]
 The most recent face persistence attempt. More...
 
double IdentityRecognitionThresholdBoost [get, set]
 The amount to boost the identityRecognitionThreshold (property in the face recognizer configuration) by for this specific tracked object when a recognition attempt is made. More...
 
bool CompletedSuccessfulRecognitionAttempt [get, set]
 This is true if we completed at least one successful recognition attempt. The recognition attempt doesn't have to return any results it just needs to be successful, which means no error response. This can be used to determine if a successful recognition attempt was made for the tracked object at any time and allows the tracked object to be treated differently if no successful recognitions attempts were made. Sometimes a tracked object may never make any recognition attempts because the object doesn't meet various requirements as defined in the object tracker configuration. As an example this can be used to differentiate between unknown faces (no successful recognitions) and strangers (at least one successful recognition, but not recognized). More...
 
bool CompletedSuccessfulIdentificationAttempt [get, set]
 This is true if we completed at least one successful identification attempt. The difference between identification and recognition is the criteria is usually more strict and requires a better image for the tracked object. We may attempt several recognition attempts before an identification attempt is made unless the initial image is good. Sometimes we may never do an identification attempt if the image isn't of good enough quality. This can be used to determine if the tracked object ever made an identification attempt, which typically means we got a good quality image. As an example, this can be to classify an object into a different class based on if an identification attempt was attempted versus just a recognition attempt. More...
 
Person PersonPendingIdentityVerification = null [get, set]
 When combining the person identities from tracked person objects and tracked faces there are some cases where we need to verify the person outside of recognition. For example, if we have a tracked face and tracked person that were matched up and then we lose the tracked face for a while (the person turns around) and then it comes back we don't want to assume it is the correct face. We run a verification against the previous person since it is possible recognitions fail if the person is different and not known by the system. This is valid while we are pending the verification. More...
 
RecognitionAttemptActiveIdentityVerificationAttempt = null [get, set]
 This is valid during the verification attempt. In the future we will do more verification instead of recognition when we are tracking known identities because it is faster than doing a full recognition each time. We would only do recognitions if we need to reconfirm the full identity, whereas during tracking we just need a more lightweight verification check to make sure we are tracking the same person. In order to switch over to this we need server support to return many of the same attributes that are returned in the recognition so this is pushed back for now. More...
 
bool IdentityVerificationComplete = false [get, set]
 This is true if identity verification has completed on this tracked object. More...
 
int ConsecutiveFailedIdentityVerifications = 0 [get, set]
 The number of consecutive failed identity verifications. Once we go over a minimum threshold we no longer attempt to verify the identity and assume it was wrong. More...
 
bool? ReceivedPositiveFaceConfirmation = null [get, set]
 
double? MaxSimilarityScore = null [get, set]
 Max match percentage during lifetime of the tracked object. Range is from zero to above one. More...
 
AttributeSet Attributes [get]
 Returns the attributes. More...
 
bool IsStranger [get]
 Returns true if the receiver is considered to be a stranger. More...
 
bool IsRecognizedOnDetection [get]
 Returns true if no further recognition needed. More...
 
bool IsTrackedPerson [get]
 Returns true for Person object. More...
 
bool IsTrackedFace [get]
 Returns true for Face object. More...
 
bool?? LivenessConfirmed [get]
 
double?? LivenessConfidence [get]
 

Detailed Description

Represents a face that is tracked by the object tracker.

Member Function Documentation

◆ Copy()

override TrackedObject RealNetworks.ArgusKit.TrackedFace.Copy ( )
virtual

Returns a copy of the receiver.

Returns
the copy

Implements RealNetworks.ArgusKit.TrackedObject.

Member Data Documentation

◆ LinkedTrackedPersonLocalId

Int64? RealNetworks.ArgusKit.TrackedFace.LinkedTrackedPersonLocalId = null

The local identifier for the linked tracked person object that matches this tracked face. This will only be valid if object detection is enabled, the type of object is a person and it intersects according to various rules this tracked face.