Utility and Video Processing Objects

ARKObject

This is the base class of all ArgusKit objects. The C functions provided by ARKObject can be used with all ArgusKit object types. ARKObject provides APIs for memory management and to generate a debug description of an object which is printed to the console.

ARKEnvironment

The ARKEnvironment object encapsulates the cloud service to which the ArgusKit should connect to execute cloud-based functions like face recognition.

ARKObjectTrackerConfiguration

An object tracker configuration object stores the configuration information for an object tracker, the object detector, and the face recognizer. The configuration object is initialized with default values that allow the tracker to detect and recognize faces. You may also instantiate a configuration object based on one of a number of predefined configuration presets. A preset encapsulates all the configuration information needed to use the object tracker for a specific type of task. (e.g. to recognize faces or to recognize and learn faces)

After you have instantiated a configuration object you should set the cloud account, cloud environment, and the face recognizer directory name. This is the minimum required information that you need to provide to allow the object tracker to successfully detect and recognize faces.

If you want to detect faces only without recognizing them then you can turn off the face recognizer stage by setting the Recognizer.Enabled property to false.

ARKObjectTracker

The object tracker is the heart of ArgusKit. It receives a stream of video frames which it analyzes to find objects. It tracks found objects as long as they remain visible in the video stream. Object detection, recognition, and tracking are executed in real time. An object tracker is connected to a delegate which is defined by a set of C callback functions which you pass to the object tracker at creation time. The object tracker informs its delegate at every frame about the current state of the objects which it is tracking. The delegate can then use the tracked object APIs to learn what kind of objects the tracker found and what their current spatial location, size, and state is.

ARKTrackingResult

A tracking result object contains a snapshot of the current state of the object tracker. The object tracker delivers a new tracking result at every frame boundary. The tracking result contains a list of tracked objects which have appeared in the current frame, which have disappeared, and which have changed their current state in the current frame. For example, if a tracked object was detected in a previous frame and the object tracker is now able to recognize the tracked object as a specific person, then the tracked object is included in the list of updated tracked objects.

In the sample application this is wrapped by the Swift object TrackingResult. The CameraViewController.swift file contains a function called handleTrackingResult which illustrates how the tracking result can be used to get the bounding box and other properties for the face.

ARKTrackedObject

A tracked object represents a single and unique instance of an object that the object tracker has been able to detect in the inout video stream and which it is actively tracking. A tracked object has a type that indicates whether it is a badge or the face of a person. A tracking object also has an axis-aligned bounding box which tells you where in the input video frame the tracked object can be found and what its size is. This bounding box can be used with the original frame passed to the object tracker to extract the thumbnail image from the video frame.

ARKTrackedBadge

A tracked badge is a tracked object which encodes an integer number in the form of a special pattern.

ARKTrackedFace

A tracked face represents a human face. A tracked face may be linked to a person. If the object tracker is able to recognize the face as belonging to a specific person, then the tracked face provides a reference to the corresponding person object. The tracked face also contains other detected attributes about the face if they are enabled such as: center pose quality, yaw, roll, and pitch.

ARKPerson

A person object provides information about a person that has been registered with the ArgusKit face recognition service. Each person has a unique identifier. You may assign a name and a set of tags to a person with the help of a ARKPersonChange object and the ARKObjectTrackerApplyPersonChange() object tracker function.

ARKPersonChange

A person change object stores attributes that should be applied to the person record on file in the ArgusKit face recognition service. This object allows you to change a person's name, tags, age, or gender information.

ARKVideoFrame

A video frame object encapsulates a single decoded video frame which should be passed to an object tracker instance.

ARKEventReporterConfiguration

An event reporter configuration object. This is used when creating the ARKEventReporter to specify what configuration options to use.

ARKEventReporter

The event reporter object allows the application to enable or disable event reporting and configure it to the specific needs of the application. If the application wants to report events while processing a video stream then this object should be used. Events are things such as when a face is detected or recognized. Events also include any attributes that are enabled such as gender, age, sentiment, etc.

See Also