Viinex contains built-in basic video detectors for such topics as:
- SceneChange (camera shift)
These video analytic detectors can be used when acquiring raw-video from USB-cameras, technical vision cameras or in the case of using Viinex directly on board the camera and acquiring raw-video from the sensor via camera driver.
Also there is a built-in subscription mechanism which allows obtaining events from video IP-cameras. Viinex supports events described in ONVIF Imaging Service specification. The list of the detectors is exactly the same and can be increased by request. In addition to the above-listed detectors, there is a
- Digital Input status change events from IP-camera.
This feature allows you do to not decompress the video stream and significantly reduce the cost of hardware resources, for example, by running more cameras on one PC.
The WebSocket interface implemented in Viinex lets the client application to subscribe for events produced by IP-cameras attached to a Viinex or the events from built-in video analytics. Using the WebSocket interface, the client application may acquire that events and use them to extend its logic for processing, say, motion detector alarms, or digital input status change events.
The facial detection functionality is available in Viinex. The implementation is divided into two modules in Viinex: there is an "engine" which processes the still images, and a "video analytics module", which presents the sequence of frames to the engine until a result is produced.
Both components are available from the HTTP API. One can try the engine on an arbitrary image using the CURL utility to issue the HTTP POST requests to Viinex (an image goes in the HTTP request body, and detection result is returned as a JSON structure in the HTTP response body). Alternatively, one can associate the face detection video analytics module with a camera, in order to detect the faces on video upon request, -- in this case Viinex takes care about the media data, while the client software just gets the face detection results -- the geometry of faces and the timestamp of a frame where the faces were found. When the faces are detected on video, the analytics module stores corresponding frames in a buffer in memory, so that the client software can get them later, as snapshots. As always, the whole frame is available as a snapshot as well as the region(s) of interest containing the face(s) just detected.
The video source attached to the face detection video analytics module could be an IP camera or an RTSP video source, as well as USB camera that produces uncompressed video. In fact, one video analytics module can even be linked with multiple cameras (possibly of different kind); this is to perform the facial detection on the same scene viewing it at different angles, -- with Viinex, this can be done in a single HTTP API request.
License plate recognition
A license plate recognition engine is built into Viinex and, as other features, is available via HTTP RPC. To perform the license plate number recognition, the client's code sends an image as an HTTP request and gets the recognition result in the body of the HTTP response. Such scheme requires that the client software knows when the car license plate is within the camera's field of view. This is usually the case when the client software is intended for the automation of checkpoints.
An important feature of the LPR engine built into Viinex is that it is not bound to a single camera: the client software may use one instance of the engine to do license plate number recognition from many cameras.
LPR engine offered with Viinex has no adjustments required for a specific camera position. It makes the deployment and usage of this LPR engine very simple. Everything that has to be done to perform a license plate number recognition on a checkpoint is to acquire a JPEG image and feed it as is to Viinex LPR engine, - without any additional parameters.