Additions
SemiTransparentWindowsProcessor
It is used to dim / brighten car windows and set their transparency.
For proper operation of the processor, you need to call beforehand: WindowSegmentationProcessor
.
Parameters
windowTransparency
- Value from 0 to 1, by default0.15
. Determines the opacity of the window;0
- full opacity,1
- solid color.windowBrightness
- Value from -1 to 1, by default0.0
. Defines the brightness of the window;0
- unchanged,-1
- black,1
- white.minWindowSize
- Value from 0 to 1, by default0.001
. Specifies the minimal windows size (as % car pixels), a window with a smaller size will be filled as in the original image.minWindowBrightness
- Value from 0 to 1, by default0.15
. Specifies the minimal windows brightness (as % of 255), a window with a smaller value will be filled as in the original image.
Example of usage
[ { "processorName": "DetectCarMaskProcessor" },
{ "processorName": "WindowSegmentationProcessor", "confidenceThreshold": 0.3 }, { "processorName": "SemiTransparentWindowsProcessor", "windowTransparency": 0.15, "windowBrightness": 0.0 }, { "processorName": "PlaceCarProcessor", "horizonLine": 0.3, "carWidth": 0.7, "carHeight": 0.5, "background": "#FFFFFF" } ]
Example results
ChangePlateProcessor
Finds and blurs or changes license plates.
Parameters
background
:- content name (check adding content) - use it to add your logo,
- starts with
#
- background to be replaced by a color given as#RRGGBB
, original
- use it to blur plates.
blurKernelSize
- Value from 0 to 1, by default together withoriginal
asbackground
defines blur effect quantity.
Example of usage
[ { "processorName": "DetectCarMaskProcessor" }, { "processorName": "ChangePlateProcessor", "background": "original", "blurKernelSize": 0.5 } ]
SpinStabilizationProcessor
It is used to stabilize the car in a 360° spin. By using it, a smooth rotation can be achieved between successive shots in the spin. Photos have to be uploaded in 360° mode.
Proper Scope
To use it you have to first call CarKeyPointsProcessor
, InterestPointsDetectionProcessor
.
It works properly from 8 images onwards.
Photos should be taken from various angles of view, so that each side of the car is clearly visible.
E.g. for minimum of 8 photos user should walk around the car and take photos every c.a. 45 degrees.
The best effect can be achieved when used together withAnchoringComputeProcessor
or PlaceCarComputeProcessor
.
Parameters
scale
- Value from 0 to 1, by default0.5
. The scale in which the computations are done, it is recommended to keep the default value.csMode
- true/false, by defaulttrue
.true
Use only for photos taken with a Carscanner, iffalse
FOV is assumed to be67.4
degrees.ellipticTrack
- true/false, by defaulttrue
.true
Use only for photos taken with a Carscanner. Makes for better stabilization for such photos.false
- For hand-held images.fov
- Value from -1 to 179, by default-1.0
. The field of view camera. A value of-1.0
means that the value is taken from the EXIF of the photo. If the EXIF does not contain FOV information, the value is taken:67.4
.
Example of usage
[ { "processorName": "ReadExifDataProcessor" }, { "processorName": "DetectCarMaskProcessor", "carDetectionThreshold": 0.0, "carCropThreshold": 0.0 }, { "processorName": "CarKeyPointsProcessor", "carDetectionThreshold": 0.0 }, { "processorName": "InterestPointsDetectionProcessor", "scale": 0.5 }, { "processorName": "SpinStabilizationProcessor", "scale": 0.5, "csMode": true, "ellipticTrack": true "fov": -1.0 }, { "processorName": "AnchoringComputeProcessor", "width": -1, "height": -1, "billboards": [ "none" ], "backgroundDirectory": "platform_12", "billboardReflection": false, "carScale": 0.55, "cropCar": true, "keepCarOnImage": true, "marginLeft": 0.15, "marginRight": 0.15, "marginUp": 0.2, "marginDown": 0.1, "aspectRatio": "4:3", "photosSorted": false, "reverseYaw": true, "billboardsPatternMode": null, "singleBillboardHeight": -1.0 }, { "processorName": "AnchoringApplyProcessor" }, { "processorName": "DetectCarShadowProcessor" }, { "processorName": "PlaceShadowProcessor", "background": "original", "shadowOpacity": 0.9, "shadowSize": 0.5, "advancedShadowEnabled": true, "advancedShadowShift": 0.25, "advancedShadowStrength": 0.5 } ]
RollCompensationProcessor
It is used to level the car in the image.
Proper Scope
To use it you have to first call CarKeyPointsProcessor
.
If the input photo is correctly leveled, the recognized angle may not be 0. The output photo may therefore be rotated.
Parameters
crop
- true/false, by defaultfalse
.true
- Crops the black area around the edges of the photo that was created by the rotation.false
- Leaves a black area.
Example of usage
[ { "processorName": "DetectCarMaskProcessor" }, { "processorName": "CarKeyPointsProcessor" }, { "processorName": "RollCompensationProcessor" }, { "processorName": "PlaceCarProcessor", "background": "examplephoto", "horizonLine": 0.2, "carWidth": 0.7, "carHeight": 0.5, "useKeypoints": true }, { "processorName": "DetectCarShadowProcessor" }, { "processorName": "PlaceShadowProcessor", "background": "original", "shadowOpacity": 0.7, "shadowSize": 0.5, "advancedShadowEnabled": true, "advancedShadowShift": 0.25, "advancedShadowStrength": 0.9 } ]
Example results
AddReflectionProcessor
It is used to generate the reflection of the car on the ground.
Proper Scope
To use it you have to first call CarKeyPointsProcessor
, DetectCarMaskProcessor
and DetectCarShadowProcessor
,
The maximum size of the output image is equal to the size of the input image. If the input image has large margins, the reflections may take up more space. If the car image has small margins, the reflections are cropped to the size of the input image.
Parameters
overwriteDefault
- true/false, by defaultfalse
.true
- If you want to define your own reflection parameters.false
- Uses predefined parameters for each platform.opacity
- Value from 0 to 1, by default0.5
. Indicates opacity of the reflection.0
means the reflection is invisible,1
means the reflection is the most visible.length
- Value from 0 to 1, by default0.5
. Indicates length of the reflection (from wheels to roof),0
means the reflection is short,1
means the reflection is the most long.blur
- Value from 0 to 1, by default0.5
. Indicates blur of the reflection.0
means no blurred,1
means the reflection is the most blurred.motionBlur
- Value from 0 to 1, by default0.5
. Indicates motionBlur of the reflection.0
means no blurred,1
means the reflection is the most blurred.
Example of usage
[ { "processorName": "ReadExifDataProcessor", "rotate": true }, { "processorName": "DetectCarMaskProcessor", "carDetectionThreshold": 0.0, "carCropThreshold": 0.0, "estimateMaskScore": false }, { "processorName": "CarKeyPointsProcessor", "carDetectionThreshold": 0.0 },
{ "processorName": "WindowSegmentationProcessor", "confidenceThreshold": 0.3 }, { "processorName": "SemiTransparentWindowsProcessor", "windowTransparency": 0.15, "windowBrightness": 0.0, "minWindowSize": 0.001, "minWindowBrightness": 0.15 }, { "processorName": "RollCompensationProcessor", "crop": false }, { "processorName": "AnchoringComputeProcessor", "width": -1, "height": -1, "billboards": [ "none" ], "backgroundDirectory": "platform_1", "billboardReflection": true, "carScale": 0.6, "cropCar": true, "keepCarOnImage": true, "marginLeft": 0.15, "marginRight": 0.15, "marginUp": 0.2, "marginDown": 0.1, "aspectRatio": "4:3", "smoothMovement": false, "photosSorted": false, "reverseYaw": true, "singleBillboardHeight": -1.0, "bboxStabilization": false }, { "processorName": "AnchoringApplyProcessor" }, { "processorName": "DetectCarShadowProcessor" }, { "processorName": "AddReflectionProcessor", "overwriteDefault": false, "opacity": 0.5, "length": 0.5, "blur": 0.5, "motionBlur": 0.5 }, { "processorName": "PlaceShadowProcessor", "background": "original", "shadowOpacity": 0.9, "shadowSize": 0.5, "advancedShadowEnabled": true, "advancedShadowShift": 0.25, "advancedShadowStrength": 0.5 } ]