Selenium で撮った スクリーンショット を ImageNet の学習済みモデルを使って 何のページか雑に推定してみる
推定してみるページ その1
www.min-inuzukan.com
推定してみるページ その2
www.instagram.com
結果 : 動物だけだと簡単すぎたかも...
みんなの犬図鑑 - トイプードル 0.png ← その1のページ ('n02113624', 'toy_poodle', 0.9494451) ('n02113712', 'miniature_poodle', 0.0339178) ('n02113799', 'standard_poodle', 0.015091205) ('n02093647', 'Bedlington_terrier', 0.0007793304) ('n06359193', 'web_site', 0.00039212801) Instagram photo by Grumpy Cat • Aug 7, 2018 at 5:27 AM 1.png ← その2のページ ('n02123597', 'Siamese_cat', 0.75590235) ('n06359193', 'web_site', 0.23546399) ('n03782006', 'monitor', 0.0041238526) ('n04152593', 'screen', 0.0006635995) ('n02123394', 'Persian_cat', 0.00024246887)
ソース
import numpy as np import sys # keras 関係 from keras.applications.vgg16 import VGG16, preprocess_input, decode_predictions from keras.applications.vgg19 import VGG19, preprocess_input, decode_predictions from keras.applications.resnet50 import ResNet50 from keras.applications.inception_v3 import InceptionV3, preprocess_input from keras.preprocessing import image model = InceptionV3(weights='imagenet') # Selenium 関係 from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver.Chrome(options=options) # 推定してみるページ urls = ['https://www.min-inuzukan.com/toy-poodle.html', 'https://www.instagram.com/p/BmJpw3XBTiY/?utm_source=ig_embed'] for i in range(len(urls)) : url = urls[i] file_name = str(i)+'.png' driver.get( url ) #スクリーンショット取得 driver.save_screenshot( file_name ) # イメージ分類 img = image.load_img(file_name, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) preds = model.predict(preprocess_input(x)) results = decode_predictions(preds, top=5)[0] # 結果出力 print(driver.title, file_name ) for result in results: print(result) driver.quit()