(58)【調査した分野】(Int.Cl.,DB名)
同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、前記複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数用いて学習された学習器が記憶される記憶部と、
複数の計数対象物の撮影画像を取得する撮影画像取得部と、
前記撮影画像を前記学習器に適用することによって、当該撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得する出力画像取得部と、
前記出力画像に含まれる複数の計数対象図形を用いて計数対象物の個数を計数する計数部と、
前記計数部によって計数された計数対象物の個数を出力する出力部と、を備えた計数装置。
同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、前記複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数受け付ける訓練画像受付部と、
前記訓練用入力画像と前記訓練用出力画像との複数の組を学習することによって学習器を製造する学習器製造部と、
前記学習器を出力する学習器出力部と、を備えた学習器製造装置。
同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、前記複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との複数の組の学習結果の学習器であって、
複数の計数対象物の撮影画像が適用されると、当該撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得することができる、学習器。
同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、前記複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数用いて学習された学習器が記憶される記憶部と、撮影画像取得部と、出力画像取得部と、計数部と、出力部とを用いて処理される計数方法であって、
前記撮影画像取得部が、複数の計数対象物の撮影画像を取得する撮影画像取得ステップと、
前記出力画像取得部が、前記撮影画像を前記学習器に適用することによって、当該撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得する出力画像取得ステップと、
前記計数部が、前記出力画像に含まれる複数の計数対象図形を用いて計数対象物の個数を計数する計数ステップと、
前記出力部が、前記計数ステップにおいて計数された計数対象物の個数を出力する出力ステップと、を備えた計数方法。
同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、前記複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数用いて学習された学習器が記憶される記憶部にアクセス可能なコンピュータを、
複数の計数対象物の撮影画像を取得する撮影画像取得部、
前記撮影画像を前記学習器に適用することによって、当該撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得する出力画像取得部、
前記出力画像に含まれる複数の計数対象図形を用いて計数対象物の個数を計数する計数部、
前記計数部によって計数された計数対象物の個数を出力する出力部として機能させるためのプログラム。
【発明を実施するための形態】
【0020】
以下、本発明による計数装置及び学習器製造装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による計数装置は、訓練用入力画像と訓練用出力画像とを用いて学習された学習器を用いて、撮影画像に含まれる計数対象物を図形に変換することによって、計数対象物の個数をカウントするものである。また、本実施の形態による学習器製造装置は、訓練用入力画像と訓練用出力画像との複数の組を用いて学習を行うことにより、計数対象物の計数に用いられる学習器を製造することができるものである。
【0021】
図1は、本実施の形態による計数装置1の構成を示すブロック図である。本実施の形態による計数装置1は、記憶部11と、撮影画像取得部12と、出力画像取得部13と、確信度取得部14と、計数部15と、出力部16とを備える。計数装置1は、例えば、パーソナルコンピュータであってもよく、スマートフォンやタブレット端末、PDA(Personal Digital Assistant)等などの携帯可能な情報処理端末であってもよく、計数処理を行う専用の装置であってもよく、サーバ等であってもよい。
【0022】
記憶部11では、学習器が記憶される。この学習器は、同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、その複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数用いて学習されたものである。訓練用入力画像と訓練用出力画像との組を訓練画像と呼ぶこともある。学習器は、例えば、ニューラルネットワーク(NN:Neural Network)の学習結果であってもよく、サポートベクターマシン(SVM:Support Vector Machine)やサポートベクター回帰(SVR:Support Vector Regression)の学習結果であってもよく、または、それ以外の機械学習の学習結果であってもよい。
【0023】
ニューラルネットワークは、例えば、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)であってもよく、それ以外のニューラルネットワーク(例えば、全結合層から構成されるニューラルネットワーク等)であってもよい。畳み込みニューラルネットワークとは、1以上の畳み込み層を有するニューラルネットワークのことである。また、ニューラルネットワークが少なくとも1個の中間層(隠れ層)を有する場合には、そのニューラルネットワークの学習は、深層学習(ディープラーニング、Deep Learning)であると考えてもよい。また、機械学習にニューラルネットワークを用いる場合において、そのニューラルネットワークの層数、各層におけるノード数、各層の種類(例えば、畳み込み層、全結合層など)等については、適宜、選択したものを用いてもよい。なお、入力層と出力層のノード数は、通常、訓練画像に含まれる訓練用入力画像と訓練用出力画像とによって決まることになる。本実施の形態では、学習器がCNNの学習結果である場合について主に説明し、それ以外の場合については後述する。
【0024】
なお、学習器が記憶部11で記憶されているとは、例えば、学習器そのもの(例えば、入力に対して値を出力する関数や学習結果のモデル等)が記憶されていることであってもよく、学習器を構成するために必要なパラメータ等の情報が記憶されていることであってもよい。後者の場合であっても、そのパラメータ等の情報を用いて学習器を構成できるため、実質的に学習器が記憶部11で記憶されていると考えることができるからである。本実施の形態では、学習器そのものが記憶部11で記憶されている場合について主に説明する。
【0025】
記憶部11に学習器が記憶される過程は問わない。例えば、記録媒体を介して学習器が記憶部11で記憶されるようになってもよく、通信回線等を介して送信された学習器が記憶部11で記憶されるようになってもよい。記憶部11での記憶は、RAM等における一時的な記憶でもよく、または、長期的な記憶でもよい。記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
【0026】
ここで、学習器の生成について説明する。
図2は、本実施の形態による学習器製造装置2の構成を示すブロック図である。本実施の形態による学習器製造装置2は、訓練画像受付部21と、学習器製造部22と、学習器出力部23とを備える。学習器製造装置2は、通常、学習を行う情報処理装置であるが、例えば、携帯可能な情報処理端末等の汎用の装置であってもよく、学習を行う専用の装置であってもよく、サーバ等であってもよい。
【0027】
訓練画像受付部21は、同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、その複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数受け付ける。
【0028】
複数の計数対象物は、上記のように、同じ形状であることが好適である。なお、同じ形状とは、厳密に同じ形状であってもよく、実質的に同じ形状であってもよい。また、複数の計数対象物は、同じ大きさであってもよい。同じ大きさとは、厳密に同じ大きさであってもよく、実質的に同じ大きさであってもよい。例えば、計数対象物が、農作物などの自然物である場合には、厳密には各計数対象物の形状や大きさに微小な差が存在することもあり得るが、実質的に同じ形状、同じ大きさと判断できるのであれば、同じ形状、同じ大きさと考えてもよい。具体的には、大豆や米、植物の種などは、同じ形状及び大きさであると考えてもよい。また、例えば、計数対象物が、ネジやボルトなどの人工物である場合でも、自然物よりは程度は小さいと考えられるが、厳密には各計数対象物の形状や大きさに僅かな差が存在することもあり得る。そのような場合であっても、実質的に同じ形状、同じ大きさと判断できるのであれば、同じ形状、同じ大きさと考えてもよい。なお、同じ大きさかどうかは、通常、画素数に応じた大きさによって判断されることになる。また、訓練用入力画像に含まれる複数の計数対象物には、計数したい計数対象物の形状や大きさのバリエーションが含まれていることが好適である。例えば、上記のように、計数対象物が自然物である場合には、形状や大きさに微小な違いが含まれていることもあるが、そのような微小な違いを含む種々の計数対象物が訓練用入力画像に含まれていることが好適である。そのようにすることによって、そのような違いの影響を受けない計数を実現できるからである。なお、本実施の形態では,複数の計数対象物が同じ形状及び同じ大きさである場合について主に説明する。
【0029】
教師図形は、通常、計数対象物よりも小さい図形であることが好適である。そのようにすることで、計数対象物の一部が重なっている場合であっても、計数対象物の全体が重なっているのでなければ、後述するように、計数対象物を計数対象図形に変換できうるからである。また、教師図形は、計数対象物の中心に相当する位置に配置されることが好適であるが、そうでなくてもよい。ただし、計数対象物の中心に相当する位置以外の位置に教師図形を配置する場合であっても、計数対象物のあらかじめ決められた位置に相当する位置に教師図形が配置されることが好適である。
【0030】
教師図形の形状は問わないが、例えば、教師図形は、方向性のない図形であってもよい。方向性のない図形は、画像上において回転しても変形しない図形であり、例えば、円環形状、円盤形状等であってもよい。通常は、方向性のない教師図形が用いられることが好適である。一方、教師図形は、例えば、方向性を有する図形であってもよい。方向性を有する教師図形は、例えば、三角形状、四角形状、多角形状、線形状等であってもよい。教師図形が方向性を有する図形である場合には、訓練用出力画像に含まれる各教師図形は、訓練用入力画像における各計数対象物の方向に応じて方向が設定されてもよい。計数対象物が、例えば、爪楊枝や鉛筆などのように、撮影画像において線状である場合には、例えば、方向性のある線形状の教師図形が用いられてもよい。その場合には、例えば、線状の計数対象物の長手方向が、教示図形の長手方向となるように教師図形が配置されてもよい。また、計数対象物が、方向性のある形状であり、かつ、一定の方向に揃うようになっている場合には、例えば、方向性のある教師図形が用いられてもよい。その場合には、例えば、計数対象物の形状に応じて、教師図形の向き(角度)が決まることが好適である。例えば、計数対象物が正方形状である場合には、正方形状の教師図形の各辺の方向が計数対象物の各辺に揃うように、計数対象物の中心に相当する位置に教師図形が配置されてもよい。なお、上記のように、計数対象物は、一定の方向に揃うようになっているため、計数対象物ごとの角度の違いが十分小さいと考えられる場合には、その揃った方向に沿った同じ角度の教師図形がそれぞれ配置されてもよい。
【0031】
複数種類の計数対象物について計数を行う場合には、訓練画像受付部21は、計数対象物の種類ごとに異なる属性の教師図形を含む訓練用出力画像を受け付けてもよい。計数対象物の種類は、例えば、形状に関する種類であってもよく、大きさに関する種類であってもよく、色に関する種類であってもよく、その他の種類であってもよく、または、それらの任意の2以上の組み合わせであってもよい。形状及び大きさの異なる計数対象物としては、例えば、大豆と米などがある。また、大きさの異なる計数対象物としては、例えば、大きさの異なるナットなどがある。また、色の異なる計数対象物としては、例えば、通常の大豆と青大豆などがある。教師図形の属性は、例えば、色(例えば、色相、彩度、明度の少なくとも1以上など)であってもよく、形状であってもよく、その他の属性であってもよい。例えば、計数対象物として、大豆と米がある場合には、大豆には赤色の教師図形が用いられ、米には青色の教師図形が用いられてもよい。
【0032】
複数種類の計数対象物について計数を行う場合には、訓練画像受付部21は、計数対象物の種類ごとの訓練用入力画像と訓練用出力画像との組を受け付けてもよい。すなわち、1個の組の訓練画像には、1種類の計数対象物のみを含む訓練用入力画像と、その計数対象物に対応する属性の教師図形のみを含む訓練用出力画像とが含まれていてもよい。例えば、計数対象物として大豆と米がある場合には、訓練画像受付部21は、大豆に関する訓練用入力画像と訓練用出力画像との複数の組と、米に関する訓練用入力画像と訓練用出力情報との複数の組とを受け付けてもよい。このように、計数対象物の種類ごとの訓練用入力画像と訓練用出力画像との組を用いて学習を行う方が、複数種類の計数対象物の混ざった訓練用入力画像と訓練用出力情報との組を用いて学習を行うよりも、より少ない訓練画像によって適切な学習器を生成することができる。
【0033】
また、後述する確信度を算出するためには、教師図形は、あらかじめ決められた形状や、色などの属性を有していることが好適である。例えば、教師図形の形状と大きさは決まっていてもよい。また、例えば、教師図形の色属性(例えば、明度や色相、彩度)はあらかじめ決められていてもよい。その場合に、例えば、教師図形を構成する各画素の色属性はすべて同じであってもよい。
【0034】
図5〜
図8は、訓練画像の一例を示す図である。
図5Aは、大豆である計数対象物の訓練用入力画像であり、
図5Bは、
図5Aの訓練用入力画像の大豆の位置にそれぞれ配置された、方向性のない教師図形(すなわち、円板形状の教師図形)を含む訓練用出力画像である。
図5Cは、
図5Aの訓練用入力画像と、
図5Bの訓練用出力画像とを合成した参考図である。
図5Cで示されるように、計数対象物の中心位置に、各教師図形が配置されている。
【0035】
図6Aは、断面が正方形状である、積み重ねられた複数の乾麺である計数対象物の端部が撮影された訓練用入力画像であり、
図6Bは、
図6Aの訓練用入力画像の乾麺の位置にそれぞれ配置された、方向性を有する教師図形を含む訓練用出力画像である。なお、
図6Bにおいては、方向性を有する教師図形(すなわち、正方形状の教師図形)が用いられているため、各教師図形は、計数対象物である棒状の乾麺の端部において、計数対象物の正方形状と各辺が揃う方向で配置されている。
図6Cは、
図6Aの訓練用入力画像と、
図6Bの訓練用出力画像とを合成した参考図である。
図6Cで示されるように、計数対象物の中心位置に、各教師図形が、計数対象物と向きが揃うように配置されている。
【0036】
図7Aは、爪楊枝である計数対象物の訓練用入力画像であり、
図7Bは、
図7Aの訓練用入力画像の爪楊枝の位置にそれぞれ配置された、方向性を有する教師図形(すなわち、線状の教師図形)を含む訓練用出力画像である。
図7Cは、
図7Aの訓練用入力画像と、
図7Bの訓練用出力画像とを合成した参考図である。
図7Cで示されるように、計数対象物の中心位置に、計数対象物と同じ方向となるように、各教師図形が配置されている。
【0037】
図8A,
図8Bは、ナットである計数対象物の訓練用入力画像である。なお、
図8Aの訓練用入力画像のナットの方が、
図8Bの訓練用入力画像のナットよりもサイズが大きいものとする。ここでは、
図8Aのナットを「大ナット」と呼び、
図8Bのナットを「小ナット」と呼ぶことにする。
図8Cは、
図8Aの訓練用入力画像の大ナットの位置にそれぞれ配置された、方向性のない教師図形を含む訓練用出力画像であり、
図8Dは、
図8Bの訓練用入力画像の小ナットの位置にそれぞれ配置された、方向性のない教師図形を含む訓練用出力画像である。
図8Cの訓練用出力画像に含まれる教師図形は、白色の図形であり、
図8Dの訓練用出力画像に含まれる教師図形は、黒色の図形である。このように、サイズの異なる計数対象ごとに、異なる属性(すなわち、異なる明度)の教師図形が用いられることになる。
図8Eは、
図8Aの訓練用入力画像と、
図8Cの訓練用出力画像とを合成した参考図であり、
図8Fは、
図8Bの訓練用入力画像と、
図8Dの訓練用出力画像とを合成した参考図である。
図8E,
図8Fで示されるように、教師図形が、計数対象物であるナットの孔の位置に配置されている。このように、教師図形が計数対象物の位置に配置されるとは、
図5C等で示されるように、教師図形が計数対象物と重なる位置に配置されることであってもよく、
図8E等で示されるように、教師図形が計数対象物と重ならない位置に配置されることであってもよい。
【0038】
なお、
図5〜
図8では、一組の訓練用入力画像及び訓練用出力画像をそれぞれ示しているが、通常、複数組の訓練用入力画像及び訓練用出力画像が学習に用いられることになる。例えば、計数対象物が大豆である場合には、
図5で示される訓練画像等が用いられ、計数対象物が乾麺である場合には、
図6で示される訓練画像等が用いられ、計数対象物が爪楊枝である場合には、
図7で示される訓練画像等が用いられ、計数対象物がナットである場合には、
図8で示される訓練画像等が用いられてもよい。なお、訓練画像においては、計数対象物は重なっていないことが好適である。学習に用いる訓練用入力画像及び訓練用出力画像の組の数は多い方が好適であるが、より多くの組の訓練用入力画像及び訓練用出力画像を用意するためには、より多くのコストがかかることになる。したがって、適切な計数を行うことができる程度の訓練用入力画像及び訓練用出力画像の組を用いて学習を行うことが好適である。例えば、
図5の大豆の場合であれば、300〜500粒程度の大豆を用いて、訓練用入力画像及び訓練用出力画像の組を50組程度用意して学習を行ってもよい。
【0039】
訓練画像受付部21は、例えば、有線または無線の通信回線を介して送信された情報を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された情報を受け付けてもよい。なお、訓練画像受付部21は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、または含まなくてもよい。また、訓練画像受付部21は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0040】
学習器製造部22は、訓練用入力画像と訓練用出力画像との複数の組を学習することによって学習器を製造する。この学習器は、計数対象物の撮影された画像である訓練用入力画像と、その訓練用入力画像に含まれる計数対象物のそれぞれの位置に配置された複数の教師図形を含む訓練用出力画像との複数の組の機械学習の結果である。したがって、例えば、この学習器に、複数の計数対象物の撮影画像が適用されると、その撮影画像に含まれる各計数対象物が計数対象図形に変換された出力図形を得ることができる。なお、計数対象図形は、教師図形に対応する図形であり、理想的には、教師図形と同じ属性(例えば、形状や大きさ、色等)を有することになる。なお、学習の際に、訓練用入力画像と、訓練用出力画像とを分割して用いてもよい。例えば、入力として、訓練用入力画像を分割した所定の箇所の分割画像が用いられ、また、その入力に対応する出力として、訓練用出力画像を分割した、入力の所定の箇所に対応する箇所の分割画像が用いられてもよい。なお、画像を分割する際に、分割画像に重複(重なり)があってもよく、またはなくてもよい。この学習の詳細については後述する。
【0041】
学習器出力部23は、学習器製造部22によって製造された学習器を出力する。学習器出力部23によって出力された学習器が、
図1で示される計数装置1の記憶部11で記憶されることになる。ここで、この出力は、例えば、所定の機器への通信回線を介した送信でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、学習器出力部23は、出力を行うデバイス(例えば、通信デバイスなど)を含んでもよく、または含まなくてもよい。また、学習器出力部23は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0042】
次に、学習器製造部22による機械学習について説明する。この機械学習は、教師ありの学習であり、ニューラルネットワークの学習であってもよく、サポートベクターマシンやサポートベクター回帰の学習であってもよく、または、それ以外の機械学習であってもよい。ここでは、機械学習がニューラルネットワークの学習である場合について主に説明する。
【0043】
学習器であるニューラルネットワークは、画像処理を行うニューラルネットワークであり、入力画像の各画素値に対して所定の演算を行い、出力画像の各画素値を出力するものである。ニューラルネットワークは、例えば、
図14Aで示されるように、入力層の後段に、複数の畳み込み層(conv1〜conv4)を有していてもよい。
図14Aは、入力層から出力層(拡大層4)までの各層の構成を示すものである。機械学習によって、複数の畳み込み層の各フィルタのパラメータ値が算出されることになる。なお、このニューラルネットワークは、1以上のプーリング層を有していてもよく、または、有していなくてもよい。また、ニューラルネットワークが有する連続した畳み込み層の層数は問わない。例えば、ニューラルネットワークは、連続した3層以上の畳み込み層を有してもよく、連続した5層以上の畳み込み層を有してもよい。
【0044】
また、ニューラルネットワークの各層において、適宜、パディングが行われてもよい。そのパディングは、例えば、ゼロパディングであってもよく、画像の最外周の画素値を外挿するパディングであってもよく、画像の各辺で折り返した画素値とするパディングであってもよい。
図14Aでは、パディングを行っている例について示しているが、パディングは行われなくてもよい。
【0045】
また、各層におけるストライドは問わないが、例えば、畳み込み層におけるストライドは、1または2などの小さい値であることが好適であり、ニューラルネットワークがプーリング層を有する場合に、そのプーリング層のストライドは、2以上であることが好適である。
【0046】
なお、2以上のストライドの畳み込み層では、画像が縮小されることになる。したがって、そのような畳み込み層を用いた場合には、ニューラルネットワークの後段側に画像を拡大させる拡大層が存在してもよい。拡大層では、例えば、W×W×(C・r
2)の入力マップサイズの画像が、(r・W)×(r・W)×Cの出力マップサイズの画像で出力される層である。なお、マップサイズW×W×Kは、画像の縦横の画素数がW×Wであり、チャネル数がKであることを示している。
図14Bは、r=2である場合の拡大層について説明するための図である。
図14Bにおいて、例えば、4チャネルの入力画像が、1チャネルの出力画像に変換される。その際に、チャネル0〜3の上から1行目、左から1列目の4個の画素1〜4によって、拡大後の出力画像の左上端の2×2の画素1〜4が構成されることになる。また、チャネル0〜3の上から1行目、左から2列目の4個の画素5〜8によって、拡大後の出力画像の上から1〜2行目、左から3〜4列目の4個の画素5〜8が構成されることになる。他の画素についても同様である。
【0047】
一般的に記載すると、拡大層によって、W×W×r
2の入力画像(入力マップ)が、(r・W)×(r・W)×1の出力画像(出力マップ)に変換される場合には、拡大層の出力画像(出力マップ)の画素(x,y)は、入力画像(入力マップ)の「mod(x,r)+r・mod(y,r)」チャネルの画素(floor(x/r),floor(y/r))となる。なお、xは出力画像の横位置を示し、yは出力画像の縦位置を示し、mod(a,b)は、aのbによる剰余であり、floorは床関数である。また、入力画像には、チャネル0からチャネルr
2−1までのr
2個のチャネルが含まれているものとする。rは、通常、2以上の整数である。また、入力画像及び出力画像において、左上隅の画素を(0,0)とし、その画素を基準として右方向にi画素、下方向にj画素進んだ画素を(i,j)としている。入力画像のチャネル数が、C・r
2である場合には、r
2個のチャネルごとに上記の拡大を行うことによって、Cチャネルの拡大後の出力画像を得ることができる。このように、この拡大層は、r
2個のチャネルの入力画像を用いて、縦横がそれぞれr倍された1個のチャネルの出力画像を得るものであり、出力画像におけるr×rのブロックが、r
2個のチャネルの入力画像における、そのブロックに相当する位置のr
2個の画素によって構成されるようにするものである。
【0048】
図14Aで示されるように、ニューラルネットワークにおいて、拡大層の後段に畳み込み層が存在してもよく、または、そうでなくてもよい。また、ニューラルネットワークにおいて、1以上の拡大層によって、出力層の画像が入力層の画像と同じ大きさとなるようにすることが好適である。なお、
図14Aでは、入力層の画像が3チャネルのカラー画像であり、出力層の画像が1チャネルのグレースケール画像である場合について示しているが、そうでなくてもよい。入力層の画像も1チャネルのグレースケール画像であってもよく、また、出力層の画像も3チャネルのカラー画像であってもよい。
【0049】
なお、拡大層は、上記以外のものであってもよい。入力画像よりも大きい画像を出力するニューラルネットワークの層としては、例えば、アンプーリング層(unpooling layer)や逆畳み込み層(deconvolution layer)等を用いてもよい。また、
図14Aでは、前段に複数の畳み込み層を有しており、後段に1以上の拡大層を有している場合について示しているが、ニューラルネットワークは、それ以外の構成であってもよい。
【0050】
また、各層において、バイアスを用いてもよく、または、用いなくてもよい。バイアスを用いるかどうかは、層ごとに独立して決められてもよい。そのバイアスは、例えば、層ごとのバイアスであってもよく、または、フィルタごとのバイアスであってもよい。前者の場合には、各層において1個のバイアスが用いられることになり、後者の場合には、各層において1個以上(フィルタと同数)のバイアスが用いられることになる。畳み込み層でバイアスを用いる場合には、各画素値にフィルタのパラメータを掛けて足し合わせた結果にバイアスを加算したものが、活性化関数に入力されることになる。
【0051】
本実施の形態における学習器であるニューラルネットワークの学習結果として、例えば、セグメンテーションで用いられるニューラルネットワークの学習結果を用いてもよい。すなわち、ニューラルネットワークの構造としては、セグメンテーションのものを用いて、訓練画像としては、本実施の形態で説明するものを用いて学習が行われてもよい。
【0052】
ニューラルネットワークにおける各設定は、次のようであってもよい。活性化関数は、例えば、ReLU(正規化線形関数)であってもよく、シグモイド関数であってもよく、その他の活性化関数であってもよい。また、学習では、例えば、誤差逆伝搬法を用いてもよく、ミニバッチ法を用いてもよい。また、損失関数(誤差関数)は、平均二乗誤差であってもよい。また、epoch数(パラメータの更新回数)は特に問わないが、過剰適合とならないepoch数が選択されることが好適である。なお、機械学習における学習方法としては、公知の方法を用いることができ、その詳細な説明を省略する。
【0053】
図1に戻り、撮影画像取得部12は、同じ形状の複数の計数対象物の撮影画像を取得する。この撮影画像は、通常、計数対象物の集合体の画像である。なお、訓練用入力画像に含まれる複数の計数対象物の大きさが同じである場合には、撮影画像において、複数の計数対象物の大きさが、訓練用入力画像に含まれる複数の計数対象物の大きさと同じになっていることが好適である。また、訓練用入力画像に含まれる複数の計数対象物の大きさが同じでない場合には、撮影画像において、複数の計数対象物の大きさが、訓練用入力画像に含まれる複数の計数対象物の大きさの範囲内となっていることが好適である。撮影画像における複数の計数対象物の大きさが、訓練用入力画像における複数の計数対象物の大きさと同じになるようにするためには、光学系の設定(例えば、焦点距離等)や画素数、計数対象物までの距離等が、訓練用入力画像を撮影する際と同じになるように、撮影画像の撮影が行われることが好適である。例えば、訓練用入力画像がカラー画像である場合には、撮影画像もカラー画像であることが好適であり、訓練用入力画像がグレースケール画像である場合には、撮影画像もグレースケール画像であることが好適である。撮影画像は、通常、静止画であるが、動画像に含まれるフレームが撮影画像であると考えてもよい。なお、撮影画像や訓練用入力画像に含まれるのは、厳密にいえば計数対象物の画像であるが、簡単のために、撮影画像や訓練用入力画像に計数対象物が含まれると記載することにする。
【0054】
撮影画像取得部12は、例えば、カメラ等の光学機器によって撮影画像を取得してもよく、カメラ等の光学機器によって取得された撮影画像を受け付けてもよい。撮影画像取得部12が、撮影画像を受け付ける場合に、その受け付けは、通信回線を介して送信された撮影画像の受信であってもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)からの撮影画像の読み出しであってもよい。撮影画像取得部12は、取得した撮影画像を図示しない記録媒体に蓄積してもよい。
【0055】
出力画像取得部13は、撮影画像取得部12によって取得された撮影画像を、記憶部11で記憶されている学習器に適用することによって、その撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得する。具体的には、出力画像取得部13は、撮影画像取得部12によって取得された撮影画像の各画素値を学習器に入力することによって、その学習器の出力である出力画像を取得することができる。記憶部11に学習器である関数やモデル等が記憶されている場合には,出力画像取得部13は、撮影画像について、その関数やモデル等を用いた演算を行うことによって出力画像を取得してもよい。計数対象図形は、計数対象物に対応する図形であり、理想的には、教師図形と同じ形状や色になるが、実際には、教師図形からずれた形状や色となることもある。
【0056】
撮影画像に、複数種類の計数対象物が含まれており、その種類ごとの計数が行われる場合には、撮影画像の適用される学習器は、計数対象物の種類ごとに異なる属性の教師図形を用いて学習されたものであることが好適である。例えば、その計数対象物の種類が、計数対象物の大きさである場合には、計数対象物の大きさごとに異なる属性の教師図形を用いて学習された学習器に、撮影画像が適用されることが好適である。
【0057】
なお、出力画像取得部13は、撮影画像を学習器に入力する際に、撮影画像を分割し、分割した各分割画像を入力してもよい。訓練用入力画像や訓練用出力画像の分割画像を用いて学習が行われた場合には、撮影画像から出力画像を得る際にも、撮影画像の分割画像が用いられてもよい。分割画像を入力する場合には、学習器からの出力も、分割画像となるため、出力画像取得部13は、出力された分割画像を結合することによって、1つの出力画像を取得してもよい。画像の分割や結合において、分割画像に重複(重なり)があってもよく、またはなくてもよい。なお、画像を分割して学習器に適用する方法は公知であるため、その詳細な説明を省略する。
【0058】
図10〜
図13は、撮影画像、出力画像、及び両画像を合成した参考用の合成画像の一例を示す図である。
図10Aは、大豆である計数対象物の撮影画像であり、
図10Bは、
図10Aの撮影画像を、大豆に関する訓練画像で学習された学習器に適用して得られた出力画像である。
図10Cは、
図10Aの撮影画像と、
図10Bの出力画像とを合成した参考図である。
図10Cで示されるように、撮影画像に含まれる各計数対象物の中心に、計数対象図形が位置することが分かる。また、計数対象物の一部が重なっていても、適切な計数対象図形を含む出力を得ることができる。
【0059】
図11Aは、積み重ねられた複数の棒状の乾麺である計数対象物の端部の撮影画像であり、
図11Bは、
図11Aの撮影画像を、乾麺に関する訓練画像で学習された学習器に適用して得られた出力画像である。
図11Cは、
図11Aの撮影画像と、
図11Bの出力画像とを合成した参考図である。
図11Cで示されるように、撮影画像に含まれる各計数対象物の中心に、計数対象図形が位置することが分かる。また、この場合には、方向性を有する教師図形による学習が行われているため、出力画像に含まれる各計数対象図形も、計数対象物と向きが揃うように位置している。
【0060】
図12Aは、爪楊枝である計数対象物の撮影画像であり、
図12Bは、
図12Aの撮影画像を、爪楊枝に関する訓練画像で学習された学習器に適用して得られた出力画像である。
図12Cは、
図12Aの撮影画像と、
図12Bの出力画像とを合成した参考図である。
図12Cで示されるように、撮影画像に含まれる各計数対象物の中心に、計数対象図形が位置することが分かる。また、この場合には、方向性を有する教師図形による学習が行われているため、出力画像に含まれる各計数対象図形も、計数対象物である爪楊枝と同じ方向となるように位置している。
【0061】
図13Aは、大ナットである計数対象物31と、小ナットである計数対象物32と、大ナットと小ナットとの間のサイズであるナット(以下、「中ナット」とする。)である計数対象物33との撮影画像であり、
図13Bは、
図13Aの撮影画像を、ナットに関する訓練画像で学習された学習器に適用して得られた出力画像である。
図13Bの出力画像には、大ナットに対応する計数対象図形41と、小ナットに対応する計数対象図形42と、中ナットに対応する計数対象図形43とが含まれている。ここで、計数対象図形41の属性は、大ナットに対応するものであり、計数対象図形42の属性は、小ナットに対応するものであるが、計数対象図形43の属性は、計数対象図形41の属性と、計数対象図形42の属性との中間付近になっているものとする。
図13Cは、
図13Aの撮影画像と、
図13Bの出力画像とを合成した参考図である。
図13Cで示されるように、撮影画像に含まれる各計数対象物31の中心に、計数対象図形41が位置しており、各計数対象物32の中心に、計数対象図形42が位置しており、各計数対象物33の中心に、計数対象図形43が位置している。
【0062】
確信度取得部14は、出力画像に含まれる計数対象図形ごとに、その計数対象図形の属性が教師図形の属性に近いほど高い値となり、その計数対象図形の属性が教師図形の属性から遠いほど低い値となる確信度を取得する。その属性は、上記のように、色や形状であってもよく、その他の属性(例えば、大きさや角度など)であってもよい。この確信度は、計数対象物から計数対象図形への変換に関する確信の程度を示す値である。理想的な変換が行われた場合には、計数対象図形は、教師図形と同じになる。例えば、
図10〜
図13では、理想的な変換が行われた場合について示している。しかし、実際には、計数対象物が、教師図形とは異なる計数対象図形に変換されることもあるため、計数対象図形と教師図形との違いに応じて、計数対象図形の確信度を取得することになる。したがって、確信度が高いほど、計数対象物から計数対象図形への理想的な変換が行われていると考えてもよい。
【0063】
なお、確信度を取得するためには、出力画像に含まれる計数対象図形が特定されていることが必要である。その計数対象図形の特定は、例えば、計数部15によって行われた結果が用いられてもよく、または、確信度取得部14が計数部15による特定とは別に行ってもよい。
【0064】
また、結果として、確信度を取得することができるのであれば、取得される値は、例えば、非確信度(例えば、確信度の逆数等)であってもよい。その場合でも、非確信度を用いて、結果として、確信度を知ることができるからである。
【0065】
ここで、確信度の取得方法について、いくつかの例を用いて説明する。確信度は、例えば、(1)形状を用いて取得されてもよく、(2)大きさを用いて取得されてもよく、(3)色属性を用いて取得されてもよく、(4)角度を用いて取得されてもよい。
【0066】
(1)形状を用いた確信度の取得
この場合には、教師図形の形状があらかじめ決められているものとする。そして、計数対象図形の形状が、教師図形の形状から異なるほど、低い値となり、教師図形の形状に近くなるほど、高い値となる確信度が取得される。例えば、
図9で示されるように、教師図形が円盤形状であり、計数対象図形1〜4が、円盤形状とは少し異なる形状であったとする。なお、計数対象図形1の形状は教師図形に近く、計数対象図形2から計数対象図形4になるほど、形状が教師図形から異なるものとする。すると、例えば、計数対象図形1については確信度95%が取得され、計数対象図形2〜4については確信度85%,75%,65%がそれぞれ取得されてもよい。この場合には、計数対象図形の形状が、教師図形の形状からずれている程度が取得され、そのずれの程度が確信度に変換されてもよい。ずれの程度は、例えば、計数対象図形の輪郭形状が、教師図形の輪郭形状からずれている程度であってもよい。より具体的には、確信度取得部14は、確信度の取得対象となる計数対象図形を教師図形に最もフィッティングするように重ねた後に、計数対象図形の輪郭を構成する各輪郭点から、教師図形の輪郭までの距離をそれぞれ取得し、取得した輪郭点ごとの距離を加算することによってずれの程度を取得してもよい。その距離は、計数対象図形の輪郭点から教師図形の輪郭までの最も近い距離であってもよい。そのようにして取得されたずれの程度を示す値を、減少関数に代入することによって確信度を取得してもよい。
【0067】
(2)大きさを用いた確信度の取得
この場合には、教師図形の大きさがあらかじめ決められているものとする。そして、計数対象図形の大きさが、教師図形の大きさから異なるほど、低い値となり、教師図形の大きさに近くなるほど、高い値となる確信度が取得される。
【0068】
大きさは、例えば、面積であってもよい。この場合には、確信度取得部14は、確信度の取得対象となる計数対象図形の面積を取得し、取得した面積と、あらかじめ保持されている教師図形の面積との差の絶対値を取得してもよい。取得した絶対値が、確信度の取得対象となる計数対象図形と教師図形とのずれの程度を示す値となるため、上記(1)と同様にして、そのずれの程度を示す値を、減少関数に代入することによって確信度を取得してもよい。
【0069】
また、教師図形が円形状や円盤形状である場合には、大きさは、例えば、半径や直径であってもよい。その場合には、確信度取得部14は、確信度の取得対象となる計数対象図形の半径や直径を取得し、取得した半径や直径と、あらかじめ保持されている教師図形の半径や直径との差の絶対値を取得することによって、確信度の取得対象となる計数対象図形と教師図形とのずれの程度を示す値を取得してもよい。その後、上記と同様に、確信度を取得してもよい。
【0070】
(3)色属性を用いた確信度の取得
この場合には、教師図形において色属性があらかじめ決められているものとする。その教師図形における色属性は、例えば、一定であってもよい。具体的には、教師図形の明度や色相等は、一定となるように設定されていてもよい。
【0071】
この場合には、確信度取得部14は、例えば、確信度の取得対象となる計数対象図形を構成する各画素の色属性を取得し、取得した色属性と教師図形の色属性との差の絶対値を取得し、取得した画素ごとの色属性の差の絶対値を加算してもよい。その加算結果が、確信度の取得対象となる計数対象図形と教師図形との色属性のずれの程度を示す値となるため、上記(1)と同様にして、そのずれの程度を示す値を、減少関数に代入することによって確信度を取得してもよい。その色属性として、例えば、明度、色相、彩度のいずれか1以上が用いられてもよい。
【0072】
また、確信度取得部14は、例えば、確信度の取得対象となる計数対象図形を構成する各画素の色属性を取得し、取得した色属性の平均と、教師図形の色属性との差の絶対値を取得してもよい。その場合には、その取得された値が、確信度の取得対象となる計数対象図形と教師図形との色属性のずれの程度を示す値となってもよい。
【0073】
また、確信度取得部14は、例えば、確信度の取得対象となる計数対象図形を構成する各画素の色属性を取得し、取得した色属性の分散を算出してもよい。理想的には(すなわち、教師図形では)、分散は0になるため、分散が大きいほど、計数対象図形の色属性が教師図形の色属性からずれていることになる。したがって、その分散の値が、確信度の取得対象となる計数対象図形と教師図形との色属性のずれの程度を示す値となるため、上記(1)と同様にして、そのずれの程度を示す値を、減少関数に代入することによって確信度を取得してもよい。
【0074】
(4)角度を用いた確信度の取得
この場合には、計数対象物は、方向性のある形状であり、かつ、一定の方向に揃うようになっており、また、方向性のある教師図形が計数対象物の方向に沿うように配置されるものとする。例えば、
図11では、そのようになっている。この場合には、確信度取得部14は、例えば、確信度の取得対象となる計数対象図形の角度を取得し、取得した角度と、教師図形の角度との差の絶対値を取得してもよい。その絶対値が、確信度の取得対象となる計数対象図形と教師図形との角度のずれの程度を示す値となるため、上記(1)と同様にして、そのずれの程度を示す値を、減少関数に代入することによって、確信度を取得してもよい。教師図形や計数対象図形の角度とは、例えば、教師図形や計数対象図形が正方形や矩形である場合には、辺の角度であってもよい。
【0075】
なお、確信度の取得対象となる計数対象図形と教師図形とのずれの程度から確信度を取得する際に、減少関数を用いる場合について説明したが、そうでなくてもよい。例えば、確信度の取得対象となる計数対象図形と教師図形とのずれの程度と、確信度とを対応付けるテーブル等の情報を用いて確信度を取得してもよい。また、確信度が、0〜100%の範囲、または0〜1の範囲などのように、あらかじめ決められた範囲の値を取るように適宜、正規化が行われてもよい。
【0076】
計数部15は、出力画像に含まれる複数の計数対象図形と、確信度とを用いて計数対象物の個数を計数する。具体的には、計数部15は、確信度が閾値を超える計数対象図形の個数を計数してもよい。その閾値は、通常、あらかじめ決められたものである。なお、その閾値は、例えば、操作者が、撮影画像と計数結果とを比較することによって、適宜、調整できてもよい。計数部15は、あらかじめ保持されている教師図形の形状を用いて、出力画像においてパターンマッチング等を行うことによって計数対象図形を特定し、その特定した計数対象図形について、確信度を用いた計数を行ってもよい。確信度の低い計数対象図形は、計数対象物ではないものが変換された結果であると考えることができる。したがって、確信度の低い計数対象図形については、上記のように、計数を行わないようにすることによって、誤った計数を行わないようにすることができ、結果として、計数の精度を向上させることができる。
【0077】
また、複数種類の計数対象物について計数を行う場合に、計数部15は、出力画像において、特定の属性を有する計数対象図形ごとに、計数を行ってもよい。例えば、訓練画像において、大豆には赤色の教師図形が用いられ、米には青色の教師図形が用いられている場合には、計数部15は、出力画像において、赤色の計数対象図形に関する計数と、青色の計数対象図形に関する計数とをそれぞれ行ってもよい。より具体的には、計数部15は、出力画像において、計数対象物のある種類に対応する属性を有する計数対象図形を特定し、その特定した計数対象図形と、その計数対象図形の確信度とを用いて、その種類の計数対象物に関する計数を行ってもよい。そのような処理を、計数対象物の種類ごとに繰り返すことによって、すべての種類の計数対象物について計数を行うことができるようになる。この場合には、確信度取得部14は、例えば、計数対象物のある種類に対応する属性を有する計数対象図形については、その種類に関する確信度を取得し、別の種類に対応する属性を有する計数対象図形については、その種類に関する確信度を取得してもよい。
【0078】
また、複数種類の計数対象物について計数が行われる場合に、確信度取得部14は、計数対象物の種類ごとに、出力画像に含まれるすべての計数対象図形について確信度を取得してもよい。例えば、出力画像に、大豆に対応する計数対象図形と、米に対応する計数対象図形とが含まれる場合には、確信度取得部14は、出力画像に含まれるすべての計数対象図形について、大豆に関する確信度の取得と、米に関する確信度の取得とを行ってもよい。その確信度の取得では、大豆の教師図形の属性と、米の教師図形の属性との違いが確信度に反映されるようになっていることが好適である。例えば、大豆の教師図形が赤色であり、米の教師図形が青色である場合には、確信度は、計数対象図形の色相を用いて取得されることが好適である。そして、計数部15は、大豆の計数を、出力画像に含まれる計数対象図形ごとの大豆の確信度を用いて行い、米の計数を、出力画像に含まれる計数対象図形ごとの米の確信度を用いて行ってもよい。このようにして、計数対象物の種類ごとの計数を行うこともできる。
【0079】
また、計数部15は、出力画像に含まれる計数対象図形の属性及び確信度を用いることによって、学習していない大きさの計数対象物についても個数を計数してもよい。この場合に、学習していない大きさの計数対象物についても、大きさは揃っていることが好適である。例えば、
図13Aで示されるように、学習が行われた大ナット及び小ナットとともに、学習が行われていない中ナットも含まれている撮影画像を学習器に適用することによって取得された出力画像には、
図13Bで示されるように、中ナットに対応する計数対象図形43も含まれることになる。このような場合には、通常、計数対象図形43については、大ナットに関する確信度も、小ナットに関する確信度も低くなり、大ナットとしても小ナットとしても計数されないことになる。一方、撮影画像に中ナットが含まれていることが分かっている場合には、大ナットの教師図形の属性と、小ナットの教師図形の属性との中間の属性が、中ナットの仮想的な教師図形の属性として設定されてもよい。そして、確信度取得部14は、その中ナットの仮想的な教師図形の属性を用いて、中ナットに関する確信度を、出力画像に含まれる各計数対象図形について算出してもよい。その後、計数部15は、大ナットや小ナットと同様に、中ナットについても、中ナットの確信度を用いた計数を行ってもよい。例えば、
図13Bで示される出力画像において、3個の計数対象図形43の中ナットに関する確信度が閾値を超えていたとすると、計数部15は、中ナットの個数として、「3個」を取得する。また、計数部15は、確信度を用いることによって、大ナットとも判断されず、小ナットとも判断されなかった計数対象図形の個数を、中ナットの個数として計数してもよい。また、計数部15は、大ナットの確信度が所定の範囲となり、小ナットの確信度が所定の範囲となる計数対象図形の個数を、中ナットの個数として計数してもよい。
【0080】
出力部16は、計数部15によって計数された計数対象物の個数を出力する。なお、計数対象物の種類ごとに計数が行われた場合には、その種類ごとに個数が出力されることが好適である。ここで、この出力は、例えば、表示デバイス(例えば、液晶ディスプレイや有機ELディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、出力部16は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、または含まなくてもよい。また、出力部16は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0081】
次に、計数装置1の動作について
図3のフローチャートを用いて説明する。
(ステップS101)撮影画像取得部12は、撮影画像を取得するかどうか判断する。そして、撮影画像を取得する場合には、ステップS102に進み、そうでない場合には、撮影画像を取得すると判断するまで、ステップS101の処理を繰り返す。なお、例えば、撮影画像取得部12は、操作者からの指示に応じて撮影画像を取得すると判断してもよい。
【0082】
(ステップS102)撮影画像取得部12は、計数対象物の撮影画像を取得する。取得した撮影画像は、図示しない記録媒体で記憶されてもよい。
【0083】
(ステップS103)出力画像取得部13は、ステップS102で取得された撮影画像を、記憶部11で記憶されている学習器に適用することによって、撮影画像に対応する出力画像を取得する。取得した出力画像は、図示しない記録媒体で記憶されてもよい。
【0084】
(ステップS104)計数部15は、出力画像において、計数対象図形を特定する。この計数対象図形の特定は、例えば、出力画像における、計数対象図形の含まれる位置や領域の特定であってもよい。
【0085】
(ステップS105)確信度取得部14は、ステップS104で特定された各計数対象図形について、確信度を取得する。なお、複数種類の計数対象物について計数が行われる場合には、確信度取得部14は、例えば、特定されたすべての計数対象図形について、計数対象物の種類に応じた教師図形ごとに、確信度を取得してもよい。すなわち、2種類の計数対象物が存在する場合には、1個の計数対象図形について、2個の確信度が取得されてもよい。
【0086】
(ステップS106)計数部15は、出力画像において特定した計数対象図形と、確信度取得部14によって取得された確信度とを用いて、計数対象図形の個数、すなわち計数対象物の個数を取得する。なお、複数種類の計数対象物が撮影画像に含まれる場合には、計数部15は、種類ごとに計数対象物の個数を取得してもよい。
【0087】
(ステップS107)出力部16は、計数部15によって取得された計数対象物の個数を出力する。そして、ステップS101に戻る。
【0088】
なお、
図3のフローチャートにおいて、確信度取得部14が、計数部15によって特定された計数対象図形ごとに確信度を取得する場合について説明したが、そうでなくてもよい。確信度取得部14は、出力画像における計数対象図形の特定も行ってもよい。また、
図3のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。なお、
図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0089】
次に、学習器製造装置2の動作について
図4のフローチャートを用いて説明する。
(ステップS201)訓練画像受付部21は、訓練用入力画像と訓練用出力画像との複数の組を受け付けたかどうか判断する。そして、訓練用入力画像と訓練用出力画像との複数の組を受け付けた場合には、ステップS202に進み、そうでない場合には、それらを受け付けるまでステップS201の処理を繰り返す。
【0090】
(ステップS202)学習器製造部22は、ステップS201で受け付けられた訓練画像を用いて、機械学習によって学習器を製造する。
【0091】
(ステップS203)学習器出力部23は、ステップS202で製造された学習器を出力する。このようにして、学習器を製造する一連の処理が終了する。
なお、
図4のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。
【0092】
次に、本実施の形態によるシステムの動作について、具体例を用いて説明する。この具体例では、計数対象物が大豆である場合について説明する。
まず、ユーザは、
図5Aで示される、計数対象物である大豆を撮影した訓練用入力画像を用意する。また、ユーザは、画像処理ソフトウェア等を用いることによって、
図5Cで示されるように、その訓練用入力画像に含まれる大豆の中心付近に、教師図形である黒の円盤形状を手作業で配置する。そして、
図5Bで示される、計数対象物の位置に配置された複数の教師図形を有する訓練用出力画像を生成する。このような作業を繰り返すことによって、ユーザは、複数組の訓練画像を用意する。そして、その用意した複数組の訓練画像を学習器製造装置2に入力し、学習を開始させる。すると、訓練画像受付部21によって、複数組の訓練画像が受け付けられ(ステップS201)、学習器製造部22によって、その複数組の訓練画像を用いた学習器の製造が行われる(ステップS202)。そのようにして製造された学習器は、学習器出力部23によって、図示しない記録媒体に蓄積される(ステップS203)。
【0093】
その後、記録媒体に蓄積された学習器が、計数装置1の記憶部11に蓄積されたものとする。そして、計数装置1の操作者が、訓練用入力画像を撮影した場合と同様の光学系によって、複数の大豆の撮影画像が取得されるように、計数装置1を操作したとする。すると、その操作に応じて撮影画像取得部12が撮影を行い、
図10Aで示される撮影画像を取得する(ステップS101,S102)。出力画像取得部13は、撮影画像取得部12から撮影画像を受け取り、その撮影画像の各画素を記憶部11で記憶されている学習器の入力層とし、各層の計算を行うことによって、出力層の情報、すなわち出力画像を取得する(ステップS103)。その出力画像は、
図10Bで示されるものであったとする。すると、計数部15は、その出力画像において、あらかじめ保持されている教師図形である黒丸をパターンとして用いて、それに類似した計数対象図形を特定する(ステップS104)。なお、その特定は、パターンとの類似度が閾値以上となる図形を特定することによって行われてもよい。
【0094】
次に、確信度取得部14は、計数部15によって特定された各計数対象図形について、確信度を取得する(ステップS105)。その結果、計数対象図形ごとに、確信度が取得されることになる。計数部15は、取得された確信度が、あらかじめ決められた閾値より大きい計数対象図形の個数を計数する。例えば、確信度取得部14によってN個の確信度が取得された場合には、そのN個の確信度のうち、閾値を超える確信度の個数(M個)をカウントすることによって、確信度が閾値を超える計数対象図形の個数(M個)を取得することができる。なお、N,Mは0以上の整数であり、N≧Mである。
図10Bの場合には、閾値を超える確信度の計数対象図形が80個存在し、その80個が計数部15によって取得されたとする(ステップS106)。すると、出力部16は、計数対象物の個数「80個」を出力する(ステップS107)。このようにして、撮影画像に含まれる計数対象物の個数が容易に、また正確に計数されることになる。
【0095】
図15A〜
図15Fは、本実施の形態による学習器製造装置2による学習に用いた訓練画像、並びに、計数装置1による計数に用いた撮影画像及び出力画像を示す実画像である。
図15Aは、計数対象物である小豆(赤色の豆)を撮影した訓練用入力画像である。
図15Bは、
図15Aの計数対象物の位置に配置された白色の円盤形状である教師図形を含む訓練用出力画像である。
図15Cは、
図15Aの訓練用入力画像と、
図15Bの訓練用出力画像とを合成した参考図である。そのような訓練用入力画像と訓練用出力画像との複数の組を用意して、学習器製造装置2に機械学習を行わせることによって、小豆を計数するために用いられる学習器を製造した。
【0096】
次に、その学習器を計数装置1の記憶部11に蓄積した。また、
図15Dで示される小豆の撮影画像を取得し、計数装置1に入力すると、
図15Eで示される出力画像が得られた。
図15Fは、
図15Dの撮影画像と、
図15Eの出力画像とを合成した参考図である。理想的には、出力画像に含まれる計数対象図形は、
図15Bの教師図形と同様に、白色の真円になるはずであるが、実際には、
図15Eで示されるように、一部の計数対象図形は、真円ではない形状になっている。その計状等を用いて確信度が取得され、その確信度を用いて、計数対象図形の個数、すなわち計数対象物の個数が計数される。このようにして、計数対象物の個数を計数することができる。
【0097】
以上のように、本実施の形態による計数装置1によれば、学習器を用いて、撮影画像に含まれる計数対象物を計数対象図形に変換し、その変換後の計数対象図形の個数を計数することによって、計数対象物の個数を精度高く計数することができる。適切な学習結果を用いることによって、
図15E等で示されるように、計数対象物を精度高く計数対象図形に変換することができるからである。また、計数対象図形ごとに取得された確信度を用いて、計数対象図形の計数を行うことによって、より精度を向上させることができるようになる。また、計数対象物の種類ごとに異なる教師図形を用いて学習が行われた場合には、計数対象図形の属性を用いることによって、種類ごとに計数対象物の個数を計数することもできるようになる。また、その種類が大きさに関する種類である場合には、学習を行っていない計数対象物についても、計数することができるようになる。
【0098】
また、本実施の形態による学習器製造装置2によれば、複数の訓練画像を用いることによって、計数対象物の計数に用いられる学習器を生成することができる。また、計数対象物の種類ごとに異なる属性を有する教師図形を用いる場合に、訓練用入力画像と訓練用出力画像との組に、1種類の計数対象物のみと、それに対応する1種類の教師図形のみとが含まれるようにすることによって、より少ない訓練画像の学習によって学習器を製造することができるようになる。
【0099】
なお、本実施の形態では、計数対象図形の計数に確信度も用いる場合について説明したが、そうでなくてもよい。この場合には、計数部15は、確信度を用いないで出力画像に含まれる計数対象図形のすべての個数、すなわち計数対象物の個数を計数してもよい。この場合には、計数装置1は、確信度取得部14を備えていなくてもよい。
【0100】
また、上記実施の形態では、学習器がニューラルネットワークの学習結果である場合について主に説明したが、上記したように、学習器は、例えば、SVMやSVR等の学習結果であってもよい。そのように、学習器がニューラルネットワーク以外の学習結果である場合について簡単に説明する。ここでは、学習器が、SVMの学習結果である場合について説明する。その場合には、例えば、訓練用入力画像と、訓練用出力画像とを用いた学習において、
図16A,
図16Bで示されるように、所定の領域81,82を用いた学習が行われてもよい。その学習では、入力を、
図16Aで示される領域81に含まれる各画素の値とし、
図16Bで示される領域82の代表点(×印)の画素値を出力としてもよい。例えば、学習器製造部22は、代表点の画素が黒である場合には出力を「1」とし、白である場合には出力を「0」(または、「−1」)として学習を行ってもよい。なお、訓練用入力画像における領域81の位置が、訓練用出力画像における領域82の位置に相当するものとする。
【0101】
領域82の代表点は、例えば、中心点であってもよく、その他の領域82を代表する点であってもよい。
図16Bでは、代表点が中心点であるとしている。なお、SVMの学習を行う場合には、通常、出力は2値であるため、
図16Bの訓練用出力画像は、2値の画像であってもよい。
【0102】
また、学習器製造部22は、領域81,82の位置を1画素ずつずらしながら、学習を行う。したがって、1組の訓練用入力画像と訓練用出力画像とを用いて、多くの学習を行うことができる。また、その学習を、訓練用入力画像と訓練用出力画像との複数の組を用いて行うものとする。なお、領域81,82は、例えば、1個の計数対象物が領域81,82に含まれる程度の大きさに設定されてもよい。
【0103】
撮影画像を学習器に適用する際にも、領域81と同様の領域ごとに適用を行うことになる。例えば、撮影画像のある位置に所定の領域を配置し、その所定の領域の各画素を学習器に入力すると、1または0(もしくは−1)が出力される。出力画像取得部13は、その出力に応じて、出力画像における、その所定の領域に相当する領域における代表点の画素を、黒または白に設定する。そのような処理を、撮影画像における所定の領域の位置を1画素ずつずらしながら行うことによって、計数対象図形を含む出力画像を得ることができる。その後の処理は、ニューラルネットワークの学習結果である学習器を用いた場合と同様である。
【0104】
このように、SVMの学習を行う場合には、例えば、訓練用入力画像における、ある画素(代表点の画素)の周囲のN1×N2の領域の画素値を入力とし、その代表点の画素に相当する、訓練用出力画像の画素値を出力とする学習を行ってもよい。そして、撮影画像における、N1×N2の領域の画素値を学習器に入力して、白か黒を示す出力を取得し、出力画像における、N1×N2の領域の代表点に相当する画素値を、出力に応じて白か黒に設定することを、N1×N2の領域を1画素ずつずらしながら行うことによって出力画像を取得してもよい。N1、N2は、通常、3以上の整数である。
通常のSVMは、2値の教師図形しか扱えないため、多値の教師図形を扱う場合には、SVRや、多値分類のSVMを用いた学習を行うようにしてもよい。
【0105】
また、上記実施の形態では、訓練用入力画像及び撮影画像において、同じ種類の計数対象物が同じ大きさとなるように撮影が行われる場合について主に説明したが、そうでなくてもよい。同じ種類の計数対象物が、いろいろな大きさとなるように撮影した訓練用入力画像を用いて学習を行うことによって、訓練用入力画像と撮影画像との撮影条件を同じにしなくても、計数対象物を計数することができるようになる。ただし、そのような学習を行った場合には、計数対象物の大きさごとに計数を行うことはできなくなる。
【0106】
また、計数装置1、学習器製造装置2は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や取得部、受付部は、通信回線を介して情報を出力したり、情報を取得したり、情報を受け付けたりしてもよい。
【0107】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0108】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【0109】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
【0110】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【0111】
また、上記実施の形態において、計数装置1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。学習器製造装置2についても同様である。
【0112】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。なお、上記実施の形態における計数装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数用いて学習された学習器が記憶される記憶部にアクセス可能なコンピュータを、複数の計数対象物の撮影画像を取得する撮影画像取得部、撮影画像を学習器に適用することによって、撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得する出力画像取得部、出力画像に含まれる複数の計数対象図形を用いて計数対象物の個数を計数する計数部、計数部によって計数された計数対象物の個数を出力する出力部として機能させるためのものである。
【0113】
また、上記実施の形態における学習器製造装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数受け付ける訓練画像受付部、訓練用入力画像と訓練用出力画像との複数の組を学習することによって学習器を製造する学習器製造部、学習器を出力する学習器出力部として機能させるためのプログラムである。
【0114】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を受け付ける受付部、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
【0115】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
【0116】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【0117】
図17は、上記プログラムを実行して、上記実施の形態による計数装置1、学習器製造装置2を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【0118】
図17において、コンピュータシステム900は、CD−ROMドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
【0119】
図18は、コンピュータシステム900の内部構成を示す図である。
図18において、コンピュータ901は、CD−ROMドライブ905に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANやWAN等への接続を提供する図示しないネットワークカードを含んでいてもよい。
【0120】
コンピュータシステム900に、上記実施の形態による計数装置1、学習器製造装置2の機能を実行させるプログラムは、CD−ROM921に記憶されて、CD−ROMドライブ905に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921、またはネットワークから直接、ロードされてもよい。また、CD−ROM921に代えて他の記録媒体(例えば、DVD等)を介して、プログラムがコンピュータシステム900に読み込まれてもよい。
【0121】
プログラムは、コンピュータ901に、上記実施の形態による計数装置1、学習器製造装置2の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
【0122】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【解決手段】計数装置1は、同じ形状の複数の計数対象物が撮影された画像である訓練用入力画像と、複数の計数対象物のそれぞれの位置に配置された教師図形を含む訓練用出力画像との組を複数用いて学習された学習器が記憶される記憶部11と、複数の計数対象物の撮影画像を取得する撮影画像取得部12と、撮影画像を学習器に適用することによって、撮影画像に含まれる各計数対象物が計数対象図形に変換された出力画像を取得する出力画像取得部13と、出力画像に含まれる複数の計数対象図形を用いて計数対象物の個数を計数する計数部15と、計数部15によって計数された計数対象物の個数を出力する出力部16とを備える。