【iOS11】Python3.6+Keras+TensorFlowでiOS用の独自画像認識モデルの作成をしてみた

今回、iOSのCoreMLを使用した独自の画像認識機能の作成をしてみたので、PythonのKerasを使用した独自の学習モデルの作成。mlmodelへの変換。独自画像認識のテスト。までをまとめました。

もくじ

  1. Python3.6のインストール
  2. Kerasのインストール
  3. Python+Kerasによる独自の学習モデルの作成

1. Python3.6のインストール

Pythonの公式ホームページのダウンロードページより任意のpythonのバージョンを選択してmac用のインストーラーをダウンロードし、pythonのインストールをします。

 

今回、私はpython6.6のページへ行き、「macOS 64-bit installer」というmac用のインストールパッケージをダウンロードしました。

ダウンロードが完了したらパッケージよりPythonをインストールしてください。
Pythonのインストールと同時にPython用のモジュールを簡単にインストールするためのpip3というのも同時にインストールされます。

パッケージによるPythonのインストールが完了したら動作確認のためPythonのバージョン、pip3の使用確認をしましょう。

Ptythonのバージョン確認

pip3の使用確認

注意!Python3.7だとTensorFlowが動かない

python3.7だとTensorFlowがうまく利用できない以下のようなエラーになります。
python3.6をインストールするようにしてください。

Traceback (most recent call last):
File “cnn.py”, line 3, in <module>
import keras
File “/usr/local/lib/python3.7/site-packages/keras/__init__.py”, line 3, in <module>
from . import utils
File “/usr/local/lib/python3.7/site-packages/keras/utils/__init__.py”, line 6, in <module>
from . import conv_utils
File “/usr/local/lib/python3.7/site-packages/keras/utils/conv_utils.py”, line 9, in <module>
from .. import backend as K
File “/usr/local/lib/python3.7/site-packages/keras/backend/__init__.py”, line 89, in <module>
from .tensorflow_backend import *
File “/usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py”, line 5, in <module>
import tensorflow as tf
File “/usr/local/lib/python3.7/site-packages/tensorflow/__init__.py”, line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File “/usr/local/lib/python3.7/site-packages/tensorflow/python/__init__.py”, line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File “/usr/local/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow.py”, line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File “/usr/local/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 114
def TFE_ContextOptionsSetAsync(arg1, async):
^

 

2. 機械学習作成ライブラリ「Keras」のインストール

Kerasを使用します。
インストール手順である、KerasのバックエンドのTensorFlowからインストールしてきます。

TensorFlowのインストール

※URLはPythonのバージョンにより異なる場合があります。

実行したものの、以下のようなエラーが出た時は–userオプションをつけてください。

Could not install packages due to an EnvironmentError: [Errno 1] Operation not permitted

完了した場合、ちゃんとインストールされているか確認します。

tensorflow1.8.0があることが確認できます。
これでTensorFlowのインストールは完了です。

Kerasのインストール

完了した場合、再度インストールされているか確認します。

Keras2.2.2があるのが確認できますね。
これでKerasのインストールは完了です。

 

3. Python+Kerasによる独自の学習モデルの作成

独自の学習モデルを作成するために、まず学習用のトレーニングデータを生成します。
次にトレーニングデータを使用し、独自の学習モデルを生成します。

機械学習用のトレーニングデータ作成のプログラム

プログラムを実行します。

エラーがでるのでpip3でインストールして行きましょう。

Traceback (most recent call last):
File “data_create.py”, line 3, in <module>
from PIL import Image
ModuleNotFoundError: No module named ‘PIL’

Traceback (most recent call last):
File “data_create.py”, line 5, in <module>
from sklearn import cross_validation
ModuleNotFoundError: No module named ‘sklearn’

再度、プログラムを実行します。

次はこのようなエラーがでます。

FileNotFoundError: [Errno 2] No such file or directory: ‘./npy/fruits.npy’

生成したトレーニングデータ(fruits.npy)を保存しようと思ったけどディレクトリが見つからなかったよーということなので、npy」という名前でフォルダを作成してください。

再度、プログラムを実行します。

おそらくエラーがなくなり、fruits.npyが作成できていると思います。

モデルの生成プログラム

次にモデル生成のプログラムを実行します。

またエラーがでるのでpip3でインストールして行きましょう。

Traceback (most recent call last):
File “train.py”, line 6, in <module>
import pandas as pd
ModuleNotFoundError: No module named ‘pandas’

再度、プログラムを実行します。

今度は、モデルを保存するためのディレクトリが見つからないと言われるので、先ほど同様にmodel」という名前でフォルダを作成します。

FileNotFoundError: [Errno 2] No such file or directory: ‘./model/fruits-model.hdf5

再度、プログラムを実行します。

おそらくエラーがなくなり、fruits-model.hdf5が作成できていると思います。