2019年06月27日

画像識別を試してみました(守屋)

です。

画像を読み込んで、その映っている特徴から自動判別する技術を画像認識(Image Recognition)といいます。Google Lensや、生き物の名前を自動判別ができるアプリケーションもあり、日本では、LINNÉ LENSとかBIOMEとか、日本の鳥には対応していませんが、鳥専門で『Merlin Bird ID』などがコーネル大学のラボから出ています。

この識別のためのプログラムは機械学習によって作られています。大量の基となる画像データから特徴を抜き出しプログラムを作り、そのプログラムを使って画像に映った物体が何である可能性が高いか答えを返しています。
でも、そんなプログラムを自分で作るのは大変です。私みたいな素人にはなおさらです。

しかし、これを比較的簡単に試すことのできるサービスがGoogleにありました。Googleクラウドプラットフォームというシステム開発などの支援を行うサービスなのですが、その中に『AutoML Vision』というサービスがあります。
AutoMLV.jpg

超簡単に説明すると、正しい名前をつけた画像データを用意すると、識別のプログラムを作ってくれて試せます。

今回は、BirdBathに来る、シジュウカラ、メジロ、ウグイス、エナガ、ヒヨドリ、ヤマガラ、来たことないのですがヒガラを含めてその識別プログラムを作ってみました。なお、このサービスは、現在のところ無料で使えるようです。

IMAGESというタブから、それぞれの種類について100枚ほどの写真を用意して、名前を間違えないように登録します。
IMAGES.jpg

TRAINタブで機械学習を行うのですが、今回は試しなので、Train new modelで設定をそのままに学習をスタートさせました。結構時間がかかりましたが(1時間ぐらい)、完了するとメールでお知らせしてくれます。

EVALUATEタブに、結果が表示されます。しきい値や適合率については説明を省きますが(興味のある方はここをどうぞ)、混同行列という総当たり表のようなものが作成されています。これは、識別プログラムの能力を表しています。

matrix.jpg
この表だとParus_minor(シジュウカラ)は、89.7%を識別できたが、3.4%はメジロと間違え、6.9%ヒガラと間違えたと読めます。学習する画像が多くなれば、よりパフォーマンスは高くなります。

PREDICTタブで、新しいを画像を用意すれば、テストすることができます。
test.jpg
ちなみに水場にやってきたシジュウカラ画像を試すと、シジュウカラがトップ候補であるもののあまり精度は良くないようですね。背景がごちゃごちゃしているからかもしれません。シジュウカラだけを抜き出して試すと、かなりの高精度でシジュウカラと判別できました。鳥を抜き出す必要がありそうですね。
test2.jpg

さらに、分布などの情報を与えて精度を増すこともできます。ウグイス科の仲間とかも可能になるのでしょうか(声を聴いた方が早いですが)。
まだまだ精度の高い学習基のデータを作るのにヒトの力は必要ですし、なかなかヒトを越えていくことは難しいのかもしれませんが、将来モニタリングなどの補助にはなってくれるかもしれません。

この識別プログラムはダウンロードできます。例えば、他のプログラムに組み込むこともできます。
のぞいた双眼鏡に可能性の高い種が表示されるとか!
水場カメラにも組み込んでリアルタイムで判別できないかと試していますので、気を長くしてお待ちください。

posted by ばーりさ at 17:45| 電子工作戦隊