gpt4 book ai didi

c# - 微软计算机视觉 OCR : Disable grouping text by regions

转载 作者:太空狗 更新时间:2023-10-29 21:53:04 26 4
gpt4 key购买 nike

我一直在使用 Microsoft Computer Vision 阅读收据,试图找到替代 Abby 的 OCR 的方法,因为价格差异很大。

我得到的结果总是按地区分组。这显然使得用它们的数量识别相应的字段变得更加困难。

有没有一种方法可以通过 Microsoft Vision 或其他方式实现与 Abby 相同的对齐输出?

这是一张包含结果和收据的图片

光学识别结果

enter image description here

最佳答案

我知道这不是一个完整的解决方案,但我认为这足以让您入门。

计算机视觉 API 返回 JSON result具有 lines 属性,该属性只是具有 boundingBox 属性的对象数组。

这些 boundingBox 是每个短语的“正方形”的左上角坐标和右下角坐标的 X、Y 坐标。

您基本上需要处理此数组并根据此属性“排序”项目。

在此JSFiddle您会看到我正在按 Y 坐标对线进行排序,然后将它们分组。

剩下要做的是对分组进行“更智能”——如果 Y 坐标为 201 和 202,您可以假设它们在同一行,只需将它们添加到同一行,按 X 坐标升序排序。

代码:

if (jsonResponse.status == 'Succeeded') {

var result = '';
// Sort lines by Y coordinate
jsonResponse.recognitionResult.lines.sort(function(a, b) {
var topLeftYCoordA = a.boundingBox[1];
var topLeftYCoordB = b.boundingBox[1];
if (topLeftYCoordA > topLeftYCoordB) {
return 1;
}
if (topLeftYCoordA < topLeftYCoordB) {
return -1;
}
return 0;
})

// group lines by Y coordinate
var grouped = {};

jsonResponse.recognitionResult.lines.map(function(line) {
var topLeftYcoordinate = line.boundingBox[1];
if (!grouped[topLeftYcoordinate]) {
grouped[topLeftYcoordinate] = line;
} else {
grouped[topLeftYcoordinate] += line;
}
});
Object.keys(grouped).forEach(function(yCoordinate) {
result += yCoordinate + ' - ' + grouped[yCoordinate].text + '</br>';
})
$(".right").html(result);
}

结果:

enter image description here

关于c# - 微软计算机视觉 OCR : Disable grouping text by regions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com