Skip to content

Architecture#

The CARS API architecture (Figure 1).

CARS API architecture
Figure 1. CARS API architecture

A detailed description of the architecture is given in Table 2.

Table 2. Description of architecture of the CARS API

Component Description
Request source Sources of requests for recognition vehicle and LPs attributes:
- Manual user request (see section 8);
- External system. May be used CARS Analytics or any other customer’s system
Load balancer A service for distributing requests and responses between multiple running copies of the CARS API and an external analytics and information collection system. CARS API only supports Nginx
HTTP REST Server A service responsible for exchanging information with external systems and for processing requests. Processes the received request: decodes the received image into an internal format available for attribute recognition, and sequentially runs each classifier. After receiving the vehicle and LPs attributes from the classifiers, it sends a response in JSON format back to the source of request
Vehicle Engine Library containing methods for processing images of vehicles and LPs (see section 4)

HTTP REST Server and Vehicle Engine interaction diagram#

Sequence diagram of the interaction between the HTTP REST Server and Vehicle Engine components for obtaining vehicle attributes (Figure 2).

Sequence diagram for recognition vehicle and LPs attributes
Figure 2. Sequence diagram for recognition vehicle and LPs attributes

A detailed description of the diagram is given in Table 3.

Table 3. Sequence diagram description

Description
(1) A request is sent to the HTTP REST Server in JSON format containing information about Base64-encoded vehicle and LPs images, an image processing method, and a list of classifiers
(2) The function of checking for the presence of a classifier checks the list of given classifiers with the list of available ones
(3) HTTP REST Server calls the image processing method for each of the specified list of classifiers separately. Processing is started sequentially for each passed classifier.
(4) Processing is sequentially started for each transferred classifier and detector
(5) The Vehicle Engine returns data to the HTTP REST Server for each passed classifier per queue.
(6) The HTTP REST Server performs response generation and sends the response in JSON format back to source of request