1*d5c09012SAndroid Build Coastguard Worker// Copyright 2019 Google LLC. 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker// 15*d5c09012SAndroid Build Coastguard Worker 16*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 17*d5c09012SAndroid Build Coastguard Worker 18*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.datalabeling.v1beta1; 19*d5c09012SAndroid Build Coastguard Worker 20*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto"; 22*d5c09012SAndroid Build Coastguard Worker 23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.DataLabeling.V1Beta1"; 24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/datalabeling/apiv1beta1/datalabelingpb;datalabelingpb"; 25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 26*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.datalabeling.v1beta1"; 27*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\DataLabeling\\V1beta1"; 28*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::DataLabeling::V1beta1"; 29*d5c09012SAndroid Build Coastguard Worker 30*d5c09012SAndroid Build Coastguard Worker// Specifies where the annotation comes from (whether it was provided by a 31*d5c09012SAndroid Build Coastguard Worker// human labeler or a different source). 32*d5c09012SAndroid Build Coastguard Workerenum AnnotationSource { 33*d5c09012SAndroid Build Coastguard Worker ANNOTATION_SOURCE_UNSPECIFIED = 0; 34*d5c09012SAndroid Build Coastguard Worker 35*d5c09012SAndroid Build Coastguard Worker // Answer is provided by a human contributor. 36*d5c09012SAndroid Build Coastguard Worker OPERATOR = 3; 37*d5c09012SAndroid Build Coastguard Worker} 38*d5c09012SAndroid Build Coastguard Worker 39*d5c09012SAndroid Build Coastguard Worker// Annotation for Example. Each example may have one or more annotations. For 40*d5c09012SAndroid Build Coastguard Worker// example in image classification problem, each image might have one or more 41*d5c09012SAndroid Build Coastguard Worker// labels. We call labels binded with this image an Annotation. 42*d5c09012SAndroid Build Coastguard Workermessage Annotation { 43*d5c09012SAndroid Build Coastguard Worker // Output only. Unique name of this annotation, format is: 44*d5c09012SAndroid Build Coastguard Worker // 45*d5c09012SAndroid Build Coastguard Worker // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset}/examples/{example_id}/annotations/{annotation_id} 46*d5c09012SAndroid Build Coastguard Worker string name = 1; 47*d5c09012SAndroid Build Coastguard Worker 48*d5c09012SAndroid Build Coastguard Worker // Output only. The source of the annotation. 49*d5c09012SAndroid Build Coastguard Worker AnnotationSource annotation_source = 2; 50*d5c09012SAndroid Build Coastguard Worker 51*d5c09012SAndroid Build Coastguard Worker // Output only. This is the actual annotation value, e.g classification, 52*d5c09012SAndroid Build Coastguard Worker // bounding box values are stored here. 53*d5c09012SAndroid Build Coastguard Worker AnnotationValue annotation_value = 3; 54*d5c09012SAndroid Build Coastguard Worker 55*d5c09012SAndroid Build Coastguard Worker // Output only. Annotation metadata, including information like votes 56*d5c09012SAndroid Build Coastguard Worker // for labels. 57*d5c09012SAndroid Build Coastguard Worker AnnotationMetadata annotation_metadata = 4; 58*d5c09012SAndroid Build Coastguard Worker 59*d5c09012SAndroid Build Coastguard Worker // Output only. Sentiment for this annotation. 60*d5c09012SAndroid Build Coastguard Worker AnnotationSentiment annotation_sentiment = 6; 61*d5c09012SAndroid Build Coastguard Worker} 62*d5c09012SAndroid Build Coastguard Worker 63*d5c09012SAndroid Build Coastguard Workerenum AnnotationSentiment { 64*d5c09012SAndroid Build Coastguard Worker ANNOTATION_SENTIMENT_UNSPECIFIED = 0; 65*d5c09012SAndroid Build Coastguard Worker 66*d5c09012SAndroid Build Coastguard Worker // This annotation describes negatively about the data. 67*d5c09012SAndroid Build Coastguard Worker NEGATIVE = 1; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // This label describes positively about the data. 70*d5c09012SAndroid Build Coastguard Worker POSITIVE = 2; 71*d5c09012SAndroid Build Coastguard Worker} 72*d5c09012SAndroid Build Coastguard Worker 73*d5c09012SAndroid Build Coastguard Workerenum AnnotationType { 74*d5c09012SAndroid Build Coastguard Worker ANNOTATION_TYPE_UNSPECIFIED = 0; 75*d5c09012SAndroid Build Coastguard Worker 76*d5c09012SAndroid Build Coastguard Worker // Classification annotations in an image. Allowed for continuous evaluation. 77*d5c09012SAndroid Build Coastguard Worker IMAGE_CLASSIFICATION_ANNOTATION = 1; 78*d5c09012SAndroid Build Coastguard Worker 79*d5c09012SAndroid Build Coastguard Worker // Bounding box annotations in an image. A form of image object detection. 80*d5c09012SAndroid Build Coastguard Worker // Allowed for continuous evaluation. 81*d5c09012SAndroid Build Coastguard Worker IMAGE_BOUNDING_BOX_ANNOTATION = 2; 82*d5c09012SAndroid Build Coastguard Worker 83*d5c09012SAndroid Build Coastguard Worker // Oriented bounding box. The box does not have to be parallel to horizontal 84*d5c09012SAndroid Build Coastguard Worker // line. 85*d5c09012SAndroid Build Coastguard Worker IMAGE_ORIENTED_BOUNDING_BOX_ANNOTATION = 13; 86*d5c09012SAndroid Build Coastguard Worker 87*d5c09012SAndroid Build Coastguard Worker // Bounding poly annotations in an image. 88*d5c09012SAndroid Build Coastguard Worker IMAGE_BOUNDING_POLY_ANNOTATION = 10; 89*d5c09012SAndroid Build Coastguard Worker 90*d5c09012SAndroid Build Coastguard Worker // Polyline annotations in an image. 91*d5c09012SAndroid Build Coastguard Worker IMAGE_POLYLINE_ANNOTATION = 11; 92*d5c09012SAndroid Build Coastguard Worker 93*d5c09012SAndroid Build Coastguard Worker // Segmentation annotations in an image. 94*d5c09012SAndroid Build Coastguard Worker IMAGE_SEGMENTATION_ANNOTATION = 12; 95*d5c09012SAndroid Build Coastguard Worker 96*d5c09012SAndroid Build Coastguard Worker // Classification annotations in video shots. 97*d5c09012SAndroid Build Coastguard Worker VIDEO_SHOTS_CLASSIFICATION_ANNOTATION = 3; 98*d5c09012SAndroid Build Coastguard Worker 99*d5c09012SAndroid Build Coastguard Worker // Video object tracking annotation. 100*d5c09012SAndroid Build Coastguard Worker VIDEO_OBJECT_TRACKING_ANNOTATION = 4; 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Video object detection annotation. 103*d5c09012SAndroid Build Coastguard Worker VIDEO_OBJECT_DETECTION_ANNOTATION = 5; 104*d5c09012SAndroid Build Coastguard Worker 105*d5c09012SAndroid Build Coastguard Worker // Video event annotation. 106*d5c09012SAndroid Build Coastguard Worker VIDEO_EVENT_ANNOTATION = 6; 107*d5c09012SAndroid Build Coastguard Worker 108*d5c09012SAndroid Build Coastguard Worker // Classification for text. Allowed for continuous evaluation. 109*d5c09012SAndroid Build Coastguard Worker TEXT_CLASSIFICATION_ANNOTATION = 8; 110*d5c09012SAndroid Build Coastguard Worker 111*d5c09012SAndroid Build Coastguard Worker // Entity extraction for text. 112*d5c09012SAndroid Build Coastguard Worker TEXT_ENTITY_EXTRACTION_ANNOTATION = 9; 113*d5c09012SAndroid Build Coastguard Worker 114*d5c09012SAndroid Build Coastguard Worker // General classification. Allowed for continuous evaluation. 115*d5c09012SAndroid Build Coastguard Worker GENERAL_CLASSIFICATION_ANNOTATION = 14; 116*d5c09012SAndroid Build Coastguard Worker} 117*d5c09012SAndroid Build Coastguard Worker 118*d5c09012SAndroid Build Coastguard Worker// Annotation value for an example. 119*d5c09012SAndroid Build Coastguard Workermessage AnnotationValue { 120*d5c09012SAndroid Build Coastguard Worker oneof value_type { 121*d5c09012SAndroid Build Coastguard Worker // Annotation value for image classification case. 122*d5c09012SAndroid Build Coastguard Worker ImageClassificationAnnotation image_classification_annotation = 1; 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // Annotation value for image bounding box, oriented bounding box 125*d5c09012SAndroid Build Coastguard Worker // and polygon cases. 126*d5c09012SAndroid Build Coastguard Worker ImageBoundingPolyAnnotation image_bounding_poly_annotation = 2; 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // Annotation value for image polyline cases. 129*d5c09012SAndroid Build Coastguard Worker // Polyline here is different from BoundingPoly. It is formed by 130*d5c09012SAndroid Build Coastguard Worker // line segments connected to each other but not closed form(Bounding Poly). 131*d5c09012SAndroid Build Coastguard Worker // The line segments can cross each other. 132*d5c09012SAndroid Build Coastguard Worker ImagePolylineAnnotation image_polyline_annotation = 8; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // Annotation value for image segmentation. 135*d5c09012SAndroid Build Coastguard Worker ImageSegmentationAnnotation image_segmentation_annotation = 9; 136*d5c09012SAndroid Build Coastguard Worker 137*d5c09012SAndroid Build Coastguard Worker // Annotation value for text classification case. 138*d5c09012SAndroid Build Coastguard Worker TextClassificationAnnotation text_classification_annotation = 3; 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // Annotation value for text entity extraction case. 141*d5c09012SAndroid Build Coastguard Worker TextEntityExtractionAnnotation text_entity_extraction_annotation = 10; 142*d5c09012SAndroid Build Coastguard Worker 143*d5c09012SAndroid Build Coastguard Worker // Annotation value for video classification case. 144*d5c09012SAndroid Build Coastguard Worker VideoClassificationAnnotation video_classification_annotation = 4; 145*d5c09012SAndroid Build Coastguard Worker 146*d5c09012SAndroid Build Coastguard Worker // Annotation value for video object detection and tracking case. 147*d5c09012SAndroid Build Coastguard Worker VideoObjectTrackingAnnotation video_object_tracking_annotation = 5; 148*d5c09012SAndroid Build Coastguard Worker 149*d5c09012SAndroid Build Coastguard Worker // Annotation value for video event case. 150*d5c09012SAndroid Build Coastguard Worker VideoEventAnnotation video_event_annotation = 6; 151*d5c09012SAndroid Build Coastguard Worker } 152*d5c09012SAndroid Build Coastguard Worker} 153*d5c09012SAndroid Build Coastguard Worker 154*d5c09012SAndroid Build Coastguard Worker// Image classification annotation definition. 155*d5c09012SAndroid Build Coastguard Workermessage ImageClassificationAnnotation { 156*d5c09012SAndroid Build Coastguard Worker // Label of image. 157*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 158*d5c09012SAndroid Build Coastguard Worker} 159*d5c09012SAndroid Build Coastguard Worker 160*d5c09012SAndroid Build Coastguard Worker// A vertex represents a 2D point in the image. 161*d5c09012SAndroid Build Coastguard Worker// NOTE: the vertex coordinates are in the same scale as the original image. 162*d5c09012SAndroid Build Coastguard Workermessage Vertex { 163*d5c09012SAndroid Build Coastguard Worker // X coordinate. 164*d5c09012SAndroid Build Coastguard Worker int32 x = 1; 165*d5c09012SAndroid Build Coastguard Worker 166*d5c09012SAndroid Build Coastguard Worker // Y coordinate. 167*d5c09012SAndroid Build Coastguard Worker int32 y = 2; 168*d5c09012SAndroid Build Coastguard Worker} 169*d5c09012SAndroid Build Coastguard Worker 170*d5c09012SAndroid Build Coastguard Worker// A vertex represents a 2D point in the image. 171*d5c09012SAndroid Build Coastguard Worker// NOTE: the normalized vertex coordinates are relative to the original image 172*d5c09012SAndroid Build Coastguard Worker// and range from 0 to 1. 173*d5c09012SAndroid Build Coastguard Workermessage NormalizedVertex { 174*d5c09012SAndroid Build Coastguard Worker // X coordinate. 175*d5c09012SAndroid Build Coastguard Worker float x = 1; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // Y coordinate. 178*d5c09012SAndroid Build Coastguard Worker float y = 2; 179*d5c09012SAndroid Build Coastguard Worker} 180*d5c09012SAndroid Build Coastguard Worker 181*d5c09012SAndroid Build Coastguard Worker// A bounding polygon in the image. 182*d5c09012SAndroid Build Coastguard Workermessage BoundingPoly { 183*d5c09012SAndroid Build Coastguard Worker // The bounding polygon vertices. 184*d5c09012SAndroid Build Coastguard Worker repeated Vertex vertices = 1; 185*d5c09012SAndroid Build Coastguard Worker} 186*d5c09012SAndroid Build Coastguard Worker 187*d5c09012SAndroid Build Coastguard Worker// Normalized bounding polygon. 188*d5c09012SAndroid Build Coastguard Workermessage NormalizedBoundingPoly { 189*d5c09012SAndroid Build Coastguard Worker // The bounding polygon normalized vertices. 190*d5c09012SAndroid Build Coastguard Worker repeated NormalizedVertex normalized_vertices = 1; 191*d5c09012SAndroid Build Coastguard Worker} 192*d5c09012SAndroid Build Coastguard Worker 193*d5c09012SAndroid Build Coastguard Worker// Image bounding poly annotation. It represents a polygon including 194*d5c09012SAndroid Build Coastguard Worker// bounding box in the image. 195*d5c09012SAndroid Build Coastguard Workermessage ImageBoundingPolyAnnotation { 196*d5c09012SAndroid Build Coastguard Worker // The region of the polygon. If it is a bounding box, it is guaranteed to be 197*d5c09012SAndroid Build Coastguard Worker // four points. 198*d5c09012SAndroid Build Coastguard Worker oneof bounded_area { 199*d5c09012SAndroid Build Coastguard Worker BoundingPoly bounding_poly = 2; 200*d5c09012SAndroid Build Coastguard Worker 201*d5c09012SAndroid Build Coastguard Worker NormalizedBoundingPoly normalized_bounding_poly = 3; 202*d5c09012SAndroid Build Coastguard Worker } 203*d5c09012SAndroid Build Coastguard Worker 204*d5c09012SAndroid Build Coastguard Worker // Label of object in this bounding polygon. 205*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 206*d5c09012SAndroid Build Coastguard Worker} 207*d5c09012SAndroid Build Coastguard Worker 208*d5c09012SAndroid Build Coastguard Worker// A line with multiple line segments. 209*d5c09012SAndroid Build Coastguard Workermessage Polyline { 210*d5c09012SAndroid Build Coastguard Worker // The polyline vertices. 211*d5c09012SAndroid Build Coastguard Worker repeated Vertex vertices = 1; 212*d5c09012SAndroid Build Coastguard Worker} 213*d5c09012SAndroid Build Coastguard Worker 214*d5c09012SAndroid Build Coastguard Worker// Normalized polyline. 215*d5c09012SAndroid Build Coastguard Workermessage NormalizedPolyline { 216*d5c09012SAndroid Build Coastguard Worker // The normalized polyline vertices. 217*d5c09012SAndroid Build Coastguard Worker repeated NormalizedVertex normalized_vertices = 1; 218*d5c09012SAndroid Build Coastguard Worker} 219*d5c09012SAndroid Build Coastguard Worker 220*d5c09012SAndroid Build Coastguard Worker// A polyline for the image annotation. 221*d5c09012SAndroid Build Coastguard Workermessage ImagePolylineAnnotation { 222*d5c09012SAndroid Build Coastguard Worker oneof poly { 223*d5c09012SAndroid Build Coastguard Worker Polyline polyline = 2; 224*d5c09012SAndroid Build Coastguard Worker 225*d5c09012SAndroid Build Coastguard Worker NormalizedPolyline normalized_polyline = 3; 226*d5c09012SAndroid Build Coastguard Worker } 227*d5c09012SAndroid Build Coastguard Worker 228*d5c09012SAndroid Build Coastguard Worker // Label of this polyline. 229*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 230*d5c09012SAndroid Build Coastguard Worker} 231*d5c09012SAndroid Build Coastguard Worker 232*d5c09012SAndroid Build Coastguard Worker// Image segmentation annotation. 233*d5c09012SAndroid Build Coastguard Workermessage ImageSegmentationAnnotation { 234*d5c09012SAndroid Build Coastguard Worker // The mapping between rgb color and annotation spec. The key is the rgb 235*d5c09012SAndroid Build Coastguard Worker // color represented in format of rgb(0, 0, 0). The value is the 236*d5c09012SAndroid Build Coastguard Worker // AnnotationSpec. 237*d5c09012SAndroid Build Coastguard Worker map<string, AnnotationSpec> annotation_colors = 1; 238*d5c09012SAndroid Build Coastguard Worker 239*d5c09012SAndroid Build Coastguard Worker // Image format. 240*d5c09012SAndroid Build Coastguard Worker string mime_type = 2; 241*d5c09012SAndroid Build Coastguard Worker 242*d5c09012SAndroid Build Coastguard Worker // A byte string of a full image's color map. 243*d5c09012SAndroid Build Coastguard Worker bytes image_bytes = 3; 244*d5c09012SAndroid Build Coastguard Worker} 245*d5c09012SAndroid Build Coastguard Worker 246*d5c09012SAndroid Build Coastguard Worker// Text classification annotation. 247*d5c09012SAndroid Build Coastguard Workermessage TextClassificationAnnotation { 248*d5c09012SAndroid Build Coastguard Worker // Label of the text. 249*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 250*d5c09012SAndroid Build Coastguard Worker} 251*d5c09012SAndroid Build Coastguard Worker 252*d5c09012SAndroid Build Coastguard Worker// Text entity extraction annotation. 253*d5c09012SAndroid Build Coastguard Workermessage TextEntityExtractionAnnotation { 254*d5c09012SAndroid Build Coastguard Worker // Label of the text entities. 255*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 256*d5c09012SAndroid Build Coastguard Worker 257*d5c09012SAndroid Build Coastguard Worker // Position of the entity. 258*d5c09012SAndroid Build Coastguard Worker SequentialSegment sequential_segment = 2; 259*d5c09012SAndroid Build Coastguard Worker} 260*d5c09012SAndroid Build Coastguard Worker 261*d5c09012SAndroid Build Coastguard Worker// Start and end position in a sequence (e.g. text segment). 262*d5c09012SAndroid Build Coastguard Workermessage SequentialSegment { 263*d5c09012SAndroid Build Coastguard Worker // Start position (inclusive). 264*d5c09012SAndroid Build Coastguard Worker int32 start = 1; 265*d5c09012SAndroid Build Coastguard Worker 266*d5c09012SAndroid Build Coastguard Worker // End position (exclusive). 267*d5c09012SAndroid Build Coastguard Worker int32 end = 2; 268*d5c09012SAndroid Build Coastguard Worker} 269*d5c09012SAndroid Build Coastguard Worker 270*d5c09012SAndroid Build Coastguard Worker// A time period inside of an example that has a time dimension (e.g. video). 271*d5c09012SAndroid Build Coastguard Workermessage TimeSegment { 272*d5c09012SAndroid Build Coastguard Worker // Start of the time segment (inclusive), represented as the duration since 273*d5c09012SAndroid Build Coastguard Worker // the example start. 274*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration start_time_offset = 1; 275*d5c09012SAndroid Build Coastguard Worker 276*d5c09012SAndroid Build Coastguard Worker // End of the time segment (exclusive), represented as the duration since the 277*d5c09012SAndroid Build Coastguard Worker // example start. 278*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration end_time_offset = 2; 279*d5c09012SAndroid Build Coastguard Worker} 280*d5c09012SAndroid Build Coastguard Worker 281*d5c09012SAndroid Build Coastguard Worker// Video classification annotation. 282*d5c09012SAndroid Build Coastguard Workermessage VideoClassificationAnnotation { 283*d5c09012SAndroid Build Coastguard Worker // The time segment of the video to which the annotation applies. 284*d5c09012SAndroid Build Coastguard Worker TimeSegment time_segment = 1; 285*d5c09012SAndroid Build Coastguard Worker 286*d5c09012SAndroid Build Coastguard Worker // Label of the segment specified by time_segment. 287*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 2; 288*d5c09012SAndroid Build Coastguard Worker} 289*d5c09012SAndroid Build Coastguard Worker 290*d5c09012SAndroid Build Coastguard Worker// Video frame level annotation for object detection and tracking. 291*d5c09012SAndroid Build Coastguard Workermessage ObjectTrackingFrame { 292*d5c09012SAndroid Build Coastguard Worker // The bounding box location of this object track for the frame. 293*d5c09012SAndroid Build Coastguard Worker oneof bounded_area { 294*d5c09012SAndroid Build Coastguard Worker BoundingPoly bounding_poly = 1; 295*d5c09012SAndroid Build Coastguard Worker 296*d5c09012SAndroid Build Coastguard Worker NormalizedBoundingPoly normalized_bounding_poly = 2; 297*d5c09012SAndroid Build Coastguard Worker } 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker // The time offset of this frame relative to the beginning of the video. 300*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration time_offset = 3; 301*d5c09012SAndroid Build Coastguard Worker} 302*d5c09012SAndroid Build Coastguard Worker 303*d5c09012SAndroid Build Coastguard Worker// Video object tracking annotation. 304*d5c09012SAndroid Build Coastguard Workermessage VideoObjectTrackingAnnotation { 305*d5c09012SAndroid Build Coastguard Worker // Label of the object tracked in this annotation. 306*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 307*d5c09012SAndroid Build Coastguard Worker 308*d5c09012SAndroid Build Coastguard Worker // The time segment of the video to which object tracking applies. 309*d5c09012SAndroid Build Coastguard Worker TimeSegment time_segment = 2; 310*d5c09012SAndroid Build Coastguard Worker 311*d5c09012SAndroid Build Coastguard Worker // The list of frames where this object track appears. 312*d5c09012SAndroid Build Coastguard Worker repeated ObjectTrackingFrame object_tracking_frames = 3; 313*d5c09012SAndroid Build Coastguard Worker} 314*d5c09012SAndroid Build Coastguard Worker 315*d5c09012SAndroid Build Coastguard Worker// Video event annotation. 316*d5c09012SAndroid Build Coastguard Workermessage VideoEventAnnotation { 317*d5c09012SAndroid Build Coastguard Worker // Label of the event in this annotation. 318*d5c09012SAndroid Build Coastguard Worker AnnotationSpec annotation_spec = 1; 319*d5c09012SAndroid Build Coastguard Worker 320*d5c09012SAndroid Build Coastguard Worker // The time segment of the video to which the annotation applies. 321*d5c09012SAndroid Build Coastguard Worker TimeSegment time_segment = 2; 322*d5c09012SAndroid Build Coastguard Worker} 323*d5c09012SAndroid Build Coastguard Worker 324*d5c09012SAndroid Build Coastguard Worker// Additional information associated with the annotation. 325*d5c09012SAndroid Build Coastguard Workermessage AnnotationMetadata { 326*d5c09012SAndroid Build Coastguard Worker // Metadata related to human labeling. 327*d5c09012SAndroid Build Coastguard Worker OperatorMetadata operator_metadata = 2; 328*d5c09012SAndroid Build Coastguard Worker} 329*d5c09012SAndroid Build Coastguard Worker 330*d5c09012SAndroid Build Coastguard Worker// General information useful for labels coming from contributors. 331*d5c09012SAndroid Build Coastguard Workermessage OperatorMetadata { 332*d5c09012SAndroid Build Coastguard Worker // Confidence score corresponding to a label. For examle, if 3 contributors 333*d5c09012SAndroid Build Coastguard Worker // have answered the question and 2 of them agree on the final label, the 334*d5c09012SAndroid Build Coastguard Worker // confidence score will be 0.67 (2/3). 335*d5c09012SAndroid Build Coastguard Worker float score = 1; 336*d5c09012SAndroid Build Coastguard Worker 337*d5c09012SAndroid Build Coastguard Worker // The total number of contributors that answer this question. 338*d5c09012SAndroid Build Coastguard Worker int32 total_votes = 2; 339*d5c09012SAndroid Build Coastguard Worker 340*d5c09012SAndroid Build Coastguard Worker // The total number of contributors that choose this label. 341*d5c09012SAndroid Build Coastguard Worker int32 label_votes = 3; 342*d5c09012SAndroid Build Coastguard Worker 343*d5c09012SAndroid Build Coastguard Worker // Comments from contributors. 344*d5c09012SAndroid Build Coastguard Worker repeated string comments = 4; 345*d5c09012SAndroid Build Coastguard Worker} 346