ツイッターを見ていると、とてもセンセーショナルな記事を見つけました。
なんと、たった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==1.13.1
pip install numpy==1.16.1
pip install scipy
pip install opencv-python
pip install pillow
pip install matplotlib
pip install keras==2.2.4
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」とすることを忘れないでください。
もしくは、記事中の画像を右クリックして画像ファイルとして保存するのでもよいと思います。
保存した画像ファイルも同じフォルダに移動させます。
プログラムを実行してみましょう
コマンドプロンプトを開き、さきほど作成した仮想環境を起動します。
入り方がわからない場合は、こちらを参考にしてください。
仮想環境を起動したら、フォルダがある場所に移動します。△△にフォルダのパスを入れてください。
cd △△
最後に、「FirstDetection.py」を実行します。
python FirstDetection.py
画像にもよりますが、10秒程度で処理が終わり、コマンドプロンプト上に物体検出の結果が出ます。
そして、フォルダ内に新しいjpgファイルが生成されます。これが、元々のimage.jpgの上に検出結果を描いたものになります。
これを見ると、検出精度の高さに鳥肌が立つこと間違いありません!
写真の人物の服装から職業を当てるAIも実装できる
この記事の方は、写真の人物の服装から職業を当てるAIプログラムも後悔しています。
画像を読み込ませるだけで消防士なのか、コックさんなのかを当てるというものです。
本記事と同じ要領で動かせますので、こちらも是非試してみてください。
Train Image Recognition AI with 5 lines of code