ディープラーニング

初心者も物体検出!~無料コードと無料環境で~

更新日:

顔認識

 

AIを使った「物体検出」は多くのシーンで実用化されています。カメラの顔認識、防犯カメラの人物検知、自動運転での車両検知など。

これは画像を「分類」するAIより難しいことをしています。画像内に複数の物体が写ると一つに分類できないからです。

分類AIはゼロから手作りができますが、物体検出まで難易度が上がるとなかなか初心者では手が出ない仕事ではありました。

しかし現在はモデルの理解をとばし実行することだけを目的にすれば、「ありもの」で簡単にできてしまいます。公開されているプログラムを利用して実現してしまいましょう。

以下の手順をそのまま行うだけで物体検出ができます。

 

概要

 

ここでやろうとしている全体像は以下になります。

  • AIモデル : ディープラーニング>CNN応用>BOX型物体検出>M2DETモデル
  • 環境 : Google Colaboratory(Linuxがある人は不要です)
  • 目的 : 準備された学習済みモデルを用いてテスト用の画像または自分の画像を物体検出にかけてみる。

物体検出とは、画像内の物体の位置を特定しながら分類も行う技術です。

BOX型物体検出ができるディープラーニングのモデルは、SSDが代表的なもので、他にYOLO、R-CNN系といったものがあります。今回のM2DETはこれらより新しく精度が良いと言われています。

Google Colaboratory はブラウザ上でプログラムを書いたり実行して結果を見たりできるLinux環境です。作ったファイルはGoogleドライブ上に保存されます。Linux+Python環境のある人はその環境で試してみてください。(「M2DETのダウンロード」から始め、!や%を除いて実行します。)

Google Colaboratoryは90分間操作がないと環境がリセットされるので注意してください。

  

M2DETの利用手順

 

Colaboratoryへのログイン

 

1.ブラウザを開き、下記へアクセスしてください。
https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja

 

2.右上が「ログイン」と表示される場合は、これをクリックします。

Colabアクセス

 

3.Googleアカウントを持っている人はそのままログインを、持っていない人は「アカウントを作成」を行ってください。

Colabログイン

 

ノートブックの作成

 

通常はノートブックにプログラムを書いていくのですが、今回は公開プログラムのダウンロードやコマンドを実行するための環境としてノートブックを使います。

 

4.ログイン後、Colaboratory画面の上部で「ファイル」→「ノートブックを新規作成」を実行します。

Colab新規作成

 

5.上部にあるのがプログラム名になるので変更してください。例:「command_m2det.ipynb」

m2detノートブック名

 

ライブラリのインストール

 

公開されているモデルを実行する時は、そのコードに合ったライブラリのバージョンが自分の環境に無いとエラーになります。M2DETに合ったバージョンを指定してライブラリをインストールします。

 

6.ノートブックの本文に次のように書き、左上の再生ボタンを押してください。ノートブック上でコマンドを実行する時は先頭に「!」を付けます。(コマンドによっては「%」の場合もあります。)

m2detライブラリ

※ なお、ノートブックをしばらく使わないと環境がリセットされ、もう一度インストールが必要になります。

 

Googleドライブのマウント

 

Colaboratoryで生成したファイルが後で見えるように、Googleドライブとの連携をします。

 

7.「+コード」を押し、追加されたブロックに下記を書いて実行してください。

m2detドライブ

 

8.実行すると認証を行うためにURLを参照するよう促されますので、クリックします。

Colabドライブ認証

 

9.Googleログインの画面が出たらログインし、次の画面で「許可」を押します。

Colabドライブ認証2

 

10.認証キーが表示されるので、コピーボタンで記憶させます。

Colabドライブ認証3

 

11.元の画面に戻り「Enter your authorization code:」に Ctrl+v でペーストして「Enter」を実行します。これで認証完了しマウントされます。

Colabドライブ認証4

 

M2DETのダウンロードと準備

 

12.「+コード」を押して下記のように実行し、公開されているM2DETをダウンロードします。先ほどマウントしたGoogleドライブに保存されます。

 

13.「+コード」を押して下記のように実行し、ダウンロードしたM2DETを自分の環境に合わせて構築します。

 

学習済みモデルのダウンロード

 

14.ブラウザの別タブで下記にアクセスし、「m2det512_vgg.pth」を自PCへダウンロードします。
https://drive.google.com/file/d/1NM1UDdZnwHwiNDxhcP-nndaWj24m-90L/view

m2detモデルダウンロード

 

15.Colaboratory画面の左上のマークを 右クリック→「新しいタブで開く」で開きます。

ColabGドライブへ

 

16.マイドライブを選択し、「M2DET」→「weights」フォルダを開き、「m2det512_vgg.pth」をドラッグ&ドロップでフォルダへ置いてください。

 

 

検出の実行

 

ここでやっと検出が実行できます。検出する対象は、imgフォルダにある画像です。サンプル画像がいくつか入っていますが、自分の画像を検出したい場合はここに置いてから検出を実行します。

 

16.「+コード」を押して下記のように実行します。これで検出が実行され、Googleドライブに検出結果の画像が出力されます。

 

17.一旦、「ファイル」→「保存」でここまでのコマンドを保存しておいてください。

 

検出結果の確認

 

検出結果は同じ imgフォルダに出力されます。これを見るためにGoogleドライブを参照しにいきます。

 

18.Colaboratory画面の左上のマークを 右クリック→「新しいタブで開く」で開きます。

ColabGドライブへ

 

19.「マイドライブ」を選択 → 「M2Det」をダブルクリック → 「img」をダブルクリック と進みます。

m2detマイドライブ

 

20.imgフォルダの中の「〇〇_m2det.jpg」というファイル名になっているのが検出結果画像です。「_m2det」の無い画像が検出前の画像です。ダブルクリックで中身を確認してください。

m2detimgフォルダ
m2det検出

 

21.今回のノートブックを念のため自分のPCへダウンロードしておくことをおすすめします。「マイドライブ」→「Colab Notebooks」を参照し、現在のノートブック「〇〇.ipynb」を右クリック→「ダウンロード」です。

Colabダウンロード

 

 

 

学習済みモデルを使ったM2DETの体験は以上です。

自分の画像を検出してみるほうが物体検出している実感が沸くので試してみてください。

結果としては、大きな物から割と小さな物まで検出していますね。また重なる物体も良く認識しています。これは他のモデルより少し良い性能です。

学習も体験したいところですが、大量のデータと時間が必要なためColaboratory上で実行するには無理があります。自分でGPUマシンを用意するのは値が張るので、AWSなどのクラウドを利用するのがいいでしょう。

クラウドの利用方法もこのブログで紹介していきます。

 

 

-ディープラーニング

Copyright© やさしいAIの始め方 , 2024 All Rights Reserved Powered by STINGER.