raillabel_providerkit.validation package¶
Subpackages¶
- raillabel_providerkit.validation.validate_dimensions package
- raillabel_providerkit.validation.validate_empty_frames package
- raillabel_providerkit.validation.validate_horizon package
- raillabel_providerkit.validation.validate_missing_ego_track package
- raillabel_providerkit.validation.validate_ontology package
- raillabel_providerkit.validation.validate_rail_side package
- raillabel_providerkit.validation.validate_schema package
- raillabel_providerkit.validation.validate_sensors package
- raillabel_providerkit.validation.validate_uris package
Submodules¶
raillabel_providerkit.validation.issue module¶
- class raillabel_providerkit.validation.issue.Issue(type: IssueType, identifiers: IssueIdentifiers | list[str | int], reason: str | None = None)¶
Bases:
object
An error that was found inside the scene.
- classmethod deserialize(serialized_issue: dict[str, str | dict[str, str | int] | list[str | int]]) Issue ¶
Deserialize a JSON-compatible dictionary back into an Issue class instance.
- Parameters:
serialized_issue (dict[str, str | dict[str, str | int] | list[str | int]]) – The serialized Issue as a JSON-compatible dictionary
- Returns:
The deserialized Issue class instance
- Return type:
- Raises:
jsonschema.exceptions.ValidationError – If the serialized data does not match the Issue JSONSchema.
- identifiers: IssueIdentifiers | list[str | int]¶
- class raillabel_providerkit.validation.issue.IssueIdentifiers(annotation: UUID | None = None, annotation_type: Literal['Bbox', 'Cuboid', 'Num', 'Poly2d', 'Poly3d', 'Seg3d'] | None = None, attribute: str | None = None, frame: int | None = None, object: UUID | None = None, object_type: str | None = None, sensor: str | None = None)¶
Bases:
object
Information for locating an issue.
- class raillabel_providerkit.validation.issue.IssueType(*values)¶
Bases:
Enum
General classification of the issue.
- ATTRIBUTE_MISSING = 'AttributeMissing'¶
- ATTRIBUTE_SCOPE = 'AttributeScopeInconsistency'¶
- ATTRIBUTE_TYPE = 'AttributeTypeIssue'¶
- ATTRIBUTE_UNDEFINED = 'AttributeUndefined'¶
- ATTRIBUTE_VALUE = 'AttributeValueIssue'¶
- DIMENSION_INVALID = 'DimensionInvalidIssue'¶
- EMPTY_FRAMES = 'EmptyFramesIssue'¶
- HORIZON_CROSSED = 'HorizonCrossedIssue'¶
- MISSING_EGO_TRACK = 'MissingEgoTrackIssue'¶
- OBJECT_TYPE_UNDEFINED = 'ObjectTypeUndefined'¶
- RAIL_SIDE = 'RailSide'¶
- SCHEMA = 'SchemaIssue'¶
- SENSOR_ID_UNKNOWN = 'SensorIdUnknown'¶
- SENSOR_TYPE_WRONG = 'SensorTypeWrong'¶
- UNEXPECTED_CLASS = 'UnexpectedClassIssue'¶
- URI_FORMAT = 'UriFormatIssue'¶
raillabel_providerkit.validation.issue_schema module¶
raillabel_providerkit.validation.validate module¶
- raillabel_providerkit.validation.validate.validate(scene_source: dict | Path, ontology_source: dict | Path | None = None, validate_for_empty_frames: bool = True, validate_for_rail_side_order: bool = True, validate_for_missing_ego_track: bool = True, validate_for_sensors: bool = True, validate_for_uris: bool = True, validate_for_dimensions: bool = True, validate_for_horizon: bool = True) list[Issue] ¶
Validate a scene based on the Deutsche Bahn Requirements.
- Args:
scene_source: The scene either as a dictionary or as a Path to the scene source file. ontology_source: The dataset ontology as a dictionary or as a Path to the ontology YAML
file. If not None, issues are returned if the scene contains annotations with invalid attributes or object types. Default is None.
- validate_for_empty_frames (optional): If True, issues are returned if the scene contains
frames without annotations. Default is True.
- validate_for_rail_side_order: If True, issues are returned if the scene contains track with
a mismatching rail side order. Default is True.
- validate_for_missing_ego_track: If True, issues are returned if the scene contains frames
where the ego track (the track the recording train is driving on) is missing. Default is True.
- validate_for_sensors: If True, issues are returned if the scene contains sensors that are
not supported or have the wrong sensor type.
- validate_for_uris: If True, issues are returned if the uri fields in the scene contain
unsupported values.
- validate_for_dimensions: If True, issues are returned if the dimensions of cuboids are
outside the expected values range.
validate_for_horizon: If True, issues are returned if annotations cross the horizon.
- Returns:
List of all requirement errors in the scene. If an empty list is returned, then there are no errors present and the scene is valid.
Module contents¶
Package for validating raillabel data regarding the format requirements.
- class raillabel_providerkit.validation.Issue(type: IssueType, identifiers: IssueIdentifiers | list[str | int], reason: str | None = None)¶
Bases:
object
An error that was found inside the scene.
- classmethod deserialize(serialized_issue: dict[str, str | dict[str, str | int] | list[str | int]]) Issue ¶
Deserialize a JSON-compatible dictionary back into an Issue class instance.
- Parameters:
serialized_issue (dict[str, str | dict[str, str | int] | list[str | int]]) – The serialized Issue as a JSON-compatible dictionary
- Returns:
The deserialized Issue class instance
- Return type:
- Raises:
jsonschema.exceptions.ValidationError – If the serialized data does not match the Issue JSONSchema.
- identifiers: IssueIdentifiers | list[str | int]¶
- class raillabel_providerkit.validation.IssueIdentifiers(annotation: UUID | None = None, annotation_type: Literal['Bbox', 'Cuboid', 'Num', 'Poly2d', 'Poly3d', 'Seg3d'] | None = None, attribute: str | None = None, frame: int | None = None, object: UUID | None = None, object_type: str | None = None, sensor: str | None = None)¶
Bases:
object
Information for locating an issue.
- class raillabel_providerkit.validation.IssueType(*values)¶
Bases:
Enum
General classification of the issue.
- ATTRIBUTE_MISSING = 'AttributeMissing'¶
- ATTRIBUTE_SCOPE = 'AttributeScopeInconsistency'¶
- ATTRIBUTE_TYPE = 'AttributeTypeIssue'¶
- ATTRIBUTE_UNDEFINED = 'AttributeUndefined'¶
- ATTRIBUTE_VALUE = 'AttributeValueIssue'¶
- DIMENSION_INVALID = 'DimensionInvalidIssue'¶
- EMPTY_FRAMES = 'EmptyFramesIssue'¶
- HORIZON_CROSSED = 'HorizonCrossedIssue'¶
- MISSING_EGO_TRACK = 'MissingEgoTrackIssue'¶
- OBJECT_TYPE_UNDEFINED = 'ObjectTypeUndefined'¶
- RAIL_SIDE = 'RailSide'¶
- SCHEMA = 'SchemaIssue'¶
- SENSOR_ID_UNKNOWN = 'SensorIdUnknown'¶
- SENSOR_TYPE_WRONG = 'SensorTypeWrong'¶
- UNEXPECTED_CLASS = 'UnexpectedClassIssue'¶
- URI_FORMAT = 'UriFormatIssue'¶
- raillabel_providerkit.validation.validate_dimensions(scene: Scene) list[Issue] ¶
Validate whether any annotations exceed the predefined bounds.
- raillabel_providerkit.validation.validate_empty_frames(scene: Scene) list[Issue] ¶
Validate whether all frames of a scene have at least one annotation.
- raillabel_providerkit.validation.validate_horizon(scene: Scene) list[Issue] ¶
Validate whether all track/transition annotations are below the horizon.
- raillabel_providerkit.validation.validate_missing_ego_track(scene: Scene) list[Issue] ¶
Validate whether all middle cameras have ego track annotations.
- raillabel_providerkit.validation.validate_ontology(scene: Scene, ontology_input: dict | Path) list[Issue] ¶
Validate a scene based on the classes and attributes.
- Parameters:
scene (raillabel.Scene) – The scene containing the annotations.
ontology_input (dict or Path) – Ontology YAML-data or file containing a information about all classes and their attributes. The ontology must adhere to the ontology_schema. If a path is provided, the file is loaded as a YAML.
- Returns:
List of all ontology errors in the scene. If an empty list is returned, then there are no errors present.
- Return type:
- raillabel_providerkit.validation.validate_rail_side(scene: Scene) list[Issue] ¶
Validate whether all tracks have <= one left and right rail, and that they have correct order.
- raillabel_providerkit.validation.validate_schema(data: dict) list[Issue] ¶
Validate a scene for adherence to the raillabel schema.
- raillabel_providerkit.validation.validate_sensors(scene: Scene) list[Issue] ¶
Validate whether whether all sensors have supported names and have the correct type.