로컬 환경에서 Rekognition을 사용하여 인식 결과를 반영

소개



로컬 환경에서 AWS Rekognition을 사용하는 것을 목표로하고 대상 이미지도 로컬로 저장 한 것을 사용합니다.

Rekognition에서 얻은 인식 결과를 이미지에 플롯하여 배운 느낌을 낸다.

전제 조건



・AWS CLI(Command Line Interface)를 사용할 수 있는 것
macOS에 배포 설정을 여기에 표시합니다.
htps : // / cs. 아 ws. 아마존. 코 m / 그럼 _ jp / c ぃ / ㅁ st / 우세 r 굿이 / 엔 s 탓 l 마코 s. HTML

・Python이 사용할 수 있는 환경이 갖추어져 있는 것 & 이하의 커멘드로 라이브러리를 추가했습니다
pip install --upgrade boto3pip install pillowpip install matplotlib(pip install PyQt5) ← 실행하지 않아도 동작하는 사람은 필요없을 것

앞에서 설명했지만 3. 프로그램 이동까지 읽고 실행하십시오.

사용환경



MacBook Pro
- macOS Mojave 버전 10.14.3
- 2.7 GHz Intel Core i7
- 16GB 2133MHz LPDDR3
AWS
- CLI
- Rekognition

절차


  • AWS CLI 설정
  • 코드 작성
  • 프로그램 이동

  • 1. AWS CLI 구성



    htps : // / cs. 아 ws. 아마존. 이 m/그럼_jp/cぃ/ぁてst/うせrぐいで/cぃーちゃーpこんふぃぐれ. HTML
    여기의 빠른 설정으로 설정했습니다.

    2. 코드 작성



    local_rekognition.py
    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    
    from boto3 import client
    from matplotlib import pyplot as plt
    from PIL import Image
    import random
    
    def local_image_rekognition():
        # "samnple.jpg"は適宜変えてください
        local_image = "sample.jpg"
    
        img = Image.open(local_image)
        img_width = img.size[0]
        img_height = img.size[1]
    
        rekognition = client("rekognition", region_name='ap-northeast-1')
    
        response = rekognition.detect_labels(
            Image={
                'Bytes': open(local_image, "rb").read()
            },
            MaxLabels=128
        )
    
        colors = {}
        for label in response['Labels']:
            label_name = label['Name']
            if label_name not in colors:
                colors[label_name] = (random.random(), random.random(), random.random())
            for instance in label['Instances']:
                bb = instance['BoundingBox']
    
                rect = plt.Rectangle(
                    (bb['Left'] * img_width,bb['Top'] * img_height),
                    bb['Width'] * img_width,bb['Height'] * img_height,
                    fill=False,
                    edgecolor=colors[label_name])
                plt.gca().add_patch(rect)
        plt.imshow(img)
        plt.show()
    
    if __name__ == "__main__":
        """
        """
        local_image_rekognition()
    

    세세한 것을 신경쓰지 않고 쓰고 있습니다.
    적절하게 함수를 분리하거나 추가하십시오.

    3. 프로그램 이동



    실행 명령 (mac의 terminal에서 실행)python local_rekogniton.py실행할 때 내가 막힌 곳과 그 해결책을 보여줍니다.

    코드 내 response의 내용을 가져온 이미지에 플롯하기 위해pip install matplotlib에서 라이브러리를 설치했지만 실행 오류가 발생했습니다.

    <해결책>pip install PyQt5rm ~/.matplotlib/matplotlibrcecho "backend : Qt4Agg" >> ~/.matplotlib/matplotlibrc
    다양한 솔루션이 인터넷에서 제시되었지만 내가 할 수있는 것은이 솔루션이었습니다.

    실행 결과는 다음과 같습니다.

    AWS Rekognition 사이트에서 사용되는 이미지를 사용했습니다.
    같은 결과를 얻을 수 있다고 생각합니다!

    참고 사이트(압도적 감사)



    htps : // 코 m / 폰 스케 / ms / 15322 에 1 아 db0f3 44 94
    htps : // v.ぁsss d. jp / 마치 네 - r r g / 아마 젠 - 리코 g 치 온 - p p - 가치 온 /
    htps : // 코 m / 마사토미 x / ms / 03419c7 10262 18f3

    좋은 웹페이지 즐겨찾기