忍者ブログ

設備のマニアどっとこむ

設備、電子工作、DIYのブログ!

09/23

Sun

2018

Tensorflowで画像分類した話

なかなか使いこなせないでいるTensorflowですが、画像分類をやってみました。

VGG16という大量にある学習済みモデルを用いて画像を判別。可能性の高いベスト5をAIに選んでもらいました。

コードはこちら↓
from keras.applications.vgg16 import VGG16, preprocess_input, decode_predictions
from keras.preprocessing import image
import numpy as np
import sys
"""
ImageNetで学習済みのVGG16モデルを使って入力画像のクラスを予測する
"""
# 学習済みのVGG16をロード
# 構造とともに学習済みの重みも読み込まれる
model = VGG16(weights='imagenet')
# model.summary()
# 引数で指定した画像ファイルを読み込む
# サイズはVGG16のデフォルトである224x224にリサイズされる
img = image.load_img('C:\\Users\\masashi\\Desktop\\photo.jpg', target_size=(224, 224))
# 読み込んだPIL形式の画像をarrayに変換
x = image.img_to_array(img)
# 3次元テンソル(rows, cols, channels) を
# 4次元テンソル (samples, rows, cols, channels) に変換
# 入力画像は1枚なのでsamples=1でよい
x = np.expand_dims(x, axis=0)
# Top-5のクラスを予測する
# VGG16の1000クラスはdecode_predictions()で文字列に変換される
preds = model.predict(preprocess_input(x))
results = decode_predictions(preds, top=5)[0]
for result in results:
    print(result)



例えばこんな犬の画像だと…


('n02087394', 'Rhodesian_ridgeback', 0.58250064)
('n02090379', 'redbone', 0.1364721)
('n02099601', 'golden_retriever', 0.058095142)
('n02088466', 'bloodhound', 0.055783514)
('n02106662', 'German_shepherd', 0.03908478)




このように犬の種類が出ます。

参考にしたサイトです↓
http://aidiary.hatenablog.com/entry/20170104/1483535144

ラズパイでできればと思ったんですが、全然だめでした…






拍手[0回]

PR

Comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

翻訳(Translate)

AD

シェアしてね

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備のマニア
最近はarduino,Raspberry piyear等の電子工作にハマる。
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトほか

カウンター

お問い合わせ

忍者アクセスランキング

Copyright © 設備のマニアどっとこむ : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]