Class DatasetCapture | Perception | 0.5.0-preview.1
docs.unity3d.com
    Show / Hide Table of Contents

    Class DatasetCapture

    Global manager for frame scheduling and output capture for simulations. Data capture follows the schema defined in TODO: Expose schema publicly

    Inheritance
    Object
    DatasetCapture
    Inherited Members
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: UnityEngine.Perception.GroundTruth
    Syntax
    public static class DatasetCapture

    Properties

    SchemaVersion

    The json metadata schema version the DatasetCapture's output conforms to.

    Declaration
    public static string SchemaVersion { get; }
    Property Value
    Type Description
    String

    Methods

    RegisterAnnotationDefinition(String, String, String, Guid)

    Creates an annotation type, which can be used to produce annotations during the simulation. See ReportAnnotationFile(AnnotationDefinition, String), ReportAnnotationValues<T>(AnnotationDefinition, T[]) and ReportAnnotationAsync(AnnotationDefinition).

    Declaration
    public static AnnotationDefinition RegisterAnnotationDefinition(string name, string description = null, string format = "json", Guid id = default(Guid))
    Parameters
    Type Name Description
    String name

    Human readable annotation spec name (e.g. sementic_segmentation, instance_segmentation, etc.)

    String description

    Description of the annotation.

    String format

    Optional format name.

    Guid id

    The ID for this annotation type. This allows annotation types to be shared across simulations and sequences.

    Returns
    Type Description
    AnnotationDefinition

    An AnnotationDefinition. If the given has already been defined, its AnnotationDefinition is returned.

    RegisterAnnotationDefinition<TSpec>(String, TSpec[], String, String, Guid)

    Creates an annotation type, which can be used to produce annotations during the simulation. See ReportAnnotationFile(AnnotationDefinition, String), ReportAnnotationValues<T>(AnnotationDefinition, T[]) and ReportAnnotationAsync(AnnotationDefinition).

    Declaration
    public static AnnotationDefinition RegisterAnnotationDefinition<TSpec>(string name, TSpec[] specValues, string description = null, string format = "json", Guid id = default(Guid))
    Parameters
    Type Name Description
    String name

    Human readable annotation spec name (e.g. sementic_segmentation, instance_segmentation, etc.)

    TSpec[] specValues

    Format-specific specification for the annotation values (ex. label-value mappings for semantic segmentation images)

    String description

    Description of the annotation.

    String format

    Optional format name.

    Guid id

    The ID for this annotation type. This allows annotation types to be shared across simulations and sequences.

    Returns
    Type Description
    AnnotationDefinition

    An AnnotationDefinition. If the given has already been defined, its AnnotationDefinition is returned.

    Type Parameters
    Name Description
    TSpec

    The type of the values for the spec array in the resulting json.

    RegisterEgo(String)

    Register a new ego. Used along with RegisterSensor to organize sensors under a top-level ego container. RegisterSensor(EgoHandle, String, String, Single, Single)

    Declaration
    public static EgoHandle RegisterEgo(string description)
    Parameters
    Type Name Description
    String description

    A human-readable description for the ego

    Returns
    Type Description
    EgoHandle

    An EgoHandle, which can be used to organize sensors under a common ego.

    RegisterMetricDefinition(String, String, Guid)

    Creates a metric type, which can be used to produce metrics during the simulation. See ReportMetric<T>(MetricDefinition, T[]), ReportMetricAsync(MetricDefinition), ReportMetric<T>(MetricDefinition, T[]), ReportMetricAsync(MetricDefinition), ReportMetric<T>(MetricDefinition, T[]), ReportMetricAsync(MetricDefinition)

    Declaration
    public static MetricDefinition RegisterMetricDefinition(string name, string description = null, Guid id = default(Guid))
    Parameters
    Type Name Description
    String name

    Human readable annotation spec name (e.g. sementic_segmentation, instance_segmentation, etc.)

    String description

    Description of the annotation.

    Guid id

    The ID for this metric. This allows metric types to be shared across simulations and sequences.

    Returns
    Type Description
    MetricDefinition

    A MetricDefinition, which can be used during this simulation to report metrics.

    RegisterMetricDefinition<TSpec>(String, TSpec[], String, Guid)

    Creates a metric type, which can be used to produce metrics during the simulation. See ReportMetric<T>(MetricDefinition, T[]), ReportMetricAsync(MetricDefinition), ReportMetric<T>(MetricDefinition, T[]), ReportMetricAsync(MetricDefinition), ReportMetric<T>(MetricDefinition, T[]), ReportMetricAsync(MetricDefinition)

    Declaration
    public static MetricDefinition RegisterMetricDefinition<TSpec>(string name, TSpec[] specValues, string description = null, Guid id = default(Guid))
    Parameters
    Type Name Description
    String name

    Human readable annotation spec name (e.g. sementic_segmentation, instance_segmentation, etc.)

    TSpec[] specValues

    Format-specific specification for the metric values. Will be converted to json automatically.

    String description

    Description of the annotation.

    Guid id

    The ID for this metric. This allows metric types to be shared across simulations and sequences.

    Returns
    Type Description
    MetricDefinition

    A MetricDefinition, which can be used during this simulation to report metrics.

    Type Parameters
    Name Description
    TSpec

    The type of the struct to write.

    RegisterSensor(EgoHandle, String, String, Single, Single)

    Register a new sensor under the given ego.

    Declaration
    public static SensorHandle RegisterSensor(EgoHandle egoHandle, string modality, string description, float period, float firstCaptureTime)
    Parameters
    Type Name Description
    EgoHandle egoHandle

    The ego container for the sensor. Sensor orientation will be reported in the context of the given ego.

    String modality

    The kind of the sensor (ex. "camera", "lidar")

    String description

    A human-readable description of the sensor (ex. "front-left rgb camera")

    Single period

    The period, in seconds, on which the sensor should capture. Frames will be scheduled in the simulation such that each sensor is triggered every period seconds.

    Single firstCaptureTime

    The time, in seconds, from the start of the sequence on which this sensor should first be scheduled.

    Returns
    Type Description
    SensorHandle

    A SensorHandle, which should be used to check ShouldCaptureThisFrame each frame to determine whether to capture (or render) that frame. It is also used to report captures, annotations, and metrics on the sensor.

    Exceptions
    Type Condition
    ArgumentException

    Thrown if ego is invalid.

    ReportMetric(MetricDefinition, String)

    Report a metric not associated with any sensor or annotation.

    Declaration
    public static void ReportMetric(MetricDefinition metricDefinition, string valuesJsonArray)
    Parameters
    Type Name Description
    MetricDefinition metricDefinition

    The MetricDefinition associated with this metric. RegisterMetricDefinition(String, String, Guid)

    String valuesJsonArray

    A string-based JSON array to be placed in the "values" field of the metric

    ReportMetric<T>(MetricDefinition, T[])

    Report a metric not associated with any sensor or annotation.

    Declaration
    public static void ReportMetric<T>(MetricDefinition metricDefinition, T[] values)
    Parameters
    Type Name Description
    MetricDefinition metricDefinition

    The MetricDefinition associated with this metric. RegisterMetricDefinition(String, String, Guid)

    T[] values

    An array to be converted to json and put in the "values" field of the metric

    Type Parameters
    Name Description
    T

    The type of the array

    ReportMetricAsync(MetricDefinition)

    Report a metric not associated with any sensor or annotation.

    Declaration
    public static AsyncMetric ReportMetricAsync(MetricDefinition metricDefinition)
    Parameters
    Type Name Description
    MetricDefinition metricDefinition

    The metric definition of the metric being reported

    Returns
    Type Description
    AsyncMetric

    An AsyncMetric which should be used to report the metric values, potentially in a later frame

    ResetSimulation()

    Stop the current simulation and start a new one. All pending data is written to disk before returning.

    Declaration
    public static void ResetSimulation()

    StartNewSequence()

    Starts a new sequence in the capture.

    Declaration
    public static void StartNewSequence()

    Events

    SimulationEnding

    Called when the simulation ends. The simulation ends on playmode exit, application exit, or when ResetSimulation() is called.

    Declaration
    public static event Action SimulationEnding
    Event Type
    Type Description
    Action
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023