我想将Form Recognizer的结果“ boundingBox”转换为图像坐标,以可视化叠加图像和识别出的数据。 但是,boundingBox结果看起来不像该图像那样是XY坐标位置。 https://i.stack.imgur.com/DOEi5.png
我需要每个boundingBox的左上(X1,Y1)和右下(X2,Y2)计算规则。
我还使用认知服务OCR和文本识别制定了一些计算规则,但是没有有关表格识别器的信息。 我试图通过减法或除法找到XY坐标法则,但我找不到它。
这是我通过Form Recognizer的示例图像获得的结果json数据。但是无法从中找到boundingBox规则。
Responsebody: {
'status': 'success',
'pages': [
{
'number': 1,
'height': 792,
'width': 612,
'clusterId': 0,
'keyValuePairs': [
{
'key': [
{
'text': 'Address:',
'boundingBox': [
57.3,
683.0,
100.5,
683.0,
100.5,
673.7,
57.3,
673.7
]
}
],
'value': [
{
'text': '1020 Enterpirse Way.',
'boundingBox': [
57.3,
672.2,
153.1,
672.2,
153.1,
658.8,
57.3,
658.8
],
'confidence': 0.53
},
我需要每个boundingBox的左上(X1,Y1)和右下(X2,Y2)计算规则。
感谢团队。
答案 0 :(得分:0)
这8个数字按以下顺序表示边界框角的4对(x,y)坐标:左上,右上,右下,左下。坐标系的原点在页面的左下方。对于示例中的键“地址:”,您的左上角(X1,Y1)=(57.3,683.0),右下角(X2,Y2)=(100.5,673.7)。
答案 1 :(得分:0)
在使用Form Recognizer时,我也遇到了这种困惑。它的原点在页面左下方。
// Azure Bounding box is like this 0---->1
// | |
// Y | |
// ↑ 3<----2
// Origin . → X
// Expected Bounding Box Origin . → X
// ↓ 0---->1
// Y | |
// | ↓
// 3<----2
八个值是4点的X,Y值。您可以选择0th,1st(左上角)和4th,5th(右下角)。 如果要对坐标值进行标准化以使其值保持在0到1之间,则必须将每个像素值除以相应页面的宽度和高度。
答案 2 :(得分:0)
在示例中:
{21: 1,
22: 1,
23: 2,
24: 3,
25: 5,
26: 7,
27: 11,
28: 14,
29: 20,
30: 26,
31: 35,
32: 44,
33: 58,
34: 71,
35: 90,
36: 110,
37: 136,
38: 163,
39: 199,
40: 235,
41: 282,
42: 331,
43: 391,
44: 454,
45: 532,
46: 612,
47: 709,
48: 811,
49: 931,
50: 1057,
51: 1206,
52: 1360,
53: 1540,
54: 1729,
55: 1945,
56: 2172,
57: 2432,
58: 2702,
59: 3009,
60: 3331,
61: 3692,
62: 4070,
63: 4494,
64: 4935,
65: 5427,
66: 5942,
67: 6510,
68: 7104,
69: 7760,
70: 8442,
71: 9192,
72: 9975,
73: 10829,
74: 11720,
75: 12692,
76: 13702,
77: 14800,
78: 15944,
79: 17180,
80: 18467,
81: 19858,
82: 21301,
83: 22856,
84: 24473,
85: 26207,
86: 28009,
87: 29941,
88: 31943,
89: 34085,
90: 36308,
91: 38677,
92: 41134,
93: 43752,
94: 46461,
95: 49342,
96: 52326,
97: 55489,
98: 58763,
99: 62232,
100: 65815,
101: 69605,
102: 73522,
103: 77653,
104: 81919,
105: 86416,
106: 91051,
107: 95929,
108: 100958,
109: 106237,
110: 111675,
111: 117380,
112: 123246,
113: 129391,
114: 135710,
115: 142314,
116: 149099,
117: 156186,
118: 163455,
119: 171037,
120: 178813,
121: 186907,
122: 195201,
123: 203829,
124: 212656,
125: 221827,
126: 231208,
127: 240936,
128: 250878,
129: 261182,
130: 271697,
131: 282582,
132: 293687,
133: 305163,
134: 316861,
135: 328943,
136: 341241,
137: 353929,
138: 366840,
139: 380139,
140: 393660,
141: 407580,
142: 421713,
143: 436248,
144: 451000,
145: 466149,
146: 481511,
147: 497278,
148: 513245,
149: 529617,
150: 546190,
151: 563159,
152: 580321,
153: 597884,
154: 615623,
155: 633759,
156: 652068,
157: 670761,
158: 689615,
159: 708854,
160: 728232,
161: 747987,
162: 767874,
163: 788120,
164: 808481,
165: 829198,
166: 850003,
167: 871151,
168: 892375,
169: 913919,
170: 935517,
171: 957427,
172: 979359,
173: 1001585,
174: 1023817,
175: 1046315,
176: 1068793,
177: 1091525,
178: 1114201,
179: 1137109,
180: 1159942,
181: 1182975,
182: 1205904,
183: 1229018,
184: 1251989,
185: 1275120,
186: 1298087,
187: 1321179,
188: 1344076,
189: 1367081,
190: 1389850,
191: 1412700,
192: 1435292,
193: 1457928,
194: 1480274,
195: 1502646,
196: 1524686,
197: 1546724,
198: 1568408,
199: 1590052,
200: 1611310,
201: 1632510,
202: 1653282,
203: 1673968,
204: 1694205,
205: 1714318,
206: 1733951,
207: 1753443,
208: 1772414,
209: 1791217,
210: 1809480,
211: 1827538,
212: 1845027,
213: 1862296,
214: 1878957,
215: 1895373,
216: 1911165,
217: 1926677,
218: 1941539,
219: 1956109,
220: 1969993,
221: 1983563,
222: 1996435,
223: 2008961,
224: 2020767,
225: 2032219,
226: 2042919,
227: 2053247,
228: 2062816,
229: 2071985,
230: 2080378,
231: 2088368,
232: 2095555,
233: 2102326,
234: 2108293,
235: 2113821,
236: 2118534,
237: 2122811,
238: 2126252,
239: 2129250,
240: 2131418,
241: 2133126,
242: 2134000,
243: 2134424,
244: 2134000,
245: 2133126,
246: 2131418,
247: 2129250,
248: 2126252,
249: 2122811,
250: 2118534,
251: 2113821,
252: 2108293,
253: 2102326,
254: 2095555,
255: 2088368,
256: 2080378,
257: 2071985,
258: 2062816,
259: 2053247,
260: 2042919,
261: 2032219,
262: 2020767,
263: 2008961,
264: 1996435,
265: 1983563,
266: 1969993,
267: 1956109,
268: 1941539,
269: 1926677,
270: 1911165,
271: 1895373,
272: 1878957,
273: 1862296,
274: 1845027,
275: 1827538,
276: 1809480,
277: 1791217,
278: 1772414,
279: 1753443,
280: 1733951,
281: 1714318,
282: 1694205,
283: 1673968,
284: 1653282,
285: 1632510,
286: 1611310,
287: 1590052,
288: 1568408,
289: 1546724,
290: 1524686,
291: 1502646,
292: 1480274,
293: 1457928,
294: 1435292,
295: 1412700,
296: 1389850,
297: 1367081,
298: 1344076,
299: 1321179,
300: 1298087,
301: 1275120,
302: 1251989,
303: 1229018,
304: 1205904,
305: 1182975,
306: 1159942,
307: 1137109,
308: 1114201,
309: 1091525,
310: 1068793,
311: 1046315,
312: 1023817,
313: 1001585,
314: 979359,
315: 957427,
316: 935517,
317: 913919,
318: 892375,
319: 871151,
320: 850003,
321: 829198,
322: 808481,
323: 788120,
324: 767874,
325: 747987,
326: 728232,
327: 708854,
328: 689615,
329: 670761,
330: 652068,
331: 633759,
332: 615623,
333: 597884,
334: 580321,
335: 563159,
336: 546190,
337: 529617,
338: 513245,
339: 497278,
340: 481511,
341: 466149,
342: 451000,
343: 436248,
344: 421713,
345: 407580,
346: 393660,
347: 380139,
348: 366840,
349: 353929,
350: 341241,
351: 328943,
352: 316861,
353: 305163,
354: 293687,
355: 282582,
356: 271697,
357: 261182,
358: 250878,
359: 240936,
360: 231208,
361: 221827,
362: 212656,
363: 203829,
364: 195201,
365: 186907,
366: 178813,
367: 171037,
368: 163455,
369: 156186,
370: 149099,
371: 142314,
372: 135710,
373: 129391,
374: 123246,
375: 117380,
376: 111675,
377: 106237,
378: 100958,
379: 95929,
380: 91051,
381: 86416,
382: 81919,
383: 77653,
384: 73522,
385: 69605,
386: 65815,
387: 62232,
388: 58763,
389: 55489,
390: 52326,
391: 49342,
392: 46461,
393: 43752,
394: 41134,
395: 38677,
396: 36308,
397: 34085,
398: 31943,
399: 29941,
400: 28009,
401: 26207,
402: 24473,
403: 22856,
404: 21301,
405: 19858,
406: 18467,
407: 17180,
408: 15944,
409: 14800,
410: 13702,
411: 12692,
412: 11720,
413: 10829,
414: 9975,
415: 9192,
416: 8442,
417: 7760,
418: 7104,
419: 6510,
420: 5942,
421: 5427,
422: 4935,
423: 4494,
424: 4070,
425: 3692,
426: 3331,
427: 3009,
428: 2702,
429: 2432,
430: 2172,
431: 1945,
432: 1729,
433: 1540,
434: 1360,
435: 1206,
436: 1057,
437: 931,
438: 811,
439: 709,
440: 612,
441: 532,
442: 454,
443: 391,
444: 331,
445: 282,
446: 235,
447: 199,
448: 163,
449: 136,
450: 110,
451: 90,
452: 71,
453: 58,
454: 44,
455: 35,
456: 26,
457: 20,
458: 14,
459: 11,
460: 7,
461: 5,
462: 3,
463: 2,
464: 1,
465: 1}
它表示边界框的顶点。
'boundingBox': [
57.3,
683.0,
100.5,
683.0,
100.5,
673.7,
57.3,
673.7
]
从上面的示例中,选择了(X1,y1)和(x3,y3)来绘制边界框。边界框在Azure中非常有序,它开始x1,y1,x2,y2,x3,y3,x4,y4。列表中的前两个值是x1,y1,第5、6th是x3,y3。
答案 3 :(得分:0)
仅提供一个具体示例,请考虑以下输入图像:https://imgur.com/a/zUeqe0L
Azure 表单识别器返回以下边界框,您可以使用以下带有 opencv-python
的代码片段绘制边界框:
import cv2
import numpy as np
import matplotlib.pylab as plt
image = cv2.imread('adhar2.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
boundingBox = [42.0, 84.0, 227.0, 0.0, 246.0, 41.0, 61.0, 126.0]
pts = np.array(boundingBox, np.int32).reshape((-1,1,2))
image = cv2.polylines(image, [pts], True, (0, 255, 0), 2)
plt.figure(figsize=(20,40))
plt.imshow(image)
plt.axis('off')
plt.show()
具有以下输出图像: