Python、機械学習

【Python】たった10行のコードで動かせる、物体検出のAIプログラムをマネして作ってみた。

ツイッターを見ていると、とてもセンセーショナルな記事を見つけました。

なんと、たった10行のPythonコードで物体検出のAIプログラムが作れるというものです。

画像の中の車やバイク、歩行者などを瞬時に検出できるとのこと!

これはやるっきゃない、ということで実際に試してみました。

物体検出プログラムのPythonコード

こちらがその記事です。

Object Detection with 10 lines of code

ディープラーニングによる画像認識で物体を検知するAI(人工知能)が紹介されています。

物体検出プログラムの実装方法

とりあえずは記事の内容にしたがって進めたらいいのですが、

・英文で書かれていること

・エラーが出がちなつまずきポイントが幾つかあったこと

から、以下手順をまとめました。

1. 新しい仮想環境を作る

TensorflowやOpenCVといったライブラリを使用しますので、新しい仮想環境を作っておきましょう。

コマンドプロンプトで次のように打てばOKです。〇〇のところに、適当な仮想環境の名前を入れます。

Pythonを同時にインストールできるようにしています。

conda create -n ○○ python

2. 必要なライブラリをインストールする

必要なライブラリをインストールします。

pip install tensorflow
pip install numpy
pip install scipy
pip install opencv-python
pip install pillow
pip install matplotlib
pip install keras

 

H5pyというライブラリもインストールしてくださいと書いていますが、上記のインストールをする中で自動的にインストールされるかと思います。

同時にインストールされなかった方は、pipでインストールします。

pip install h5py

 

記事の作成主が作ったImageAIというライブラリもインストールします。

下記をコピペしてそのまま実行すればOKです(ちとコードが長いですが)

記事中ではpipでなくpip3を使っていますが、pip3だとプログラムがうまく動かなかったのでpipにしましょう。

pip install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl

モデルファイル(h5)をダウンロードする

こちらをクリックして、プログラム実行に必要な「resnet50_coco_best_v2.0.1.h5」というモデルファイルをダウンロードします。

https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/resnet50_coco_best_v2.0.1.h5

モデルファイルのダウンロード先

フォルダの作成

フォルダを作り、先ほどダウンロードしたモデルファイル(h5)を入れます。

10行のコードを作成し、py形式のファイルで保存する

記事に記載されているPythonの10行コードをそのままコピペして、py形式のファイルで保存します。

私はAtomを使って書きました。

ファイル名は記事に書いているとおり「FirstDetection.py」でいいでしょう。

そして、このファイルも先ほどのフォルダに入れます。

画像ファイルの保存

物体検出を試してみたい画像ファイルを選び、「image.jpg」の名前にします。

手持ちの画像がなければ、Google画像検索で「横断歩道 車」と検索し、適当な写真を選んで右クリックし、画像ファイルとして保存します。ファイル名を「image.jpg」とすることを忘れないでください。

もしくは、記事中の画像を右クリックして画像ファイルとして保存するのでも良いかと思います。

保存した画像ファイルも同じフォルダに移動させます。

プログラムを実行してみましょう

コマンドプロンプトを開き、さきほど作成した仮想環境を起動します。

入り方がわからない場合は、こちらを参考にしてください。

【Python】仮想環境とは何?何のための設定?Anacondaではどうやって構築するのか?Pythonを勉強していると、「仮想環境」という概念にぶち当たります。初心者にとってはなんのことやらわかりません。 そこで、本記事では...

仮想環境を起動したら、フォルダがある場所に移動します。△△にフォルダのパスを入れてください。

cd △△

最後に、「FirstDetection.py」を実行します。

python FirstDetection.py

画像にもよりますが、10秒程度で処理が終わり、コマンドプロンプト上に物体検出の結果が出ます。

そして、フォルダ内に新しいjpgファイルが生成されます。これが、元々のimage.jpgの上に検出結果を描いたものになります。

これを見ると、検出精度の高さに鳥肌が立つこと間違いありません!

写真の人物の服装から職業を当てるAIも実装できる

この記事の方は、写真の人物の服装から職業を当てるAIプログラムも後悔しています。

画像を読み込ませるだけで消防士なのか、コックさんなのかを当てるというものです。

本記事と同じ要領で動かせますので、こちらも是非トライして見てください。

Train Image Recognition AI with 5 lines of code