【发布时间】: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
但是我仍然有同样的问题:如何将商品与正确的价格配对?
【问题讨论】:
-
您可以获得三个级别的文本结果 - 块、行和元素(以增加的粒度) - 您使用的是哪个级别?见developers.google.com/ml-kit/vision/text-recognition/…
-
感谢您的回答!如帖子所述,我发布的结果是块。
标签: android kotlin firebase-mlkit google-mlkit