以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、同じ働きを担う構成要素または処理には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。
図1は、屋外の圃場58に照射される光の種類について説明する図である。図1に示すように、屋外の圃場には太陽50からの光、すなわち太陽光が照射されるが、圃場58に照射される太陽光は、直接光54及び天空光56の2種類の光に大別される。
直接光54とは、太陽50から圃場58に直接照射される光のことである。従って、直接光54は、太陽50と圃場58とを結ぶ直線に沿った一方向から、圃場58を照射する。
一方、天空光56とは、太陽50からの光が雲52及び図示しない塵等によってあらゆる方向に散乱した散乱光のうち、圃場58に到達した散乱光のことをいう。すなわち、天空光56は散乱光であるため、直接光54とは異なり、あらゆる方向から圃場58を照射する。
このように、直接光54は圃場58を一方向から照射するため、農作物の葉の向きによっては、農作物の葉による反射光の光量が所定の光量を越えやすくなり、てかりが発生することがある。一方、天空光56は圃場58をあらゆる方向から照射するため、天空光56が照射された場合の農作物の葉による反射光も分散し、直接光54に比べて、てかりが発生しにくい。
また、直接光54の色温度は天空光56の色温度に比べて低く、物体に直接光54が照射されると、物体は赤から黄色にかけての色味を帯びやすくなる。一方、物体に直接光54より高い色温度を有する天空光56が照射されると、物体は青い色味を帯びやすくなる。
農作物はその生育状況に応じて、農作物の葉色が緑から黄色にかけての範囲で変化する。すなわち、農作物の生育状況は、農作物の葉色の明るさ(明度)ではなく色相から判断できる。従って、農作物が直接光54及び天空光56の何れか一方の光で照射されていれば、各々の光の色温度が概ね分かっていることから、一方の光の色温度による色相への影響を農作物の画像から取り除くよう補正することで、実際の農作物の葉色を推定できる。
しかし、農作物が、強調されやすい色相が異なる直接光54及び天空光56が混在した光で照射されると、各々の光の混在比に応じて葉色の色相に複雑な影響を与えてしまい、農作物を撮像した画像から、実際の農作物の葉色を正確に推定することが困難になる。
そこで、発明者は上記内容に関して検討を行った結果、直接光54が遮られ、天空光56が農作物に照射されている状態で、農作物をカメラで撮像すればよいことを見出した。直接光54が遮られた状態で撮像することで、農作物の葉に生じるてかりを抑えることができる。しかも、直接光54は、太陽50と圃場58とを結ぶ直線に沿った方向からしか照射されないため、あらゆる方向から照射される天空光56と比較して、遮光物で遮光しやすいという特徴がある。換言すれば、天空光56に比べ遮光物で遮光されやすい直接光54は、撮像の際、農作物を照らす光源としては、安定した光源でないと言える。
当然のことながら、遮光物によって直接光54を遮光した領域は影に覆われる。この影に覆われる領域は、天空光56が照射された領域と見なすことができるため、影に覆われる農作物の画像から、天空光56の色温度による色相への影響を取り除くように補正することで、実際の農作物の葉色が推定できる。
しかし、農作物は太陽光を浴びて成長することから、例えば圃場58全体に、遮光物の一例である屋根を設置して、農作物が常に影に覆われるようにすることはできない。更に言えば、圃場58の広さが例えば数ha以上あるような場合には、圃場58全体に屋根を設置することは現実的でない。従って、圃場58の一部分に屋根を設置し、圃場58の一部分を影で覆う方法が考えられる。
図2は、圃場58において農作物を撮像する際の状況の一例を模式的に示した図である。図2に示すように、圃場58の敷地の一部には、屋根60A及び色票66を取り付けた支柱68A、及び、屋根60Bを取り付けた支柱68Bが設置される。また、圃場58の周囲には、カメラ76を取り付けた支柱68Cが設置されると共に、カメラ76とケーブル74で接続された処理装置72が設置される。図2では、処理装置72は屋外に設置されているが、処理装置72を屋内に設置してもよいことは言うまでもない。
屋根60Aにより、直接光54が所定の方向から入射される時間に、色票66全体を影で覆う影領域64Aが形成されると共に、屋根60Bにより、同じ時間に、圃場58で栽培される農作物の一部を影で覆う影領域64Bが形成される。なお、以降では、影領域64A及び影領域64Bを区別して説明する必要がない場合、影領域64Aと影領域64Bとをあわせた領域を影領域64と表す。
カメラ76は、直接光54が所定の方向から入射される時間に、影領域64A内の色票66と、影領域64B内の農作物と、が共に撮像範囲内に入るように、取り付け位置及び取り付け方向が調整されている。
なお、支柱68Cの設置場所は圃場58の周囲に限られず、例えば圃場58の敷地の中であってもよい。また、ここでは農作物を撮像するカメラ76の台数を1台として説明するが、2台以上の複数のカメラ76を設置して、処理装置72に接続するようにしてもよい。また、カメラ76と処理装置72とをケーブル74ではなく、例えば無線方式の通信回線で接続してもよく、更に、カメラ76と処理装置72とを、インターネットを経由して接続するようにしてもよい。また、処理装置72とカメラ76とが1つの筐体に収められ、支柱68Cに取り付けられる形態であってもよい。更に、カメラ76はモータ等の駆動力により圃場58内を移動可能で、撮像方向が調整可能としてもよい。
色票66は、予め測色されて測色値が既知である複数の色の色見本を配置した票であり、色測定を行いたい対象物の色と、色票66の色見本の色と、を比較することで、対象物の測色値を推定することが可能である。用いる色票66の種類に特に制限はないが、例えば、圃場58等の自然界に存在する色を再現する24色の色見本を配置した「マクベスチャート」等が用いられる。なお、色票66は平面状のものに限らず、立体状であってもよい。
各々の色見本の測色値は、赤(Red)、緑(Green)、及び青(Blue)の各色成分の濃度を、例えば0〜255の8ビットで表したRGB値によって表される。なお、RGB値のビット数は一例であり、8ビット以外のビット数でRGBの濃度を表すようにしてもよい。また、色見本の測色値はシアン(Cyan)、マゼンタ(Magenta)、黄色(Yellow)、及び黒(Black)の各色成分の濃度としても表すことができる。
図3は、カメラ76で撮像した画像の一例を示す図である。画像4は、例えばRGB値で表される画素値を有する画素の集合であり、画像4には、影領域64Aの影で覆われた色票66と、影領域64Bの影で覆われた農作物70と、が撮像されており、一部の農作物70は影領域64Bの影で覆われている。説明の便宜上、画像4のうち、農作物70の外郭で囲まれた領域を被写体領域6といい、色票66の外郭によって囲まれる領域を色票領域8という。ここで、被写体とは、色の計測対象となっている物体をいう。
屋根60Aによって形成される影領域64A、及び屋根60Bによって形成される影領域64Bの位置、形状、及び大きさは、日付及び時刻によって変化する。従って、色票66の全体、及び、生育状況の測定対象である農作物70が、共に影で覆われているとは限らない。
従って、以下に示す第1実施形態では、色票66の全体及び農作物70が共に影で覆われているか否かを判定して、カメラ76で画像4を撮像する例について説明する。
(第1実施形態)
図4は、処理装置72の機能的な構成の一例を示す機能ブロック図である。処理装置72は、撮像部10、影判定部12、抽出部14、計測部16、出力部18、及び基準色情報28を含む。更に、抽出部14は、被写体領域抽出部20、色票領域抽出部22、被写体領域色情報抽出部24、及び色票領域色情報抽出部26を含む。なお、基準色情報28は、色票66の各色見本に測色を行うことで得られたRGB値(基準色)の情報を含んでいる。
撮像部10は、カメラ76に対して撮像を指示し、カメラ76で撮像した画像4を影判定部12に出力する。
影判定部12は、撮像部10から受け付けた画像4に含まれる影領域64の位置を判定する。また、影判定部12は、農作物70及び色票66が、共に影領域64に含まれているか否かを判定する。
抽出部14は、農作物70及び色票66が共に、影判定部12で判定された影領域64に含まれている場合に、農作物70の色情報、及び色票66の各色見本の色情報を画像4から抽出する。そして、抽出部14は、画像4から抽出した農作物70の色情報、及び色票66の各色見本の色情報を計測部16に出力する。ここで、色情報には、例えば対象物のRGB値が含まれる。
具体的には、抽出部14に含まれる被写体領域抽出部20が、影領域64に含まれる農作物70、すなわち被写体領域6を画像4から抽出する。そして、被写体領域色情報抽出部24が、被写体領域6の色情報を被写体領域抽出部20によって抽出された被写体領域6から抽出し、抽出した被写体領域6の色情報を計測部16に出力する。また、抽出部14に含まれる色票領域抽出部22が、影領域64に含まれる色票66、すなわち色票領域8を画像4から抽出すると共に、色票領域8に含まれる各色見本の領域(色見本領域)を抽出する。そして、色票領域色情報抽出部26が、色票領域8に含まれる各色見本領域の色情報を色票領域抽出部22によって抽出された色票領域8から抽出し、抽出した各色見本領域の色情報を計測部16に出力する。
計測部16は、色見本領域毎に、抽出部14から受け付けた色票領域8に含まれる色見本領域の色情報と、基準色情報28に含まれる前記色見本領域に対応する色見本の基準色の色情報と、の差分から補正量を算出する。この補正量は、色票領域8に含まれる色見本の色情報を、対応する色見本の基準色へ補正できるように算出される。そして、計測部16は、抽出部14から受け付けた被写体領域6の色情報を、算出した補正量で補正することで、カメラ76の被写体である農作物70の実際の葉色を計測し、計測結果を出力部18に出力する。
なお、各色見本の基準色に関する色情報は基準色情報28に含まれ、計測部16は、基準色情報28から基準色の色情報を取得することができる。
出力部18は、計測部16から受け付けた計測結果を、例えばディスプレイに表示する等により、画像4から推定される農作物70の実際の葉色に関する情報を、農作物70の生産者等に出力する。
次に、図5に、処理装置72をコンピュータで実現する場合の構成の一例を示す。
コンピュータ100は、CPU102、メモリ104、及び不揮発性の記憶部106を含む。CPU102、メモリ104、及び記憶部106は、バス108を介して互いに接続される。また、コンピュータ100は、入力装置112、出力装置114、及びカメラ76と、コンピュータ100と、を接続して、互いにデータを送受信するためのI/O(Input/Output)110を備え、I/O110はバス108に接続される。
入力装置112は、コンピュータ100の操作者がコンピュータ100に指示を与えるためのデバイス、例えばキーボード及びマウスを含む。また、入力装置112は、例えばCD−ROM又はフラッシュメモリ等といった記録媒体116に記録されるデータを読み取るための読取装置を含んでもよい。
出力装置114は、コンピュータ100での処理結果を出力するための装置、例えばディスプレイ等を含む。また、出力装置114は、記録媒体116にコンピュータ100での処理結果を書き込むための書込み装置を含んでもよい。
なお、I/O110に接続される各種装置は一例であり、例えば、必ずしもI/O110に入力装置112が接続される必要はなく、また、図5に図示していない他の装置がI/O110に接続されてもよい。また、記憶部106は、HDD(Hard Disk Drive)又はフラッシュメモリ等によって実現できる。
記憶部106には、コンピュータ100を図4に示す処理装置72として機能させるための処理プログラム120が記憶される。記憶部106に記憶される処理プログラム120は、撮像プロセス122、影判定プロセス124、被写体領域抽出プロセス126、色票領域抽出プロセス128、被写体領域色情報抽出プロセス130、及び色票領域色情報抽出プロセス132を含む。更に、処理プログラム120は、計測プロセス134、及び出力プロセス136を含む。
CPU102は、処理プログラム120を記憶部106から読み出してメモリ104に展開し、処理プログラム120に含まれる各プロセスを実行する。
CPU102が、処理プログラム120を記憶部106から読み出してメモリ104に展開し、処理プログラム120を実行することで、コンピュータ100が図4に示す処理装置72として動作する。
また、CPU102が撮像プロセス122を実行することで、コンピュータ100が図4に示す撮像部10として動作する。また、CPU102が影判定プロセス124を実行することで、コンピュータ100が図4に示す影判定部12として動作する。また、CPU102が被写体領域抽出プロセス126を実行することで、コンピュータ100が図4に示す被写体領域抽出部20として動作する。また、CPU102が色票領域抽出プロセス128を実行することで、コンピュータ100が図4に示す色票領域抽出部22として動作する。また、CPU102が被写体領域色情報抽出プロセス130を実行することで、コンピュータ100が図4に示す被写体領域色情報抽出部24として動作する。また、CPU102が色票領域色情報抽出プロセス132を実行することで、コンピュータ100が図4に示す色票領域色情報抽出部26として動作する。また、CPU102が計測プロセス134を実行することで、コンピュータ100が図4に示す計測部16として動作する。また、CPU102が出力プロセス136を実行することで、コンピュータ100が図4に示す出力部18として動作する。
なお、CPU102が被写体領域抽出プロセス126、色票領域抽出プロセス128、被写体領域色情報抽出プロセス130、及び色票領域色情報抽出プロセス132を実行することで、コンピュータ100が図4に示す抽出部14として動作する。
更に、CPU102が、基準色情報格納領域138に格納された基準色情報をメモリ104に展開することで、メモリ104に基準色情報28が記憶される。
なお、コンピュータ100は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に、処理装置72の作用について説明する。処理装置72は、例えば農作物70の葉色の計測を開始する指示を入力装置112から受け付けることにより、計測処理を実行する。
図6は、処理装置72で実行する計測処理の流れの一例を示すフローチャートである。
まず、ステップS10において、撮像部10は、カメラ76に撮像指示を出力し、カメラ76で撮像した画像4を取得し、例えばメモリ104の予め定めた領域に記憶する。
ステップS20において、影判定部12は、メモリ104に記憶した画像4を複数のブロックに分割し、分割したブロック毎に明度を算出する明度算出処理を実行する。なお、明度算出処理の詳細については後ほど説明する。
ステップS30において、影判定部12は、ステップS20の処理で算出したブロック毎の明度に基づいて、ブロック毎に、ブロックにおける明度と、各ブロックの明度の平均値とを比較する。そして、影判定部12は、各ブロックの明度の平均値より低い明度となっているブロックの集合によって表される領域を影領域64と判定し、例えば影領域64に含まれると判定したブロックに、影領域64に含まれるブロックであることを示す識別子を対応付ける。なお、ステップS30における処理(影領域判定処理)の詳細については後ほど説明する。
なお、天候が晴天でなければ農作物70及び色票66に直接光54が照射される可能性は低い。従って、例えば、画像4のブロック毎の明度を平均した画像4の平均明度と、晴天時の画像4の明度を示す閾値と、を比較し、画像4の平均明度が閾値よりも高く、天候が晴天と判断できる場合に、ステップS30の処理を行うようにしてもよい。
一方、画像の平均明度が閾値以下で、天候が晴天でないと判断できる場合には、ステップS30〜S50の処理を省略し、後述する影領域64から被写体領域6の抽出を行うステップS60以降の処理を行うようにしてもよい。また、画像4の平均明度と閾値とを比較して天候状況を判断することに代えて、例えば、晴天か否かを判断することができる天候状況に関する情報を、処理装置72の外部から取得するようにしてもよい。
ステップS40において、影判定部12は、ステップS30の処理で判定した影領域64に被写体が含まれているか、すなわち影領域64に被写体領域6が含まれているか否かを判定する。影判定部12は、例えばsobelフィルタまたはハフ変換等の公知のエッジ抽出技術によって影領域64から抽出した物体の輪郭データと、メモリ104の予め定めた領域に予め記憶されている農作物70の外郭を示す輪郭データと、を比較する。そして、影判定部12は、影領域64から抽出した物体の輪郭データと、農作物70の外郭を示す輪郭データと、の類似度を算出し、算出した類似度が閾値より高い場合に、影領域64に被写体領域6が含まれていると判定する。なお、ステップS40における判定方法は一例であり、他の公知の画像認識手法によって影領域64に被写体領域6が含まれているか否かを判定してもよい。
ステップS40の判定処理が否定判定、すなわち、影領域64に被写体領域6が含まれていない場合は、生育状況の測定対象である農作物70が影で覆われていないことを意味するため、図6に示す計測処理を終了する。一方、肯定判定の場合には、ステップS50に移行する。
ステップS50において、影判定部12は、ステップS30の処理で判定した影領域64に色票66が含まれているか、すなわち影領域64に色票領域8が含まれているか否かを判定する。
影判定部12は、農作物70の外郭を示す輪郭データの替わりに、色票66の外郭を示す輪郭データを用いることで、ステップS40の判定処理と同様の手法によって、影領域64に色票領域8が含まれているか判定できる。なお、色票66の輪郭データは、例えばメモリ104の予め定めた領域に予め記憶しておけばよい。
ステップS50の判定処理が否定判定、すなわち、影領域64に色票領域8が含まれない場合は、色票66が影で覆われていないことを意味するため、図6に示す計測処理を終了する。一方、肯定判定の場合には、ステップS60に移行する。
ステップS60において、被写体領域抽出部20は、ステップS40の判定処理で影領域64から抽出した農作物70の輪郭データによって囲まれる領域を被写体領域6として、画像4から抽出する。具体的には、影領域64から抽出した農作物70の輪郭データによって囲まれる領域に含まれるブロックに、被写体領域6であることを示す識別子を対応付ける。
ステップS70において、色票領域抽出部22は、ステップS50の判定処理で影領域64から抽出した色票66の輪郭データによって囲まれる領域を色票領域8として、画像4から抽出する。具体的には、影領域64から抽出した色票66の輪郭データによって囲まれる領域に含まれるブロックに、色票領域8であることを示す識別子を対応付ける。
ステップS80において、被写体領域色情報抽出部24は、被写体領域6のRGB値を算出する。被写体領域色情報抽出部24は、例えば、ステップS60の処理で画像4から抽出した被写体領域6に含まれる全ての画素の画素値であるRGB値を、赤(R)、緑(G)、及び青(B)毎に平均した平均RGB値を算出する。そして、被写体領域色情報抽出部24は、例えばこの平均RGB値を被写体領域6のRGB値として、メモリ104の予め定めた領域に記憶する。
なお、前述の例では、被写体領域6に含まれる全ての画素のRGB値の平均を被写体領域6のRGB値としたが、被写体領域6のRGB値の算出方法はこれに限られない。例えば、被写体領域6の重心点における画素のRGB値を被写体領域6のRGB値とする等、他の算出方法を用いてもよい。
ステップS90において、色票領域抽出部22は、ステップS70の処理で画像4から抽出した色票領域8の中から、更に、個々の色見本に対応する色見本領域を各々抽出する。色見本領域の抽出方法は、農作物70の外郭を示す輪郭データの替わりに、色見本領域の外郭を示す輪郭データを用いることで、ステップS40の判定処理と同様の手法を用いることができる。
なお、色票66には、複数の色見本が含まれるため、ステップS90の処理によって複数の色見本領域が色票領域8から抽出される。この際、色票66における各色見本の配置場所は既知であるため、例えば色票66における各色見本の配置順を表す配置情報を、例えばメモリ104に予め記憶しておく。そして、メモリ104に記憶される色見本の配置情報に基づいて、色見本の色と、色票領域8から抽出した色見本領域と、を対応付けることによって、色票領域8から抽出した各色見本領域の色が判明する。
ステップS100において、色票領域色情報抽出部26は、ステップS90の処理で色票領域8から抽出した色見本領域毎に、色見本領域のRGB値を算出する。色票領域色情報抽出部26は、例えば、色見本領域毎に、色見本領域に含まれる全ての画素のRGB値を、R、G、及びB毎に平均した平均RGB値を算出する。そして、色票領域色情報抽出部26は、例えば算出した平均RGB値を該当する色見本領域のRGB値として、メモリ104の予め定めた領域に記憶する。
なお、色見本領域のRGB値の算出方法はこれに限られない。例えば、色見本領域の重心点における画素のRGB値を当該色見本領域のRGB値とする等、他の算出方法を用いてもよい。
ステップS110において、計測部16は、色票66に含まれる各色見本の基準色情報を基準色情報28から各々取得する。なお、基準色情報は、例えばRGB値で示されているものとする。
画像4上の色見本領域の色は、例えば、カメラ76の撮像素子の特性、色票66を覆う影の影響を含む測色時との照明条件の相違によって、ステップS110で取得した基準色情報が表す基準色と異なっている。そして、色票66及び農作物70は、同じカメラ76によって共に影に覆われた状況で撮像されているため、色票66の色見本の色の変化量と同様に、画像4に含まれる農作物70の葉色の色も変化していると考えることができる。従って、色票66の色見本の色の変化分だけ被写体領域6の色を補正すれば、被写体領域6の色から農作物70の実際の葉色を推定することができる。
そこで、ステップS120において、計測部16は、色見本領域毎に、ステップS100の処理で算出した色見本領域のRGB値と、ステップS110の処理で取得した、当該色見本領域の基準色情報のRGB値と、の差分を算出する。当該差分は、例えば(R,G、B)=(0、0、0)を原点とするRGB色空間上のベクトルとして表される。
そして、計測部16は、例えば色見本領域毎に算出した差分ベクトルの平均に相当するベクトルを補正量(補正ベクトル)として求める。なお、補正量(補正ベクトル)の算出方法はこれに限られず、公知の手法を用いることができる。例えば、色見本領域毎に算出した差分ベクトルに重みをつけて平均化した結果を補正量(補正ベクトル)とする等、他の手法を用いてもよい。
計測部16は、ステップS80の処理で算出した被写体領域6のRGB値のRGB色空間上の位置を、算出した補正量(補正ベクトル)によって移動(補正)させることで得られたRGB値を、農作物70の推定される本来の葉色として推定する。
ステップS130において、出力部18は、ステップS120の処理で推定した、農作物70の葉色を示すRGB値が表す色を、例えば図5に示す出力装置114の一例であるディスプレイに表示する。この際、出力部18は、農作物70の葉色だけでなく、例えば葉色に対応するRGB値を更に表示するようにしてもよい。
また、出力部18は、例えばインターネットを経由して、農作物70の葉色を示すRGB値を、インターネットに接続されるコンピュータ等の他の電子機器に出力するようにしてもよい。この場合、例えば農作物70の生産者とは異なる、農作物70の栽培に関する専門家等に、農作物70の生育状況の判断を依頼したり、アドバイスを受けたりすることが可能である。
次に、前述したステップS20における明度算出処理について説明する。図7は、処理装置72で実行する明度算出処理の流れの一例を示すフローチャートである。
ステップS200において、影判定部12は、画像4を複数の領域、すなわちブロックに分割して、ブロック毎に明度を算出するため、まず、画像4の分割単位であるブロックの大きさを決定する。
後ほど説明するように、画像4における影領域64はブロック単位で判定する。従って、ブロックの大きさを、より大きく設定するに従い、実際には影で覆われていない領域を影領域64として画像4から抽出する状況が発生しやすくなるため、影領域64の判定精度が低くなる。しかし、ブロックの大きさを、より大きく設定するに従い、画像4を分割するブロック数が少なくなるため、ステップS20における明度算出処理、及びステップS30における影領域判定処理に要する処理時間は短くなる。従って、影領域64の判定精度、及び処理時間の兼ね合いに基づいて、ブロックの大きさを決定する。
ここでは、一例として、処理装置72の実機による実験、または処理装置72の設計仕様に基づくコンピュータシミュレーション等により、影領域64の判定精度、及び処理時間を予め検討して設定したブロックの大きさを使用する。なお、予め設定されたブロックの大きさは、例えばメモリ104の予め定めた領域に予め記憶しておけばよい。
ステップS210において、影判定部12は、図6のステップS10の処理で取得した画像4を、ステップS200の処理で決定した大きさのブロックに分割する。そして、影判定部12は、分割したブロックの各々に、ブロック番号を重複しないよう対応付ける。なお、ブロック番号には、例えば0から1ずつ増加する整数が用いられる。
ステップS220において、影判定部12は、選択ブロック番号Nを0に設定し、選択ブロック番号N(=0)をメモリ104の予め定めた領域に記憶する。
ステップS230において、影判定部12は、ステップS210の処理でブロック番号を対応付けたブロックの中から、ブロック番号が選択ブロック番号Nに対応するブロック(注目ブロック)を取得する。そして、影判定部12は、注目ブロックにおける明度を算出する。
具体的には、影判定部12は、注目ブロックに含まれる全ての画素の平均RGB値を算出する。そして、影判定部12は、算出した平均RGB値を、RGB色空間からCIE(Commission Internationale de l'Eclairage)−L*A*B*色空間上の値に変換して、注目ブロックにおける明度を算出する。CIE−L*A*B*色空間では、明度を表す値L*、並びに、色度を表す値A*及び値B*によって色が表現される。従って、平均RGB値から値L*を算出することにより、注目ブロックにおける明度を算出することができる。
そのためには、平均RGB値を一旦CIE−XYZ色空間上の値(XYZ値)に変換し、XYZ値を更にCIE−L*A*B*色空間上の値に変換する。そこで、CIEが規定する標準光源D65を用いた場合での、RGB値をXYZ値に変換する変換式を(1)式に示す。
ここで、Mは変換行列であり(2)式で表される。
明度L*は、(1)式によって得られるXYZ値のうち、Yを用いて(3)式で算出される。
ここで、値Ynは、反射率が100%の反射面である完全拡散反射面における値Yを表し、Yn=1.0000が用いられる。
なお、ステップS230の処理では、画像4から影領域64を抽出するため、ブロックの明度を算出している。しかし、画像4から影領域64を抽出するにはブロックの明るさが分かればよいことから、ブロックの明るさを示す他の指標、例えば輝度を算出するようにしてもよい。
従って、明度L*の替わりに、(4)式を用いて平均RGB値からブロックの輝度Lを算出するようにしてもよい。
なお、明度L*を算出したブロックには、算出した明度L*、及び、明度L*が算出済みであることを示す識別子を対応づけて、メモリ104の予め定めた領域に記憶する。
ステップS240において、影判定部12は、ステップS210の処理で画像4から分割した全てのブロックに対して、ステップS230の処理でブロックの明度L*を算出したか否かを判定する。当該判定は、ブロックに明度L*が算出済みであることを示す識別子が対応付けられているか否かを参照することで実行される。そして、否定判定の場合には、ステップS250に移行する。
ステップS250において、影判定部12は、選択ブロック番号Nを1つ増加し、値を更新した選択ブロック番号Nをメモリ104の予め定めた領域に記憶する。そして、ステップS230〜S250の処理を繰り返すことにより、ステップS210の処理で画像4から分割した各々のブロックについて、ブロックの明度L*を算出することができる。
一方、ステップS240の判定処理が肯定判定、すなわち、ステップS210の処理で画像4から分割した各々のブロックについて、ブロックの明度L*が算出済みである場合には、図7に示す明度算出処理を終了する。
次に、前述したステップS30における影領域判定処理について説明する。図8は、処理装置72で実行する影領域判定処理の流れの一例を示すフローチャートである。
まず、ステップS300において、影判定部12は、画像4から分割した各々のブロックの明度L*をメモリ104から取得し、取得した各々のブロックの明度L*の平均値(平均明度)を算出する。
ステップS310において、影判定部12は、選択ブロック番号Nを0に設定し、選択ブロック番号N(=0)をメモリ104の予め定めた領域に記憶する。
ステップS320において、影判定部12は、画像4から分割した各々のブロックの中から、ブロック番号が選択ブロック番号Nに対応するブロック、すなわち注目ブロックの明度L*を取得する。そして、影判定部12は、注目ブロックの明度L*が、ステップS300の処理で算出した平均明度より低いか否かを判定する。否定判定の場合には、ステップS330に移行する。
なお、影判定部12は、明度L*を平均明度と比較したブロックには、平均明度と比較済みであることを示す識別子を対応づけて、メモリ104の予め定めた領域に記憶する。
ステップS330において、影判定部12は、選択ブロック番号Nを1つ増加し、値を更新した選択ブロック番号Nをメモリ104の予め定めた領域に記憶する。そして、ステップS320に移行し、更新した選択ブロック番号Nに対応する注目ブロックに対して、注目ブロックの明度L*と、平均明度と、を比較する処理を繰り返し実行する。
一方、ステップS320の判定処理が肯定判定の場合には、ステップS340に移行する。
ステップS340において、影判定部12は、注目ブロックの明度L*が平均明度より低いことから、当該注目ブロックは影で覆われた領域、すなわち影領域64に含まれるブロックであると認識する。従って、影判定部12は、注目ブロックに影領域64であることを示す識別子を対応付け、当該対応付けをメモリ104の予め定めた領域に記憶する。
ステップS350において、影判定部12は、画像4から分割した各々のブロックについて、ステップS320の処理で、ブロックの明度L*と平均明度とを比較したか否かを判定する。当該判定は、ブロックに平均明度と比較済みであることを示す識別子が対応付けられているか否かを参照することで実行される。そして、否定判定の場合には、ステップS330に移行する。
既に説明したように、ステップS330の処理で、影判定部12は、選択ブロック番号Nを1つ増加しステップS320に移行する。従って、ステップS320〜S350の処理を繰り返すことで、影領域64に含まれる全てのブロックを判定することができる。
このように第1実施形態によれば、処理装置72は、農作物70及び色票66が共に影に覆われているかを画像4の明暗差から判定する。そして、処理装置72は、被写体領域6及び色票領域8を、農作物70及び色票66が共に影に覆われていると判定した画像4から抽出し、色票領域8に含まれる色見本領域の色と、色見本領域の基準色と、の差分に基づいて被写体領域6の色を補正する。
従って、太陽50及びカメラ76に対する農作物70及び色票66の向きが異なっている場合であっても、共に影に覆われた農作物70及び色票66が含まれる画像4を用いることで、農作物70及び色票66に発生するてかりが抑制される。すなわち、農作物70及び色票66の少なくとも一方が影に覆われていない画像4を用いる場合に比べて、農作物70の葉色を精度よく計測することができる。
また、農作物70の実際の葉色を推定する際、農作物70及び色票66が共に影に覆われている際の画像4を用いることから、画像4には、直接光54及び天空光56が混在した光ではなく、天空光56で照らされた農作物70及び色票66が写っている。従って、直接光54及び天空光56が混在した光で照らされた農作物70及び色票66が写った画像4を用いる場合に比べて、農作物70の葉色を精度よく推定することができる。
(第2実施形態)
第1実施形態に係る処理装置72では、影領域64を画像4から抽出し、被写体領域6及び色票領域8が共に影領域64に含まれていると判定した場合に、農作物70の葉色を計測する。しかし、農作物70及び色票66が共に影に覆われていることが明らかな画像4を農作物70の葉色の計測に用いる場合、影領域64を画像4から抽出し、被写体領域6及び色票領域8が共に影領域64に含まれているか判定する処理は不要となる。
従って、第2実施形態では、農作物70及び色票66が存在する場所の位置情報から、予め農作物70及び色票66が共に影に覆われている時間帯を算出しておく。そして、当該時間帯に合わせてカメラ76で画像4を撮像することで、農作物70及び色票66が共に影に覆われている画像4を取得する。
図9は、第2実施形態に係る処理装置72Aの機能的な構成の一例を示す機能ブロック図である。処理装置72Aが第1実施形態に係る処理装置72と異なる点は、影判定部12が影判定部12Aに置き換えられ、影入り情報30が新たに追加された点である。また、被写体領域抽出部20が被写体領域抽出部20Aに、色票領域抽出部22が色票領域抽出部22Aにそれぞれ置き換えられ、この置き換えに伴い、抽出部14が抽出部14Aに置き換えられる。
影判定部12Aは、農作物70及び色票66が共に影に覆われている時間帯に関する情報を影入り情報30から取得し、当該時間帯に、撮像を開始する指示を撮像部10に出力し、カメラ76で撮像した画像4を撮像部10から受け付ける。そして、影判定部12は、撮像部10から受け付けた画像4に含まれる影領域64の位置を判定し、農作物70及び色票66が、共に影領域64に含まれているか否かを判定する。
被写体領域抽出部20Aは、被写体領域抽出部20と異なり、影領域64に被写体領域6が含まれているか否かを判定することなく、被写体領域6を画像4から抽出する。
また、色票領域抽出部22Aも色票領域抽出部22と異なり、影領域64に色票領域8が含まれているか否かを判定することなく、色票領域8を画像4から抽出すると共に、色見本領域を色票領域8から抽出する。
次に、図10に、処理装置72Aをコンピュータで実現する場合の構成の一例を示す。図10に示すコンピュータ100Aの構成が、図5に示す第1実施形態に係るコンピュータ100の構成と異なる点は、影判定プロセス124が影判定プロセス124Aに置き換えられ、影入り情報格納領域140が新たに追加された点である。また、被写体領域抽出プロセス126が被写体領域抽出プロセス126Aに、色票領域抽出プロセス128が色票領域抽出プロセス128Aに、それぞれ置き換えられる。
CPU102は、処理プログラム120Aを記憶部106から読み出してメモリ104に展開し、処理プログラム120Aに含まれる各プロセスを実行する。
CPU102が、処理プログラム120Aを記憶部106から読み出してメモリ104に展開し、処理プログラム120Aを実行することで、コンピュータ100Aが図9に示す処理装置72Aとして動作する。
また、CPU102が影判定プロセス124Aを実行することで、コンピュータ100Aが図9に示す影判定部12Aとして動作する。また、CPU102が被写体領域抽出プロセス126Aを実行することで、コンピュータ100Aが図9に示す被写体領域抽出部20Aとして動作する。また、CPU102が色票領域抽出プロセス128Aを実行することで、コンピュータ100Aが図9に示す色票領域抽出部22Aとして動作する。
更に、CPU102が、影入り情報格納領域140に格納された影入り情報をメモリ104に展開することで、メモリ104に影入り情報30が記憶される。
なお、コンピュータ100Aは、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
次に、処理装置72Aの作用について説明する。処理装置72Aは、例えば処理装置72Aの電源がオンされて起動したことを契機として、計測処理を実行する。
図11は、処理装置72Aで実行する計測処理の流れの一例を示すフローチャートである。図11に示す計測処理のフローチャートが、図6に示す第1実施形態に係る計測処理のフローチャートと異なる点は、ステップS2〜S8が追加され、替わりにステップS40及びS50の処理が削除された点である。従って、以下に、第1実施形態に係る計測処理のフローチャートと異なる点について説明する。
まず、ステップS2において、影判定部12Aは、メモリ104の予め定めた領域に記憶される影入り情報30を取得する。
図12は、影入り情報30の一例を示す図である。図12に示すように、影入り情報30は、番号、日付、影入り時刻、及び影出時刻が行方向に対応付けられた情報である。番号は、影入り情報30の行方向に対応付けられた行データを一意に識別するための番号であり、日付は、年月日の情報を示す。また影入り時刻は、農作物70及び色票66が、図2に示す屋根60A及び屋根60Bによって、共に影に覆われる期間の開始時刻を示し、影出時刻は、農作物70及び色票66が、共に影で覆われる期間の終了時刻を示している。
例えば、番号1で表される行データの場合、2000年1月1日の12時30分から13時00分まで、農作物70及び色票66が共に影で覆われていることを示している。このような日付毎の影入り時刻及び影出時刻は、屋根60A及び60Bの大きさと設置高さ、太陽の軌道、並びに、農作物70及び色票66が存在する経度と緯度から予め算出することが可能であり、算出結果が影入り情報30としてメモリ104に記憶されている。
影判定部12Aは、例えばCPU102に内蔵されるカレンダ機能を利用して、現在の日付を取得する。そして、影判定部12Aは、現在の日付と一致する影入り情報30の行データを、メモリ104から取得する。
ステップS4において、影判定部12Aは、例えばCPU102に内蔵されるカレンダ機能を利用して、現在の時刻(現在時刻)を取得する。そして、影判定部12Aは、取得した現在時刻が、ステップS2の処理で取得した行データに含まれる影入り時刻より後であるか否かを判定する。否定判定の場合、すなわち、現在時刻が影入り時刻以前であれば、農作物70及び色票66は、共に影で覆われていないとみなし、ステップS8に移行する。
そして、ステップS8において、影判定部12Aは、所定時間(例えば1分)が経過するまで待機し、再びステップS4の処理を実行する。一方、ステップS4の判定処理が肯定判定の場合、ステップS6に移行する。
ステップS6において、影判定部12Aは、ステップS4の処理で取得した現在時刻が、ステップS2の処理で取得した行データに含まれる影出時刻より前であるか否かを判定する。否定判定の場合、すなわち、現在時刻が影出時刻以降であれば、農作物70及び色票66は、共に影で覆われていないとみなし、ステップS8に移行し、所定時間待機する。
一方、ステップS6の判定処理が肯定判定の場合、現在時刻が、始期を影入り時刻、及び終期を影出時刻とする時間帯に含まれるため、ステップS10に移行する。そして、ステップS10において、影判定部12Aは、撮像を開始する指示を撮像部10に出力し、カメラ76で撮像した画像4を撮像部10から受け付け、例えばメモリ104の予め定めた領域に記憶する。
撮像した画像4は、影入り時刻から影出時刻までの時間帯に撮像した画像4であることから、農作物70及び色票66が共に影で覆われていることは明らかである。従って、図6での、影領域64に被写体領域6が含まれているか否かを判定するステップS40の処理、及び、影領域64に色票領域8が含まれているか否かを判定するステップS50の処理は、図11に示すフローチャートから削除される。
以降、処理装置72Aは、既に第1実施形態において説明したステップS20、S30、及びS60〜S130の各処理を実行することで、農作物70の葉色を計測することができる。なお、図11に示す計測処理が終了した場合、ステップS2から再び実行することで、翌日以降の農作物70の葉色を計測することができる。
なお、現在の日付及び時刻は、例えば入力装置112の一例としてI/O110に接続される時計等の装置から取得するようにしてもよい。
このように第2実施形態によれば、処理装置72Aは、予め農作物70及び色票66が共に影で覆われている時間帯に撮像した画像4に基づいて、農作物70の葉色を計測する。この場合、第1実施形態に示したように、画像4の影領域64に農作物70及び色票66が含まれるか判定する処理が不要になり、第1実施形態に係る計測処理と比較して、計測処理の高速化が期待できる。
なお、第1実施形態に係る処理装置72、及び第2実施形態に係る処理装置72Aは、カメラ76に撮像指示を出力して画像4を撮像したが、画像4の取得方法はこれに限られない。例えば既に撮像済みの画像4のデータを、I/O110を経由して取得してメモリ104に記憶し、図6及び図11のステップS20以降の処理を実行するようにしてもよい。この際、第2実施形態に係る処理装置72Aでは、農作物70及び色票66が共に影で覆われている撮像済みの画像4を、I/O110を経由して取得するようにすればよい。また、カメラ76で定期的に撮像を行い、第1実施形態に係る処理装置72は、撮像された複数の画像4の中から農作物70の葉色の推定に用いる画像4を選択する態様に適用することも可能である。
また、第1実施形態及び第2実施形態では農作物70の葉色を計測する例を説明したが、処理装置72及び処理装置72Aによる色の計測対象は農作物70に限られないことは言うまでもない。開示の技術は、屋外にある物体、例えば建物の壁等の色計測にも適用可能である。計測した建物の壁を色と、新築時の壁の色と比較することで、壁の補修時期を判断する際の参考資料として利用することができる。
以上、各実施形態を用いて開示の技術を説明したが、開示の技術は各実施形態に記載の範囲には限定されない。開示の技術の要旨を逸脱しない範囲で各実施形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も開示の技術の技術的範囲に含まれる。例えば、開示の技術の要旨を逸脱しない範囲で処理の順序を変更してもよい。
以上の第1実施形態及び第2実施形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
測色対象の被写体及び測色値が既知の色票が共に光源からの直接光が照射されていない状況か否かを判定し、
前記状況で前記被写体及び前記色票を撮像した画像を、当該画像中の前記色票に対応する領域の色及び前記色票の測色値に基づき、前記画像中の前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行うための画像として取得する
ことを含む処理を実行させるための処理プログラム。
(付記2)
前記コンピュータに、
取得した前記画像から、前記画像中の前記色票に対応する領域及び前記被写体に対応する領域を各々抽出し、前記色票に対応する領域の色及び前記被写体に対応する領域の色を各々求め、
前記色票に対応する領域の色及び前記色票の測色値に基づき、前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行う
ことを含む処理を更に実行させる付記1記載の処理プログラム。
(付記3)
前記被写体及び前記色票を撮像した前記画像から明度が閾値未満の低明度領域を抽出し、前記画像中の前記色票に対応する領域及び前記被写体に対応する領域が前記低明度領域に含まれるか否かに基づいて、前記被写体及び前記色票が共に前記光源からの直接光が照射されていない状況か否かを判定する
付記1又は付記2記載の処理プログラム。
(付記4)
前記光源から前記被写体及び前記色票への直接光が遮光物によって遮られる期間を予め記憶しておき、
日時が前記期間に含まれるか否かに基づいて、前記被写体及び前記色票が共に前記光源からの直接光が照射されていない状況か否かを判定する
付記1又は付記2記載の処理プログラム。
(付記5)
コンピュータに、
測色対象の被写体及び測色値が既知の色票が共に光源からの直接光が照射されていない状況か否かを判定し、
前記状況で前記被写体及び前記色票を撮像した画像を、当該画像中の前記色票に対応する領域の色及び前記色票の測色値に基づき、前記画像中の前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行うための画像として取得する
ことを含む処理を実行させる処理方法。
(付記6)
前記コンピュータに、
取得した前記画像から、前記画像中の前記色票に対応する領域及び前記被写体に対応する領域を各々抽出し、前記色票に対応する領域の色及び前記被写体に対応する領域の色を各々求め、
前記色票に対応する領域の色及び前記色票の測色値に基づき、前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行う
ことを含む処理を更に実行させる付記5記載の処理方法。
(付記7)
前記被写体及び前記色票を撮像した前記画像から明度が閾値未満の低明度領域を抽出し、前記画像中の前記色票に対応する領域及び前記被写体に対応する領域が前記低明度領域に含まれるか否かに基づいて、前記被写体及び前記色票が共に前記光源からの直接光が照射されていない状況か否かを判定する
付記5又は付記6記載の処理方法。
(付記8)
前記光源から前記被写体及び前記色票への直接光が遮光物によって遮られる期間を予め記憶しておき、
日時が前記期間に含まれるか否かに基づいて、前記被写体及び前記色票が共に前記光源からの直接光が照射されていない状況か否かを判定する
付記5又は付記6記載の処理方法。
(付記9)
測色対象の被写体及び測色値が既知の色票が共に光源からの直接光が照射されていない状況か否かを判定する影判定部と、
前記状況で前記被写体及び前記色票を撮像した画像を、当該画像中の前記色票に対応する領域の色及び前記色票の測色値に基づき、前記画像中の前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行うための画像として取得する撮像部と、
を含む処理装置。
(付記10)
取得した前記画像から、前記画像中の前記色票に対応する領域及び前記被写体に対応する領域を各々抽出し、前記色票に対応する領域の色及び前記被写体に対応する領域の色を各々求める抽出部と、
前記色票に対応する領域の色及び前記色票の測色値に基づき、前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行う計測部と、
を更に含む付記9記載の処理装置。
(付記11)
前記影判定部は、前記被写体及び前記色票を撮像した前記画像から明度が閾値未満の低明度領域を抽出し、前記画像中の前記色票に対応する領域及び前記被写体に対応する領域が前記低明度領域に含まれるか否かに基づいて、前記被写体及び前記色票が共に前記光源からの直接光が照射されていない状況か否かを判定する
付記9又は付記10記載の処理装置。
(付記12)
前記光源から前記被写体及び前記色票への直接光が遮光物によって遮られる期間を予め記憶しておき、
前記影判定部は、日時が前記期間に含まれるか否かに基づいて、前記被写体及び前記色票が共に前記光源からの直接光が照射されていない状況か否かを判定する
付記9又は付記10記載の処理装置。
(付記13)
コンピュータに、
測色対象の被写体及び測色値が既知の色票が共に光源からの直接光が照射されていない状況か否かを判定し、
前記状況で前記被写体及び前記色票を撮像した画像を、当該画像中の前記色票に対応する領域の色及び前記色票の測色値に基づき、前記画像中の前記被写体に対応する領域の色から前記被写体の測色値を求める色補正を行うための画像として取得する
ことを含む処理を実行させるための処理プログラムを記録したコンピュータ読み取り可能な記録媒体。