トップページ -> データベース研究スタート -> Keras 2 の利用 -> rykov ssd_keras を使ってみる (書きかけ)
[サイトマップへ]  

rykov ssd_keras を使ってみる (書きかけ)

このページは書きかけです。 「SnowMasaya / ssd_keras を使ってみる」の方に類似内容で解説していますので、ご覧ください

rykov ssd_keras を使ってみます. Keras 2, Python を使うのが前提です.

先人に感謝.

キーワード: rykov ssd_keras, Keras 2, Python, Windows インストール


前もって準備しておくこと

前準備として,Anaconda のインストールが終わっていること. 手順を下に説明しています.

Anaconda のインストール

Python 3 の開発環境である Anacondaをおすすめ.Window でのインストール手順は次の通りです(Linuxでも同様の手順です).

  1. https://www.continuum.io/downloads#windowsを開く

  2. Download」をクリックする.

  3. ダウンロードが始まるので確認する.

  4. ダウンロードした .exe ファイルを実行して,Anacondaをインストール.

    Python処理系にはいくつかの種類がある. この Web ページでは Anaconda をおすすめしている. 以下,Windows に Anacondaをインストールしたものとして説明を続ける.

  5. Windows で,コマンドプロンプトを管理者として実行

    ※ Linux の場合には,端末を開く(pyenvを使っているときは pip の実行に管理者権限を必要としない)

  6. まずは,最新の conda-build パッケージが欲しい.今のコマンドプロンプトで,次のコマンドを実行

    conda install -y conda-build
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.

  7. conda が更新されたので,コマンドプロンプトをいったん閉じる

  8. 再び,コマンドプロンプトを管理者として実行

  9. コマンドプロンプトで,次のコマンドを実行

    conda update -y pip
    conda update -y setuptools
    conda update -y conda
    conda update -y conda-build
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.


Keras 2 と前提となる Python パッケージのインストール手順

  1. コマンドプロンプトを管理者として実行

  2. Anaconda プロンプトで,次のコマンドを実行

    ※ Anaconda や Miniconda を使っていないときは conda コマンドがないので pip コマンドを使ってください

    ※ conda パッケージの tensorflow が古いので(2018/02時点),pip を使うことにする.

    conda install numpy scipy 
    conda install yaml 
    conda install hdf5 
    conda install h5py
    conda --upgrade all
    pip install --ignore-installed --upgrade tensorflow 
    pip install --ignore-installed --upgrade keras 
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.


動作に必要となる Python パッケージのインストール

コマンドプロンプトを管理者として実行 その後,次のコマンドを実行.

書きかけ


rykov ssd_keras のインストール手順

  1. rykov ssd_keras の Web ページを開く

    https://github.com/rykov8/ssd_keras

  2. Clone or download」を展開し, 「Download ZIP」をクリック

  3. .zip ファイルがダウンロードされるので確認する.

  4. ダウンロードした .zip ファイルを展開(解凍)する.分かりやすいディレクトリに置く.

    ※ Windows での展開(解凍)のためのソフトは「7-Zip」をおすすめ.

    この .zip ファイルは,E:\ssd_keras-master に展開(解凍)したものとして,説明を続けるので,適切に読み替えてください.

  5. rykov ssd_keras の Web ページに記載の通り,次のWebページを開く

    https://mega.nz/#F!7RowVLCL!q3cEVRK9jyOSB9el3SssIA

  6. 2つの hdfファイルが表示されるので確認する.

  7. 2つともダウンロードしたい. 「ZIPとしてダウンロードする」をクリック.

  8. SSD.zip というファイルがダウンロードされるので確認する.

  9. SSD.zip を展開(解凍)し,できたファイルを先ほど展開したディレクトリに置く.

    下の図のように


テスト実行

  1. Web ブラウザで rykov ssd_keras の SSD.ipynb を開く

    https://github.com/rykov8/ssd_keras/blob/master/SSD.ipynb

  2. SSD.ipynb に記載のコマンドを実行しながら結果を結果を確認したい.

    そのために, 「IPython シェル」を使う.

    Anacondaに入っている開発環境 spyder を実行し,右下の ipython コンソールを使うのが簡単.

  3. IPython シェルで,さきほど展開(解凍)したディレクトリに移動

    ssd.py というファイルがあるディレクトリに移動.

    cd E:\ssd_keras-master\ssd_keras-master
    

  4. ステップ 1 (初期設定)

    次の Python プログラムを実行

    https://github.com/rykov8/ssd_keras/blob/master/SSD.ipynb の「in [1]」に記載の通り.

    import cv2
    import keras
    from keras.applications.imagenet_utils import preprocess_input
    from keras.backend.tensorflow_backend import set_session
    from keras.models import Model
    from keras.preprocessing import image
    import matplotlib.pyplot as plt
    import numpy as np
    from scipy.misc import imread
    import tensorflow as tf
    
    from ssd import SSD300
    from ssd_utils import BBoxUtility
    
    %matplotlib inline
    plt.rcParams['figure.figsize'] = (8, 8)
    plt.rcParams['image.interpolation'] = 'nearest'
    
    np.set_printoptions(suppress=True)
    
    config = tf.ConfigProto()
    config.gpu_options.per_process_gpu_memory_fraction = 0.45
    set_session(tf.Session(config=config))
    

  5. ステップ 2 (種類の設定)

    次の Python プログラムを実行

    https://github.com/rykov8/ssd_keras/blob/master/SSD.ipynb の「in [2]」に記載の通り.

    voc_classes = ['Aeroplane', 'Bicycle', 'Bird', 'Boat', 'Bottle',
                   'Bus', 'Car', 'Cat', 'Chair', 'Cow', 'Diningtable',
                   'Dog', 'Horse','Motorbike', 'Person', 'Pottedplant',
                   'Sheep', 'Sofa', 'Train', 'Tvmonitor']
    NUM_CLASSES = len(voc_classes) + 1
    

  6. ステップ 3 (先ほどダウンロードした学習結果ファイル weights_SSD300.hdf5 の読み込み

    次の Python プログラムを実行

    https://github.com/rykov8/ssd_keras/blob/master/SSD.ipynb の「in [3]」に記載の通り.

    input_shape=(300, 300, 3)
    model = SSD300(input_shape, num_classes=NUM_CLASSES)
    model.load_weights('weights_SSD300.hdf5', by_name=True)
    bbox_util = BBoxUtility(NUM_CLASSES)
    

  7. ステップ 1

    次の Python プログラムを実行

    https://github.com/rykov8/ssd_keras/blob/master/SSD.ipynb の「in [1]」に記載の通り.

    
    

    書きかけ