从 Vision 中读取 API 文本检测和填充适当的字段

Reading from Vision API Text Detection and Filling Appropriate fields

一直在尝试从政府读取数据。使用 google 的 Vision Api..

签发身份证并填写如下表格的字段

我已经成功地从愿景中读取数据 API 但现在在填写表格时遇到问题,例如使用适当的数据..

我怎样才能做到这一点?

Vision 的回应API:

{
"responses": [
    {
        "textAnnotations": [
            {
                "locale": "en",
                "description": "amagas faATST\nINCOME TAX DEPARTMENT\nMAHENDRAKUMARRBAGUL\nRAMKRISHNA NATTHU BAGUL\n01/06/1981\n4Permanent Account Number\nANSAB4834E\nSignature\nGOVT OF INDIA\n",
                "boundingPoly": {
                    "vertices": [
                        {
                            "x": 2,
                            "y": 64
                        },
                        {
                            "x": 4308,
                            "y": 64
                        },
                        {
                            "x": 4308,
                            "y": 2701
                        },
                        {
                            "x": 2,
                            "y": 2701
                        }
                    ]
                }
            },
            {
                "description": "amagas",
                "boundingPoly": {
                    "vertices": [
                        {
                            "x": 6,
                            "y": 64
                        },
                        {
                            "x": 774,
                            "y": 65
                        },
                        {
                            "x": 774,
                            "y": 374
                        },
                        {
                            "x": 6,
                            "y": 373
                        }
                    ]
                }
            },

请帮忙

您可以使用 Node.js 执行此操作。我使用 Node.js 使用 Microsoft 的计算机视觉 API 完成了它。获得 JSON 字符串后,将其解析为 JSON 对象和 运行 循环以从中提取数据。之后使用split函数将数据存储到数组中。

//Load the request module
var request = require('request');

var str="";
//Lets configure and request
request({
    url: 'https://api.projectoxford.ai/vision/v1.0/ocr?', //URL to hit
    qs: {"language": "unk",
         "detectOrientation ": "true"
         }, //Query string data

    method: 'POST', //Specify the method

    headers: { //We can define headers too
        'Content-Type': 'application/json',
        'Ocp-Apim-Subscription-Key':'xxxxxxxxxxxxxxxx'
    },

    body: "{'url':'LINK TO THE IMAGE'}",

}, function(error, response, body){
    if(error) {
        console.log(error);
    } else {
        var jsonObj = JSON.parse(body);

        var ob = jsonObj;
            for(i=0;i<ob.regions.length;i++){
                for(j=0;j<ob.regions[i].lines.length;j++){
                    for(k=0;k<ob.regions[i].lines[j].words.length;k++){
                            var str = str + " "+ob.regions[i].lines[j].words[k].text;
                    }
                    str = str + "\n";
                }
            }


            var arr = str.split("\n");

            console.log("Name: " + arr[1]);
            console.log("Father's Name: " + arr[2]);
            console.log("Date of Birth: " + arr[3]);
            console.log("Permanent Account Number: " + arr[5]);

    }
});

只需使用您自己的 Microsoft Computer Vision API 订阅密钥即可。如果您想使用从您的 Google Vision API 生成的您自己的 JSON 文件,只需刮掉上面的代码并使用代码下方的算法。它会起作用! :) 干杯

根据您提供的示例,我们可以假设 1. DEPARTMENT 和 Signature 将在所有回复中提供给我们 2. 您需要的所有信息都在单独的行中

基于这些假设:

const regExpression = new Regex(' /(DEPARTMENT\n(.*)\nSignature)/');
const str = response.responses[0].textAnnotations[0].description; // this will be from the api response form vision
const match = str.match(regExpression)[2].split(“\n”);

/* Output of above script will be like below
[
  "MAHENDRAKUMARRBAGUL",
  "RAMKRISHNA NATTHU BAGUL",
  "01/06/1981",
  "4Permanent Account Number",
  "ANSAB4834E"
]
*/