123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- // 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.vision.v1p4beta1;
- import "google/cloud/vision/v1p4beta1/geometry.proto";
- option cc_enable_arenas = true;
- option go_package = "google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1;vision";
- option java_multiple_files = true;
- option java_outer_classname = "TextAnnotationProto";
- option java_package = "com.google.cloud.vision.v1p4beta1";
- option objc_class_prefix = "GCVN";
- // TextAnnotation contains a structured representation of OCR extracted text.
- // The hierarchy of an OCR extracted text structure is like this:
- // TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
- // Each structural component, starting from Page, may further have their own
- // properties. Properties describe detected languages, breaks etc.. Please refer
- // to the
- // [TextAnnotation.TextProperty][google.cloud.vision.v1p4beta1.TextAnnotation.TextProperty]
- // message definition below for more detail.
- message TextAnnotation {
- // Detected language for a structural component.
- message DetectedLanguage {
- // The BCP-47 language code, such as "en-US" or "sr-Latn". For more
- // information, see
- // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
- string language_code = 1;
- // Confidence of detected language. Range [0, 1].
- float confidence = 2;
- }
- // Detected start or end of a structural component.
- message DetectedBreak {
- // Enum to denote the type of break found. New line, space etc.
- enum BreakType {
- // Unknown break label type.
- UNKNOWN = 0;
- // Regular space.
- SPACE = 1;
- // Sure space (very wide).
- SURE_SPACE = 2;
- // Line-wrapping break.
- EOL_SURE_SPACE = 3;
- // End-line hyphen that is not present in text; does not co-occur with
- // `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
- HYPHEN = 4;
- // Line break that ends a paragraph.
- LINE_BREAK = 5;
- }
- // Detected break type.
- BreakType type = 1;
- // True if break prepends the element.
- bool is_prefix = 2;
- }
- // Additional information detected on the structural component.
- message TextProperty {
- // A list of detected languages together with confidence.
- repeated DetectedLanguage detected_languages = 1;
- // Detected start or end of a text segment.
- DetectedBreak detected_break = 2;
- }
- // List of pages detected by OCR.
- repeated Page pages = 1;
- // UTF-8 text detected on the pages.
- string text = 2;
- }
- // Detected page from OCR.
- message Page {
- // Additional information detected on the page.
- TextAnnotation.TextProperty property = 1;
- // Page width. For PDFs the unit is points. For images (including
- // TIFFs) the unit is pixels.
- int32 width = 2;
- // Page height. For PDFs the unit is points. For images (including
- // TIFFs) the unit is pixels.
- int32 height = 3;
- // List of blocks of text, images etc on this page.
- repeated Block blocks = 4;
- // Confidence of the OCR results on the page. Range [0, 1].
- float confidence = 5;
- }
- // Logical element on the page.
- message Block {
- // Type of a block (text, image etc) as identified by OCR.
- enum BlockType {
- // Unknown block type.
- UNKNOWN = 0;
- // Regular text block.
- TEXT = 1;
- // Table block.
- TABLE = 2;
- // Image block.
- PICTURE = 3;
- // Horizontal/vertical line box.
- RULER = 4;
- // Barcode block.
- BARCODE = 5;
- }
- // Additional information detected for the block.
- TextAnnotation.TextProperty property = 1;
- // The bounding box for the block.
- // The vertices are in the order of top-left, top-right, bottom-right,
- // bottom-left. When a rotation of the bounding box is detected the rotation
- // is represented as around the top-left corner as defined when the text is
- // read in the 'natural' orientation.
- // For example:
- //
- // * when the text is horizontal it might look like:
- //
- // 0----1
- // | |
- // 3----2
- //
- // * when it's rotated 180 degrees around the top-left corner it becomes:
- //
- // 2----3
- // | |
- // 1----0
- //
- // and the vertex order will still be (0, 1, 2, 3).
- BoundingPoly bounding_box = 2;
- // List of paragraphs in this block (if this blocks is of type text).
- repeated Paragraph paragraphs = 3;
- // Detected block type (text, image etc) for this block.
- BlockType block_type = 4;
- // Confidence of the OCR results on the block. Range [0, 1].
- float confidence = 5;
- }
- // Structural unit of text representing a number of words in certain order.
- message Paragraph {
- // Additional information detected for the paragraph.
- TextAnnotation.TextProperty property = 1;
- // The bounding box for the paragraph.
- // The vertices are in the order of top-left, top-right, bottom-right,
- // bottom-left. When a rotation of the bounding box is detected the rotation
- // is represented as around the top-left corner as defined when the text is
- // read in the 'natural' orientation.
- // For example:
- // * when the text is horizontal it might look like:
- // 0----1
- // | |
- // 3----2
- // * when it's rotated 180 degrees around the top-left corner it becomes:
- // 2----3
- // | |
- // 1----0
- // and the vertex order will still be (0, 1, 2, 3).
- BoundingPoly bounding_box = 2;
- // List of all words in this paragraph.
- repeated Word words = 3;
- // Confidence of the OCR results for the paragraph. Range [0, 1].
- float confidence = 4;
- }
- // A word representation.
- message Word {
- // Additional information detected for the word.
- TextAnnotation.TextProperty property = 1;
- // The bounding box for the word.
- // The vertices are in the order of top-left, top-right, bottom-right,
- // bottom-left. When a rotation of the bounding box is detected the rotation
- // is represented as around the top-left corner as defined when the text is
- // read in the 'natural' orientation.
- // For example:
- // * when the text is horizontal it might look like:
- // 0----1
- // | |
- // 3----2
- // * when it's rotated 180 degrees around the top-left corner it becomes:
- // 2----3
- // | |
- // 1----0
- // and the vertex order will still be (0, 1, 2, 3).
- BoundingPoly bounding_box = 2;
- // List of symbols in the word.
- // The order of the symbols follows the natural reading order.
- repeated Symbol symbols = 3;
- // Confidence of the OCR results for the word. Range [0, 1].
- float confidence = 4;
- }
- // A single symbol representation.
- message Symbol {
- // Additional information detected for the symbol.
- TextAnnotation.TextProperty property = 1;
- // The bounding box for the symbol.
- // The vertices are in the order of top-left, top-right, bottom-right,
- // bottom-left. When a rotation of the bounding box is detected the rotation
- // is represented as around the top-left corner as defined when the text is
- // read in the 'natural' orientation.
- // For example:
- // * when the text is horizontal it might look like:
- // 0----1
- // | |
- // 3----2
- // * when it's rotated 180 degrees around the top-left corner it becomes:
- // 2----3
- // | |
- // 1----0
- // and the vertex order will still be (0, 1, 2, 3).
- BoundingPoly bounding_box = 2;
- // The actual UTF-8 representation of the symbol.
- string text = 3;
- // Confidence of the OCR results for the symbol. Range [0, 1].
- float confidence = 4;
- }
|