【问题标题】:Google Cloud Vision Raw JSON ResponseGoogle Cloud Vision 原始 JSON 响应
【发布时间】:2018-04-02 16:45:04
【问题描述】:

通过拖放Try Drag and Drop 尝试谷歌云视觉时,最后一个选项卡具有原始 JSON。我们需要传递什么参数来获取该数据?

我目前正在做 DOCUMENT_TEXT_DETECTION,但它只提供单词级别的数据,而不是单个字符的数据。

编辑:我修改了这段代码vision test并改变了功能......

feature := &vision.Feature{
    Type: "DOCUMENT_TEXT_DETECTION",
}

和打印到...

body, err := json.Marshal(res)
fmt.Println(string(body))

我只在输出中看到 textAnnotations。

【问题讨论】:

  • 天哪!我应该在公开场合不好意思这样说,但我仍然会为其他人说。我的错误是我在默认 GOPATH 中有一个非常旧版本的视觉库,并且在本地供应商中有最新版本。我分裂成一个终端屏幕,在那里我忘记了重置 GOPATH。我花了另一个不可能的编译错误才最终意识到我的错误。一旦我这样做了,就没事了。

标签: google-cloud-vision


【解决方案1】:

JSON 文件包含不同的内容,如文本、位置等,您关心的是获取全文。 这里我添加一个 Python 代码,它说你可以通过渲染 JSON 文件来获取全文,你会使用 data['fullTextAnnotation']['text'] 找到你需要的结果,你可以通过打破这个来获取字符文件分成更小的块,我猜 JSON 文件中有单独的字符,但我从未处理过它。

import json
from pprint import pprint
data = json.load(open('File Path'))
pprint(data['fullTextAnnotation']['text'])

【讨论】:

    【解决方案2】:

    好吧,如果你检查得当,在最后一个包含原始 JSON 的选项卡中有各种可用的东西。 根据您的要求,您可以获取其中任何一个。

    从您从 DOCUMENT_TEXT_DETECTION 获得的响应中,您可以获取 text_annotations、full_text_annotations 等。

    从 text_annotations 中,您可以获取描述、整个文本的语言、文本的每个单词、数字、特殊字符及其各自的坐标。

    从 full_text_annotations,您可以获取页面、数据块、段落和单个字符,以及它们各自的坐标和置信度分数。

    【讨论】:

    • 你真的试过这个吗?你有任何工作代码吗?我在 DOCUMENT_TEXT_DETECTION 的响应中只看到 textAnnotations。
    • 我正在为我的项目使用 Google Cloud 客户端库,如果您查看此 URL cloud.google.com/vision/docs/fulltext-annotations,您将获得实施所需的所有详细信息。
    【解决方案3】:

    使用与 Go 语言相同的代码模板: 在这个page 的浏览器中搜索“type Feature struct”。您可以看到以下特征类型和描述:

    // Type: The feature type.
        //
        // Possible values:
        //   "TYPE_UNSPECIFIED" - Unspecified feature type.
        //   "FACE_DETECTION" - Run face detection.
        //   "LANDMARK_DETECTION" - Run landmark detection.
        //   "LOGO_DETECTION" - Run logo detection.
        //   "LABEL_DETECTION" - Run label detection.
        //   "TEXT_DETECTION" - Run text detection / optical character
        // recognition (OCR). Text detection
        // is optimized for areas of text within a larger image; if the image
        // is
        // a document, use `DOCUMENT_TEXT_DETECTION` instead.
        //   "DOCUMENT_TEXT_DETECTION" - Run dense text document OCR. Takes
        // precedence when both
        // `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present.
        //   "SAFE_SEARCH_DETECTION" - Run Safe Search to detect potentially
        // unsafe
        // or undesirable content.
        //   "IMAGE_PROPERTIES" - Compute a set of image properties, such as
        // the
        // image's dominant colors.
        //   "CROP_HINTS" - Run crop hints.
        //   "WEB_DETECTION" - Run web detection.
    

    没有直接显示 JSON 选项卡内容的选项。 JSON 选项卡内容是所有选项卡“输出”的添加。用户往往只要求一个。例如,当有人在分析人脸时,对文本检测不感兴趣。

    如果您需要多个特征,您可以通过将所有可能值的结果“相加”在一起来获得多个特征输出。根据上述事实,我在您的代码中添加了以下几行:

        feature2 := &vision.Feature{
            Type:       "LABEL_DETECTION",
            MaxResults: 10,
        }
    
        req2 := &vision.AnnotateImageRequest{
            Image:    img,
            Features: []*vision.Feature{feature2},
        }
    
        batch2 := &vision.BatchAnnotateImagesRequest{
            Requests: []*vision.AnnotateImageRequest{req2},
        }
    
        res2, err := svc.Images.Annotate(batch2).Do()
        if err != nil {
            log.Fatal(err)
        }
    
        body2, err := json.Marshal(res2)
        fmt.Println(string(body2))
    

    我已经对其进行了测试并且可以正常工作。您应该为您感兴趣的所有功能添加此代码块。如果您打算添加其中许多,我建议创建一个函数/循环以避免重复代码。

    无论如何,我建议您通过调用 API 而不是使用客户端库来完成请求 here 以便准确获取 JSON 输出(提供单词或字母级别的数据)。我已经使用下一个代码来获取我感兴趣的数字的边界框:

    {
    "requests":
      [
        {
          "features":
            [
              {
              "type":
              ""
    
              "maxResults":
    
              -- add a property --model
              }
    
              {
                "type":
              ""
    
              -- add a property --maxResultsmodel
              }
    
    
              ]
                "image":
              {
                "source":
                {
                  "gcsImageUri":
                  ""
    
                  -- add a property --imageUri
                }
                -- add a property --content
              }
            -- add a property --imageContext
           }
    
    
        ]
      -- add a property --
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      相关资源
      最近更新 更多