123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- // Copyright 2019 Google LLC.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- syntax = "proto3";
- package google.cloud.datalabeling.v1beta1;
- import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto";
- import "google/protobuf/duration.proto";
- option csharp_namespace = "Google.Cloud.DataLabeling.V1Beta1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
- option java_multiple_files = true;
- option java_package = "com.google.cloud.datalabeling.v1beta1";
- option php_namespace = "Google\\Cloud\\DataLabeling\\V1beta1";
- option ruby_package = "Google::Cloud::DataLabeling::V1beta1";
- // Specifies where the annotation comes from (whether it was provided by a
- // human labeler or a different source).
- enum AnnotationSource {
- ANNOTATION_SOURCE_UNSPECIFIED = 0;
- // Answer is provided by a human contributor.
- OPERATOR = 3;
- }
- // Annotation for Example. Each example may have one or more annotations. For
- // example in image classification problem, each image might have one or more
- // labels. We call labels binded with this image an Annotation.
- message Annotation {
- // Output only. Unique name of this annotation, format is:
- //
- // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset}/examples/{example_id}/annotations/{annotation_id}
- string name = 1;
- // Output only. The source of the annotation.
- AnnotationSource annotation_source = 2;
- // Output only. This is the actual annotation value, e.g classification,
- // bounding box values are stored here.
- AnnotationValue annotation_value = 3;
- // Output only. Annotation metadata, including information like votes
- // for labels.
- AnnotationMetadata annotation_metadata = 4;
- // Output only. Sentiment for this annotation.
- AnnotationSentiment annotation_sentiment = 6;
- }
- enum AnnotationSentiment {
- ANNOTATION_SENTIMENT_UNSPECIFIED = 0;
- // This annotation describes negatively about the data.
- NEGATIVE = 1;
- // This label describes positively about the data.
- POSITIVE = 2;
- }
- enum AnnotationType {
- ANNOTATION_TYPE_UNSPECIFIED = 0;
- // Classification annotations in an image. Allowed for continuous evaluation.
- IMAGE_CLASSIFICATION_ANNOTATION = 1;
- // Bounding box annotations in an image. A form of image object detection.
- // Allowed for continuous evaluation.
- IMAGE_BOUNDING_BOX_ANNOTATION = 2;
- // Oriented bounding box. The box does not have to be parallel to horizontal
- // line.
- IMAGE_ORIENTED_BOUNDING_BOX_ANNOTATION = 13;
- // Bounding poly annotations in an image.
- IMAGE_BOUNDING_POLY_ANNOTATION = 10;
- // Polyline annotations in an image.
- IMAGE_POLYLINE_ANNOTATION = 11;
- // Segmentation annotations in an image.
- IMAGE_SEGMENTATION_ANNOTATION = 12;
- // Classification annotations in video shots.
- VIDEO_SHOTS_CLASSIFICATION_ANNOTATION = 3;
- // Video object tracking annotation.
- VIDEO_OBJECT_TRACKING_ANNOTATION = 4;
- // Video object detection annotation.
- VIDEO_OBJECT_DETECTION_ANNOTATION = 5;
- // Video event annotation.
- VIDEO_EVENT_ANNOTATION = 6;
- // Classification for text. Allowed for continuous evaluation.
- TEXT_CLASSIFICATION_ANNOTATION = 8;
- // Entity extraction for text.
- TEXT_ENTITY_EXTRACTION_ANNOTATION = 9;
- // General classification. Allowed for continuous evaluation.
- GENERAL_CLASSIFICATION_ANNOTATION = 14;
- }
- // Annotation value for an example.
- message AnnotationValue {
- oneof value_type {
- // Annotation value for image classification case.
- ImageClassificationAnnotation image_classification_annotation = 1;
- // Annotation value for image bounding box, oriented bounding box
- // and polygon cases.
- ImageBoundingPolyAnnotation image_bounding_poly_annotation = 2;
- // Annotation value for image polyline cases.
- // Polyline here is different from BoundingPoly. It is formed by
- // line segments connected to each other but not closed form(Bounding Poly).
- // The line segments can cross each other.
- ImagePolylineAnnotation image_polyline_annotation = 8;
- // Annotation value for image segmentation.
- ImageSegmentationAnnotation image_segmentation_annotation = 9;
- // Annotation value for text classification case.
- TextClassificationAnnotation text_classification_annotation = 3;
- // Annotation value for text entity extraction case.
- TextEntityExtractionAnnotation text_entity_extraction_annotation = 10;
- // Annotation value for video classification case.
- VideoClassificationAnnotation video_classification_annotation = 4;
- // Annotation value for video object detection and tracking case.
- VideoObjectTrackingAnnotation video_object_tracking_annotation = 5;
- // Annotation value for video event case.
- VideoEventAnnotation video_event_annotation = 6;
- }
- }
- // Image classification annotation definition.
- message ImageClassificationAnnotation {
- // Label of image.
- AnnotationSpec annotation_spec = 1;
- }
- // A vertex represents a 2D point in the image.
- // NOTE: the vertex coordinates are in the same scale as the original image.
- message Vertex {
- // X coordinate.
- int32 x = 1;
- // Y coordinate.
- int32 y = 2;
- }
- // A vertex represents a 2D point in the image.
- // NOTE: the normalized vertex coordinates are relative to the original image
- // and range from 0 to 1.
- message NormalizedVertex {
- // X coordinate.
- float x = 1;
- // Y coordinate.
- float y = 2;
- }
- // A bounding polygon in the image.
- message BoundingPoly {
- // The bounding polygon vertices.
- repeated Vertex vertices = 1;
- }
- // Normalized bounding polygon.
- message NormalizedBoundingPoly {
- // The bounding polygon normalized vertices.
- repeated NormalizedVertex normalized_vertices = 1;
- }
- // Image bounding poly annotation. It represents a polygon including
- // bounding box in the image.
- message ImageBoundingPolyAnnotation {
- // The region of the polygon. If it is a bounding box, it is guaranteed to be
- // four points.
- oneof bounded_area {
- BoundingPoly bounding_poly = 2;
- NormalizedBoundingPoly normalized_bounding_poly = 3;
- }
- // Label of object in this bounding polygon.
- AnnotationSpec annotation_spec = 1;
- }
- // A line with multiple line segments.
- message Polyline {
- // The polyline vertices.
- repeated Vertex vertices = 1;
- }
- // Normalized polyline.
- message NormalizedPolyline {
- // The normalized polyline vertices.
- repeated NormalizedVertex normalized_vertices = 1;
- }
- // A polyline for the image annotation.
- message ImagePolylineAnnotation {
- oneof poly {
- Polyline polyline = 2;
- NormalizedPolyline normalized_polyline = 3;
- }
- // Label of this polyline.
- AnnotationSpec annotation_spec = 1;
- }
- // Image segmentation annotation.
- message ImageSegmentationAnnotation {
- // The mapping between rgb color and annotation spec. The key is the rgb
- // color represented in format of rgb(0, 0, 0). The value is the
- // AnnotationSpec.
- map<string, AnnotationSpec> annotation_colors = 1;
- // Image format.
- string mime_type = 2;
- // A byte string of a full image's color map.
- bytes image_bytes = 3;
- }
- // Text classification annotation.
- message TextClassificationAnnotation {
- // Label of the text.
- AnnotationSpec annotation_spec = 1;
- }
- // Text entity extraction annotation.
- message TextEntityExtractionAnnotation {
- // Label of the text entities.
- AnnotationSpec annotation_spec = 1;
- // Position of the entity.
- SequentialSegment sequential_segment = 2;
- }
- // Start and end position in a sequence (e.g. text segment).
- message SequentialSegment {
- // Start position (inclusive).
- int32 start = 1;
- // End position (exclusive).
- int32 end = 2;
- }
- // A time period inside of an example that has a time dimension (e.g. video).
- message TimeSegment {
- // Start of the time segment (inclusive), represented as the duration since
- // the example start.
- google.protobuf.Duration start_time_offset = 1;
- // End of the time segment (exclusive), represented as the duration since the
- // example start.
- google.protobuf.Duration end_time_offset = 2;
- }
- // Video classification annotation.
- message VideoClassificationAnnotation {
- // The time segment of the video to which the annotation applies.
- TimeSegment time_segment = 1;
- // Label of the segment specified by time_segment.
- AnnotationSpec annotation_spec = 2;
- }
- // Video frame level annotation for object detection and tracking.
- message ObjectTrackingFrame {
- // The bounding box location of this object track for the frame.
- oneof bounded_area {
- BoundingPoly bounding_poly = 1;
- NormalizedBoundingPoly normalized_bounding_poly = 2;
- }
- // The time offset of this frame relative to the beginning of the video.
- google.protobuf.Duration time_offset = 3;
- }
- // Video object tracking annotation.
- message VideoObjectTrackingAnnotation {
- // Label of the object tracked in this annotation.
- AnnotationSpec annotation_spec = 1;
- // The time segment of the video to which object tracking applies.
- TimeSegment time_segment = 2;
- // The list of frames where this object track appears.
- repeated ObjectTrackingFrame object_tracking_frames = 3;
- }
- // Video event annotation.
- message VideoEventAnnotation {
- // Label of the event in this annotation.
- AnnotationSpec annotation_spec = 1;
- // The time segment of the video to which the annotation applies.
- TimeSegment time_segment = 2;
- }
- // Additional information associated with the annotation.
- message AnnotationMetadata {
- // Metadata related to human labeling.
- OperatorMetadata operator_metadata = 2;
- }
- // General information useful for labels coming from contributors.
- message OperatorMetadata {
- // Confidence score corresponding to a label. For examle, if 3 contributors
- // have answered the question and 2 of them agree on the final label, the
- // confidence score will be 0.67 (2/3).
- float score = 1;
- // The total number of contributors that answer this question.
- int32 total_votes = 2;
- // The total number of contributors that choose this label.
- int32 label_votes = 3;
- // Comments from contributors.
- repeated string comments = 4;
- }
|