Firebase ML Vision TextRecogniser修改结果以进行更好的搜索

问题描述 投票:0回答:1

我在Flutter应用程序中不断遇到Firebase Ml-Vision的问题,结果不准确。现在,我了解到总会有一些失准的准确性,但是我正在尝试找出一种方法,至少可以尝试避开一些更明显的问题。

因为我需要搜索标牌文本以查看它是否与特定的预定义字符串列表匹配,所以我试图找出一种方法,使我可以采用一个特定的单词(例如下面提到的一个单词)并创建所有排列的列表其中以下字母和数字为因素:-

  • 0 = O和O = 0
  • 1 = l和l = 1
  • 2 = z和z = 2
  • 5 = s和s = 5
  • 6 = b和b = 6
  • 7 = T和T = 7

问题是,某些字母或数字将被它们相反的字母或数字所代替。例如:OCR可以将单词“ slob”读为“ 5lob”,“ s1ob”,“ sl0b”,“ slo6”甚至是“ 5106”。

我不确定颤振/飞镖功能中是否有一些可以帮助您解决此问题的功能。我唯一的东西就是一堆嵌套起来非常讨厌的循环。我觉得必须有一些优雅的方法来实现这一目标。这种算法甚至没有术语?

flutter ocr permutation firebase-mlkit mlvision
1个回答
1
投票

在那儿。

[不幸的是,由于您认为Flutter是一个移动应用程序框架,因此没有Flutter在功能中诞生”。这些东西(OCR / ML-Vision)属于其他领域。

您可以通过简单的REST API进行操作。您将从Firebase ML-Vision收到的文本发送到API,然后获取响应文本。您可以使用自己选择的编程语言。下面是您可以在API中执行的操作。

使用Levenshtein distance。这给出了两个词之间的“距离”。例如:

  1. 单词“ slob”和“ slob”之间的距离为0。
  2. 单词“ slob”和“ 5lob”之间的距离为1。
  3. 单词“ slob”和“ Flutter”之间的距离为6。
  4. 单词“ slob”和“ market”之间的距离为6。

您可以尝试单词对here。您可能会用您选择的编程语言在Levenshtein距离的代码中进行搜索。

一种替代方法是在Python中使用FuzzyWuzzy。 Fuzzywuzzy是一个Python库,使用Levenshtein距离来计算易于使用的程序包中序列之间的差异。查找有关FuzzyWuzzy here的更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.