Represents an object that was detected and possibly recognized by the object tracker. More...
Public Types | |
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 } |
Public Member Functions | |
abstract TrackedObject | Copy () |
Returns a copy of the receiver. More... | |
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) |
Static Public Member Functions | |
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... | |
Public Attributes | |
bool | IsSpeculated => MaxSimilarityScore.HasValue && MaxSimilarityScore.Value < 1 |
MaxSimilarityScore is less than 1. More... | |
Properties | |
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... | |
RecognitionAttempt? | ActiveRecognitionAttempt [get, set] |
Returns information about the recognition attempt that is currently executing. More... | |
RecognitionAttempt? | MostRecentRecognitionAttempt [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... | |
RecognitionCandidate? | MostRecentPersistedCandidate [get, set] |
The most recently persisted face. More... | |
RecognitionAttempt? | MostRecentPersistenceAttempt [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... | |
RecognitionAttempt? | ActiveIdentityVerificationAttempt = 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] |
Represents an object that was detected and possibly recognized by the object tracker.
|
strong |
|
pure virtual |
Returns a copy of the receiver.
Implemented in RealNetworks.ArgusKit.TrackedBadge, RealNetworks.ArgusKit.TrackedRecognizedObject, and RealNetworks.ArgusKit.TrackedFace.
override bool RealNetworks.ArgusKit.TrackedObject.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.
obj | the other tracked object |
bool RealNetworks.ArgusKit.TrackedObject.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.
other | the other tracked object |
override int RealNetworks.ArgusKit.TrackedObject.GetHashCode | ( | ) |
Returns the receiver's hash code.
|
static |
Returns true if the two tracked objects are different.
lhs | one tracked object |
rhs | the other tracked object |
|
static |
Returns true if two tracked objects are the same. Two tracked objects are considered the same if they share the same local id.
lhs | one tracked object |
rhs | other tracked object |
override string RealNetworks.ArgusKit.TrackedObject.ToString | ( | ) |
Returns a debug description.
void RealNetworks.ArgusKit.TrackedObject.UpdateLiveness | ( | uint | evaluationWindowSize, |
uint | fakeEvaluationWindowSize, | ||
float | minConfirmationRatio, | ||
float | livenessThreshold, | ||
float | livenessFakeThreshold | ||
) |
bool RealNetworks.ArgusKit.TrackedObject.IsSpeculated => MaxSimilarityScore.HasValue && MaxSimilarityScore.Value < 1 |
MaxSimilarityScore is less than 1.
|
getset |
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.
|
getset |
Returns information about the recognition attempt that is currently executing.
|
getset |
The object tracker has this same property at the global level.
This property in the tracked object allows a client to override the global behavior on a per object basis. For example, if allowRecognizerToLearn is false in the object tracker then no new faces can be learned however if this is set to true on a specific tracked object then just this one object can be learned.
This should only be set to something if an override is desired otherwise it will default to the global behavior
|
get |
Returns the attributes.
|
getset |
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.
|
getset |
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).
|
getset |
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.
|
getset |
Returns the most recently detected object.
|
get |
Returns face representation if detected object is a face. Will be deprecated soon. Use DetectedObject instead.
|
getset |
The amount to boost the identityRecognitionThreshold (property in the face recognizer configuration) by for this specific tracked object when a recognition attempt is made.
|
getset |
This is true if identity verification has completed on this tracked object.
|
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.
|
getset |
Returns true if this is a face that the recognizer has never seen before and thus it just created a person ID for it.
|
getset |
True if the face does not intersect any other tracked face.
|
get |
Returns true if no further recognition needed.
|
get |
Returns true if the receiver is considered to be a stranger.
|
get |
Returns true for Face object.
|
get |
Returns true for Person object.
|
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.
|
getset |
The number of frames for which this face has been lingering.
|
get |
|
get |
|
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.
|
getset |
Max match percentage during lifetime of the tracked object. Range is from zero to above one.
|
getset |
The most recently persisted face.
|
getset |
The most recent face persistence attempt.
|
getset |
The face that was predicted for the current frame. Nil means that no prediction was possible.
|
getset |
Returns the outcome of the most recent recognition attempt. Nil is returned if no attempt to recognize the face has been made yet.
|
get |
Type of detected object this is tracking.
|
getset |
True if the face is partially covered by some other tracked face.
|
getset |
Returns the person associated with this tracked object; null is returned if the object is not a person.
|
getset |
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.
|
getset |
|
getset |
The number of recognition attempts.
|
getset |
Returns the current state of the tracked face.
|
get |
The time when this face was detected for the first time.