Skip to content

General Information#

VisionLabs LUNA CARS is a system designed for detection, tracking of objects, recognition of vehicle and LP attributes. The system consists of four subsystems:

  • CARS Analytics
  • CARS API
  • CARS Stream
  • ANPR Stream

LUNA CARS includes four components:

  • CARS API – subsystem for detection and recognition of vehicles and License Plates (LP) attributes on images in real-time.
  • CARS Stream – subsystem for detecting and tracking vehicles, LPs, pedestrians and animals in the video stream and determining the best frames.
  • ANPR Stream – subsystem for integrating ANPR cameras into CARS Analytics.
  • CARS Analytics – subsystem for collecting, storing and displaying the results of the CARS API and CARS Stream operation through a web interface.

VisionLabs LUNA CARS allows real-time:

  • detect vehicles, LP, pedestrians and animals;
  • recognize LP symbols;
  • determine the type of vehicle (category);
  • determine the make and model of the vehicle;
  • determine whether the vehicle belongs to the emergency services, public or special transport;
  • determine the color of the vehicle;
  • determine the country of registration of the vehicle according to the LP;
  • detect the presence of smoke and/or fire;
  • calculate vehicle speed;
  • count the number of vehicles;
  • provide access to the events of recognition and detection of the vehicle through the web interface;
  • manage video streams.

LUNA CARS Architecture#

The architecture of operation of LUNA CARS (Figure 1).

LUNA CARS scheme
Figure 1. LUNA CARS scheme

Table 1. LUNA CARS scheme description

Name Description
Source RTSP stream, video files or images containing areas with vehicles, LPs, pedestrians and animals
ANPR camera The source of the subtype ANPR camera, which contains images of the vehicles, LPs
Load balancer A service for distributing requests and responses between several running copies of the CARS API and an external analytics and information collection system. CARS API only support Nginx
CARS Stream Subsystem for detecting and tracking vehicles, LPs, pedestrians and animals in the video stream and determining the best frames
ANPR Stream Subsystem for integrating ANPR cameras into CARS Analytics
CARS API Subsystem for detection and recognition of vehicles and LPs attributes
CARS Analytics Subsystem for collecting, storing and displaying the results of the CARS API and CARS Stream operation through a web interface. CARS Analytics includes PostgreSQL database

LUNA CARS components interaction diagrams#

The diagram of LUNA CARS operation with video (Figure 2).

Sequence diagram for working with video
Figure 2. Sequence diagram for working with video

Table 2. Description of the sequence diagram for working with video

Step Description
(1) CARS Stream receives video stream or a video file from sources
(2) CARS Stream divides video files into frames, detects objects on each frame, forms a track and determines the best shot for each track
(3) CARS Analytics receives a message containing the best track frame from CARS Stream. The message is transmitted using the callback_manager.py function and includes the best frame containing the object (vehicle, LP, pedestrians or animals) and information about the location of objects (vehicle, LP, pedestrians or animals) on the frame
(4) CARS Analytics processes the received message, generates a notification for the user based on the received data and user settings in CARS Analytics
(5) The CARS Analytics sends a request to the CARS API via the load balancer to determine the attributes of the vehicle and LP
(6) The request is processed by the load balancer and sent to one of the CARS API instances that is less loaded
(7) CARS API processes the request with the best shot
(8) CARS API returns vehicle and LP attributes to CARS Analytics via load balancer
(9) The response is processed by the load balancer and sent to CARS Analytics
(10) CARS Analytics stores information about vehicles and license plates in the database
(11) CARS Analytics displays the generated notification for the user in the browser web interface

The diagram of LUNA CARS operation with ANPR camera video source (Figure 3).

Sequence diagram of work with video source ANPR camera
Figure 3. Sequence diagram of work with video source ANPR camera

Table 3. Description of the sequence diagram of work with video streams from ANPR camera

Step Description
(1) ANPR Stream receives the video stream from the source ANPR camera
(2) ANPR Stream splits the received video files into frames, detects objects on each frame and forms a track
(3) CARS Analytics receives a message containing the best track frame from ANPR Stream. The message is transmitted using the callback_manager.py function and includes the best frame containing the object (vehicle, LP) and information about the location of objects (vehicle, LP) on the frame
(4) CARS Analytics processes the received message, generates a notification for the user based on the received data and user settings in CARS Analytics
(5) The CARS Analytics sends a request to the CARS API via the load balancer to determine the attributes of the vehicle and LP
(6) The request is processed by the load balancer and sent to one of the CARS API instances that is less loaded
(7) CARS API processes the request with the best shot
(8) CARS API returns vehicle and LP attributes to CARS Analytics via load balancer
(9) The response is processed by the load balancer and sent to CARS Analytics
(10) CARS Analytics stores information about vehicles and license plates in the database
(11) CARS Analytics displays the generated notification for the user in the browser web interface

The diagram of LUNA CARS operation with images (Figure 4).

Sequence diagram for working with images
Figure 4. Sequence diagram for working with images

Table 4. Description of the sequence diagram for working with images description

Step Description
(1) CARS API receives image and the request for processing from sources
(2) The request is processed by the load balancer and sent to one of the CARS API instances that is less loaded
(3) CARS API processes the image based on the request
(4) CARS API returns vehicle and LP attributes to CARS Analytics via load balancer
(5) Load balancer sends the request response to the CARS Analytics
(6) CARS Analytics receives information about vehicles and license plates
(7) CARS Analytics displays the generated notification for the user in the browser web interface