Microsoft Power Automate에서 Computer Vision API에 연결하여 이미지 데이터 OCR

※2019/10/4의 Microsoft사의 발표대로, 종래의 「Microsoft Flow」는 신기능의 UI Flows가 추가되어 「Microsoft Power Automate」가 되었습니다. 기사 내의 Microsoft Flow의 설명은 Power Automate로 읽어보십시오.

소개



Microsoft Azure의 Cognitive Services의 하나인 Computer Vision API을 Microsoft Flow에서 이용했을 때의 메모.

매월 서면으로 닿는 청구서에서 청구금액을 OCR해 데이터화하고 싶었다.

해보자



Azure 포털에서 Computer Vision API 리소스 만들기



Azure에 로그인하고 Computer Vision API 리소스를 만듭니다. 이하의 URL을 두드리면 작성 화면에 갈 수 있다.

[장소]는 "(아시아 태평양) 동일본"을 선택했다.



작성이 완료되면 리소스 페이지를 열고 [리소스 관리]-[퀵 스타트]에서 "Key 1"과 "엔드포인트"의 값을 삼가한다.



플로우 생성 - Computer Vision API에 대한 연결 생성



Microsoft Flow 페이지에서 플로우를 작성합니다.

플로우 작성 화면에서 액션에 「Optical Character Recognition (OCR) to Text」를 선택.



연결을 구성하라는 메시지가 표시되었으므로 [Account key] 필드에 이전에 Azure의 Computer Vision API 리소스 화면에서 앞에 둔 "Key 1"키 문자열을 입력하고 [만들기]를 클릭합니다.



"연결 테스트에 실패했습니다."라고 나왔습니다.



Azure 지원에 문의하면 다음과 같은 답변이 있었다.
Computer Vision API 리소스의 리전에 「동일본」을 선택하고 있는 경우는, 플로우로부터의 접속 작성시에 [Site URL]에 Computer Vision API 리소스의 「엔드포인트」를 지정할 필요가 있는 것 같다.

Computer Vision API 리소스를 Azure 포털에서 만들 때 지역으로 동일본을 선택했는지 알고 있습니다. Computer Vision API는 지역별로 다른 엔드포인트를 제공하며, 이 엔드포인트는 아래 스크린샷과 같이 Azure 포털의 Computer Vision API 리소스 개요에서 확인할 수 있습니다. API 키와 엔드포인트가 대응하지 않는 경우에는 인증 에러가 발생하므로 Flow측에서도 Computer Vision API의 접속 정보를 설정하는 화면에서 "Site URL"로 상기 엔드포인트의 URL을 설정해야 합니다. 있습니다. 덧붙여 "접속명"에 대해서는 임의의 캐릭터 라인을 입력할 수 있는 항목이 되고 있어, 인증 정보나 엔드포인트의 지정에 사용되는 것은 없기 때문에, 주의해 주세요.

라고 하는 것으로 방금 앞둔 엔드포인트의 URL 분도 [Site URL]로 지정해, 「작성」.



연결을 만들 수있었습니다.



※아래 기사에서 소개되고 있는 순서에서는, 장소에 「미국 서부」를 지정하고 있었기 때문에 엔드 포인트의 지정이 불필요했던 것 같다.
h tps : // 즈즈이나 ぃ k. 네 / rj / g / r / s / 4270

※그리고 [Site URL]의 입력란내의 플레이스홀더 텍스트를 잘 보면 이하와 같이 써 있다. 기본이라면 "westus"의 엔드포인트가 사용된다는 것. 동일한 설명은 공식 페이지에 있습니다. 눈치채지 못했다…
Root site url (Example: https://westus.api.cognitive.microsoft.com ).If not specified site url will be defaulted to 'https://westus.api.cognitive.microsoft.com'.
※또한 API 이용시의 에러의 구분에는 하기 페이지가 도움이 되면 Azure 서포트에게 가르쳐 주었다. 확실히 도움이 될 것입니다.
htps : // bgs. msd 응. 미 c 로소 ft. 이 m / jp g g chi ゔ b ぉ g / 2018/02/01 / t 로 b bsc 리 p 치온 - y /

플로우 생성 - 실제로 OCR을 시도합니다.



OneDrive for Business에 인보이스 이미지를 업로드하고 해당 이미지 파일의 내용을 "Optical Character Recognition (OCR) to Text"와 "Optical Character Recognition (OCR) to JSON"에서 OCR 대상으로 지정. 흐름 실행.



OCR 결과를 얻을 수 있었다.

Text 쪽.
OCR 된 서면 위치 영역마다 "\n", 문자 당 "(空欄)」で区切られている。

JSONの方。

JSONの結果の[本文]のJSON文字列の一部。
OCRされた書面の位置エリアごと、文字ごとにJSONグループや階層が作られている。

{
  "language": "ja",
  "textAngle": 0.08901179185171143,
  "orientation": "Up",
  "regions": [
    {
      "boundingBox": "152,120,170,121",
      "lines": [
        {
          "boundingBox": "152,120,149,19",
          "words": [
            {
              "boundingBox": "152,120,24,18",
              "text": "<氏名一文字目>"
            },
            {
              "boundingBox": "177,120,23,18",
              "text": "<氏名二文字目>"
            },
            {
              "boundingBox": "219,120,23,18",
              "text": "<氏名三文字目>"
            },
            {
              "boundingBox": "244,120,24,18",
              "text": "<氏名四文字目>"
            },
            {
              "boundingBox": "277,121,24,18",
              "text": "様"
            }
          ]
        },
        {
          "boundingBox": "234,224,88,17",
          "words": [
            {
              "boundingBox": "234,224,20,17",
              "text": "調"
            },
            {
              "boundingBox": "257,224,19,17",
              "text": "求"
            },
            {
              "boundingBox": "279,224,19,16",
              "text": "金"
            },
            {
              "boundingBox": "301,224,21,17",
              "text": "額"
            }
          ]
        }
      ]
    },
    {
      "boundingBox": "438,169,180,79",
      "lines": [
        {
          "boundingBox": "496,169,122,34",
          "words": [
            {
              "boundingBox": "496,169,38,29",
              "text": "請"
            },
            {
              "boundingBox": "539,171,36,28",
              "text": "求"
            },
            {
              "boundingBox": "581,174,37,29",
              "text": "書"
            }
          ]
        },
        {
          "boundingBox": "438,225,112,23",
          "words": [
            {
              "boundingBox": "438,225,78,20",
              "text": "<請求金額>"
            },
            {
              "boundingBox": "525,228,6,19",
              "text": "一"
            },
            {
              "boundingBox": "532,228,18,20",
              "text": "月"
            }
          ]
        }
      ]
    }
  ]
}

ちなみにOCRされる画像のファイルサイズが大きいとこのようなエラーが出る。

下記によると対応可能なファイルサイズは最大4MBまでらしい。

Image file size must be less than 4MB.

결론

請求書書面の様式が一様なら、OCR結果のJSON文字列から請求金額の数値をうまいことパースすればいけそう。

以上

좋은 웹페이지 즐겨찾기