Video Sentiveillance SDK

Persons or vehicles recognition and tracking for video surveillance systems

SentiVeillance SDK is designed for developing software that performs biometric face identification, detects moving pedestrians or vehicles or other objects and performs automatic license plate recognition using live video streams from digital surveillance cameras.

The SDK is used for passive identification – when passers-by do not make any efforts to be recognized. List of possible uses includes law enforcement, security, attendance control, visitor counting, traffic monitoring and other commercial applications.

Features and Capabilities
Real time pedestrians and vehicles tracking and classification.
Biometric facial identification and matching against watchlist database.
Automated license plate recognition (ALPR) for moving vehicles.
Color, size and movement vector estimation for vehicles and other objects.
Gender classification, age evaluation, facial expression and attributes detection.
Automatic operation logs and reports events, adds new faces from video stream to watchlist.
Large surveillance systems support with multiple cameras.
Ready-to-use server for integration into video management systems (VMS) optionally available.
Reasonable prices, flexible licensing and free customer support.
The SentiVeillance 8.0 technology has these specific capabilities:
Real time performance. SentiVeillance technology performs face recognition, pedestrian or vehicle classification and tracking in real time. The technology is designed to run on multi-core processors to achieve fast performance.
Three modalities for surveillance systems. Depending on the surveillance system design, one of these modalities may be used, combining the corresponding data for tracked persons or vehicles:
  • Biometric face recognition – based on deep neural networks and provides these capabilities for surveillance systems:
    • Multiple face detection, features extraction and template matching with the internal database in real time.
    • Facial identification reliability enables using large watchlist databases.
    • Face tracking is performed in all successive frames from the video source until they disappear from camera field of view. The face tracking algorithm uses dynamic face and motion prediction models that make it robust to occlusions like other objects or even other faces. The algorithm is able to continue tracking a face even when it re-appears after being fully covered by occlusions (like walls, furniture, posters etc). Also, if the pedestrian tracking algorithm tracks a person without their face visible, and later their face is recognized, the whole tracking history will be associated with the person's identity, as well as the further non-face tracking.
    • Gender classification (optional) for each person in the frame.
    • Age determination (optional) for each person in the frame.
    • Face mask, smile, open-mouth, closed-eyes, glasses, dark-glasses, beard and mustache attributes detection (configurable).
  • Vehicle or human detection, classification and movement tracking – performs object detection of moving and static objects in the scene, their classification and tracking until they disappear. These features are available for surveillance systems:
    • Object classification. SentiVeillance allows to perform object classification, locations and tracking based on its type. Over 20 classes are recognized: pedestrian, bus, truck, sedan, SUV, etc.
    • Color estimation. The algorithm returns most likely color estimation for cars and pedestrians. The estimated color values are: red, orange, yellow, green, blue, silver, white, black, brown, grey.
    • Make and model estimation for vehicles. A neural networks-based performs the estimation of the tracked vehicle's make (brand) and model.
    • Clothing analysis. When a pedestrian is detected, their appearance can be evaluated for the presence of different clothes types. Over 20 clothes and headwear classes are recognized, like shirts, trousers, skirts or coats, as well as certain national clothings. Also, this algorithm can estimate if the person is partially or totally naked.
    • Movement direction estimation. The algorithm estimates vehicle or pedestrian movement direction as angle relative to camera orientation.
    • Tolerance to object visibility. The detection algorithm works with partially visible objects and from great distance.
    • Combination with facial recognition and ALPR. If a pedestrian was tracked without their face visible, and later the person is recognized by the facial recognition algorithm, the whole tracking history will be associated with the person's identity, as well as the further non-face tracking. Vehicle tracking can be updated in the similar way with the help of the ALPR algorithm.
  • Automated license plate recognition (ALPR) – once a vehicle has been detected, SentiVeillance ALPR algorithm detects and reads the license plate:
    • Traffic data processing. SentiVeillance algorithms can simultaneously read vehicle license plates from multiple moving vehicles.
    • Tolerance to camera position. Depending on camera resolution, the ALPR algorithm can read license plates from longer distance and higher angle.
    • Preventing cheating with replaced license plates. Integrators can use vehicle recognition and ALPR modalities together for making software logic which checks if recognized license plate corresponds other registration data, like vehicle color or type, and not being spoofed or moved from another vehicle.
Automatic operation. A system based on SentiVeillance 8.0 SDK is able to log on the fly all events. It can be configured to automatically report events like match with a watch list, or perform automatic enroll from video.
Large surveillance systems support. SentiVeillance 8.0 SDK allows to integrate its technology into surveillance systems with multiple cameras . A common PC with a GPU can process multiple video streams simultaneously.
Thermal imaging. Besides optical and near-infrared cameras, SentiVeillance SDK includes a specific programming sample for processing video streams from thermal imaging cameras.
Video files processing. SentiVeillance also accepts data from video files. The video files can be processed in real time as coming from a virtual camera or can be processed at maximum speed depending on hardware resources available.
SDK Contents

SentiVeillance 8.0 SDK is based on the SentiVeillance 8.0 technology that is specially designed for integrating biometric facial recognition into video surveillance systems. Face templates created with SentiVeillance SDK are fully compatible with VeriLook SDK and MegaMatcher SDK multi-biometric technology.

SentiVeillance 8.0 SDK includes SentiVeillance component, which can process multiple video streams on the same PC or server. The SentiVeillance component supports three modalities: biometric facial recognition, vehicle/human classification and automatic license plate recognition. Also the SDK includes Device Manager library for Microsoft Windows and Linux that allows to perform simultaneous capture from multiple cameras.

Components Microsoft Windows
(64 bit only)
Linux
(64 bit only)
SentiVeillance component's Face modality license for 1 video stream
SentiVeillance component's VH modality license for 1 video stream
SentiVeillance component's ALPR modality license for 1 video stream
Device Manager library + +
Programming samples
C++ + +
C# +  
Visual Basic .NET +  
Programming tutorials
C + +
C# +  
Java + +
Documentation
SentiVeillance 8.0 SDK documentation +

Device Manager Library

Device Manager library works under Microsoft Windows and Linux and provides functionality for simultaneous capture from multiple cameras. The library supports a range of high-resolution digital surveillance cameras and other cameras that provide DirectShow interface for Windows platform, or GStreamer interface for Linux platform.

The list of supported cameras is available below in the system requirements.

The Device Manager includes a plug-in framework that allows integrators to write plug-ins to support their cameras using the provided API. The SentiVeillance SDK documentation contains the detailed information and samples.

A video file can be also used as a data source for SentiVeillance. The input from the file is processed as coming from a virtual camera, thus the video is processed in real-time.

Face Modality

The Face modality from the SentiVeillance component performs real-time detection, biometric identification and tracking of all detected faces:

Facial identification reliability enables using large watchlist databases (i.e. a watch-list of suspects or a list of company employees).
New faces may be enrolled to the database either automatically from video streams or manually as templates, which were created with VeriLook SDK.
Persons wearing face masks or respirators can be recognized without separate enrollment.

SentiVeillance algorithms allows to perform these advanced actions with the detected faces:

Face tracking, which is performed in all successive frames from the video source until they disappear from camera field of view. The face tracking algorithm uses dynamic face and motion prediction models that make it robust to occlusions like other objects or even other faces. The algorithm is able to continue tracking a face even when it re-appears after being fully covered by occlusions (like walls, furniture, posters etc).
Gender classification (optional) for each person in the frame.
Age determination (optional) for each person in the frame.
Face mask, smile, open-mouth, closed-eyes, glasses, dark-glasses, beard and mustache attributes detection (configurable).

VH modality can be used together with the Face modality to perform further tracking of the identified persons even when their faces no longer visible, as well as associating previous tracking history with the recognized person. Also, the VH modality can be used to obtain additional data about person's clothes.

Programming samples from the SDK show how to use this modality.

A license for using the SentiVeillance Face modality on one video stream is included with SentiVeillance 8.0 SDK. Additional licenses or upgrade for the number of processed video streams in the existing licenses can be purchased any time by SentiVeillance 8.0 SDK customers.

Basic Usage Recommendations and Constraints

Face recognition accuracy of SentiVeillance heavily depends on the quality of a face image in a frame. There are some basic recommendations and constraints when using face recognition applications based on SentiVeillance SDK.

Image quality during enrollment is important, as it influences the quality of the face template. Enrollment from photo or video stream is possible.
  • Several images during enrollment are recommended for better facial template quality which results in improvement of recognition accuracy and reliability.
  • Additional enrollments may be needed when facial hair style changes, especially when beard or mustache is grown or shaved off.
32 pixels is the recommended minimal distance between eyes for a face on image or video stream to perform face template extraction reliably. 64 pixels or more recommended for better face recognition results. Note that this distance should be native, not achieved by resizing an image.
1 MegaPixel or better camera resolution is recommended for face enrollment and recognition. Make sure that native resolution is provided by a camera, as some cameras or webcams may scale up native images to higher resolution without image quality improvement.
Face posture tolerance:
  • head roll (tilt) – ±15 degrees;
  • head pitch (nod) – ±15 degrees from frontal position.
    • The head pitch tolerance can be increased up to ±25 degrees if several views of the same face that covered different pitch angles were used during enrollment.
  • head yaw (bobble) – ±90 degrees from frontal position (default value).
    • Several views of the same face can be enrolled to the database to cover the whole ±90 degrees yaw range from frontal position.

Technical Specification

Below are provided specifications for SentiVeillance facial recognition modality.

4 % of the frame's larger side (at least 32 pixels) is the minimal recommended distance between eyes for a face on video stream or image to perform reliable face tracking and template extraction. The speeds of face tracking, template extraction and matching against a watchlist database are dependent on actual size of a face in a frame, not on the size of the whole frame.

The performance specifications are provided for Intel Core i7-4771 processor, running at 3.5 GHz clock rate, and 1920 x 1080 pixels videos.

SentiVeillance 8.0 biometric face recognition algorithm technical specifications
Frame rate when tracking up to 5 faces More than 25 frames per second
Face watch-list database matching time (1) Less than 0.5 second
Single face record size in a template (kilobytes) 0.5 or 5.0 (configurable)
Maximum face watch-list database size Limited by amount of free RAM

(1) up to 20,000 face records in the database; larger database yelds slower response time. Note that each person may be represented by several records in the database with different appearance variations, different capture angles etc.

VH (Vehicle-Human) Modality

The Vehicle-Human (VH) modality from the SentiVeillance component performs real-time vehicle or human detection, classification and movement tracking. SentiVeillance algorithms allows to perform these actions with the detected objects:

Object classification. SentiVeillance allows to perform object classification, locations and tracking based on its type. Besides general classification between pedestrians, cars, busses, bikes and trucks, SentiVeillance 8.0 SDK performs advanced vehicle type classification with over 20 classes available, ranging from common (sedan, SUV, bus, truck etc.) to country-specific or historic (tuk-tuk, carriage etc)
Color estimation. The algorithm returns most likely color estimation for cars and pedestrians. The estimated color values are: red, orange, yellow, green, blue, silver, white, black, brown, grey.
Vehicle make and model estimation. SentiVeillance 8.0 SDK includes a neural networks-based estimation of the tracked vehicle's make (brand) and model. Besides general usage, this data can be combined with the recognized license plate and checked against the data in the vehicles registry.
Clothing analysis. When a pedestrian is detected, their appearance can be evaluated for the presence of different clothes or headwear types. Over 20 clothes and headwear classes are recognized, ranging from common (shirts, trousers, skirts, coats etc.) to national (i.e. sari, niqab, kimono etc.). Also, this algorithm can estimate if the person is partially or totally naked.
Movement direction estimation. The algorithm estimates vehicle or pedestrian movement direction as angle relative to camera orientation.
Tolerance to object visibility. The detection algorithm works with partially visible objects and from great distance.

In addition, data about the detected objects can be used in combination with other SentiVeillance modalities:

Face modality can be used together with the VH modality to perform unknown persons' identification.
ALPR modality can be used together with the VH modality to perform vehicle identification by its license plate.

Programming samples from the SDK show how to use this modality.

A license for using the SentiVeillance VH modality on one video stream is included with SentiVeillance 8.0 SDK. Additional licenses or upgrade for the number of processed video streams in the existing licenses can be purchased any time by SentiVeillance 8.0 SDK customers.

ALPR Modality

The ALPR modality from the SentiVeillance component performs real-time vehicle license plate (number plate) detection and recognition. The deep neural networks based algorithms feature:

Reliable detection. License plates can be separated even in complex images, which contain objects like signboards or traffic signs. See the reliability tests below.
Traffic data processing. SentiVeillance algorithms can simultaneously read vehicle license plates from multiple moving vehicles in road traffic.
Tolerance to camera position. Depending on camera resolution, the ALPR algorithm can read license plates from longer distance and higher angle.

VH modality can be used together with the ALPR modality, especially in these cases:

Vehicle data detection. In certain scenarios a vehicle type (i.e. truck or bus) has to be detected before running the license plate recognition algorithm. Also, vehicle movement direction, color or model can be needed as a filter before running license plate recognition.
Preventing cheating with replaced license plates. Integrators can make software logic which checks if recognized license plate corresponds other registration data, like vehicle color or make and model, and not being spoofed or moved from another vehicle.

Programming samples from the SDK show how to use this modality.

A license for using the SentiVeillance ALPR modality on one video stream is included with SentiVeillance 8.0 SDK. Additional licenses or upgrade for the number of processed video streams in the existing licenses can be purchased any time by SentiVeillance 8.0 SDK customers.

Reliability Tests

We present the testing results to show SentiVeillance 8.0 ALPR algorithm reliability on the car images taken in different conditions. Images from the platesmania.com website were used for testing. The images were grouped into three groups:

Less than 100 pixels – lower quality images with license plates' width less than 100 pixels . License plates are further away. Images feature partial occlusions and high capture angles.
100-200 pixels – medium quality images with license plates' width between 100 and 200 pixels. The images were captured at mid-range and the license plates are closer to camera.
More than 200 pixels – high quality images with license plates' width more than 200 pixels. Most of the images were captured in parking lot scenario, with only few motion blur or poor lighting occurences.

Two experiments were performed with images from each group:

  • Experiment 1 – the OCR was set to interpret 1 (one) as I (letter I) and 0 (zero) as O (letter O).
  • Experiment 2 – the OCR had no specific rules on letters and numbers interpreteation.
SentiVeillance 8.0 ALPR algorithm reliability testing
  < 100 pixels 100-200 pixels > 200 pixels
Image count 584 3351 4203
License plate width (pixels) less than 100 100-200 more than 200
Experiment 1 recognition ratio 88.7 % 96.1 % 99.1 %
Experiment 2 recognition ratio 77.9 % 86.6 % 91.2 %
System Requirements

The requirements below are provided for a single computational node (PC or server) used to run the SentiVeillance algorithms. Multiple nodes can be connected together via network to support larger surveillance systems.

PC or server with x86-64 (64-bit) compatible processor:
  • 3 GHz or better processor with 6 cores is recommended.
  • AVX2 support is highly recommended. Processors that do not support AVX2 will still run the SentiVeillance algorithms, but in a mode, which will not provide the specified performance. Most modern processors support this instruction set, but please check if a particular processor model supports it.
Graphical processing unit (GPU):
  • a GPU is required if a SentiVeillance component with any of the supported modalities is run to process more than 2 video streams simultaneously.
  • NVIDIA GeForce GTX 1080 GPU or better is recommended to process up to 10 video streams on a node.
  • Several GPUs can be used on the same machine to process larger number of video streams.
  • at least 6 GB of VRAM is recommended.
  • Compute Capability 3.5 or better should be supported by the GPU.
  • CUDA 11.2 toolkit or newer is required
  • cuDNN 7.5 library is required.
At least 8 GB of RAM.
Microsoft Windows specific:
  • Microsoft Windows 7 / 8 / 10 / Server 2008 / Server 2008 R2 / Server 2012, 64-bit.
  • Microsoft .NET framework 4.5 or newer (for .NET components usage).
  • Microsoft DirectX 9.0 or later.
  • One of following development environments for application development:
    • Microsoft Visual Studio 2012 or newer (for application development under C/C++, C#, Visual Basic .Net)
    • Java SE JDK 8 or newer
Linux specific:
  • Ubuntu 20.04 OS
  • glibc 2.17 or newer
  • GStreamer 1.10.x or newer with gst-vaapi plugins installed for hardware accelerated video decoding
  • libgudev-1.0 219 or newer
  • wxWidgets 3.0.0 or newer libs and dev packages (to build and run SDK samples and applications based on them)
  • Java SE JDK 8 or newer (for application development with Java)
Supported Cameras
High-resolution digital camera(s). Camera resolution may vary depending on the actual application. The recommended resolution is about 2 MegaPixel, as processing video from cameras with higher resolution will require more free RAM and more powerful processor to keep the acceptable frame rate.
These supported cameras are suitable for using with SentiVeillance 8.0 SDK:
  • Any IP camera, that supports RTSP (Real Time Streaming Protocol):
    • Only RTP over UDP is supported.
    • VLC framework can be optionally used for reading video streams.
    • H.264/MPEG-4 AVC or Motion JPEG should be used for encoding the video stream.
  • Any high-resolution digital camera that is accessible using:
    • DirectShow or Windows Media or Media Foundation interfaces for Microsoft Windows platform;
    • GStreamer interface for Linux platform.
  • Mobotix M16 Thermal camera is supported for systems that need thermal imaging. SentiVeillance SDK includes a specific programming sample for processing video streams from this camera.
  • Any other device support can be added by customers using the provided Device Manager Plug-in Framework. Please refer to the SentiVeillance 8.0 SDK documentation for the detailed information.
Technical Specifications

Below are provided specifications for SentiVeillance facial recognition modality.

4 % of the frame's larger side (at least 32 pixels) is the minimal recommended distance between eyes for a face on video stream or image to perform reliable face tracking and template extraction. The speeds of face tracking, template extraction and matching against a watchlist database are dependent on actual size of a face in a frame, not on the size of the whole frame.

SentiVeillance has certain tolerance to face posture that assures face detection and tracking:
  • head roll (tilt) – ±15 degrees from frontal position;
  • head pitch (nod) – ±15 degrees from frontal position;
  • head yaw (bobble) – ±45 degrees from frontal position.

The performance specifications are provided for Intel Core i7-4771 processor, running at 3.5 GHz clock rate, and 1920 x 1080 pixels videos.

SentiVeillance 8.0 biometric face recognition algorithm technical specifications
Frame rate when tracking up to 5 faces More than 25 frames per second
Face watch-list database matching time (1) Less than 0.5 second
Single face record size in a template (kilobytes) 0.5 or 5.0 (configurable)
Maximum face watch-list database size Limited by amount of free RAM

(1) up to 20,000 face records in the database; larger database yelds slower response time. Note that each person may be represented by several records in the database with different appearance variations, different capture angles etc.

Licensing Model

Product Development

An integrator should obtain a SentiVeillance 8.0 SDK (EUR 790) to develop a end-user product based on SentiVeillance technology. The SDK needs to be purchased just once and may be used for all projects and by all the developers within the integrator's company.
SentiVeillance 8.0 SDK includes:

Each license has a specified number of processed video streams.

Integrators can obtain additional licenses or upgrade the number of processed video streams in their existing licenses if processing videos from more cameras or on more computers required for the development process.

License Activation Options

The components are copy-protected. The following license activation options are available:

Serial numbers are used to activate licenses for particular SentiVeillance components on particular computer or device. The activation is done via the Internet or by email. After activation the network connection is not required for single computer license usage. Note: activation by serial number is not suitable for virtual environments.
Internet activation . A special license file is stored on a computer or a mobile/embedded device; the license file allows to run particular SentiVeillance components on that computer or device after checking the license over the Internet. Internet connection x should be available periodically for a short amount of time. A single computer license can be transferred to another computer or device by moving the license file there and waiting until the previous activation expires.
Volume License Manager. Licenses may be stored in a volume license manager dongle . The license activation may be performed without connection to the Internet and is suitable for virtual environments. Volume license manager is used on site by integrators or end users to manage licenses for SentiVeillance components in the following ways:
  • Activating single computer licenses – An installation license for a SentiVeillance component will be activated for use on a particular computer. The number of available licenses in the license manager will be decreased by the number of activated licenses.
  • Managing single computer licenses via a LAN or the Internet – The license manager allows the management of installation licenses for SentiVeillance components across multiple computers or mobile/embedded devices in a LAN or over the Internet. The number of managed licenses is limited by the number of licenses in the license manager. No license activation is required and the license quantity is not decreased. Once issued, the license is assigned to a specific computer or device on the network.
  • Using license manager as a dongle – A volume license manager containing at least one license for a SentiVeillance component may be used as a dongle, allowing the SentiVeillance component to run on the particular computer where the dongle is attached.

Additional SentiVeillance component licenses for the license manager may be purchased at any time.

Licenses Validity

All SDK and component licenses are perpetual and do not have expiration. There are no annual fee or any other fees except license purchasing fee. It is possible to move licenses from one computer or device to another. Neurotechnology provides a way to renew the license if the computer undergoes changes due to technical maintenance.

Send us an email on
[email protected]