google vision API 사용하기
▣ 간단 사용법.
아래 사이트를 참고해서 설치 후 예제를 실행해 봤다.
http://statkclee.github.io/deep-learning/gc-vision.html
그러면 아래와 같이 detection 결과를 볼 수 있다.
모든 python 예제코드들은 구글에서 아래 github를 통해 제공한다.
https://github.com/GoogleCloudPlatform/python-docs-samples
▣ Google Cloud Vision API 사용법
먼저 아래의 Google Cloud Vision API 사용 예제를 익혀보자.
https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/vision/api/label
위 예제를 해보기 위해서 아래와 같이 사이트에서 Google Cloud SDK 을 설치하고 간단하게
gcloud 사용법을 익힌다.
https://cloud.google.com/sdk/docs/quickstart-linux
이제 아래 예제를 따라해보자.
https://cloud.google.com/storage/docs/quickstart-gsutil
로컬 터미널에서 접속을 해 본다.
1. 내 터미널에서 bucket 생성해보기
$ gsutil mb gs://my-data-vision00
아래와 같은 응답이 나오면서 내 cloud에 my-data-vision00 이라는 bucket이 생성된 걸 확인할 수 있었다.
Creating gs://my-data-vision00/...
3. 다른 유용한 기능들.
다른 것도 매우 간단해서 더 이상 정리하지 않아도 된다.
● Give someone access to your bucket
→ 누군가에게 내 bucket에 있는 데이타를 공유할 때 좋은 듯.
이렇게 기본 예제를 통해 gsutil Tool 사용법을 배워봤다.
자 이제 다시 Google Cloud Vision API Python Samples를 보자.
아래 코드는 vision/api/label/label.py 에 있는 예제로 python label.py /path/to/image_file.jpg 를 터미널에서 치면 사진에 label을 붙여준다.
나는 아래 고양이 사진을 넣으니 cat 이라고 label 결과가 나왔다.
내가 넣은 사진 path를 아래와 같이 읽는다.
base64.b64encode 는 사진에 대해 encoding을 수행한다.
cloud-client 사용법
1. crop_hints 사용법
먼저, 아래와 같이 환경을 set-up 하는게 중요하다.
자 이제 아래와 같이 명령어를 입력하면 된다.
python crop_hints.py /path/to/image_file.jpg crop
그러면 아래같이 위 고양이 사진이 crop되어 나온다.
아래 코드를 보면 crop 인 경우 crop_to_hint 함수가 실행된다.
option에서 draw를 선택하면 아래와 같이 bounding box 가 그려진다.
2. detect 사용법
아래 사이트를 참고해서 설치 후 예제를 실행해 봤다.
http://statkclee.github.io/deep-learning/gc-vision.html
그러면 아래와 같이 detection 결과를 볼 수 있다.
모든 python 예제코드들은 구글에서 아래 github를 통해 제공한다.
https://github.com/GoogleCloudPlatform/python-docs-samples
▣ Google Cloud Vision API 사용법
먼저 아래의 Google Cloud Vision API 사용 예제를 익혀보자.
https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/vision/api/label
위 예제를 해보기 위해서 아래와 같이 사이트에서 Google Cloud SDK 을 설치하고 간단하게
gcloud 사용법을 익힌다.
https://cloud.google.com/sdk/docs/quickstart-linux
이제 아래 예제를 따라해보자.
https://cloud.google.com/storage/docs/quickstart-gsutil
로컬 터미널에서 접속을 해 본다.
1. 내 터미널에서 bucket 생성해보기
$ gsutil mb gs://my-data-vision00
아래와 같은 응답이 나오면서 내 cloud에 my-data-vision00 이라는 bucket이 생성된 걸 확인할 수 있었다.
Creating gs://my-data-vision00/...
2. 내 bucket에 object 를 upload 해보자.
아래와 같이 내 bucket에 잘 저장된 걸 확인할 수 있다.
다른 것도 매우 간단해서 더 이상 정리하지 않아도 된다.
● Give someone access to your bucket
→ 누군가에게 내 bucket에 있는 데이타를 공유할 때 좋은 듯.
- Use the
gsutil acl ch
command to give a specific email address read and write permission for your bucket:If successful, the command returns: gsutil acl ch -u user@gmail.com:W gs://my-awesome-bucket
Now someone else can put things into and take things out of your bucket. Updated ACL on gs://my-awesome-bucket/
- To remove this permission, use the command:
If successful, the command returns: gsutil acl ch -d user@gmail.com gs://my-awesome-bucket
You have removed the user's access to this bucket. Updated ACL on gs://my-awesome-bucket/
api/label 사용법
간단한 사용법을 먼저 익히다 보니 많이 돌아 온 것 같다.자 이제 다시 Google Cloud Vision API Python Samples를 보자.
아래 코드는 vision/api/label/label.py 에 있는 예제로 python label.py /path/to/image_file.jpg 를 터미널에서 치면 사진에 label을 붙여준다.
나는 아래 고양이 사진을 넣으니 cat 이라고 label 결과가 나왔다.
내가 넣은 사진 path를 아래와 같이 읽는다.
base64.b64encode 는 사진에 대해 encoding을 수행한다.
with open(photo_file, 'rb') as image:
|
1. crop_hints 사용법
먼저, 아래와 같이 환경을 set-up 하는게 중요하다.
Install Dependencies
- Install pip and virtualenv if you do not already have them.
- Create a virtualenv. Samples are compatible with Python 2.7 and 3.4+.
$ virtualenv env $ source env/bin/activate
- Install the dependencies needed to run the samples.
$ pip install -r requirements.txt
자 이제 아래와 같이 명령어를 입력하면 된다.
python crop_hints.py /path/to/image_file.jpg crop
그러면 아래같이 위 고양이 사진이 crop되어 나온다.
아래 코드를 보면 crop 인 경우 crop_to_hint 함수가 실행된다.
option에서 draw를 선택하면 아래와 같이 bounding box 가 그려진다.
아래와 같이 다양한 예제가 존재한다.
Example Usage: python detect.py text ./resources/wakeupcat.jpg python detect.py labels ./resources/landmark.jpg python detect.py web ./resources/landmark.jpg python detect.py web-uri http://wheresgus.com/dog.JPG python detect.py faces-uri gs://your-bucket/file.jpg
예제에서 사용하는 000007.jpg 는 아래와 같다.
1) 먼저 text 로 python detect.py text /path/to/image/000007.jpg
아래과 같이 bbox가 text로 출력된다.
코드는 아래와 같다.
def detect_text(path):
"""Detects text in the file."""
vision_client = vision.Client()
with io.open(path, 'rb') as image_file:
content = image_file.read()
image = vision_client.image(content=content)
texts = image.detect_text()
print('Texts:')
for text in texts:
print('\n"{}"'.format(text.description))
vertices = (['({},{})'.format(bound.x_coordinate, bound.y_coordinate)
for bound in text.bounds.vertices])
print('bounds: {}'.format(','.join(vertices)))
2) python detect.py labels /path/to/image/000007.jpg
코드는 아래와 같다.
def detect_labels(path):
"""Detects labels in the file."""
vision_client = vision.Client()
with io.open(path, 'rb') as image_file:
content = image_file.read()
image = vision_client.image(content=content)
labels = image.detect_labels()
print('Labels:')
for label in labels:
print(label.description)
이 외에도 detect.py에는 web이나 bucket에 있는 사진에 대해 landmark나 표정인식 등 다양한 예제가 있다.
3. document_text 사용법
python doctext.py
아래와 같이 문자 영역에 bbox를 쳐준다.
아래는 배경이 흰색이라 잘되는 경우고
아래 사진은 배경이 복잡해서 어려운 경우이다.
이상으로 Google Cloud Vision API 사용법을 배워봤다.
datalab 뿐 아니라 내 PC의 터미널에서 직접 명령어를 넣어 내 PC에 저장되어 있는 이미지나 웹에 있는 이미지에 대해 vision api를 사용할 수 있는 점이 인상적이였다.
댓글
댓글 쓰기