Разница распознавания Azure между демонстрационной страницей и консолью - PullRequest
0 голосов
/ 15 января 2019

У меня есть несколько примеров изображений, которые мне нужно распознать с помощью OCR.

Я попытался распознать их на демонстрационной странице https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/, и это работает довольно хорошо.Я использую опцию «Чтение текста в изображениях», которая работает даже лучше, чем «Чтение рукописного текста из изображений».

Но когда я пытаюсь использовать вызов REST из скрипта (согласно примеру, приведенному в документации) результаты намного хуже.Некоторые буквы признаны неправильными, некоторые пропущены.Если я попытаюсь запустить тот же пример с консоли разработки https://westcentralus.dev.cognitive.microsoft.com/docs/services/5adf991815e1060e6355ad44/operations/56f91f2e778daf14a499e1fc/console, я все равно получу те же плохие результаты.

Что может вызвать эту разницу?Как я могу исправить это, чтобы получить надежные результаты при создании демонстрационной страницы?

Может быть, требуется какая-либо дополнительная информация?

UPD: так как я не мог найти никакого решения или даже объяснения разницыЯ создал образец файла (похож на реальные файлы), чтобы вы могли посмотреть.URL-адрес файла http://sfiles.herokuapp.com/sample.png

Вы можете увидеть, если он используется на демонстрационной странице https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/ в разделе «Чтение текста в изображениях», результирующий JSON будет

{
  "status": "Succeeded",
  "succeeded": true,
  "failed": false,
  "finished": true,
  "recognitionResult": {
    "lines": [
      {
        "boundingBox": [
          307,
          159,
          385,
          158,
          386,
          173,
          308,
          174
        ],
        "text": "October 2011",
        "words": [
          {
            "boundingBox": [
              308,
              160,
              357,
              160,
              357,
              174,
              308,
              175
            ],
            "text": "October"
          },
          {
            "boundingBox": [
              357,
              160,
              387,
              159,
              387,
              174,
              357,
              174
            ],
            "text": "2011"
          }
        ]
      },
      {
        "boundingBox": [
          426,
          157,
          519,
          158,
          519,
          173,
          425,
          172
        ],
        "text": "07UC14PII0244",
        "words": [
          {
            "boundingBox": [
              426,
              160,
              520,
              159,
              520,
              174,
              426,
              174
            ],
            "text": "07UC14PII0244"
          }
        ]
      }
    ]
  }
}

Если я использую этот файл в консоли и сделаю следующий вызов:

POST https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/ocr?language=unk&detectOrientation =true HTTP/1.1
Host: westcentralus.api.cognitive.microsoft.com
Content-Type: application/json
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••

{"url":"http://sfiles.herokuapp.com/sample.png"}

я получу другой результат:

{
  "language": "el",
  "textAngle": 0.0,
  "orientation": "Up",
  "regions": [{
    "boundingBox": "309,161,75,10",
    "lines": [{
      "boundingBox": "309,161,75,10",
      "words": [{
        "boundingBox": "309,161,46,10",
        "text": "October"
      }, {
        "boundingBox": "358,162,26,9",
        "text": "2011"
      }]
    }]
  }, {
    "boundingBox": "428,161,92,10",
    "lines": [{
      "boundingBox": "428,161,92,10",
      "words": [{
        "boundingBox": "428,161,92,10",
        "text": "071_lC14P110244"
      }]
    }]
  }]
}

Как видите, результат совершенно другой (дажеФормат JSON)Кто-нибудь знает, что я делаю не так, или, может быть, я что-то упускаю, а демонстрация «Чтение текста в изображениях» не соответствует методу ocr API?

Буду очень признателен за любую помощь.

1 Ответ

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

Существует два варианта распознавания текста в Microsoft Cognitive Services. Более новая конечная точка (/recognizeText) имеет лучшие возможности распознавания, но в настоящее время поддерживает только английский язык. Старая конечная точка (/ocr) имеет более широкий языковой охват.

Некоторые дополнительные подробности о различиях есть в этой записи .

...