物体認識

物体認識(画像分類)は、画像に写っているオブジェクトが何であるのかを判別することである。物体認識は、画像解析のタスクの中で、比較的に簡単な類に入る。物体認識では、画像の中にオブジェクトが 1 つ(1 種類)だけしか写っていないことが仮定される。画像の中に、複数のオブジェクトが写っている場合、その中でとくに認識しやすい物体が答えとして出てくる。農学生命科学の分野において、画像から植物・穀物の分類、穀物の病害判別、雑草の判別などに応用されている(Kamilaris et al., 2018)。

物体認識の例

局所特徴量を利用した物体認識

深層学習が使われる前までは、画像から特徴量を抽出し、その特徴量を分類器に与えて物体認識を行なっていた。特徴量として、SIFT、SURF、HOG などの特徴量がよく使われていた。入力画像からこれらの特徴量を計算し、その特徴量を Bagof-Visual-Words (BOVW) とよばれる手法で特徴ベクトルに変換し、その後、この特徴ベクトルをサポートベクトルマシン(SVM)などに分類問題として解かせていた。当時、どれだけ有効な特徴ベクトルを作れるかで、画像認識の性能を左右していた。2010 年から始まった物体認識チャレンジコンテスト ILSVRC において、特徴量を用いた画像認識の手法は、25-28% 前後の誤認識率まで達していた。

深層学習を利用した物体認識

画像認識チャレンジコンテスト ILSVRC が始まってから 3 年目、2012 年に、Hinton 教授らのチームは、物体認識に深層学習を取り込んで、大きな成功を納めた。Hinton 教授らのチームは、誤認識率を 16.4% まで改善させることに成功し、特徴量に基づく物体認識手法を利用したチームを大きく引き離して、ILSVRC-2012 で優勝した。2012 年以降に、深層学習を使用した様々なアルゴリズムが発表され、わずか数年で、誤認識率を 2.3% までに改善することができた。

物体認識チャレンジコンテスト ILSVRC の成績

これまでに深層学習を取り入れた物体認識アルゴリズム(アーキテクチャ)は多く発表されている。初期の頃のアーキテクチャである AlexNet や ZFNet は、現在ではほとんど利用されていないが、そのときの技術や概念(ReLU 関数や転移学習)などは、現在のスタンダードとなっている。

AlexNet物体認識に初めて深層学習を取り入れたアーキテクチャである。CNN や ReLU 関数などの技術を取り入れ、後の深層学習による物体認識に大きな影響を与えた。
ZFNet畳み込み演算のフィルタサイズが物体認識の精度を影響することを明らかにし、小さいフィルタで畳み込み演算を行うことで物体認識の精度を上げた。
VGGNet層数の異なるアーキテクチャを比較することを通して、深層であるほど画像認識の性能が上がることを明らかにした。16 層と 19 層の VGG-16 と VGG-19 がよく知られている。
GoogLeNet層が深くなると過学習を起こす。GoogLeNet では、Inception モジュールとよばれる技術を取り入れ、層を深くしても過学習を回避できるようにした。
ResNet層が深くなると過学習のほかに勾配消失の問題もあった。ResNet では、residue learning とよばれる技術を取り入れ、これらの問題を回避した。

農学生命科学分野への応用

畳み込みニューラルネットワーク(CNN)が農業分野で使われるようになったのは 2014 前後といわれている(Kamilaris et al., 2018)。CNN のアルゴリズムを実装して、深層学習による画像分類で大きなブレークスルーを果たした AlexNet が出現したのが 2012 年と考えれば、深層学習を農業分野に応用しようという動きが積極的に見える。今後、深層学習を含む機械学習を用いて、農業問題の解決に挑む動きがますます加速されていくと予想される。

従来の機械学習では、学習するための知識(特徴量)は、人が作成する必要があった。特徴量抽出は試行錯誤する必要があり、時には専門家の知識を必要とする。良い特徴量を作成できれば(見つけられれば)、性能の高い予測モデルを作成できる。逆に、良い特徴量を作成できなければ、性能の限られた予測モデルしか作られない。従来の機械学習において、特徴量が、予測モデルの性能を左右しているといえる。これに対して、深層学習は、非常に優れたアルゴリズムといえる。大量なデータさえ用意できれば、アルゴリズム自身が最適な特徴量を見つけてくれる。そのため、データさえ十分に準備できれば、初心者でも非常に高性能な予測モデルを作成できる。ただし、ここで用意する大量なデータにはアノテーションがつけられるている必要がある。深層学習は数千から数万枚の画像を必要とすることを考えれば、アノテーション作業がかなり大変であることがわかる。

これまでに、深層学習が様々な農業問題の解決に使われている。例えば、植物・穀物の分類、穀物の病害判別、果実の計数、穀物の収量予測、雑草の判別などに使われている。今後は、その応用範囲がさらに広くなると予想される。

References

  • Kamilaris A, Prenafeta-Boldú F. X. A review of the use of convolutional neural networks in agriculture. Proc Natl Acad Sci USA. 2018, 156(3):312-322. DOI: 10.1017/S0021859618000436