Можно ли использовать API Google Vision для обнаружения только отдельных символов или неанглийских строк? - PullRequest
0 голосов
/ 14 января 2019

Например, я хотел бы обнаружить кодированную строку типа «A5b1x», написанную от руки. Так что я бы либо разделил его вручную, чтобы у меня было изображение каждого персонажа, либо попытался бы, чтобы Vision его сразу распознал. Ни то, ни другое не работает, так как я не уверен, как указать, что это не язык (или указать, что это единичные символы). Вот что я набрал в вычислительном экземпляре Google:

gcloud ml vision detect-document "weblink to image"

Нет результата для изображения "g": г

Нет результата для изображения "e": e

Результат для изображения "fxb3": fxb3

{
  "responses": [
    {
      "fullTextAnnotation": {
        "pages": [
          {
            "blocks": [
              {
                "blockType": "TEXT",
                "boundingBox": {
                  "vertices": [
                    {
                      "x": 2433,
                      "y": 1289
                    },
                    {
                      "x": 1498,
                      "y": 1336
                    },
                    {
                      "x": 1468,
                      "y": 737
                    },
                    {
                      "x": 2403,
                      "y": 691
                    }
                  ]
                },
                "confidence": 0.56,
                "paragraphs": [
                  {
                    "boundingBox": {
                      "vertices": [
                        {
                          "x": 2433,
                          "y": 1289
                        },
                        {
                          "x": 1498,
                          "y": 1336
                        },
                        {
                          "x": 1468,
                          "y": 737
                        },
                        {
                          "x": 2403,
                          "y": 691
                        }
                      ]
                    },
                    "confidence": 0.56,
                    "words": [
                      {
                        "boundingBox": {
                          "vertices": [
                            {
                              "x": 2433,
                              "y": 1289
                            },
                            {
                              "x": 1498,
                              "y": 1336
                            },
                            {
                              "x": 1468,
                              "y": 737
                            },
                            {
                              "x": 2403,
                              "y": 691
                            }
                          ]
                        },
                        "confidence": 0.56,
                        "symbols": [
                          {
                            "boundingBox": {
                              "vertices": [
                                {
                                  "x": 2433,
                                  "y": 1289
                                },
                                {
                                  "x": 2135,
                                  "y": 1304
                                },
                                {
                                  "x": 2105,
                                  "y": 706
                                },
                                {
                                  "x": 2403,
                                  "y": 691
                                }
                              ]
                            },
                            "confidence": 0.4,
                            "text": "\u0967"
                          },
                          {
                            "boundingBox": {
                              "vertices": [
                                {
                                  "x": 2063,
                                  "y": 1308
                                },
                                {
                                  "x": 1788,
                                  "y": 1322
                                },
                                {
                                  "x": 1758,
                                  "y": 723
                                },
                                {
                                  "x": 2033,
                                  "y": 710
                                }
                              ]
                            },
                            "confidence": 0.62,
                            "text": "\u0967"
                          },
                          {
                            "boundingBox": {
                              "vertices": [
                                {
                                  "x": 1750,
                                  "y": 1323
                                },
                                {
                                  "x": 1498,
                                  "y": 1336
                                },
                                {
                                  "x": 1468,
                                  "y": 737
                                },
                                {
                                  "x": 1720,
                                  "y": 725
                                }
                              ]
                            },
                            "confidence": 0.67,
                            "property": {
                              "detectedBreak": {
                                "type": "LINE_BREAK"
                              }
                            },
                            "text": "X"
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ],
            "height": 2112,
            "width": 4608
          }
        ],
        "text": "\u0967\u0967X\n"
      },
      "textAnnotations": [
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 1467,
                "y": 690
              },
              {
                "x": 2432,
                "y": 690
              },
              {
                "x": 2432,
                "y": 1335
              },
              {
                "x": 1467,
                "y": 1335
              }
            ]
          },
          "description": "\u0967\u0967X\n",
          "locale": "und"
        },
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 2433,
                "y": 1289
              },
              {
                "x": 1498,
                "y": 1336
              },
              {
                "x": 1468,
                "y": 737
              },
              {
                "x": 2403,
                "y": 691
              }
            ]
          },
          "description": "\u0967\u0967X"
        }
      ]
    }
  ]
}

1 Ответ

0 голосов
/ 18 января 2019

API Google Cloud Vision на данный момент не может распознавать отдельные символы. Существует запрос на добавление функции распознавания символов здесь . Пометьте его, чтобы вы могли получать обновления об этом запросе функции, и не стесняйтесь добавлять дополнительные комментарии, чтобы предоставить подробную информацию о желаемой реализации.

Что касается вашего вопроса о распознавании «закодированных» строк, Vision API может это сделать. Я успешно попытался передать изображение с fxb3 в API, и результаты были хорошими (здесь image1 и image2 ). Ответ, который вы получаете от API, состоит из двух последовательных символов Юникода и «x». Качество написания - это то, что вызывает отклик, который будет довольно плохим. Модель для оптического распознавания текста постоянно совершенствуется, но на данный момент она не может правильно определить, что можно считать довольно неясным почерком.

...