【问题标题】:ML Kit text recognition: How to get text based on position in image?ML Kit 文本识别:如何根据图像中的位置获取文本?
【发布时间】:2020-10-25 00:20:30
【问题描述】:

我正在为自己制作一个应用程序来扫描收据,并将数据放入数据库中。我尝试使用 ML kit 文本识别,效果很好。但是,我在从识别的文本中提取数据时遇到问题。我会用一个例子来解释:

这是收据的格式,这就是我想要获取数据的方式:

+--------+--------+-------+-------+
| Amount |  Name  | Price | Total |
+--------+--------+-------+-------+
|      1 | Cheese |       | 1,15  |
|      1 | Eggs   |       | 2,59  |
|      2 | Milk   | 0,99  | 1,98  |
|      1 | Butter |       | 0,80  |
+--------+--------+-------+-------+

但是,在运行文本识别时,它会以非常奇怪的方式格式化数据。例如,上面的收据会给出这些块:

Amount
Price
Name Cheese Eggs Milk 0,99
Butter
Total 1,15 2,59
1,98 0,80

它似乎跳过了金额列中的单个数字,但我可以解决这个问题。但是我不知道如何将上述数据解析为我想要的数据,尤其是将价格与名称联系起来。有没有办法改变区块,让它只取收据的行或列,而不是这种随机性?

编辑:当使用线条或元素而不是块时,我得到以下结果:

Amount
Price
Name
Cheese
Eggs
Milk
0,99
Butter
Total
1,15
2,59
1,98
0,80

但是我仍然有同样的问题:如何将商品与正确的价格配对?

【问题讨论】:

标签: android kotlin firebase-mlkit google-mlkit


【解决方案1】:

在这种情况下尝试使用线条或元素而不是块 (https://developers.google.com/ml-kit/vision/text-recognition/android#4.-extract-text-from-blocks-of-recognized-text),然后使用这些块的位置来重建表格。

【讨论】:

  • 感谢您的回答!我试过了,但我仍然有同样的问题:如何将商品与正确的价格配对?
  • 您需要根据文本框坐标使用element.cornerPointselement.boundingBox进行自己的关联
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多