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).
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).
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).
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).
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 |