CARS Stream Configuration#
This section will describe how to configure CARS Stream.
The configuration process must be performed under the superuser account (with root rights).
Configuration files#
The list of configuration files is presented in Table 4.
Table 4. Configuration files
Name | Path | Description | Comment |
---|---|---|---|
csConfig.conf | /bin/data/ | Configuration file with general parameters of CARS Stream. | Appendix 2 |
TrackEngine.conf | /bin/data/ | TrackEngine library settings. | Appendix 3 |
vehicleEngine.conf | /bin/data/ | Parameters of object detectors. | Appendix 4 |
runtime.conf | /bin/data/ | Launch options for CARS Stream. | Appendix 5 |
Input.json | /bin/data/ | Source options | See 4.4 |
faceengine.conf | /bin/data/ | Parameters of human detector. | Appendix 6 |
Each parameter has its own editing recommendation (Appendix 1).
Detectors#
This section provides information about vehicle, LP, smoke, fire, pedestrian and animal detectors.
Information about detectors performance testing is provided in section 7.
Vehicle detector#
Vehicle detectors are designed to detect vehicle in images. The list of vehicle detectors is given in Table 24.
Table 24. Vehicle detector description
Name | Description |
---|---|
VehicleDetectorV4 | Vehicle detector of the latest version that allows you to obtain information about the position of the vehicle in the image. Detector has a number of advantages: |
- Improved performance; | |
- Increased speed and accuracy; | |
- The presence of an algorithm for redetection of vehicle to improve the accuracy; | |
- Possibility to work with images received from cameras installed at a considerable height (birdview images support); | |
- Fixed issue of false positive detections for cameras set on houses. | |
This version includes additional parameters configurations for vehicle and LP detectors. |
Detection fields received as a result of the detector work are described in Table 25.
Table 25. Description of the vehicle detection fields
Field name | Type | Description | Possible values |
---|---|---|---|
detections | An array containing the coordinates and size of the detections of each vehicle in the image, as well as an estimate of the accuracy of vehicle detection | List of detected vehicles. | |
execution_time | int | Execution time in milliseconds | - |
height | int | Bbox height. | 0…1080 |
score | float | Estimation of TS detection accuracy. | 0.0000…1.0000 |
width | int | Bbox width. | 0…1920 |
x | int | The horizontal coordinate of the upper left corner of the BBox. | 0…1920 |
y | int | The vertical coordinate of the top left corner of the BBox. | 0…1080 |
detection | string | The name of the detector type. | car |
Response example:
{
"detections": [
{
"height": 298,
"score": 0.9394,
"width": 514.006,
"x": 0,
"y": 0
}
],
"detector": "car",
"execution_time": 153
}
LP detector#
The list of LP detectors is given in Table 7.
Table 7. LP detector description
Name | Description |
---|---|
PlateDetectorV4 | LP detector of the latest version that allows you to obtain information about the position of the LP in the image. Detector has a number of advantages: |
- Improved performance; | |
- Increased speed and accuracy; | |
- Additional parameters configuration of LP detector | |
PlateDetectorV3 | LP detectors versions 1, 2 and 3 are the detectors of previous generation that allow you to obtain information about the position of the LP in the image |
PlateDetectorV2 | The ability to use the detector of a previous version is due to backward compatibility requirements |
PlateDetectorV1 | The use of the PlateDetectorV4 is recommended for all new systems. |
Detection fields received via vehicle detectors are described in Table 8.
Table 8. LP detection fields description
Field | Type | Description | Possible values |
---|---|---|---|
detection | An array containing the coordinates and size of the detections of each LP in the image, as well as an estimate of the accuracy of LP detection | The list of detected LPs, each detection includes 5 fields: height, score, width, x, y | |
height | int | BBox height | 0…1080 |
score | float | Estimation of the accuracy of the detection of LP | 0.0000…1.0000 |
width | int | BBox width | 0…1920 |
x | int | Horizontal coordinate of the upper-left corner of BBox | 0…1920 |
y | int | Vertical coordinate of the upper-left corner of BBox | 0…1080 |
detector | string | Detector’s type name | grz |
System response example within LP detection:
{
"detections": [
{
"height": 35,
"score": 0.9343,
"width": 139,
"x": 748,
"y": 444
}
],
"detector": "grz"
}
Pedestrian detector#
Pedestrian detector is designed for detection, redetection and tracking of pedestrians on multimedia files.
License is required for the detector to work (see «LUNA CARS. Installation Guide»).
The description of detector is given in Table 9.
Table 9. Pedestrian detector description
Name | Description |
---|---|
HumanDetector | The detector that allows you to obtain information about the location and position of the pedestrian in the sequence of frames |
Animal detector#
Animal detector is designed for detection, redetection and tracking of animals on multimedia files.
License is required for the detector to work (see «LUNA CARS. Installation Guide»).
The description of detector is given in Table 10.
Table 10. Animal detector description
Name | Description |
---|---|
AnimalDetectorV1 | The detector that allows you to obtain information about the location and position of the animal in the sequence of frames |
Smoke and fire detector#
Smoke and fire detector is designed to detect fires on video streams and video files.
Smoke and fire detector description is given in Table 30.
Table 30. Smoke and fire detector description
Name | Description |
---|---|
smokeFireDetectorV1 | Smoke and fire detector, allows you to receive information about smoke and/or fire detection on a video stream or video file. |
Detection fields received as a result of the detector work are described in Table 31.
Table 31. Description of the smoke/fire detector fields
Field name | Type | Description | Possible values |
---|---|---|---|
detections | An array containing the coordinates, detection area size and the detections of fire or smoke in the image, as well as an estimate of the detection accuracy | List of detected zones. | |
execution_time | int | Execution time in milliseconds | - |
height | int | Height of detection zone | 0…1080 |
score | float | Estimation of smoke/fire detection accuracy. | 0.0000…1.0000 |
width | int | Width of detection zone | 0…1920 |
x | int | The horizontal coordinate of the upper left corner of the BBox. | 0…1920 |
y | int | The vertical coordinate of the top left corner of the BBox. | 0…1080 |
detection | string | The name of the detector type. | smoke_fire |
Response example:
{
"detections": [
{
"height": 958,
"score": 0.828738808631897,
"type": "fire",
"width": 955,
"x": 0,
"y": 0
}
],
"detector": "smoke_fire",
"execution_time": 518
}
Frame Processing Strategies#
Frame processing strategies are used to select the best shot of the object.
Each new strategy has the advantage of speeding up the detection and redetection processes, as well as the accuracy of recognition.
Following strategies are implemented in the CARS Stream:
- Common;
- Redetect;
- DROI;
- DROIFgs;
- LpDROI;
- Coroutine;
- CoroutineV2.
Strategies, parameters of the best shots and tracks are configured in the TrackEngine.conf configuration file. The current strategy for working in the latest version of the system is specified in the configuration file TrackEngine.conf. Changing the default strategy is not recommended.
Common#
This strategy is based on the detection of objects in full frame. A strategy starts for each video stream and determines the BBox of objects of interest on the entire frame.
The strategy includes full frame redetection once in several frames and then an object track is compiled of the detected objects BBox on each frame.
Redetect#
The Redetect strategy is implemented based on the Common strategy. After detecting objects on the full frame and determining the BBox of objects, the Redetect strategy performs a subsequent redetection to compile an object track only within the detected BBoxes for each object. This reduces the time and resources spent on frames processing.
DROI#
As part of this strategy, the region for intersection (DROI) and the threshold value of the intersection of the BBox object into the DROI area are set on the frame. After that, when the BBox object enters the DROI area (i.e., when the BBOX crosses the DROI area by a value equal to or greater than the threshold), the system tracks the location of this BBox in the DROI area.
The region for intersection (DROI) is the area of interest on the source frame of the video stream or video file, in which the best frame is selected and the track of the object is formed. The region for the intersection is set in the CARS Analytics interface. Detection and tracking of the object is performed on the whole original frame.
All geometric parameters are specified in pixels. Geometric parameters include:
- х – horizontal coordinate of the upper left point of BBox or DROI;
- y – vertical coordinate of the upper left point of BBox or DROI;
- width – width of BBox or DROI;
- height – height of BBox or DROI.
The generation of frame lists within one track is possible only for vehicles that have BBox intersection with the DROI. Crossing areas are highlighted in red color (Figure 3).

Frames with detection received within the same track are sequentially saved to the buffer. When the buffer overflows, the algorithm for determining the best shot compares the parameters of the new frame with the old ones:
- BBox size in pixels;
- Lack of vehicle overlaps by other objects.
At the end of the track, the algorithm for determining the best shot selects the best shot with the least overlap and the largest BBox size.
DROIFgs#
This strategy is based on the DROI strategy using the FGS algorithm. If there is no movement in the detection zone, the strategy is not started and is not using system resources.
LpDROI#
This strategy is based on the DROI strategy to detect and select the best shot only of the LP. The system uses only the BBox of LP that has an intersection with a given detection area for further work.
Coroutine#
The Coroutine strategy combines the algorithms of all previous strategies, while significantly reducing the usage of time and system resources for frame processing due to the simultaneous processing of several video streams.
When several video streams are running simultaneously and frame processing is required for each of them, the Coroutine strategy collects the full frames of each of the streams and runs once for several streams.
The processing of frames and the compiling of object tracks is performed according to the algorithms of the DROIFgs and LpDROI strategies.
CoroutineV2#
An updated version of the Coroutine strategy, which includes several different algorithms for finding the best detections and selecting the best frames. The algorithm may be selected in CARS Analytics UI.
Source Configuration#
Sources are configured using the /data/input.json configuration file.
Video files#
CARS Stream supports working with video files. Video files are added in the «video-sources» block. Description of parameters is given in Table 11.
Table 11. Description of «video-sources» parameters
Parameters | Description | Possibly values | Default value |
---|---|---|---|
name | Source name. The name for each video file must be unique | Latin characters, numbers 0…9 and symbols ".", "_", "-" | video_id_0 |
roi | Region for intersection coordinates in pixels. Region for intersection defines the area of interest processed by CARS Stream for detection and tracking of objects. Given by four coordinates [x, y, w, h]: | Any value from 0 to the resolution of a specific video file | 0, 0, 0, 0 |
x - horizontal coordinate of the upper left corner of the Region for intersection; | |||
y - vertical coordinate of the upper left corner of the Region for intersection; | |||
w - Region for intersection width; | |||
h - heights of the Region for intersection | |||
rotation | The rotation angle of the video file. It is used when the incoming video stream is rotated, for example, if the camera is installed upside down | 0, 90, 180, 270 | 0 |
transport | Video streaming protocol | UDP or TCP | TCP |
url | The path to the video file. The path can be absolute or relative | Any location accessible from the CARS Stream directory | /media/storage/ example_video1.avi |
To connect several video files, you need to add an object in the video-sources block with a unique name. The number of connected video files is unlimited.
Video stream#
Video streams are managed using API requests.
Detailed description of requests see in
"/docs/stream/rus/rest_api/CarStreamServerApi.html"