Skip to content

Place

HorizontalStabilizationComputeProcessor

It is used to blur or change the background on the top part of a car photo and to stabilize spins when uploading a group of photos. When car photos are sent as a spin: - in all photos, the car should be centered as much as possible, when this is not the case white margins may be added, - the blur line is computed to be the same for all photos.

Proper Scope

  • It requires CarKeyPointsProcessor processor to be called first.
  • To apply changes, you have to call HorizontalStabilizationApplyProcessor afterwards.
Parameters
  • width - Value from 100 to 8192 or -1, by default -1. Defines the width of the resulting image. If no value is specified or a negative value is specified, the width of the car is automatically calculated based on the aspect ratio and the width of the car.
  • height - Value from 100 to 8192 or -1, by default -1. Defines the height of the resulting image. If no value is specified or a negative value is specified, the height of the car is automatically calculated based on the aspect ratio and the height of the car.
  • aspectRatio - Format N:M, by default 4:3. It specifies aspect ratio of the output image if either width or height is not specified. The height and width are then calculated automatically to keep the size of the car in the image constant and maintain the aspect ratio specified in this parameter.
  • marginLeft - Value from 0 to 1, by default 0.15. Defines left margin. A value of 0 means no margin, A value of 1 means a margin width equal to the width of the car.
  • marginRight - Value from 0 to 1, by default 0.15. Defines right margin. A value of 0 means no margin. A value of 1 means a margin width equal to the width of the car.
  • marginUp - Value from 0 to 1, by default 0.2. Defines up margin. A value of 0 means no margin. A value of 1 means a margin height equal to the height of the car.
  • marginDown - Value from 0 to 1, by default 0.1. Defines down margin. A value of 0 means no margin. A value of 1 means a margin height equal to the height of the car.
  • blurKernelSize - Value from 0 to 1, by default 0.076389. Defines the strength of blurring. The higher the value of the parameter, the more blurred the background behind the car will be.
  • blurLineDelta - Value from -1 to 1, by default 0.0. Defines the line height offset as a percentage of the detected blur line, If the value is positive the line is moved up, if negative it is moved down.
  • blurGradient - Value from 0 to 1, by default 0.1. Defines the height of the area in % of the border between the top of the photo, which stays unchanged, and the bottom, which is blurred or with the background replaced.
  • blurBackground :
    • content name (check adding content),
    • starts with # - background to be replaced by a color given as #RRGGBB,
    • original - background to be replaced by image given by image path (this option is enabled by default and covers most of cases).
  • curtainEnabled - true/false, by default false. If true then the bottom edge of the selected background is aligned with the horizon line.
  • photosSorted - true/false, by default false. When true the photos in the section are taken as ordered, otherwise the processor sorts the photos according to the predicted angle.
  • reverseYaw - true/false, by default true. Specifies in which order the photos should be sorted.
Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },
    {
        "processorName": "CarKeyPointsProcessor"
    },
    {
        "processorName": "HorizontalStabilizationComputeProcessor",
        "width": -1,
        "height": -1,
        "marginLeft": 0.01,
        "marginRight": 0.01,
        "marginUp": 0.2,
        "marginDown": 0.1,
        "aspectRatio": "4:3",
        "photosSorted": false,
        "reverseYaw": true,
        "blurKernelSize": 0.076389,
        "blurLineDelta": 0,
        "blurGradient": 0.1,
        "blurBackground": "original",
        "curtainEnabled": false
    },
    {
        "processorName": "HorizontalStabilizationApplyProcessor"
    }
]

Example result

PlaceCarComputeProcessor

It is used to apply a single background and to stabilize spins when uploading a group of photos.

You can add your own image as a background (check adding content) or specify color in RGB format.

When car photos are sent as a spin, position of the car is stabilized with respect to all images. You can set horizontal position of a car with horizonLine parameter, and adjust car scale with platformWidth.

Proper Scope

  • It requires CarKeyPointsProcessor processor to be called first.
  • To apply background, you have to call AnchoringApplyProcessor afterwards.
Parameters
  • platformDirectory - set ALWAYS to "handmade".
  • width - Value from 100 to 8192 or -1, by default -1. Defines the width of the resulting image. If no value is specified or a negative value is specified, the width of the car is automatically calculated based on the aspect ratio and the width of the car.
  • height - Value from 100 to 8192 or -1, by default -1. Defines the height of the resulting image. If no value is specified or a negative value is specified, the height of the car is automatically calculated based on the aspect ratio and the height of the car.
  • cropCar - true/false, by default true. If true, the background is cropped for perspective and size of the car. If false, the background is viewed in its full.
  • keepCarOnImage - true/false, by default true. If true, the maximum scale of the car is set so as not to crop the car in the picture.
  • marginLeft - Value from 0 to 1, by default 0.15. Defines left margin. A value of 0 means no margin. A value of 1 means a margin width equal to the width of the car.
  • marginRight - Value from 0 to 1, by default 0.15. Defines right margin. A value of 0 means no margin. A value of 1 means a margin width equal to the width of the car.
  • marginUp - Value from 0 to 1, by default 0.2. Defines up margin. A value of 0 means no margin. A value of 1 means a margin height equal to the height of the car.
  • marginDown - Value from 0 to 1, by default 0.1. Defines down margin. A value of 0 means no margin. A value of 1 means a margin height equal to the height of the car.
  • aspectRatio - Format N:M, by default 4:3. It specifies aspect ratio of the output image if either width or height is not specified. The height and width are then calculated automatically to keep the size of the car in the image constant and maintain the aspect ratio specified in this parameter.
  • photosSorted - true/false, by default false, when true the photos in the section are taken as ordered, otherwise the processor sorts the photos according to the predicted angle.
  • reverseYaw - true/false, by default true, specifies in which order the photos should be sorted.
  • background:
    • content name (check adding content),
    • starts with # - background to be replaced by a color given as #RRGGBB.
  • horizonLine - Value from 0 to 1, by default 0.5. Defines at what height relative to the bottom of the background the car is to be placed. It is codependent on platformWidth - necessary to avoid extreme values in both at the time.
  • platformWidth - Value from 0 to 1, by default 0.8. It regulates virtual platform size (and, as a result, also the car scale) compared to image width. It is codependent on horizonLine - necessary to avoid extreme values in both at the time.
Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },
    {
        "processorName": "CarKeyPointsProcessor"
    },      
{ "processorName": "WindowSegmentationProcessor", "confidenceThreshold": 0.3 }, { "processorName": "SemiTransparentWindowsProcessor", "windowTransparency": 0.15, "windowBrightness": 0.0 }, { "processorName": "PlaceCarComputeProcessor", "platformDirectory": "placecar", "width": -1, "height": -1, "cropCar": true, "keepCarOnImage": true, "marginLeft": 0.15, "marginRight": 0.15, "marginUp": 0.2, "marginDown": 0.1, "aspectRatio": "4:3", "photosSorted": false, "reverseYaw": true, "background": "examplephoto", "horizonLine": 0.5, "platformWidth": 0.8 }, { "processorName": "AnchoringApplyProcessor" }, { "processorName": "DetectCarShadowProcessor" }, { "processorName": "PlaceShadowProcessor", "background": "original", "shadowOpacity": 0.9, "shadowSize": 0.5, "advancedShadowEnabled": false, "advancedShadowShift": 0.25, "advancedShadowStrength": 0.5 } ]

Example result

AnchoringComputeProcessor

It is used to apply a 360° background and to stabilize spins when uploading a group of photos.

Proper Scope

  • It requires CarKeyPointsProcessor processor to be called first.
  • To apply background, you have to call AnchoringApplyProcessor afterwards.
  • To make the billboard transparent, you need to upload an image in PNG format with transparency set.
Parameters
  • width - Value from 100 to 8192 or -1, by default -1. Defines the width of the resulting image. If no value is specified or a negative value is specified, the width of the car is automatically calculated based on the aspect ratio and the width of the car.
Example of usage and result

  • height - Value from 100 to 8192 or -1, by default -1. Defines the height of the resulting image. If no value is specified or a negative value is specified, the height of the car is automatically calculated based on the aspect ratio and the height of the car.
Example of usage and result

  • billboards - List of billboards to be placed in the background of the scene. If one image is placed, it is placed in all fields. If more image names are entered they are placed sequentially. Placing of images starts from the upper left corner of the scene. If the billboards are to be empty, specify the value "none". To make the billboard transparent, you need to upload an image in PNG format with transparency set.
Example of usage and result

API:

[
    {
        "processorName": "ReadExifDataProcessor",
        "rotate": true
    },
    {
        "processorName": "DetectCarMaskProcessor",
        "carDetectionThreshold": 0.0,
        "carCropThreshold": 0.0,
        "estimateMaskScore": false
    },
{ "processorName": "CarKeyPointsProcessor", "carDetectionThreshold": 0.0 }, { "processorName": "AnchoringComputeProcessor", "width": -1, "height": -1, "billboards": [ "vumo", "logo_vumo" ], "backgroundDirectory": "platform_12", "billboardReflection": true, "carScale": 0.6, "cropCar": true, "keepCarOnImage": true, "marginLeft": 0.05, "marginRight": 0.05, "marginUp": 0.3, "marginDown": 0.1, "aspectRatio": "4:3", "smoothMovement": false, "photosSorted": false, "reverseYaw": true, "billboardsPatternMode": "BASIC_HORIZONTAL_NORMAL", "singleBillboardHeight": 0.25, "globalBillboardVerticalAlign": 0.2, "bboxStabilization": false, "carBodyClassRescale": false }, { "processorName": "AnchoringApplyProcessor" } ]

Example of usage and result

Vumography:

API:

[
    {
        "processorName": "ReadExifDataProcessor",
        "rotate": true
    },
    {
        "processorName": "DetectCarMaskProcessor",
        "carDetectionThreshold": 0.0,
        "carCropThreshold": 0.0,
        "estimateMaskScore": false
    },
    {
        "processorName": "CarKeyPointsProcessor",
        "carDetectionThreshold": 0.0
    },
    {
        "processorName": "AnchoringComputeProcessor",
        "width": -1,
        "height": -1,
        "billboards": [
            "none"
    ],
        "backgroundDirectory": "platform_12",
        "billboardReflection": true,
        "carScale": 0.6,
        "cropCar": true,
        "keepCarOnImage": true,
        "marginLeft": 0.05,
        "marginRight": 0.05,
        "marginUp": 0.3,
        "marginDown": 0.1,
        "aspectRatio": "4:3",
        "smoothMovement": false,
        "photosSorted": false,
        "reverseYaw": true,
        "singleBillboardHeight": -1.0,
        "globalBillboardVerticalAlign": 1.0,
        "bboxStabilization": false,
        "carBodyClassRescale": false
    },
    {
        "processorName": "AnchoringApplyProcessor"
    }
]

  • billboardReflection - true/false, by default true. If true, enable reflections on billboards.
Example of usage and result

  • carScale - Value from 0 to 1, by default 1.0. Describes the size of the car relative to the platform.
Example of usage and result

  • cropCar - true/false, by default true. If true, output car is cropped.
Example of usage and result

cropCar: true

cropCar: false

  • keepCarOnImage - true/false, by default true, If true, maximum car scale does not exceed image bounds.
Example of usage and result

keepCarOnImage: true

keepCarOnImage: false

  • marginLeft - Value from 0 to 1, by default 0.15. Defines left margin. A value of 0 means no margin. A value of 1 means a margin width equal to the width of the car.
Example of usage and result

  • marginRight - Value from 0 to 1, by default 0.15. Defines right margin. A value of 0 means no margin. A value of 1 means a margin width equal to the width of the car.
Example of usage and result

  • marginUp - Value from 0 to 1, by default 0.2. Defines up margin. A value of 0 means no margin. A value of 1 means a margin height equal to the height of the car.
Example of usage and result

  • marginDown - Value from 0 to 1, by default 0.1. Defines down margin. A value of 0 means no margin. A value of 1 means a margin height equal to the height of the car.
Example of usage and result

  • aspectRatio - Format N:M, by default 4:3. It specifies aspect ratio of the output image if either width or height is not specified. The height and width are then calculated automatically to keep the size of the car in the image constant and maintain the aspect ratio specified in this parameter.
Example of usage and result

aspectRatio: 4:3

aspectRatio: 16:9

  • smooth0Movement - true/false, by default false. If false, it ignores SpinStabilization output in anchoring.

  • photosSorted - true/false, by default false. When true the photos in the section are taken as ordered, otherwise the processor sorts the photos according to the predicted angle.

Example of usage and result

photosSorted: true

photosSorted: false

  • reverseYaw - true/false, by default true. Specifies in which order the photos should be sorted.
Example of usage and result

reverseYaw: true

reverseYaw: false

  • billboardsPatternMode - the name of one of all possible patterns in format "X_Y", where:
    • X can be one of: ROW_INTERLOCK, BASIC_HORIZONTAL, BASIC_VERTICAL, COLLUMN_INTERLOCK, CHESSBOARD,
    • Y can be one of: NOSPACE, DENSE, NORMAL, SPARSE, SPARSEx2, SPARSEx3, SINGLE.
      For example, billboardsPatternMode can be equal to "ROW_INTERLOCK_DENSE".
Billboards
  • billboards - constitute a list of images intended to be displayed as a background in a given scene. In the event that only one image is provided, it will automatically be placed in all available areas. However, if more than one image name is input, they will be sequentially placed in the scene. The process of positioning images starts from the top-left corner of the scene, meaning the first image will be placed in that position, and subsequent ones will be added sequentially. If there is a need not to place any billboards in the scene, this can be achieved by specifying the value "none." This will result in no images appearing on the scene at that moment. In billboards, it's also possible to set the height of an individual image on a percentage scale, expressed as "0.01-1". Additionally, various pattern modes can be selected, visually represented below.
BASIC_HORIZONTAL

BASIC_VERTICAL

COLLUMN_INTERLOCK

ROW_INTERLOCK

CHESSBOARD

  • billboardsLayout - selection of possible billboard layouts: ROW_INTERLOCK, BASIC_HORIZONTAL, BASIC_VERTICAL, COLLUMN_INTERLOCK, CHESSBOARD.

  • billboardsDensity - selection of possible billboard density: NOSPACE, DENSE, NORMAL, SPARSE, SPARSEx2, SPARSEx3, SINGLE.

  • singleBillboardHeight - value from 0.01 to 1 or -1, by default -1.0. Target height of single billboard as factor to global billboard height/

singleBillboardHeight

  • billboardVerticalAlign - value from 0 to 1, by default 1.0. Is used to determine the height on a percentage scale of the selected image on the billboards, expressed as "0-1".
billboardVerticalAlign

  • carBodyClassRescale - True/False: When true, adapt the car scale based on the detected car body type, by default false, Supports the following classes Sedan_coupe, SuperCar, SUV, VAN, Box_truck, Camper, Combi, Hatchback, Heavy_truck, Jeep, Pickup.
Example of usage

[
    {
        "processorName": "ReadExifDataProcessor",
        "rotate": true
    },
    {
        "processorName": "DetectCarMaskProcessor",
        "carDetectionThreshold": 0.0,
        "carCropThreshold": 0.0,
        "estimateMaskScore": false
    },
    {
        "processorName": "CarKeyPointsProcessor",
        "carDetectionThreshold": 0.0
    },
    {
        "processorName": "CarBodyClassificationProcessor"
    },
    {
        "processorName": "AnchoringComputeProcessor",
        "width": -1,
        "height": -1,
        "billboards": [
            "none"
    ],
        "backgroundDirectory": "platform_32",
        "billboardReflection": true,
        "carScale": 1.0,
        "cropCar": false,
        "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,
        "globalBillboardVerticalAlign": 1.0,
        "bboxStabilization": false,
        "carBodyClassRescale": true 
    },
    {
        "processorName": "AnchoringApplyProcessor"
    },
    {
        "processorName": "DetectCarShadowProcessor",
        "detail": false
    },
    {
        "processorName": "PlaceShadowProcessor",
        "background": "original",
        "shadowOpacity": 0.9,
        "shadowSize": 0.5,
        "advancedShadowEnabled": true,
        "advancedShadowShift": 0.25,
        "advancedShadowStrength": 0.5
    }
]

Example result
Sedan_coupe

SuperCars

SUV

VAN

Box_truck

Camper

Combi

Hatchback

Heavy_truck

Jeep

Pickup

Example of usage

[
    {      
"processorName": "DetectCarMaskProcessor" }, { "processorName": "CarKeyPointsProcessor" },

{ "processorName": "WindowSegmentationProcessor", "confidenceThreshold": 0.3 }, { "processorName": "SemiTransparentWindowsProcessor", "windowTransparency": 0.15, "windowBrightness": 0.0 }, { "processorName": "AnchoringComputeProcessor", "width": -1, "height": -1, "billboards": [ "none" ], "backgroundDirectory": "platform_10", "billboardReflection": false, "carScale": 0.8, "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": false, "advancedShadowShift": 0.25, "advancedShadowStrength": 0.5 } ]

Example result

HorizontalBlurProcessor

It is used to blur or change the background on the top part of a single car photo.

Proper Scope

To use useKeypoints you have to call first CarKeyPointsProcessor.

Parameters
  • blurKernelSize - Value from 0 to 1, by default 0.076. Defines the strength of blurring, by default. The higher the value of the parameter, the more blurred the background behind the car will be.
  • blurLineDelta - Value from -1 to 1, by default 0.0. Defines the line height offset as a percentage of the detected blur line. If the value is positive the line is moved up, if negative it is moved down.
  • blurGradient - Value from 0 to 1, by default 0.1. Defines the height of the area in % of the border between the top of the photo, which stays unchanged, and the bottom, which is blurred or with the background replaced.
  • blurBackground:

    • content name (check adding content),

    • starts with # - background to be replaced by a color given as #RRGGBB,

    • original - background to be replaced by image given by image path (this option is enabled by default and covers most of cases).
  • useKeypoints - true/false, by default false. Apply a new method of positioning the car, for this method to work you need to call the CarKeyPointsProcessor first.

  • curtainEnabled - true/false, by default false. If true then the bottom edge of the selected background is aligned with the horizon line.
Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },
    {
        "processorName": "HorizontalBlurProcessor",
        "blurKernelSize": 0.076,
        "blurLineDelta": 0.1,
        "blurGradient": 0.1,
        "blurBackground": "original",
        "useKeypoints": false,
        "curtainEnabled": false
    }
]

Example result

AddBackgroundAndCropProcessor

Adding background and crop it based on car size.

Parameters
  • margin value expressed in relation to the size of the car in the photo - a margin is added around the car - when the aspect ratio is changed (see "aspectRatio") or the car is moved (see "center"), the car area including the margin will not go outside the photo (i.e., we cannot cut off too much space around the car). For example margin : 0.1 and the car is 200px wide and 100px high - the margin is 20px left and right, and 10px top and bottom, by default 0.1.
  • background
    • content name (check adding content).
    • starts with # - background to be replaced by a color given as #RRGGBB.
    • original - background to be replaced by image given by image path (this option is enabled by default and covers most of cases).
  • aspectRatio
    • for original, the server will return an image with the exact resolution as the original car image.
    • For N:M, the server will return the image with a resolution close to the original image of the car but with one of the sides shortened or lengthened accordingly to keep the aspect ratio equal to N:M.
  • posX, posY - posX and posY are expressed relative to the size of the photo - this parameter is used to move the center of the car in the photo - but within such limits that the car area including the margin (see "margin") does not go beyond the photo, posX is counted from left to right, posY is counted from bottom to top. I.e.:
    • posX = 0.5, posY = 0.5 - the car is in the middle,
    • posX = 0.5, posY = 0 - the car is offset from the center to the maximum downward position,
    • posX = 0.5, posY = 1 - the car is shifted relative to the center up to the maximum,
    • posX = 0, posY = 0.5 - the car is shifted relative to the center to the left at maximum,
    • posX = 1, posY = 0.5 - the car is shifted with respect to the center to the right maximum,
    • posX = 0, posY = 1 - the car is in the top left corner,
    • posX = 1, posY = 0 - the car is in the bottom right corner.
Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },
    {
        "processorName": "AddBackgroundAndCropProcessor",
        "background": "examplephoto",
        "aspectRatio": "1:1",
        "margin": 1,
        "posX": 0.5,
        "posY": 0.5
    }
]

Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },
    {
        "processorName": "AddBackgroundAndCropProcessor",
        "background": "examplephoto",
        "aspectRatio": "16:9",
        "margin": 1,
        "posX": 0.5,
        "posY": 0.5
    }
]

PlaceCarProcessor

It is used to place a car in a photo with the ability to resize the car and adjust the height of the car's position relative to the horizontal line in the image.

Proper Scope

To use useKeypoints you have to first call CarKeyPointsProcessor.

Parameters
  • horizonLine - Value from 0 to 1, by default 0.3. Defines at what height relative to the bottom of the background the car is to be placed.
  • carHeight - Value from 0 to 1, by default 0.7. It sets the maximum height of the car in the image. The car is scaled (preserving aspect ratio) so that its height and width do not exceed the given maximum values.
  • carWidth - Value from 0 to 1, by default 0.7. It sets the maximum the maximum width of the car in the image. The car is scaled (preserving aspect ratio) so that its height and width do not exceed the given maximum values
  • background
    • content name (check adding content).
    • starts with # - background to be replaced by a color given as #RRGGBB.
  • useKeypoints - true/false, by default false. Apply a new car positioning method, for this method to work you need to call the CarKeyPointsProcessor before.
Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },
    {
        "processorName": "CarKeyPointsProcessor"
    },      
{ "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": "examplephoto", "useKeypoints": true } ]

Example of usage

[
    {
        "processorName": "DetectCarMaskProcessor"
    },      
{ "processorName": "WindowSegmentationProcessor", "confidenceThreshold": 0.3 }, { "processorName": "SemiTransparentWindowsProcessor", "windowTransparency": 0.15, "windowBrightness": 0.0 }, { "processorName": "PlaceCarProcessor", "horizonLine": 0.2, "carWidth": 0.7, "carHeight": 0.4, "background": "#5A5A5A", "useKeypoints": false } ]

CleanBackgroundProcessor

A simple processor to clean the background with a given color and optionally add a simple shadow.

Parameters
  • enableShadow - true/false, by default false. Apply simple shadow - set it to false when you use PlaceShadowProcessor or when cleaning background for interiors.
  • color starts with # - background to be replaced by a color given as #RRGGBB, by default #FFFFFF.
Example of usage

[
    {
        "processorName": "DetectMaskProcessor"
    },
    {
        "processorName": "CleanBackgroundProcessor",
        "enableShadow": false,
        "color": "#C0C0C0"
    }
]

Example result