local rr = require("rerun_lua") function paragraphs(ms_form_result) local result = {} for _, paragraph in ipairs(ms_form_result.analyzeResult.paragraphs) do for _, region in ipairs(paragraph.boundingRegions) do table.insert(result, { text = paragraph.content, bbox = region.polygon }) end end return result end function lines(ms_form_result) local result = {} for _, page in ipairs(ms_form_result.analyzeResult.pages) do for _, line in ipairs(page.lines) do table.insert(result, { text = line.content, bbox = line.polygon }) end end return result end function words(ms_form_result) local result = {} for _, page in ipairs(ms_form_result.analyzeResult.pages) do for _, word in ipairs(page.words) do table.insert(result, { text = word.content, bbox = word.polygon }) end end return result end function group_by_type(xs_result) function geo_to_bbox(geo) return {geo.left, geo.top, geo.width, geo.height} end local result = {} for _, field in pairs(xs_result.proposedFields.fields) do result[field.type] = result[field.type] or {} result[field.type][field.name] = {} for i, sub_field in ipairs(field.subfields) do table.insert(result[field.type][field.name], { --name = sub_field.name, text = sub_field.type, bbox = geo_to_bbox(sub_field.geo), }) end end return result end function list_field_types(xs_result) local result = {} for _, field in pairs(xs_result.proposedFields.fields) do result[field.type] = "" end return result end function filename(str) local name = string.gsub(str, "(.*/)(.*)", "%2") return name end function show(name, document, xs_result_path) local xs_result = rr.json(xs_result_path) local xs_fields = group_by_type(xs_result) local record = rr.recording(name) record:image(name, document) for field_type, fields in pairs(xs_fields) do for field_name, sub_fields in pairs(fields) do record:text_objects(name .. "/" .. field_type .. "/" .. field_name, sub_fields) end end end local master = "/Volumes/data/problematics/10138832-0ec5-4ea9-bf9e-2d863f714b6c-result.json" local fix = "/Volumes/data/problematics/10138832-0ec5-4ea9-bf9e-2d863f714b6c-result.json" show("master","/Volumes/data/problematics/street_city_mixup.png", master ) show("fix","/Volumes/data/problematics/street_city_mixup.png", fix )