YOLOv3を使って手軽に物体認識を体験する! 第2回

Python
スポンサーリンク

始めに

第1回ではざっくりな基礎知識を紹介いたしました。

第2回はインストール編になります。

当記事では機械学習が専門外でかつ情弱な筆者による解説である為、専門知識にはあまり触れずだれでも分かりやすく物体認識が出来ることを目指しています。

より高度な専門知識、使用するソースコードの核となるkerasやyoloなどの具体的な関数その他の説明は割愛しますので、その辺りを知りたい方はブラウザバックでお願いいたします。

前提として、Pythonを自分のPCに構築済みである必要があります。

Pythonのインストール方法はググると出てきますが、当ブログでも今後解説しようと考えています。少々お待ちください。

また、当記事ではpipによるYOLOv3のインストール方法を紹介しています。

pipとは


Pythonをインストールした際に自動的についてくる公式のパッケージ管理ツールです。インストールに使ったり、持っているパッケージの確認などが出来ます。
パッケージとは


ゲームでいう後から手に入れられる武器や呪文みたいなものです。より高度な処理がしたい!コードを組みたい!など目的に合わせて様々なパッケージを後付けの形でインストール可能です。

手順

以下のような手順でYOLOv3を使えるようにします。

  1. 仮想環境を構築する
  2. YOLOv3を動かすために必要なパッケージをインストール
  3. Githubよりkeras-yolo3をダウンロード(クローンを作る)
  4. 学習済みのモデル(重みデータ)をダウンロード
  5. 4でダウンロードしたものをKeras用に変換

普段Pythonによるコーディングをしていない方には、よく分からない用語が沢山出てきましたね…。作業自体は簡単なので安心してください。

また、既に手順を完了している、環境があるという方は各々でスキップしてください。

手順1. 仮想環境を構築する

仮想環境とは


ソースコード内で使用されるモジュール同士の相性の悪さを解消するために必要なもの。予期しないモジュール同士の干渉を修正するのは大変手間がかかるので、仮想環境を使用します。

仮想環境についてもっと詳しく知りたい方はこちらのリンクが分かりやすいので見てみてください。

まず仮想環境を構築するためのライブラリをインストールする必要があります。

何種類かあるのですがその中でもvirtualenvという仮想環境構築ライブラリをインストールします。ターミナルに以下を入力します。

pip install virtualenv

インストールが完了したら、任意のプログラム用のフォルダに移動した後、以下を打ち込み仮想環境を構築します。myenvの部分は任意の単語でも大丈夫です。

virtualenv myenv

すると現在いるフォルダ(カレントフォルダ)にmyenvというフォルダが出来上がっていると思います。

次に以下を打ち込みます。(有効化)

myenv\Scripts\activate

すると以下のようにターミナル上のカレントフォルダのアドレスの横に(myenv)と付くと思います。仮想環境に入っている状態になりました。

カレントフォルダやらフォルダの移動やら何言ってるか分からないという方は別記事を作成しますので少々お待ちください

手順2. YOLOv3を動かすために必要なパッケージをインストール

以下の4つをインストールします。

  • Tensorflow1.14.0
  • Keras2.2.4
  • Matplotlib
  • Pillow

それぞれのパッケージの詳しい説明は省略しますが、上ふたつは機械学習(NN)用、Matplotlibは主にグラフなどの描画用、Pillowは簡易な画像処理用です。

ターミナルに以下を入力し実行しますと、ダウンロードが始まります。既にパッケージを持っている場合は省略可能ですが、TensorflowとKerasに関しては指定のバージョンが推奨のようです。

pip install tensorflow==1.14.0 keras==2.2.4 pillow matplotlib

手順3. Githubよりkeras-yolo3をダウンロード、インストール

手順3ではgitを使ってインストールする方法、使わずにインストールする方法がございます。好みの方を選んでください。gitによるインストールの方が早いのですが、git自体のインストールが結構ややこしい為、自身が無い方は後者推奨です。

gitを使ったインストール

gitというコマンドが必要なので以下のリンクからgitをインストールしてください。MacのPCを使用している方は適宜Macによるインストール方法をググってくださいw

Git for Windows
We bring the awesome Git VCS to Windows

既にgitをインストール済の方はそのままターミナルに以下を打ち込んで大丈夫です。

keras-yolo3をフォルダ内にダウンロード(クローン)します。

git clone https://github.com/qqwweee/keras-yolo3.git

gitを使わずにインストール

以下のリンクを開き、右上のclone or downloadと書かれた緑のボタンをクリックし、Download ZIPをクリックしてください。

qqwweee/keras-yolo3
A Keras implementation of YOLOv3 (Tensorflow backend) - qqwweee/keras-yolo3

ダウンロードしたZIPファイルを展開し、keras-yolo3フォルダ丸ごとカレントフォルダにぶち込んでください。完了です。

手順4. 学習済みのモデル(重みデータ)をダウンロード

以下のリンクをクリックし学習済みデータをダウンロードしてください。

時間がかかります!

https://pjreddie.com/media/files/yolov3.weights

完了したら、keras-yolo3フォルダ内にぶち込んでください。

今回はYOLOv3の開発者が作った学習済みデータを利用しますが、自分でNNを使って学習データを作成することも、もちろん可能です。筆者はその辺の知識が不十分なので、今回は紹介しません…

手順5. 4でダウンロードしたものをKeras用に変換

学習済みモデルをKerasで使えるように変換します。以下を打ち込んでください。

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

これでYOLOv3を使った物体認識の準備が完了しました!お疲れ様です…!

物体認識をしてみる

ようやくここまでやってきました。

認識させたい画像をkeras-yolo3フォルダに入れましょう。

一例として、筆者は適当に画像検索で拾った食事風景の写真を使用しました。

syokutaku.jpg

では実行させてみましょう。ターミナルに以下を入力します。

python yolo_video.py --image

すると何やら長い文字列が出てきた後に

Imput image filename:

と、画像を入力するように促されます。先ほどkeras-yolo3フォルダに入れた画像の名前を打ち込みましょう。syokutaku.jpgという名前の画像を入力する場合、写真のようになります。

Enterしてあげると、認識が始まります。そして下のような結果画像が出力されます。

人(person)、カップ(cup)、植木鉢(pottedplant)などそれぞれ認識できていることが分かります。これがいわゆる一般物体認識ですね。

結果画像から認識精度がかなりいいことが分かります。特に椅子は一部しか映っていないのにも関わらず認識が出来ています。すごい…!

ちなみにプログラムを終了させる方法ですが、正しく終了させる方法が分からないため筆者はctrl+Z→Enterと打ち、強制終了させています。

最後に

『YOLOv3を用いて手軽に物体認識を体験する!』

物体認識の簡易説明そして体験する方法を2回に分けて紹介いたしましたが、いかがでしたか?

現在このような機械学習をベースとしたシステムが世の中を支えています。その一部を皆さんも体験出来ましたでしょうか?

この記事が皆様の新たな経験のお手伝い、開発の参考になれば幸いです(*^^*)

マスルキン

当ブログ管理人のマスルキンです。

高専電気系学科に5年間在籍。卒業後は専攻科に進学し現在に至る。

生まれつき聴覚障害があり
補聴器の使用、コミュニケーションでは読唇や手話などを用いています。

当ブログでは
・プログラミング・研究関係の備忘録
・趣味(筋トレ、カメラ、プラモデル、etc...)
・自身の日常
などを自由気ままに皆様に発信いたします。

記事が皆様のお役に立てば幸いです。

マスルキンをフォローする
Python コンピュータビジョン プログラミング
スポンサーリンク
マスルキンをフォローする
マスルキンの部屋

コメント

タイトルとURLをコピーしました