none
MS Computer Vision API, OCR에서 image_url 관련 질문 RRS feed

  • 질문

  • 안녕하세요.

    image에서 글자를 인식하기 위해 

    MS Computer Vision API, OCR을 사용하려고 합니다.

    언어는 python을 사용하고 있습니다.

    HTTPError: 400 Client Error: Bad Request for url: https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/ocr?language=unk&detectOrientation=true

    다음과 같은 에러가 뜹니다.

    image_url에 url값을 넣어주었을 때는 잘 실행이 되지만, 

    컴퓨터 로컬 파일 경로 "C:\Users\User\tt\coin.png"와 같은 값을 입력했을 때 다음과 같은 에러가 뜹니다.

    그래서 구글 원드라이브에 image를 옮겨서 url 링크를 받아, 링크 값을 입력했을 때에도 다음과 같은 에러가 발생합니다.

    실행파일 안에 image를 넣어도 다음과 같은 오류가 발생합니다.

    로컬에 있는 image를 url로 변경하여 값을 입력해주어야 할 것 같은데,

    이것에는 어떤 해결 방법이 있는지 궁금합니다.

    추가적으로 image_url 값 때문에 이 코드가 실행되지 않는 것인지, 

    아니면 다른 원인이 있는 것인지도 궁금합니다.

    import requests
    # If you are using a Jupyter notebook, uncomment the following line.
    #%matplotlib inline
    import matplotlib.pyplot as plt
    from matplotlib.patches import Rectangle
    from PIL import Image
    from io import BytesIO
    import  urllib
    import urllib.parse as urlparse
    # Replace <Subscription Key> with your valid subscription key.
    subscription_key = ""
    assert subscription_key
    
    # You must use the same region in your REST call as you used to get your
    # subscription keys. For example, if you got your subscription keys from
    # westus, replace "westcentralus" in the URI below with "westus".
    #
    # Free trial subscription keys are generated in the westcentralus region.
    # If you use a free trial subscription key, you shouldn't need to change
    # this region.
    vision_base_url = "https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/"
    ocr_url = vision_base_url + "ocr"
    
    image_url = "https://drive.google.com/file/d/1RGT0Ka8pzS9UmBfplIv4ng_rwsAp1gy6/view?usp=sharing"
    
    # Set image_url to the URL of an image that you want to analyze.
    
    
    headers = {'Ocp-Apim-Subscription-Key': subscription_key}
    params  = {'language': 'unk', 'detectOrientation': 'true'}
    data    = {'url': image_url}
    response = requests.post(ocr_url, headers=headers, params=params, json=data)
    response.raise_for_status()
    
    analysis = response.json()
    
    # Extract the word bounding boxes and text.
    line_infos = [region["lines"] for region in analysis["regions"]]
    word_infos = []
    for line in line_infos:
        for word_metadata in line:
            for word_info in word_metadata["words"]:
                word_infos.append(word_info)
    word_infos
    
    # Display the image and overlay it with the extracted text.
    plt.figure(figsize=(5, 5))
    image = Image.open(BytesIO(requests.get(image_url).content))
    ax = plt.imshow(image, alpha=0.5)
    for word in word_infos:
        bbox = [int(num) for num in word["boundingBox"].split(",")]
        text = word["text"]
        origin = (bbox[0], bbox[1])
        patch  = Rectangle(origin, bbox[2], bbox[3], fill=False, linewidth=2, color='y')
        ax.axes.add_patch(patch)
        plt.text(origin[0], origin[1], text, fontsize=20, weight="bold", va="top")
    plt.axis("off")

    2018년 9월 11일 화요일 오전 1:35

모든 응답