Поделиться через


Обновление с чтения версии 2.x до версии 3.x

В этом руководстве показано, как обновить имеющийся контейнер или код облачного API с чтения версии 2.x до версии 3.0 и 3.x.

Определение пути к API

Используйте следующую таблицу, чтобы определить строку версии в пути к API на основе версии модели чтения 3.x, на которую выполняется переход.

Тип продукта Версия Строка версии в пути API 3.x
Service Чтение 3.0, 3.1 или 3.2 v3.0, v3.1 или v3.2 соответственно
Service Чтение 3.2 (предварительная версия) v3.2-preview.1
Контейнер Чтение 3.0 (предварительная версия) или 3.1 (предварительная версия) v3.0 или v3.1-preview.2 соответственно

Далее используйте следующие разделы, чтобы сократить количество операций и заменить строку версии в пути API значением из таблицы. Например, для API чтения 3.2 (предварительная версия) облачной или контейнерной версии измените путь API на https://{конечная_точка}/vision/v3.2-preview.1/read/analyze[?language].

Служба или контейнер

Batch Read File

Чтение 2.x Чтение 3.x
https://{конечная_точка}/vision/v2.0/read/core/asyncBatchAnalyze https://{конечная_точка}/vision/<строка версии>/read/analyze[?language]

Появился новый необязательный параметр language. Если язык документа неизвестен или языков может быть несколько, не используйте его.

Get Read Results

Чтение 2.x Чтение 3.x
https://{конечная_точка}/vision/v2.0/read/operations/{идентификатор_операции} https://{конечная_точка}/vision/<строка версии>/read/analyzeResults/{идентификатор_операции}

Флаг состояния Get Read Operation Result

Когда вызов к Get Read Operation Result выполняется успешно, он возвращает в тексте JSON поле строки состояния.

Чтение 2.x Чтение 3.x
"NotStarted" "notStarted"
"Running" "running"
"Failed" "failed"
"Succeeded" "succeeded"

Ответ API (JSON)

Обратите внимание, что с форматом JSON связаны следующие изменения:

  • В версии 2.x Get Read Operation Result будет возвращать JSON распознавания текста, если состояние имеет значение Succeeded". В версии 3.0 это поле succeeded.
  • Чтобы получить корень адреса для массива страниц, измените иерархию JSON с recognitionResults на analyzeResult/readResults. Иерархия строк и слов на странице JSON остается неизменной, поэтому код изменять не нужно.
  • Угол направления страницы clockwiseOrientation был переименован в angle, а диапазон теперь составляет от -180 до 180 градусов вместо от 0 до 360 градусов. В зависимости от конкретного кода изменения могут потребоваться или не потребоваться, так как большинство математических функций нормально работают с любым из этих диапазонов.

В API версии 3.0 также представлены следующие улучшения, которые можно использовать дополнительно:

  • Добавлены createdDateTime и lastUpdatedDateTime, чтобы отслеживать продолжительность обработки.
  • version определяет версию API, которая использовалась для создания результатов.
  • Добавлен параметр confidence для каждого слова. Это значение калибруется так, чтобы значение 0,95 означало вероятность правильного распознавания, равную 95 %. Этот показатель достоверности можно использовать для выбора текста, отправляемого на просмотр человеку.

В версии 2.x используется следующий формат выходных данных:

{
    {
    "status": "Succeeded",
    "recognitionResults": [
        {
        "page": 1,
        "language": "en",
        "clockwiseOrientation": 349.59,
        "width": 2661,
        "height": 1901,
        "unit": "pixel",
        "lines": [
            {
            "boundingBox": [
                67,
                646,
                2582,
                713,
                2580,
                876,
                67,
                821
            ],
            "text": "The quick brown fox jumps",
            "words": [
                {
                "boundingBox": [
                    143,
                    650,
                    435,
                    661,
                    436,
                    823,
                    144,
                    824
                ],
                "text": "The",
                },
        // The rest of result is omitted for brevity 
            
}

В версии 3.0 он был скорректирован:

{
    {
    "status": "succeeded",
    "createdDateTime": "2020-05-28T05:13:21Z",
    "lastUpdatedDateTime": "2020-05-28T05:13:22Z",
    "analyzeResult": {
    "version": "3.0.0",
    "readResults": [
        {
        "page": 1,
        "language": "en",
        "angle": 0.8551,
        "width": 2661,
        "height": 1901,
        "unit": "pixel",
        "lines": [
            {
            "boundingBox": [
                67,
                646,
                2582,
                713,
                2580,
                876,
                67,
                821
            ],
            "text": "The quick brown fox jumps",
            "words": [
                {
                "boundingBox": [
                    143,
                    650,
                    435,
                    661,
                    436,
                    823,
                    144,
                    824
                ],
                "text": "The",
                "confidence": 0.958
                },
// The rest of result is omitted for brevity 
    
}

Только облачная служба

Recognize Text

Recognize Text— это предварительная версия операции, которая устарела во всех версиях API визуального распознавания Azure. Вам необходимо перейти с Recognize Text на Read (версия 3.0) или Batch Read File (версии 2.0 и 2.1). В Read версии 3.0 включены новые и более эффективные модели распознавания текста и другие функции, поэтому рекомендуется использовать именно эту версию. Для обновления с Recognize Text до Read сделайте следующее:

Распознавание текста 2.x Чтение 3.x
https://{конечная_точка}/vision/v2.0/recognizeText[?mode] https://{конечная_точка}/vision/<строка версии>/read/analyze[?language]

Параметр mode не поддерживается в Read. Рукописный и печатный текст будут поддерживаться автоматически.

В версии 3.0 появился новый необязательный параметр language. Если язык документа неизвестен или языков может быть несколько, не используйте его.

Get Recognize Text Operation Result

Распознавание текста 2.x Чтение 3.x
https://{конечная_точка}/vision/v2.0/textOperations/{идентификатор_операции} https://{конечная_точка}/vision/<строка версии>/read/analyzeResults/{идентификатор_операции}

Флаг состояния Get Recognize Text Operation Result

Когда вызов к Get Recognize Text Operation Result выполняется успешно, он возвращает в тексте JSON поле строки состояния.

Распознавание текста 2.x Чтение 3.x
"NotStarted" "notStarted"
"Running" "running"
"Failed" "failed"
"Succeeded" "succeeded"

Ответ API (JSON)

Обратите внимание, что с форматом JSON связаны следующие изменения:

  • В версии 2.x Get Read Operation Result будет возвращать JSON распознавания текста, если состояние имеет значение Succeeded. В версии 3.x это поле succeeded.
  • Чтобы получить корень адреса для массива страниц, измените иерархию JSON с recognitionResult на analyzeResult/readResults. Иерархия строк и слов на странице JSON остается неизменной, поэтому код изменять не нужно.

В API версии 3.0 также представлены приведенные ниже улучшения, которые можно использовать дополнительно. Дополнительные сведения см. в справочнике по API.

  • Добавлены createdDateTime и lastUpdatedDateTime, чтобы отслеживать продолжительность обработки.
  • version определяет версию API, которая использовалась для создания результатов.
  • Добавлен параметр confidence для каждого слова. Это значение калибруется так, чтобы значение 0,95 означало вероятность правильного распознавания, равную 95 %. Этот показатель достоверности можно использовать для выбора текста, отправляемого на просмотр человеку.
  • Общая ориентация текста angle в направлении по часовой стрелке, в диапазоне от -180 до 180 градусов.
  • width и "height" предоставляют размеры документа, а "unit" — единицы измерения для этих размеров (пиксели или дюймы, в зависимости от типа документа).
  • Поддерживаются многостраничные документы page.
  • Язык ввода language для документа (извлекается из необязательного параметра language).

В версии 2.x используется следующий формат выходных данных:

{
    {
    "status": "Succeeded",
    "recognitionResult": [
        {
        "lines": [
            {
            "boundingBox": [
                67,
                646,
                2582,
                713,
                2580,
                876,
                67,
                821
            ],
            "text": "The quick brown fox jumps",
            "words": [
                {
                "boundingBox": [
                    143,
                    650,
                    435,
                    661,
                    436,
                    823,
                    144,
                    824
                ],
                "text": "The",
                },
// The rest of result is omitted for brevity 
        
}

В версии 3.x он был скорректирован:

{
    {
    "status": "succeeded",
    "createdDateTime": "2020-05-28T05:13:21Z",
    "lastUpdatedDateTime": "2020-05-28T05:13:22Z",
    "analyzeResult": {
    "version": "3.0.0",
    "readResults": [
        {
        "page": 1,
        "angle": 0.8551,
        "width": 2661,
        "height": 1901,
        "unit": "pixel",
        "lines": [
            {
            "boundingBox": [
                67,
                646,
                2582,
                713,
                2580,
                876,
                67,
                821
            ],
            "text": "The quick brown fox jumps",
            "words": [
                {
                "boundingBox": [
                    143,
                    650,
                    435,
                    661,
                    436,
                    823,
                    144,
                    824
                ],
                "text": "The",
                "confidence": 0.958
                },
// The rest of result is omitted for brevity 
    
}

Только контейнер

Synchronous Read

Чтение 2.0 Чтение 3.x
https://{конечная_точка}/vision/v2.0/read/core/Analyze https://{конечная_точка}/vision/<строка версии>/read/syncAnalyze[?language]