【Python/Keras】VGG16で画像認識・分類

Pythonの機械学習モジュール「Keras」でCNN(畳み込みニューラルネットワーク)を実装し、VGG16を利用して画像認識・分類する方法をソースコード付きでまとめました。

【Keras】VGG16で画像認識・分類

Pythonの深層学習モジュール「Keras」でVGG16を利用して画像認識・分類します。

VGG16とは、1000種類の膨大な画像データセット「ImageNet」で作成された16層の学習済みCNNモデルです。
2014年のILSVRC(ImageNet Large Scale Visual Recognition Challenge)で登場しました。
VGG16の概要を整理すると以下の通り。

項目 説明
構成 畳み込み13層、全結合3層の計16層
出力層 1000ユニット(1000分類するため)
分類数 1000
関連ページ Keras公式ドキュメント
404 NOT FOUND | Python入門速報

Kerasでは、VGG16の学習済みモデルを「keras.applications.vgg16」で簡単に呼び出して利用できます。

書式

from keras.applications.vgg16 import VGG16

model = VGG16(include_top=True, weights='imagenet', input_tensor=None, input_shape=None)
パラメータ 説明
include_top VGG16の全結合層(FC層)を含むかどうか。(元の1000分類をそのまま利用したいならTrue、カスタマイズして別の用途に使うときはFalse)
weights VGG16の重みの種類。(imagenetならImageNetを使って学習した重み、Noneならランダム重み)
input_tensor VGG16でFine-tuningする際に利用。
input_shape 入力画像の次元数。(NoneならImageNetの標準である(224, 224, 3))

サンプルコード

サンプルプログラムのソースコードです。


入力画像

【TensorFlow版Keras入門】ディープラーニングを簡単に学ぶ方法
Pythonモジュール「TensorFlow/Keras」で深層学習(ディープラーニング)を行う方法について入門者向けに使い方を解説します。

コメント