2019年7月22日月曜日

動画の顔認識プログラム(SSD Keras)を動かす

概要

VIrtualBoxで構築したUbuntu環境でSSD Kerasを動かし、動画の顔認識をやってみます。

用語

顔認識:画像から人を自動識別するための技術
SSD:Single Shot MultiBox Detectorの略。深層学習モデル
Keras:tensorflowをラッピングした機械学習OSS。tensorflowをより容易に利用可能としている
tensorflow:google社が公開しているOSSの機械学習フレームワーク
h5py:バイナリーデータファイルのフォーマット HDF を扱う ためのPython ライブラリー。ここでは画像認識のための機械学習モデルをh5py形式で扱っている。
OpenCV:インテルが公開しているOSSの画像解析フレームワーク

事前準備(前提とする環境)

Ubuntu 16.04(Virtual Boxに構築)(Python3.5.2含)
※クリーンインストールされた状態

構築する環境

Keras v1.2.2
tensorflow v1.1.0
h5py v2.7.1
OpenCV v3.1.0

手順

OpenCVのインストール

opencv3.1.0をインストールする前に依存モジュールをインストールします。以下をそのまま実行してください。

$ sudo apt-get install \
        build-essential \
        cmake \
        git \
        pkg-config \
        libjpeg8-dev \
        libtiff5-dev \
        libjasper-dev \
        libpng12-dev \
        libavcodec-dev \
        libavformat-dev \
        libswscale-dev \
        libv4l-dev \
        libatlas-base-dev \
        libgtk2.0-dev \
        gfortran

依存モジュールが準備出来たら、gitからopenCVをダウンロードします。

$ cd ~
$ git clone git://github.com/opencv/opencv
$ cd opencv
$ git checkout 3.1.0

プログラムをmakeします。

$ cmake .
$ make -j2
$ sudo make install
$ sudo ldconfig

tensorflowとKerasのインストール

tensorflowとKerasをインストールします。

$ sudo apt install python-pip python3-pip
$ pip3 install tensorflow==1.1.0
$ sudo pip3 install keras==1.2.2

ssd_keras をダウンロード

ssd_kerasのソースコード本体と、画像解析のためのモデル(.hdf5ファイル)をダウンロードします。

ssd_kerasのソースコード本体をダウンロードします。

$ git clone https://github.com/rykov8/ssd_keras.git

画像解析のためのモデル(weights_SSD300.hdf5)を以下からダウンロードします。
https://mega.nz/#F!7RowVLCL!q3cEVRK9jyOSB9el3SssIA

ssd_kerasを実行

ssd_kerasフォルダの中のファイルを編集します。

ssd_keras/testing_utils/videotest.py

wget https://bootstrap.pypa.io/get-pip.py
87行目を以下のように修正
(修正前)
vidw = vid.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)
vidh = vid.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)

(修正後) vidw = vid.get(cv2.CAP_PROP_FRAME_WIDTH) vidh = vid.get(cv2.CAP_PROP_FRAME_HEIGHT)
※物体検出結果をコンソールでも確認したい場合、162行目に以下を追加 print(text)

ssd_keras/testing_utils/videotest_example.py

wget https://bootstrap.pypa.io/get-pip.py
# 18行目でweights_SSD300.hdf5ファイルのパスを指定
model.load_weights('weights_SSD300.hdf5')

#24行目で動画のパスを入力 vid_test.run('test.mp4')

h5pをインストールします。

$ pip3 install h5py --user

これで準備完了です!ssd_kerasを実行することができます。

$ python3 ssd_keras/testing_utils/videotest_example.py

0 件のコメント:

コメントを投稿

FX自動トレード_2021年6月実績

      概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...