以下、本発明の実施の形態の情報処理装置、情報処理プログラム、および情報処理システムについて説明する。
(第1の実施の形態)
図1は、本実施の形態の情報処理システム10の機能ブロック図である。情報処理システム10は、撮影部12と、記憶部14と、駆動部16と、駆動機構18と、情報処理装置20と、を備える。撮影部12、記憶部14、および駆動部16と、情報処理装置20と、は、信号授受可能に接続されている。駆動部16と、駆動機構18と、は信号授受可能に接続されている。
撮影部12は、撮影によって被写体の分光画像を得る装置である。分光画像は、波長の異なる光の各々に対する被写体の反射率を示す複数の二次元画像からなる。撮影部12は、例えば、マルチスペクトルカメラや、カラーフィルタを交換する方式のカメラや、プリズムを用いた方式のカメラなどである。
本実施の形態では、撮影部12は、近赤外領域の少なくとも一部の波長領域を含む分光画像を得る。近赤外領域の波長領域は、800nm〜2500nmである。本実施の形態では、一例として、撮影部12は、350nm〜1100nmの波長の各々の光に対する被写体の反射率を示す複数の二次元画像を、分光画像として得る場合を説明する。また、本実施の形態では、撮影部12は、一例として、350nm〜1100nmの波長領域について、5nmごとの各々の光に対する被写体の反射率を示す複数の二次元画像を、分光画像として得る場合を説明する。
なお、撮影部12は、少なくとも、水の光吸収率のピークに対応する波長(詳細後述)を含む波長領域の波長の各々の光に対する、被写体の反射率を示す複数の二次元画像を、分光画像として得る構成であればよく、撮影する波長の範囲は350nm〜1100nmの波長に限定されない。また、撮影部12が撮影する二次元画像の波長は、5nmごとに異なる波長である形態に限定されない。
記憶部14は、各種データを記憶する。駆動機構18は、情報処理装置20によって判断された果実を採取する公知の機構である。駆動機構18は、例えば、人間の腕に相当する機能を備えたロボットアーム、人間の手に相当する機能を備えたロボットハンド、および人間の足に相当する機能を備えた走行部の少なくとも1つを含む。本実施の形態では、駆動機構18は、ロボットアーム、ロボットハンド、および走行部を備えた形態を説明する。
駆動部16は、駆動機構18を駆動させる。駆動部16は、例えば、1または複数のモータやギアなどを組み合わせた構成である。駆動部16は、情報処理装置20の制御によって駆動機構18を駆動させる。例えば、駆動部16は、情報処理装置20の制御によって駆動機構18を駆動させることで、情報処理装置20で認識された果実をロボットハンドで把持し、所定の箱などに収納させる。
情報処理装置20は、情報処理システム10全体を制御する。情報処理装置20は、CPU、ROM、およびRAMなどによって実現される。情報処理装置20は、CPU以外の回路などによって実現されてもよい。
情報処理装置20は、取得部20Aと、生成部20Bと、判断部20Cと、駆動制御部20Dと、を備える。取得部20A、生成部20B、判断部20C、および駆動制御部20Dの一部または全ては、例えば、CPUなどの処理装置にプログラムを実行させること(すなわちソフトウェア)により実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、併用して実現してもよい。
取得部20Aは、被写体の分光画像を取得する。取得部20Aは、撮影部12で撮影した分光画像を撮影部12から受け付ける事で、分光画像を取得する。
生成部20Bは、取得部20Aで取得した分光画像から、被写体の特徴量を生成する。
ここで、本発明者らは、被写体が果実である場合、被写体の分光画像によって示される特定波長領域の波長に対する反射率の分布が、非果実である場合とは異なる特徴を示すことを見出した。特定波長領域は、近赤外領域の少なくとも一部を含む波長領域である。
すなわち、本発明者らは、被写体が果実である場合、波長に対する反射率の分布を示す反射スペクトルの内、特に、特定波長領域の反射スペクトルが、非果実である場合とは異なる特徴を示すことを見出した。
図2は、非果実、果実、水、の各々の反射スペクトル(非果実の反射スペクトル30、果実の反射スペクトル32、水の反射スペクトル34)の一例を示す図である。図2に示すように、非果実の反射スペクトル30と、果実の反射スペクトル32と、は、各波長に対する反射率の分布が異なる。非果実は、果実以外の被写体であって、例えば、葉、茎、などである。本発明者らは、非果実の反射スペクトル30と果実の反射スペクトル32とは、特定波長領域Cの反射スペクトル(波長に対する反射率の分布)が特に異なる特徴を示すことを見出した。
なお、反射率の分布が異なる(すなわち、反射スペクトルが異なる)とは、各波長に対する反射率の分布の少なくとも一部が異なることを示す。具体的には、反射率の分布が異なるとは、各波長に対する反射率の分布を示す反射スペクトルの形状、各波長に対する反射率の値、反射率のピークの位置、反射率0%を示す直線と反射スペクトルによって示される曲線との間の領域の面積、反射スペクトルを予め定めた波長領域ごとに分割した各波長領域における反射率の変化量、および該変化量を多次関数に近似したときの該多次関数、などが異なる事を示す。
なお、特定波長領域Cは、近赤外領域Aの少なくとも一部を含む波長領域であればよいが、近赤外領域Aと一致することが好ましい。また、特定波長領域Cは、被写体が水であるときの光吸収率のピークに対応する波長を含むことが更に好ましい。
図3は、被写体が水であるときの、波長と光吸収率との関係を示す図である。図3に示すように、水は、波長970nm付近、および波長1170nm付近、の各々に、光吸収率のピークを有する。以下、波長970nm付近、および波長1170nm付近の少なくとも一方の波長領域を、水の波長領域Bと称して説明する場合がある。なお、波長970nm付近、波長1170nm付近とは、波長970nm±10nm、波長1170nm±10nmを示し、波長970nmおよび波長1170nmに限定されない。
図2に戻り、非果実の反射スペクトル30と果実の反射スペクトル32とは、近赤外領域Aの中でも、特に、水の波長領域Bにおける波長に対する反射率の分布が異なる。
このため、特定波長領域Cは、波長970nm±10nmおよび波長1170±10nmの少なくとも一方の波長領域を含むことが更に好ましく、波長970nmおよび波長1170nmの少なくとも一方の波長を含むことが特に好ましい。
図4は、非果実の反射スペクトル30、果実の反射スペクトル32、水の反射スペクトル34の各々における、波長970nmを含む水の波長領域Bの反射スペクトル(反射スペクトル30A、反射スペクトル32A、反射スペクトル34A)を拡大して示した図である。
図4に示すように、非果実の反射スペクトル30と果実の反射スペクトル32とは、水の波長領域Bにおける反射スペクトル(波長に対する反射率の分布)が特に異なる。このように、本発明者らは、被写体が果実である場合、特定波長領域Cの反射スペクトルが非果実である場合とは特に異なる特徴を示すことを見出した。
そこで、本実施の形態の情報処理装置20の生成部20Bは、取得部20Aで取得した分光画像によって示される、近赤外領域の少なくとも一部を含む特定波長領域Cの波長に対する反射率の分布に基づいて、被写体の特徴量を生成する。
例えば、生成部20Bは、取得した分光画像によって示される、特定波長領域Cの波長に対する反射率の分布(すなわち、特定波長領域Cの反射スペクトル)そのものを、被写体の特徴量として生成する。
なお、生成部20Bは、取得した分光画像によって示される、各波長に対する反射率の分布を示す反射スペクトルの形状、各波長に対する反射率の値、反射率のピークの位置、反射率0%を示す直線と反射スペクトルによって示される曲線との間の領域の面積、反射スペクトルによって示される反射率の変化量を示す傾き情報、および該変化量を多次関数に近似したときの該多次関数、の少なくとも2つを、特徴量として生成してもよい。
傾き情報は、取得した分光画像によって示される特定波長領域Cの波長に対する反射率の分布によって示される反射スペクトルを、予め定めた波長領域ごとに分割し、各波長領域における、最低波長に対応する第1の反射率、最高波長に対応する第2の反射率、および、第1の反射率から第2の反射率への変化量を該分割した波長領域で除算した除算値(変化量/波長領域)、によって規定される。
分割する波長領域の単位は、予め設定してもよいし、入力部のユーザによる操作指示などによって可変としてもよい。分割する波長領域の単位は、例えば、5nmであるが、この値に限定されない。また、分割する波長領域の単位は、1つの特定波長領域Cに対して複数種類定めてもよい。例えば、水の波長領域Bについてはより短い波長領域の単位を定め、水の波長領域B以外についてはより長い波長領域の単位を定めてもよい。
図1に戻り、判断部20Cは、生成部20Bが生成した特徴量と、予め定めた果実の基準特徴量と、の比較に基づいて、被写体が果実であるか否かを判断する。
例えば、判断部20Cは、生成部20Bが生成した特徴量と、予め定めた果実の基準特徴量と、が一致するか否かを判別することによって、被写体が果実であるか否かを判断する。具体的には、記憶部14は、果実の基準特徴量を予め記憶する。例えば、果実を撮影部12で撮影した分光画像から、生成部20Bで特徴量を生成し、基準特徴量として予め記憶部14に記憶すればよい。
記憶部14は、1種類の基準特徴量を予め記憶してもよいし、果実の種類の異なる複数種類の基準特徴量を予め記憶してもよい。情報処理装置20は、例えば、ぶどう、さくらんぼ、イチジク、桃、などの種類ごとに基準特徴量を予め生成し、記憶部14に予め記憶してもよい。
また、情報処理装置20は、各種類の果実ごとに、完熟度や産地や収穫時期などの異なる複数の果実の各々について、基準特徴量を予め生成し、記憶部14に予め記憶してもよい。
図5は、複数種類の非果実の反射スペクトル30と、複数種類果実の反射スペクトル32と、水の反射スペクトル34と、の一例を示す図である。図5に示すように、果実の反射スペクトル32は、果実の種類や果実の完熟度や産地や収穫時期などによって、略相似形で且つ反射率のピークに対応する波長は略同一ではあるものの、同じ波長に対する反射率の値にばらつきが生じる場合がある(果実の反射スペクトル321〜果実の反射スペクトル325の各々における、特定波長領域Cに対応する、果実の反射スペクトル321A〜果実の反射スペクトル325Aの各々参照)。
図1に戻り、そこで、情報処理装置20は、種類や完熟度や産地や収穫時期などの異なる複数の果実の各々の基準特徴量を予め生成し、記憶部14に予め記憶することが好ましい。
なお、記憶部14が予め記憶する基準特徴量は、生成部20Bが生成する特徴量と同じ種類の情報である。すなわち、生成部20Bが生成する特徴量が、分光画像によって示される、特定波長領域Cの波長に対する反射率の分布(すなわち、特定波長領域Cの反射スペクトル)そのものである場合、基準特徴量も、特定波長領域Cの波長に対する反射率の分布である。また、生成部20Bが生成する特徴量が、分光画像によって示される、各波長に対する反射率の分布を示す反射スペクトルの形状、各波長に対する反射率の値、反射率のピークの位置、反射率0%を示す直線と反射スペクトルによって示される曲線との間の領域の面積、反射スペクトルによって示される反射率の変化量を示す傾き情報、および該変化量を多次関数に近似したときの該多次関数、の少なくとも2つである場合、基準特徴量も、同じ組合せによって規定される値であればよい。
そして、判断部20Cは、生成部20Bが生成した特徴量と、記憶部14に記憶されている果実の基準特徴量と、が一致するか否かを判別することによって、被写体が果実であるか否かを判断する。記憶部14に果実の基準特徴量が複数記憶されている場合、判断部20Cは、生成部20Bが生成した特徴量と、複数の基準特徴量の何れかと、が一致するか否かを判別することによって、被写体が果実であるか否かを判断すればよい。
なお、特徴量と基準特徴量とが一致する、とは、果実と非果実とを区別可能な判断基準以上一致することを示す。例えば、特徴量と基準特徴量とが一致する、とは、少なくとも80%以上が一致する事を示し、完全に一致(100%一致)する形態に限定されない。
例えば、特徴量および基準特徴量が、分光画像によって示される、特定波長領域Cの波長に対する反射率の分布(すなわち、特定波長領域Cの反射スペクトル)そのものであるとする。この場合、判断部20Cは、該反射スペクトルによって示される波長に対する反射率のプロットの群の少なくとも80%以上が一致する場合に、特徴量と基準特徴量とが一致すると判別する。
また、特徴量および基準特徴量が、反射スペクトルによって示される反射率の変化量を示す傾き情報であったとする。傾き情報は、上述したように、取得した分光画像によって示される特定波長領域Cの波長に対する反射率の分布によって示される反射スペクトルを、予め定めた波長領域ごとに分割し、各波長領域における、最低波長に対応する第1の反射率、最高波長に対応する第2の反射率、および、第1の反射率から第2の反射率への変化量を該分割した波長領域で除算した除算値(変化量/波長領域)、によって規定される。
例えば、特定波長領域Cを複数の波長領域に分割する。この場合、記憶部14には、該複数の波長領域の各々に対応する傾き情報が、基準特徴量として予め記憶される。そして、判断部20Cは、生成部20Bで特徴量として生成された、該複数の波長領域の各々に対応する傾き情報と、基準特徴量と、が一致するか否かを判別する。すなわち、この場合、判断部20Cは、複数の波長領域の各々に対応する傾き情報、といった多次元の情報を用いて、判別を行う。
具体的には、特定波長領域Cが930nm〜1010nmである場合に、5nmの波長領域ごとに分割すると、特定波長領域Cは、16個の波長領域に分割される。この場合、記憶部14には、16個の波長領域の各々に対応する傾き情報が、基準特徴量として予め記憶される。そして、判断部20Cは、生成部20Bで特徴量として生成された、16個の波長領域の各々に対応する傾き情報と、基準特徴量と、が一致するか否かを判別する。
このとき、上述したように、16個などの各次元の波長領域の各々に対応する傾き情報と、各次元の基準特徴量と、の全ての値が一致する形態に限定されず、予め定めた判断基準(例えば80%)以上一致する場合に、特徴量と基準特徴量とが一致すると判断すればよい。
また、このような多次元の情報を用いて、特徴量と基準特徴量とが一致するか否かを判別する場合、判断部20Cは、公知の機械学習を用いて判別を行ってもよい。
機械学習とは、人間が自然に行っている学習能力と同様の機能をコンピュータで実現する技法である。機械学習では、複数のサンプルデータの集合から解析を行い、有用な規則や判断基準などを抽出することが可能である。機械学習のアルゴリズムは、大きくは、教師あり学習と、教師なし学習と、に分類される。教師あり学習は、入力とそれに対応すべき出力とを写像する関数を生成する方法である。教師なし学習は、入力のみからモデルを構築する方法である。機械学習には、例えば、K−means、決定木、サポートベクトルマシン(SVM)などの公知の方法がある。本実施の形態において、多次元の情報を用いて特徴量と基準特徴量とが一致するか否かを判別する場合、判断部20Cは、このような公知の機械学習を用いて判別を行えばよい。
また、特徴量および基準特徴量が、分光画像によって示される、各波長に対する反射率の分布を示す反射スペクトルの形状、各波長に対する反射率の値、反射率のピークの位置、反射率0%を示す直線と反射スペクトルによって示される曲線との間の領域の面積、反射スペクトルによって示される反射率の変化量を示す傾き情報、および該変化量を多次関数に近似したときの該多次関数、の少なくとも2つである場合についても、上記と同様にして、機械学習などを用いて判別を行えばよい。
駆動制御部20Dは、判断部20Cで被写体が果実であると判断された場合、判断された果実に対して予め定めた動作を行うように、駆動部16を制御する。例えば、駆動制御部20Dは、判断された果実を把持し、把持した果実を所定の位置に配置された箱へ収納する動作を行うように、駆動部16を制御する。
駆動部16は、駆動制御部20Dによる制御に応じた動作を行うように、駆動機構18を駆動する。駆動機構18は、例えば、ロボットハンドおよびロボットアームを用いて果実を把持し、把持した果実を所定の位置に配置された箱へ収納する。
次に、本実施の形態の情報処理装置20で実行する情報処理の手順を説明する。
図6は、情報処理装置20が実行する情報処理の手順の一例を示すフローチャートである。
まず、取得部20Aが、撮影部12から分光画像を取得する(ステップS100)。次に、生成部20Bが、ステップS100で取得した分光画像から、各波長に対する反射率の分布を示す反射スペクトルを生成する(ステップS102)。
詳細には、ステップS102では、生成部20Bは、分光画像を複数の領域に分割し、分割した分割領域ごとに、反射スペクトルを生成する。例えば、生成部20Bは、分光画像を、15×15画素の領域ごとに分割し、分割した分割領域ごとに、反射スペクトルを生成する。具体的には、生成部20Bは、分割領域に含まれる各画素について、波長ごとに反射率の平均値を算出する。そして、各波長に対する反射率の平均値を、分割領域における各波長に対する反射率として定めることで、生成部20Bは、分割領域ごとに反射スペクトルを生成する。
次に、生成部20Bが、特徴量を生成する(ステップS104)。ステップS104では、生成部20Bは、ステップS102で生成した各分割領域に対応する反射スペクトルから、分割領域ごとに特徴量を生成する。
次に、判断部20Cが、分割領域毎にステップS106〜ステップS110の処理を繰り返し実行する。詳細には、判断部20Cが、分割領域に対応する特徴量と基準特徴量とが一致するか否かを判別することによって、被写体が果実であるか否かを判断する(ステップS106)。
ステップS106で肯定判断すると(ステップS106:Yes)、ステップS108へ進む。ステップS108では、処理対象の分割領域が果実を示す領域であると特定する(ステップS108)。一方、ステップS106で否定判断すると(ステップS106:No)、ステップS110へ進む。ステップS110では、処理対象の分割領域が果実ではない(非果実を示す)領域であると特定する(ステップS110)。
全ての分割領域についてのステップS106〜ステップS110の処理が終了すると、ステップS112へ進む。ステップS112では、ステップS106〜ステップS110の処理によって果実を示す領域として特定した分割領域を示す情報を、果実を示す領域として記憶部14へ記憶する(ステップ112)。ステップS112の処理によって、被写体が果実であるか否かを示す情報が記憶部14へ記憶される。すなわち、果実を示す領域として特定された分割領域の群が、記憶部14に記憶される。
次に、駆動制御部20Dは、ステップS100〜ステップS112の処理によって、果実であると判断された被写体を把持し、予め定めた動作を行うように、駆動部16を制御する(ステップS114)。例えば、駆動制御部20Dは、判断された果実を把持し、把持した果実を所定の位置に配置された箱へ収納する動作を行うように、駆動部16を制御する。例えば、駆動部16は、駆動制御部20Dによる制御に応じた動作を行うように、駆動機構18を駆動する。駆動機構18は、例えば、ロボットハンドおよびロボットアームを用いて果実を把持し、把持した果実を所定の位置に配置された箱へ収納する。そして、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置20は、取得部20Aと、生成部20Bと、判断部20Cと、を備える。取得部20Aは、被写体の分光画像を取得する。生成部20Bは、分光画像によって示される、近赤外領域Aの少なくとも一部を含む特定波長領域Cの波長に対する反射率の分布に基づいて、被写体の特徴量を生成する。判断部20Cは、特徴量と、予め定めた果実の基準特徴量と、の比較に基づいて、被写体が果実であるか否かを判断する。
このように、本実施の形態の情報処理装置20では、分光画像によって示される、近赤外領域Aの少なくとも一部を含む特定波長領域Cの波長に対する反射率の分布から、被写体が果実であるか否かを判断する。
従って、本実施の形態の情報処理装置20では、果実を精度良く認識することができる。
また、特定波長領域Cは、近赤外領域Aとすることができる。また、特定波長領域Cは、被写体が水であるときの光吸収率のピークに対応する波長を含むことが好ましい。また、特定波長領域Cは、波長970±10nm、および、波長1170±10nmの少なくとも一方の波長領域を含むことが好ましい。
また、生成部20Bは、分光画像によって示される特定波長領域Cの波長に対する反射率の分布によって示される反射スペクトルを、予め定めた波長領域ごとに分割し、各波長領域における、最低波長に対応する第1の反射率、最高波長に対応する第2の反射率、および、第1の反射率から第2の反射率への変化量を、特徴量として生成することができる。
また、本実施の形態の情報処理プログラムは、被写体の分光画像を取得するステップと、分光画像によって示される、近赤外領域Aの少なくとも一部を含む特定波長領域Cの波長に対する反射率の分布に基づいて、被写体の特徴量を生成するステップと、特徴量と、予め定めた果実の基準特徴量と、の比較に基づいて、被写体が果実であるか否かを判断するステップと、を含む情報処理プログラムとすることができる。
また、本実施の形態の情報処理システム10は、撮影部12と、情報処理装置20と、駆動部16と、を備える。撮影部12および駆動部16は、情報処理装置20に信号授受可能に接続されている。情報処理装置20は、取得部20Aと、生成部20Bと、判断部20Cと、駆動制御部20Dと、を備える。取得部20Aは、被写体の分光画像を撮影部12から取得する。生成部20Bは、分光画像によって示される、近赤外領域Aの少なくとも一部を含む特定波長領域Cの波長に対する反射率の分布に基づいて、被写体の特徴量を生成する。判断部20Cは、特徴量と、予め定めた果実の基準特徴量と、の比較に基づいて、被写体が果実であるか否かを判断する。駆動制御部20Dは、被写体が果実であると判断された場合に、判断された果実に対して予め定めた動作を行うように駆動部16を制御する。
(第2の実施の形態)
第1の実施の形態では、特定波長領域Cにおける反射率の分布を用いて、被写体が果実であるか否かを判断する場合を示した。本実施の形態では、特定波長領域Cにおける反射率の分布と、被写体の色と、被写体の形と、を用いて、被写体が果実であるか否かを判断する場合を説明する。
図1は、本実施の形態の情報処理システム10Aの機能ブロック図である。情報処理システム10Aは、撮影部12と、記憶部14と、駆動部16と、駆動機構18と、情報処理装置21と、を備える。撮影部12、記憶部14、および駆動部16と、情報処理装置21と、は信号授受可能に接続されている。駆動部16と駆動機構18とは信号授受可能に接続されている。
情報処理システム10Aは、情報処理装置20に代えて情報処理装置21を備えた以外は、第1の実施の形態の情報処理システム10と同様である。
情報処理装置21は、情報処理システム10A全体を制御する。情報処理装置21は、CPU、ROM、およびRAMなどによって実現される。情報処理装置21は、CPU以外の回路などによって実現されてもよい。
情報処理装置21は、取得部20Aと、生成部20Bと、判断部21Cと、駆動制御部20Dと、を備える。取得部20A、生成部20B、判断部21C、および駆動制御部20Dの一部または全ては、例えば、CPUなどの処理装置にプログラムを実行させること(すなわちソフトウェア)により実現してもよいし、ICなどのハードウェアにより実現してもよいし、併用して実現してもよい。
情報処理装置21は、判断部20Cに代えて判断部21Cを備えた以外は、第1の実施の形態の情報処理装置20と同様である。
判断部21Cは、生成部20Bが生成した特徴量が、予め定めた果実の基準特徴量と一致するか否かを判別することによって、被写体が果実であるか否かを判断する、特定波長領域Cにおける反射率の分布を用いた判断処理を行う。この判断処理は、第1の実施の形態で説明した判断部20Cによる判断処理と同じである。
本実施の形態では、判断部21Cは、更に、色を用いた判断処理と、形を用いた判断処理と、を行う。
色を用いた判断処理は、分光画像を構成する各画素(分割領域でもよい)の色が、果実を示すものとして予め定めた色と一致するか否かを判別することで、被写体が果実であるか否かを判断する処理である。
例えば、判断部21Cは、分光画像を構成する画素(分割領域でもよい)のRGBの画素値の平均値が、果実であることを示す判断基準となる閾値以上、または閾値以下、であるか否かを判別することで、果実を示すものとして予め定めた色と一致するか否かを判別する。そして、判断部21Cは、この判別結果を用いて、被写体が果実であるか否かを判断すればよい。
形を用いた判断処理は、分光画像に含まれる被写体の形状が、果実を示すものとして予め定めた形状と一致するか否かを判別することで、被写体が果実であるか否かを判断する処理である。
例えば、判断部21Cは、分光画像を構成する各画素の画素値に対して微分を行い、隣接する画素間の画素値の変化量を算出する。そして、判断部21Cは、この変化量が所定の状態であるか否か(例えば、丸い果実であれば、2次元画像上で丸い形状に同一の変化量が配置されているか否か)を判定することで、果実か非果実であるかを判断する。
図7は、情報処理装置21が実行する情報処理の手順の一例を示すフローチャートである。
まず、情報処理装置21では、第1の実施の形態のステップS100〜ステップS112(図6参照)と同様にして、ステップS200〜ステップS212の処理を行う。
すなわち、まず、取得部20Aが、撮影部12から分光画像を取得する(ステップS200)。次に、生成部20Bが、ステップS200で取得した分光画像から、各波長に対する反射率の分布を示す反射スペクトルを生成する(ステップS202)。例えば、生成部20Bは、分割領域ごとに反射スペクトルを生成する。
次に、生成部20Bが、特徴量を生成する(ステップS204)。例えば、生成部20Bは、反射スペクトルから、分割領域ごとに特徴量を生成する。次に、判断部21Cは、分割領域毎にステップS206〜ステップS210の処理を繰り返し実行する。全ての分割領域についてのステップS206〜ステップS210の処理が終了すると、ステップS212へ進む。
ステップS212では、判断部21Cが、ステップS206〜ステップS210の処理によって果実を示す領域として特定した分割領域を示す情報を、特定波長領域Cにおける反射率の分布を用いた判断処理によって判断した、果実を示す領域として記憶部14へ記憶する(ステップ212)。ステップS212の処理によって、特定波長領域Cにおける反射率の分布を用いた判断処理によって判断した、被写体が果実であるか否かを示す情報が記憶部14へ記憶される。すなわち、果実を示す領域として特定された分割領域の群が、記憶部14に記憶される。
次に、判断部21Cは、色を用いた判断処理を行う(ステップS214)。ステップS214では、判断部21Cは、分光画像を構成する分割領域のRGBの画素値の平均値が、果実であることを示す判断基準となる閾値以上、または閾値以下、であるか否かを判別することで、各分割領域の色が果実を示すものとして予め定めた色と一致するか否かを判別する。そして、判断部21Cは、果実を示す領域として判別した分割領域を示す情報を、色を用いた判断処理によって判断した、果実を示す領域として記憶部14へ記憶する。
次に、判断部21Cは、形を用いた判断処理を行う(ステップS216)。ステップS216では、判断部21Cは、分光画像を構成する各画素の画素値に対して微分を行い、隣接する画素間の画素値の変化量を算出する。そして、判断部21Cは、この変化量が所定の状態であるか否か(例えば、丸い果実であれば、2次元画像上で丸い形状に同一の変化量が配置されているか否か)を判定することで、各分割領域が、果実を示す形状を含むか否かを判別する。そして、判断部21Cは、果実を示す形状を含む領域として判別した分割領域を示す情報を、形を用いた判断処理によって判断した、果実を示す領域として記憶部14へ記憶する。
次に、判断部21Cは、ステップS212で記憶部14に記憶した、特定波長領域Cにおける反射率の分布を用いた判断処理によって判断した判断結果を示す情報と、ステップS214で記憶部14に記憶した、色を用いた判断処理によって判断した判断結果を示す情報と、ステップS216で記憶部14に記憶した、形を用いた判断処理によって判断した判断結果を示す情報と、を読取る(ステップS218)。
すなわち、ステップS218では、判断部21Cは、特定波長領域Cにおける反射率の分布を用いた判断処理によって判断した果実を示す領域として判別した分割領域を示す情報と、色を用いた判断処理によって判断した果実を示す領域として判別した分割領域を示す情報と、形を用いた判断処理によって判断した果実を示す領域として判別した分割領域を示す情報と、を読取る。
そして、判断部21Cは、分割領域ごとに、ステップS220〜ステップS226の処理を繰り返し実行する。まず、判断部21Cは、特定波長領域Cにおける反射率の分布を用いた判断処理、色を用いた判断処理、および形を用いた判断処理、の各々の判断結果に対して、予め定めた対応する重み付けを行う(ステップS220)。
例えば、まず、判断部21Cは、特定波長領域Cにおける反射率の分布を用いた判断処理、色を用いた判断処理、および形を用いた判断処理、の各々に対応する重み付け値を記憶部14から読取る。
例えば、記憶部14は、特定波長領域Cにおける反射率の分布を用いた判断処理、色を用いた判断処理、および形を用いた判断処理、の各々に対応する重み付け値を予め記憶する。例えば、記憶部14は、特定波長領域Cにおける反射率の分布を用いた判断処理に対応する重み付け値としてある値(第1の値とする)を記憶する。また、記憶部14は、色を用いた判断処理および形を用いた判断処理に対応する重み付け値として、第1の値より小さい値を記憶する。
これらの重み付け値は、予め記憶部14に記憶してもよいし、ユーザによる操作部の指示などにより変更可能としてもよい。情報処理装置21が、予め定めた条件に応じて、取得部20Aから取得した分光画像ごとに重み付け値を変更してもよい。
そして、判断部21Cは、特定波長領域Cにおける反射率の分布を用いた判断処理、色を用いた判断処理、および形を用いた判断処理、の各々の判断結果に対して、対応する重み付け値を乗算することによって、各判断処理の判断結果に対して重み付けを行う。
そして、判断部21Cは、処理対象の分光領域について、特定波長領域Cにおける反射率の分布を用いた判断処理、色を用いた判断処理、および形を用いた判断処理、の各々の判断結果に対して重み付けを行った結果(重み付け値を乗算した乗算値)を加算した値が、果実であるか否かを判断するための閾値以上であるか否かを判断することで、果実であるか否かを判断する(ステップS222)。
ステップS222で肯定判断すると(ステップS222:Yes)、ステップS224へ進む。ステップS224では、処理対象の分割領域が果実を示す領域であると特定する(ステップS224)。一方、ステップS222で否定判断すると(ステップS222:No)、ステップS226へ進む。ステップS226では、処理対象の分割領域が果実ではない(非果実を示す)領域であると特定する(ステップS226)。
全ての分割領域についてのステップS220〜ステップS226の処理が終了すると、ステップS228へ進む。ステップS228では、ステップS220〜ステップS226の処理によって果実を示す領域として特定した分割領域を示す情報を、果実を示す領域として記憶部14へ記憶する(ステップ228)。
ステップS228の処理によって、特定波長領域Cにおける反射率の分布を用いた判断処理、色を用いた判断処理、および形を用いた判断処理から判断した判断結果である、被写体が果実であるか否かを示す情報が記憶部14へ記憶される。すなわち、果実を示す領域として特定された分割領域の群が、記憶部14に記憶される。
次に、駆動制御部20Dは、ステップS228の処理によって記憶部14に記憶された、果実を示す領域として特定された分割領域の群、すなわち果実であると判断された被写体を把持し、予め定めた動作を行うように、駆動部16を制御する(ステップS230)。そして、本ルーチンを終了する。
以上説明したように、情報処理システム10Aでは、情報処理装置21が、特定波長領域Cにおける反射率の分布と、被写体の色と、被写体の形と、を用いて、被写体が果実であるか否かを判断する。このように、特定波長領域Cにおける反射率の分布と、被写体の色と、被写体の形と、を用いて、被写体が果実であるか否かを判断することによって、第1の実施の形態に比べて、更に精度良く、果実を認識することができる。
(第3の実施の形態)
第2の実施の形態では、特定波長領域Cにおける反射率の分布と、被写体の色と、被写体の形と、を用いて、被写体が果実であるか否かを判断する場合を説明する。本実施の形態では、分光画像の撮影条件に応じて、特定波長領域Cにおける反射率の分布と、被写体の色および被写体の形の少なくとも一方と、を組み合わせることで、被写体が果実であるか否かを判断する場合を説明する。
図1は、本実施の形態の情報処理システム10Bの機能ブロック図である。情報処理システム10Bは、撮影部12と、記憶部14と、駆動部16と、駆動機構18と、情報処理装置22と、を備える。撮影部12、記憶部14、および駆動部16と、情報処理装置22と、は信号授受可能に接続されている。駆動部16と駆動機構18とは信号授受可能に接続されている。
情報処理システム10Bは、情報処理装置20に代えて情報処理装置22を備えた以外は、第1の実施の形態の情報処理システム10と同様である。
情報処理装置22は、情報処理システム10B全体を制御する。情報処理装置22は、CPU、ROM、およびRAMなどによって実現される。情報処理装置22は、CPU以外の回路などによって実現されてもよい。
情報処理装置22は、取得部20Aと、生成部20Bと、判断部22Cと、駆動制御部20Dと、を備える。取得部20A、生成部20B、判断部22C、および駆動制御部20Dの一部または全ては、例えば、CPUなどの処理装置にプログラムを実行させること(すなわちソフトウェア)により実現してもよいし、ICなどのハードウェアにより実現してもよいし、併用して実現してもよい。
情報処理装置22は、判断部20Cに代えて判断部22Cを備えた以外は、第1の実施の形態の情報処理装置20と同様である。
判断部22Cは、生成部20Bが生成した特徴量が、予め定めた果実の基準特徴量と一致するか否かを判別することによって、被写体が果実であるか否かを判断する、特定波長領域Cにおける反射率の分布を用いた判断処理を行う。この判断処理は、第1の実施の形態で説明した判断部20Cによる判断処理と同じである。
また、判断部22Cは、色を用いた判断処理と、形を用いた判断処理と、を行う。これらの判断処理は、第2の実施の形態で説明した判断部21Cによる判断処理と同じである。
さらに、判断部22Cは、分光画像の撮影条件に応じて、特定波長領域Cにおける反射率の分布と、被写体の色と、被写体の形と、の何れかを用いた判断処理を組み合わせて実行するかを判断する。
例えば、分光画像に含まれる被写体の色と被写体以外の色である背景の色とが同系色である場合、被写体の色を用いた判断処理では、果実認識の認識率が低下する場合がある。また、動いている被写体を撮影した分光画像から、被写体の形を認識する場合、果実認識の認識率が低下する場合がある。
そこで、判断部22Cは、被写体の色と、被写体以外の色である背景の色とが同系色である場合、形を用いた判断処理および色を用いた判断処理の内、色を用いた判断処理を実行しない。また、分光画像が動いている被写体を撮影した画像である場合、判断部22Cは、形を用いた判断処理および色を用いた判断処理の内、形を用いた判断処理を実行しない。
このように、分光画像の撮影条件に応じて、判断処理に用いる判断基準を変更することで、果実の認識精度の更なる向上を図ることが可能となる。
図8は、情報処理装置22が実行する情報処理の手順の一例を示すフローチャートである。
まず、情報処理装置22では、第1の実施の形態のステップS100〜ステップS112(図6参照)と同様にして、ステップS300〜ステップS312の処理を行う。すなわち、情報処理装置22は、特定波長領域Cにおける反射率の分布を用いた判断処理を行う。
次に、判断部22Cが、被写体の色と、被写体以外の色である背景の色と、が同系色であるか否かを判断する(ステップS314)。例えば、判断部22Cは、ステップS300で取得した分光画像に含まれる、波長の異なる光の各々に対する被写体の反射率を示す複数の二次元画像について、二次元画像の間で同じ画素位置の画素のRGB値の合計値を、各画素の画素値として算出する。そして、判断部22Cは、分光画像における被写体を示す領域を構成する各画素の画素値の平均値と、背景の領域を構成する各画素の画素値の平均値と、の差が、同系色であるか否かの判別に用いる予め定めた閾値以下であるか否かを判別することで、ステップS314の判断を行う。
被写体の色と、被写体以外の色である背景の色と、が同系色であると判断すると(ステップS314:Yes)、ステップS316へ進む。ステップS316では、判断部22CがステップS216(図7参照)と同様にして、形を用いた判断処理を実行する(ステップS316)。そして、ステップS326へ進む。
一方、被写体の色と、被写体以外の色である背景の色と、が同系色ではないと判断すると(ステップS314:No)、ステップS318へ進む。
ステップS318では、判断部22Cが、被写体が動いているか否かを判断する(ステップ318)。例えば、撮影部12が連続して分光画像を撮影する。そして、判断部22Cは、撮影部12が前回撮影した分光画像に含まれる被写体と、今回撮影した分光画像に含まれる被写体と、の位置の差が、被写体が移動しているか否かの判断に用いる予め定めた閾値以上である場合に、被写体が動いていると判断すればよい。
被写体が動いていると判断した場合(ステップS318:Yes)、ステップS320へ進む。ステップS320では、判断部22Cは、ステップS214(図7参照)と同様にして色を用いた判断処理を実行する。そして、ステップS326へ進む。
一方、被写体の色が背景色と同系色ではなく(ステップS314:No)、且つ被写体が動いていない場合(ステップS318:No)、ステップS322へ進む。ステップS322では、判断部22Cは、ステップS216(図7参照)と同様にして、形を用いた判断処理を実行する(ステップS322)。そして、判断部22Cは、ステップS214(図7参照)と同様にして、色を用いた判断処理を実行する(ステップS324)。そして、ステップS326へ進む。
次に、情報処理装置22は、第2の実施の形態で説明したステップS218〜ステップS230(図7参照)と同様にして、ステップS326〜ステップS338の処理を実行し、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理システム10Bは、分光画像の撮影条件に応じて、特定波長領域Cにおける反射率の分布と、被写体の色および被写体の形の少なくとも一方と、を組み合わせることで、被写体が果実であるか否かを判断する。
このように、本実施の形態の情報処理システム10Bでは、撮影条件に応じて、誤認識の発生する可能性のある判断処理を省略する。
このため、本実施の形態の情報処理システム10Bでは、上記実施の形態に比べて、更に精度良く、被写体が果実であるか否かを認識することができる。
なお、本実施の形態では、分光画像の撮影条件に応じて組み合わせる判断処理は、特定波長領域Cにおける反射率の分布を用いた判断処理と、被写体の色を用いた判断処理と、被写体の形を用いた判断処理と、の3種類である場合を説明した。しかし、分光画像の撮影条件に応じて組み合わせる判断処理は、少なくとも特定波長領域Cにおける反射率の分布を用いた判断処理を含む形態であればよく、更に他の判断処理を組み合わせた形態であってもよい。
なお、上記に説明した情報処理システム10、10A、10Bは、例えば、果実を認識し、認識した果実を採取するロボットなどの装置に適用可能である。
また、上記に説明した情報処理システム10、10A、10Bで認識する対象の果実は限定されないが、特に、外皮の内側に含まれる水分による反射率が測定されやすい果実の認識に、特に効果的である。すなわち、少なくとも特定波長領域Cの波長の光が果実の外皮を透過可能であり、且つ、反射率を測定しやすい果実の認識に、特に効果的である。
次に、上記実施の形態における情報処理装置20、21、22のハードウェア構成を説明する。
図9は、上記実施の形態における情報処理装置20、21、22のハードウェア構成の一例を示す図である。
上記実施の形態における情報処理装置20、21、22は、CPU50、ROM52、RAM54、I/F(Interface)56、およびHDD(Hard Disk Drive)58を有する。CPU50、ROM52、RAM54、I/F56、およびHDD58は、バス60により相互に接続されており、通常のコンピュータを利用したハードウェア構成となっている。また、I/F56には、公知の表示装置や、ユーザによる各種操作を受け付ける操作部や、上述した駆動部16や撮影部12(図1参照)が接続されている。
上記実施の形態における情報処理装置20、21、22で実行される上記各種処理を実行するためのプログラムは、ROM等に予め組み込んで提供される。
なお、上記実施の形態における情報処理装置20、21、22で実行される上記各種処理を実行するためのプログラムは、これらの装置にインストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−RW、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記録されて提供するように構成してもよい。
また、上記実施の形態における情報処理装置20、21、22で実行される上記各種処理を実行するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態における情報処理装置20、21、22で実行される上記各種処理を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
上記実施の形態における情報処理装置20、21、22で実行される上記各種処理を実行するためのプログラムは、上述した各部を含むモジュール構成となっている。実際のハードウェアとしてはCPUがROM等の記憶媒体から各プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、主記憶装置上に生成されるようになっている。
なお、上記には、実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。