谷歌云视觉 DOCUMENT_TEXT_DETECTION 语言提示 - 我怎样才能让武力只使用一种语言?

Posted

技术标签:

【中文标题】谷歌云视觉 DOCUMENT_TEXT_DETECTION 语言提示 - 我怎样才能让武力只使用一种语言?【英文标题】:Google cloud vision DOCUMENT_TEXT_DETECTION language hints - how i can make force use only one language? 【发布时间】:2021-04-28 01:02:36 【问题描述】:

我在文档上进行文本识别。 .NET Core 库

var client = ImageAnnotatorClient.Create();
                ImageContext context = new ImageContext();
                foreach (var hints in context.LanguageHints)
                
                    Console.WriteLine("hint " + hints);
                
               var response = client.DetectDocumentText(fromBytes, context);

在俄语中有一个短语“Однажды вечером”(一个晚上)

如果我在没有语言提示的情况下使用 Google DOCUMENT_TEXT_DETECTION,那么我会得到结果“ОДНАЖДЫ BELEPOM”(第一个单词正确!第二个 - 失败)

好吧,可能是对语言有疑问,我们会明确指出是俄语

  context.LanguageHints.Add("ru");
  var response = client.DetectDocumentText(fromBytes, context);

结果是一样的——第二个词完全是拉丁文。

我想,不知怎的,我问错了提示?让我们试试其他语言的例子

context.LanguageHints.Add("en");
  var response = client.DetectDocumentText(fromBytes, context);

结果:

DAHAYKALI BELEPOM

正如我们所见,提示功能是独立工作的,只是俄语单词“ВЕЧЕРОМ”(On Evening)被识别得如此低的置信度,以至于回退到在英语 OCR 中使用。

问题是 - 你如何强制禁用所有 OCR 模块,除了只有一种语言?(在这种情况下是俄语)让他至少尝试识别俄语字母,尽管信心不足。

【问题讨论】:

【参考方案1】:

将您的请求与 API 中的请求进行比较,在 api 中您会收到正确的值。 “Однажды вечером” (向下滚动你有请求 json)

【讨论】:

【参考方案2】:

根据link,无法限制语言,这只是一个提示。

解决方案,不确定它是否会起作用,是使用带有受限字符集的 tesseract 并通过它运行此文本。 https://***.com/a/70345684/14980950.

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review “使用带有受限字符集的 tesseract 并通过它运行此文本。”这是答案的重要部分。

以上是关于谷歌云视觉 DOCUMENT_TEXT_DETECTION 语言提示 - 我怎样才能让武力只使用一种语言?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云视觉类别检测

谷歌云视觉块索引

使用谷歌云视觉 API

谷歌云视觉 API“请求准入被拒绝”

来自谷歌云视觉 API OCR 的逐行数据

Android 谷歌云视觉 API 获取 Json 并使用 Json 去另一个活动