Quality Assurance

Quality Assurance

When your QA team edits or accepts a completed sensor fusion task, your callback will be invoked again.

📘

Notice

editing sensor fusion tasks in customer audit is only enabled for qualified enterprise customers who request this ability.

This second callback will include some additional fields describing the result of the audit:

ParameterTypeDescription
customer_review_statusstringThe result of auditing this task. This will be one of pending, accepted, fixed or rejected.
customer_review_commentslist of stringThe comments written when auditing this task, in chronological order.
prior_responseslist of ResponseAn ordered list of all the previous responses for this task. A common way to have multiple responses is if the customer_review_status is fixed.

📘

Notice

you can specify a different URL to be used when re-sending your task data upon being audited, by passing it in the customer_review_callback_ur field when creating the task. If you don't specify one, your regular callback URL will be invoked.

Quality reports

{
  "score": 0.99,
  "width": {
    "errors": [
      {
        "target": "0F81F763-A35C-4B11-9791-019F8CDA6524",
        "frame": 0,
        "errorType": "width",
        "metadata": {
          "originalValue": 165.33,
          "correctedValue": 169.11
        }
      }
    ]
  },
  "length": {
    "errors": []
  },
  "height": {
    "errors": []
  },
  "position": {
    "errors": []
  },
  "label": {
    "errors": []
  },
  "attribute": {
    "errors": []
  },
  "heading": {
    "errors": []
  },
  "extraneous": {
    "errors": []
  },
  "missing": {
    "errors": []
  }
}

If the task was fixed, the response field in the new callback will include the changes made during the audit. Additionally, it will include a quality_report field indicating the detail of what was adjusted in the audit, in the following format:

ParameterTypeDescription
scorefloat between 0 and 1The aggregated score for this task, as defined by the applicable grading rubric. A higher score means that fewer changes were made to this task.
width.errorslist of CategorizedErrorA list of the errors where a cuboid had its dimensions.x changed.
length.errorslist of CategorizedErrorA list of the errors where a cuboid had its dimensions.y changed.
height.errorslist of CategorizedErrorA list of the errors where a cuboid had its dimensions.z changed.
position.errorslist of CategorizedErrorA list of the errors where a cuboid had its position changed.
label.errorslist of CategorizedErrorA list of the errors where a cuboid had its label changed.
attribute.errorslist of CategorizedErrorA list of the errors where a cuboid had its attributes changed.
heading.errorslist of CategorizedErrorA list of the errors where a cuboid had its yaw changed.
extraneous.errorslist of CategorizedErrorA list of the errors where a cuboid was present in the response but it got deleted (i.e. it was a false positive).
missing.errorslist of CategorizedErrorA list of the errors where a cuboid was not present in the response but it got added (i.e. it was a false negative).

Categorized errors contain the detail of what cuboid was modified, and which were the original and the corrected values:

ParameterTypeDescription
targetstringThe ID of the cuboid where this error was encountered.
errorTypestringThe kind of error.
frameintegerThe frame number where this error was found. This field will only be present if the error is frame-specific.
metadataObjectAn object containing the detail of the error, including both the originalValue and the correctedValue. This field is not present for missing and extraneous errors.

📘

Notice

If multiple attributes are changed on the same cuboid, a single attribute error will be created; the original and corrected values will be objects where only the keys that were changed will be included.

In the case of position errors, the metadata will also contain a distance field.

📘

Notice

The label, width, length, and height error types are never frame-specific, since these attributes always stay the same throughout the frames for a given object.

The missing, extraneous, position and heading error types will only be frame-specific if the cuboid is not stationary.

The attribute error type is always frame-specific, since attributes can be different across frames even for stationary objects.