October 12, 2021
Google Cloud Vision image

Trình diễn Google Cloud Vision API với Python (P1) – Image attributes

Tiếp theo bài viết “Khám phá Google Cloud Vision API“, nay chúng ta sẽ tìm hiểu tiếp cách sử dụng Cloud Vision API trong python như thế nào? Trong bài viết này sử dụng các thư viện như sau.

  • python version 3.x
  • google-cloud-vision
  • google-images-download

Trình diễn Google Cloud Vision API với Python

I. Cài đặt thư viện cần thiết bằng pip

pip install google-cloud-vision google_images_download

Sau khi cài đặt xong thì chúng ta bắt tay vào vài đoạn code nhỏ để lấy vài thông tin cơ bản của hình ảnh được hỗ trợ bởi Vision API.

II. Khám phá các thuộc tính của hình ảnh

Tính năng này cho phép khám phá các thuộc tính hình ảnh chung như màu chủ đạo hoặc gợi ý cắt xén. Trước tiên, chúng ta đăng nhập Google Cloud Platform (GCP) và gọi hàm image_properties_annotation() có chứa các tiện ích để trích xuất các thuộc tính hình ảnh.

Hình 1: hình ảnh đầu vào cho ví dụ bên dưới (dog.jpg)
import os
import io
from google.cloud import vision

#login 
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = 'client_serects.json'
client = vision.ImageAnnotatorClient()
# Load your image into your workspace

path = 'dog.jpg'
with io.open(path, 'rb') as image_file:
    content = image_file.read()

# instantiate an object of vision.types.Image and supply content = content as argument
image = vision.types.Image(content=content)
# create a response as object and set image property as image
response = client.image_properties(image=image)

props = response.image_properties_annotation
print('Properties of image:')
for color in props.dominant_colors.colors:
    print('Fraction : {}'.format(color.pixel_fraction))
    print('\tRed :{}'.format(color.color.red))
    print('\tGreen :{}'.format(color.color.green))
    print('\tBlue :{}'.format(color.color.blue))

Sau khi chạy đoạn code trên thì kết quả như hình bên dưới

Hình 2: Các thông tin cơ bản của hình ảnh.

III. Download Image từ Google sử dụng Python

Python có một module gọi là google_image_download , nó cung cấp một nền tảng để tìm kiếm trên web và tải hình ảnh đủ điều kiện về máy của mình. Giờ chúng ta viết thêm một hàm để download hình ảnh từ google nhé.

from google_images_download import google_images_download

def download_images(query):
    response = google_images_download.googleimagesdownload()
    arguments = {
        'keywords': query,
        'limit': 10,
        'print_urls': True
    }
    # providing argumentsfor searched query
    try:
        response.download(arguments)
    # handling file not found error
    except:
        pass


search_queries = ['dogs playing with balloons',
                  'cats playing with yarns',
                  'funny ducks']
for query in search_queries:
    download_images(query)
    print()

Chúng ta có thể thực hiện tìm kiếm chi tiết hơn bằng cách đặt thuộc tính đối số.

  • keywords : từ khóa cần tìm kiếm
  • format : định dạng của file ảnh cần tìm kiếm (.jpg, .png,…)
  • limit : Số lượng file cần download
  • print urls: show đường dẫn file ảnh nguồn ra màn hình console
  • size : kích thước của ảnh cần tìm kiếm (large, medium, icon)
  • aspect ratio: tỷ lệ chiều rộng của hình ảnh để download. (tall, square, wide, panoramic)

Sau khi chạy code trên thì chương trình sẽ download các file theo các điều kiện trong argument . Các file download được sẽ nằm trong thư mục downloads/ [từ khóa tìm kiếm trong search_queries].

Những thông tin trên hi vọng giúp ích cho các bạn về các khả năng mà Google Vision API trên nền tảng GCP có thể hỗ trợ được. Ở bài viết tiếp theo, chúng ta sẽ tiếp tục một vài ví dụ nho nhỏ nhận dạng khuôn mặt (face detection) được hỗ trợ bởi Cloud Vision API.

Khi có chỗ nào chưa rõ, cần support, các bạn hãy liên hệ với các chuyên gia – Cloud Ace Việt Nam – để được hỗ trợ tốt hơn.

Trình diễn Google Cloud Vision API với Python Series:

Bao Vuong

Vương hiện là Cloud Engineer của Cloud Ace Vietnam.+6 năm kinh nghiệm phát triển backend +2 năm kinh nghiệm Data Analytics +1 năm kinh nghiệm Machine Learning

View all posts by Bao Vuong →