0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MacbookからGoogle Cloud Platformの画像ラベル出力APIを動かしてみた

Last updated at Posted at 2021-07-20

自分が管理するGCPアカウントで立ち上げたGCPプロジェクトに、手元のMacbookからsshリモート接続して、GCPのAPIを叩くシリーズの第2弾です。

__前回の記事__では、次の準備作業を行いました。

1. GCPアカウントの取得
2. GCPプロジェクトの作成
3. 作成したGCPプロジェクトの認証キー(jsonファイル)の作成と、ローカルPCへのダウンロード

1〜3の手順は、次のウェブページがわかりやすいです。私もこのウェブページに沿って、準備を行いました。

続けて、Macbookの任意の場所(ディレクトリ)に、ダウンロードした__認証キーのファイル(jsonファイル)を格納__しました。

(以下、XXYYZZAABBCCDDの部分は、各自のjsonファイル名に読み替えて下さい)

Terminal
electron@diynoMacBook-Pro Desktop % cd gcp
electron@diynoMacBook-Pro gcp % ls
XXYYZZAABBCCDD.json
electron@diynoMacBook-Pro gcp % 

そして、__認証キー(jsonファイル)の格納先の絶対パスを、GCPの環境変数として、Macbookへの登録__を行いました。

(以下、XXYYZZAABBCCDDの部分は、各自のjsonファイル名に読み替えて下さい)

Terminal
electron@diynoMacBook-Pro gcp % export GOOGLE_APPLICATION_CREDENTIALS="/Users/electron/Desktop/gcp/XXYYZZAABBCCDD.json"

##画像ファイルの被写体ラベル検出APIを試した

第2弾の本記事では、画像ファイルをGCPのAPIに渡して、ファイルのなかに映っている被写体を描写したする英単語を、返り値として受け取ってみました。

( 参考にしたサイト )

スクリーンショット 2021-07-20 22.25.12.png

Terminal
electron@diynoMacBook-Pro gcp %  python3                                                                                                
>>> from pathlib import Path
>>> from google.cloud import vision
>>> 
>>> client = vision.ImageAnnotatorClient()
>>>
>>> p4 = Path().parent / 'sample4.png'
>>> with p4.open('rb') as image_file:
...     content = image_file.read()
... 
>>> 
>>> image4 = vision.Image(content=content)
>>> response = client.label_detection(image=image4)
>>> labels = response.label_annotations
>>> 
>>> for label in labels:
...     print(label.description)
... 
Glasses
Smile
Coat
Sleeve
Gesture
Happy
Tie
Dress shirt
Finger
Collar
>>> 

見事、__画像ファイルの被写体の内容を説明する、ラベルとなる英単語__の出力に成功しました:airplane:

ここからは、コードをスクリプトファイルに書いて、GCPに画像ファイルを投げてみます。

image_label_words.py
import io
import argparse, os
from pathlib import Path
from google.cloud import vision

# 画像ファイル名をコマンドライン引数から受け取る
parser = argparse.ArgumentParser(description='')    #
parser.add_argument('file_name')  
args = parser.parse_args()  

image_file = args.file_name

client = vision.ImageAnnotatorClient()

p = Path().parent / image_file
with p.open('rb') as image_file:
	content = image_file.read()

image = vision.Image(content=content)
response = client.label_detection(image=image)
labels = response.label_annotations

try:
	print("\n解析対象のファイル : " + str(args.file_name) + "\n")
	if (labels is None) or (len(labels) == 0):
		print("\n出力されたラベルはありませんでした。\n")
	else:
		print(str(len(labels)) + "件のラベル単語が出力されました。 \n")
		print("\n==================\n")
		for label in labels:
			print(label.description)
		
		print("\n==================\n")
except:
	pass

今度は、大谷翔平選手の投球シーンをとらえた一枚を渡してみます。

ohtani_san.png

Terminal
electron@diynoMacBook-Pro gcp % python3 image_label_words.py ohtani_san.png

解析対象のファイル : ohtani_san.png

10件のラベル単語が出力されました。 


==================

Sports uniform
Sports equipment
Sports gear
Baseball park
Baseball equipment
Jersey
Baseball protective gear
Baseball field
Baseball
Baseball uniform

==================

electron@diynoMacBook-Pro gcp % 

land.png

Terminal
electron@diynoMacBook-Pro gcp %  python3 image_label_words.py land.png      

解析対象のファイル : land.png

10件のラベル単語が出力されました。 


==================

Sky
Building
Skyscraper
Tower
Urban design
Tower block
Landmark
City
Cityscape
Engineering

==================

electron@diynoMacBook-Pro gcp % 

良い感じです:rainbow:

kokugikan_1.png

Terminal
electron@diynoMacBook-Pro gcp % python3 image_label_words.py kokugikan_1.png 

解析対象のファイル : kokugikan_1.png

10件のラベル単語が出力されました。 


==================

Building
Water
Urban design
Tower block
Real estate
Landscape
Tower
City
Condominium
Cityscape

==================

electron@diynoMacBook-Pro gcp % 

kokugikan_2.png

Terminal
electron@diynoMacBook-Pro gcp % python3 image_label_words.py kokugikan_2.png

解析対象のファイル : kokugikan_2.png

10件のラベル単語が出力されました。 


==================

Photograph
Light
Product
Chair
Red
Musical instrument accessory
Building
Event
Sport venue
Field house

==================

electron@diynoMacBook-Pro gcp % 

まずまずの結果です。お疲れ様でした、GCP

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?