2017年7月2日日曜日

Keras 上で ResNet50 を使用して分類を試してみた。(I tried classification using ResNet50 on Keras.)


30.0%   steam_locomotive
20.1%   passenger_car
9.3%   toyshop
8.6%   electric_locomotive
8.5%   freight_car

はじめに

kerasの環境構築ができたので、指定したファイルのクラスを分類できるかを確認してみた。
前回は、モデルにVGG16を使用したが、今回は、ResNet50を使用した。

使用した環境は、前回と同じである。

変更点

VGG16のソースから2点修正した。
kerasのアプリケーションをVGG16からresnet50に、モデルにはResNet50を指定する。

from keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions

model = ResNet50(weights='imagenet')

結果

トーマスを試してみる。VGG16の結果は、

12.8%   pencil_sharpener
11.8%   forklift
6.4%   projector
5.3%   espresso_maker
2.6%   loudspeaker

 とうまく認識されなかったが、ResNet50では、蒸気機関車と認識されるようになった。

残念ながら横長の画像では、




28.3%   vacuum
13.9%   gas_pump
7.6%   totem_pole
4.8%   knee_pad
2.7%   pay-phone
と残念な結果であった。

メモ

weightは、最初の実行時に自動的にダウンロードされ、~/.keras/models の下に格納される。

 ファイル名は、
 resnet50_weights_tf_dim_ordering_tf_kernels.h5
 でサイズは、約103Mである。

0 件のコメント:

コメントを投稿