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.

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.

ARKVideoPlayerConfiguration

A video player configuration object. This object is used when creating the ARKVideoPlayer in order to specify what configuration options to use.

ARKVideoPlayer

A VideoPlayer allows you to play back a video file or a HTTP/RTSP video stream.

Note: The video player supports video streams only; it does not support audio streams.

Create an instance of a video player and register the callback functions to get the decoded video frames. Next, start playback by setting the Paused property to false. You can pause playback at any time by setting the Paused property to true. You can delete the video player to restart the stream.

The video player enforces the video clock if the URL points to a video file, but it does not enforce the video clock if the URL points to an HTTP or RTSP video stream. In this case, the video player decodes video frames as fast as they arrive from the camera. It does this to minimize the video playback latency.

See Also