이미지용 OCR(버전 4.0)

참고 항목

PDF, Office, HTML 문서 및 문서 이미지에서 텍스트를 추출하려면 텍스트가 많은 디지털 문서와 스캔된 문서에 최적화된 문서 인텔리전스 읽기 OCR 모델과 함께 지능적인 문서 처리 시나리오를 쉽게 구동할 수 있는 비동기식 API를 사용합니다.

OCR은 전통적으로 제품 레이블, 사용자 생성 이미지, 스크린샷, 도로 표지판 및 포스터와 같은 실제 환경 및 문서가 아닌 이미지에서 텍스트를 추출하기 위한 기계 학습 기반 기술로 시작되었습니다. 텍스트가 많지 않은 단일 이미지와 같은 여러 시나리오의 경우 빠른 동기식 API 또는 서비스가 필요합니다. 이를 통해 OCR은 거의 실시간에 가까운 사용자 환경에 포함되어 빠른 처리 시간으로 콘텐츠 이해 및 후속 사용자 작업을 보강할 수 있습니다.

Computer Vision v4.0 읽기 OCR이란?

새로운 Computer Vision Image Analysis v4.0 REST API는 단일 API 작업에서 OCR 결과를 포함한 모든 이미지 인사이트를 쉽게 가져올 수 있도록 하는 성능이 향상된 통합 동기식 API의 이미지에서 인쇄 또는 필기 텍스트를 추출하는 기능을 제공합니다. 읽기 OCR 엔진은 글로벌 언어 지원을 위해 유니버설 스크립트 기반 모델이 지원하는 여러 딥 러닝 모델 위에 빌드되었습니다.

Azure OpenAI 서비스를 통해 OCR 기능을 사용할 수 있습니다. GPT-4 Turbo with Vision 모델을 사용하면 공유하는 이미지를 분석할 수 있는 AI 도우미와 채팅할 수 있으며, 비전 향상 옵션은 이미지 분석을 사용하여 AI 지원에 이미지에 대한 자세한 세부 정보(읽기 가능한 텍스트 및 개체 위치)를 제공합니다. 자세한 내용은 GPT-4 Turbo with Vision 빠른 시작을 참조하세요.

텍스트 추출 예제

다음 JSON 응답은 지정된 이미지에서 텍스트를 추출할 때 Image Analysis 4.0 API가 반환하는 내용을 보여 줍니다.

Photo of a sticky note with writing on it.

{
    "modelVersion": "2024-02-01",
    "metadata":
    {
        "width": 1000,
        "height": 945
    },
    "readResult":
    {
        "blocks":
        [
            {
                "lines":
                [
                    {
                        "text": "You must be the change you",
                        "boundingPolygon":
                        [
                            {"x":251,"y":265},
                            {"x":673,"y":260},
                            {"x":674,"y":308},
                            {"x":252,"y":318}
                        ],
                        "words":
                        [
                            {"text":"You","boundingPolygon":[{"x":252,"y":267},{"x":307,"y":265},{"x":307,"y":318},{"x":253,"y":318}],"confidence":0.996},
                            {"text":"must","boundingPolygon":[{"x":318,"y":264},{"x":386,"y":263},{"x":387,"y":316},{"x":319,"y":318}],"confidence":0.99},
                            {"text":"be","boundingPolygon":[{"x":396,"y":262},{"x":432,"y":262},{"x":432,"y":315},{"x":396,"y":316}],"confidence":0.891},
                            {"text":"the","boundingPolygon":[{"x":441,"y":262},{"x":503,"y":261},{"x":503,"y":312},{"x":442,"y":314}],"confidence":0.994},
                            {"text":"change","boundingPolygon":[{"x":513,"y":261},{"x":613,"y":262},{"x":613,"y":306},{"x":513,"y":311}],"confidence":0.99},
                            {"text":"you","boundingPolygon":[{"x":623,"y":262},{"x":673,"y":263},{"x":673,"y":302},{"x":622,"y":305}],"confidence":0.994}
                        ]
                    },
                    {
                        "text": "wish to see in the world !",
                        "boundingPolygon":
                        [
                            {"x":325,"y":338},
                            {"x":695,"y":328},
                            {"x":696,"y":370},
                            {"x":325,"y":381}
                        ],
                        "words":
                        [
                            {"text":"wish","boundingPolygon":[{"x":325,"y":339},{"x":390,"y":337},{"x":391,"y":380},{"x":326,"y":381}],"confidence":0.992},
                            {"text":"to","boundingPolygon":[{"x":406,"y":337},{"x":443,"y":335},{"x":443,"y":379},{"x":407,"y":380}],"confidence":0.995},
                            {"text":"see","boundingPolygon":[{"x":451,"y":335},{"x":494,"y":334},{"x":494,"y":377},{"x":452,"y":379}],"confidence":0.996},
                            {"text":"in","boundingPolygon":[{"x":502,"y":333},{"x":533,"y":332},{"x":534,"y":376},{"x":503,"y":377}],"confidence":0.996},
                            {"text":"the","boundingPolygon":[{"x":542,"y":332},{"x":590,"y":331},{"x":590,"y":375},{"x":542,"y":376}],"confidence":0.995},
                            {"text":"world","boundingPolygon":[{"x":599,"y":331},{"x":664,"y":329},{"x":664,"y":372},{"x":599,"y":374}],"confidence":0.995},
                            {"text":"!","boundingPolygon":[{"x":672,"y":329},{"x":694,"y":328},{"x":694,"y":371},{"x":672,"y":372}],"confidence":0.957}
                        ]
                    },
                    {
                        "text": "Everything has its beauty , but",
                        "boundingPolygon":
                        [
                            {"x":254,"y":439},
                            {"x":644,"y":433},
                            {"x":645,"y":484},
                            {"x":255,"y":488}
                        ],
                        "words":
                        [
                            {"text":"Everything","boundingPolygon":[{"x":254,"y":442},{"x":379,"y":440},{"x":380,"y":486},{"x":257,"y":488}],"confidence":0.97},
                            {"text":"has","boundingPolygon":[{"x":388,"y":440},{"x":435,"y":438},{"x":436,"y":485},{"x":389,"y":486}],"confidence":0.965},
                            {"text":"its","boundingPolygon":[{"x":445,"y":438},{"x":485,"y":437},{"x":486,"y":485},{"x":446,"y":485}],"confidence":0.99},
                            {"text":"beauty","boundingPolygon":[{"x":495,"y":437},{"x":567,"y":435},{"x":568,"y":485},{"x":496,"y":485}],"confidence":0.685},
                            {"text":",","boundingPolygon":[{"x":577,"y":435},{"x":583,"y":435},{"x":583,"y":485},{"x":577,"y":485}],"confidence":0.939},
                            {"text":"but","boundingPolygon":[{"x":589,"y":435},{"x":644,"y":434},{"x":644,"y":485},{"x":589,"y":485}],"confidence":0.628}
                        ]
                    },
                    {
                        "text": "not everyone sees it !",
                        "boundingPolygon":
                        [
                            {"x":363,"y":508},
                            {"x":658,"y":493},
                            {"x":659,"y":539},
                            {"x":364,"y":552}
                        ],
                        "words":
                        [
                            {"text":"not","boundingPolygon":[{"x":363,"y":510},{"x":412,"y":508},{"x":413,"y":548},{"x":365,"y":552}],"confidence":0.989},
                            {"text":"everyone","boundingPolygon":[{"x":420,"y":507},{"x":521,"y":501},{"x":522,"y":542},{"x":421,"y":548}],"confidence":0.924},
                            {"text":"sees","boundingPolygon":[{"x":536,"y":501},{"x":588,"y":498},{"x":589,"y":540},{"x":537,"y":542}],"confidence":0.987},
                            {"text":"it","boundingPolygon":[{"x":597,"y":497},{"x":627,"y":495},{"x":628,"y":540},{"x":598,"y":540}],"confidence":0.995},
                            {"text":"!","boundingPolygon":[{"x":635,"y":495},{"x":656,"y":494},{"x":657,"y":540},{"x":636,"y":540}],"confidence":0.952}
                        ]
                    }
                ]
            }
        ]
    }
}

API 사용

텍스트 추출 기능은 Analyze Image API의 일부입니다. features 쿼리 매개 변수에 Read를 포함합니다. 그런 다음, 전체 JSON 응답을 받으면 "readResult" 섹션의 콘텐츠에 대한 문자열을 구문 분석합니다.

다음 단계

Image Analysis 빠른 시작에 따라 Image Analysis 4.0 API를 사용하여 이미지에서 텍스트를 추출합니다.