(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】情報処理装置、情報処理方法、プログラム
(51)【国際特許分類】
G06Q 50/02 20240101AFI20241112BHJP
【FI】
G06Q50/02
(21)【出願番号】P 2021572986
(86)(22)【出願日】2020-11-27
(86)【国際出願番号】 JP2020044256
(87)【国際公開番号】W WO2021149355
(87)【国際公開日】2021-07-29
【審査請求日】2023-11-14
(31)【優先権主張番号】P 2020007236
(32)【優先日】2020-01-21
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】110003410
【氏名又は名称】弁理士法人テクノピア国際特許事務所
(74)【代理人】
【識別番号】100116942
【氏名又は名称】岩田 雅信
(74)【代理人】
【識別番号】100167704
【氏名又は名称】中川 裕人
(72)【発明者】
【氏名】綱島 宣浩
【審査官】加内 慎也
(56)【参考文献】
【文献】特開2019-185773(JP,A)
【文献】特開2017-083358(JP,A)
【文献】特開2012-198688(JP,A)
【文献】特開2007-043919(JP,A)
【文献】特開2003-009664(JP,A)
【文献】特開2003-006612(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換部と、
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出により求められる作物サイズの情報を用いて決定するロウ決定部と、
前記射影変換画像を用い、
前記ロウ決定部で決定されたロウの情報を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算部と、
を備えた
情報処理装置。
【請求項2】
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換部と、
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定するロウ決定部と、
前記射影変換画像を用い、
前記ロウ決定部で決定されたロウの情報を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算部と、
を備え、
前記ロウ決定部は、
ロウ候補の上付近にある作物らしい領域の大きさから作物サイズを算出し、
算出された作物サイズからロウ候補上の作物候補を検出し、
検出した作物候補の間隔から前記画像上の作物間隔を算出し、
決定した作物間隔からロウ候補の確からしさを決定し、
決定した確からしさを用いて誤検出と判定したロウ候補を除外したうえでロウを決定する処理を行
う
情報処理装置。
【請求項3】
前記出力情報演算部は、
前記射影変換画像に対して作物数をカウントする対象とするカウントエリアを設定し、前記カウントエリア内でカウントした作物数に基づいて、単位面積あたりの作物数の算出を行う
請求項1又は請求項2に記載の情報処理装置。
【請求項4】
前記出力情報演算部は、
前記カウントエリアとして、それぞれが圃場内の同一面積の領域に相当する複数のカウントエリアを設定し、各カウントエリア内でカウントした作物数に基づいて、作物数の代表値を求め、代表値を用いて単位面積あたりの作物数の算出を行う
請求項3に記載の情報処理装置。
【請求項5】
前記出力情報演算部は、
圃場におけるカウント対象の面積に相当する、射影変換画像上でのピクセル数を求め、求めたピクセル数の画像範囲として前記カウントエリアを設定する
請求項3に記載の情報処理装置。
【請求項6】
前記カウントエリアは、作物の植え付けが行われたラインであるロウを1つ含む範囲として設定される
請求項3に記載の情報処理装置。
【請求項7】
前記射影変換部は、前記撮像画像について撮像時の撮像装置の姿勢判定を行い、傾きが許容範囲外であった場合に射影変換画像を生成し、
前記出力情報演算部は、前記射影変換部によって射影変換画像が生成されない場合は、前記射影変換が施されていない画像を用いて作物数のカウントを行い、作物数情報を生成する
請求項1から請求項6のいずれかに記載の情報処理装置。
【請求項8】
前記ロウ決定部は、
圃場を撮像した画像として前記射影変換部による射影変換画像を用い、射影変換画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定する
請求項1から請求項7のいずれかに記載の情報処理装置。
【請求項9】
情報処理装置が、
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換処理と、
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出により求められる作物サイズの情報を用いて決定するロウ決定処理と、
前記射影変換画像を用い、前記ロウ決定処理で決定されたロウの情報を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算処理と、を行う
情報処理方法。
【請求項10】
情報処理装置が、
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換処理と、
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定するロウ決定処理と、
前記射影変換画像を用い、前記ロウ決定処理で決定されたロウの情報を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算処理と、を行い、
前記ロウ決定処理では、
ロウ候補の上付近にある作物らしい領域の大きさから作物サイズを算出し、
算出された作物サイズからロウ候補上の作物候補を検出し、
検出した作物候補の間隔から前記画像上の作物間隔を算出し、
決定した作物間隔からロウ候補の確からしさを決定し、
決定した確からしさを用いて誤検出と判定したロウ候補を除外したうえでロウを決定する処理を行う
情報処理方法。
【請求項11】
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換処理と、
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出により求められる作物サイズの情報を用いて決定するロウ決定処理と、
前記射影変換画像を用い、前記ロウ決定処理で決定されたロウの情報を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算処理と、を情報処理装置に実行させる
プログラム。
【請求項12】
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換処理と、
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定するロウ決定処理と、
前記射影変換画像を用い、前記ロウ決定処理で決定されたロウの情報を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算処理と、を情報処理装置に実行させ、
前記ロウ決定処理では、
ロウ候補の上付近にある作物らしい領域の大きさから作物サイズを算出し、
算出された作物サイズからロウ候補上の作物候補を検出し、
検出した作物候補の間隔から前記画像上の作物間隔を算出し、
決定した作物間隔からロウ候補の確からしさを決定し、
決定した確からしさを用いて誤検出と判定したロウ候補を除外したうえでロウを決定する処理を情報処理装置に実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は情報処理装置、情報処理方法、プログラムに関し、特に作物の育成に関する情報の生成に好適な技術に関する。
【背景技術】
【0002】
近年、農場の大規模化によって、作物の自動作付けが行われるようになってきている。自動作付けにおいて、作物が正しく作付けされたか、あるいは、作物が期待通りに育成しているか否かを確認するのは非常に重要である。作物が期待通りに作付け、育成されていない箇所がある場合は、そこに再作付けなどを行い、最終的な収穫量の最適化を図ることがある。
【0003】
一方で、ドローン等の飛行体に搭載したカメラなどによる空からの撮像技術の発達で、大規模農場において、人手で農地を見回る作業を省き、作業の簡略化、自動化する試みがなされている。上記した作付けの不具合の検出もこのような空撮技術によって自動化が行われるようになってきている。
特許文献1には、圃場を撮像し、植生状態のリモートセンシングを行う技術に関して開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、作付けの確認には、空撮された画像から作物数をカウントすればよいのであるが、空撮画像から作物を精度良くカウントすることは難しい。
また画像処理によって作物のカウントを行う場合、画像においてロウ(畝や作付けのライン)を指定することで、カウント精度を上げることができるが、そのためには畑の領域やロウの方向、ロウの位置などを手入力する必要があり、多くの画像を処理する場合に非常に手間がかかる。
また空撮による画像は、飛行体の揺れにより撮像する際のカメラの角度や方向が一定ではないことや、高度の揺れやズーム状態により必ずしも撮像する範囲の面積が均一でなく、またロウに対して平行に写されるとは限らない。このため、画像から作物をカウントし、それを単位面積あたりの数に換算するようにすると、誤差が大きくなる場合がある。
【0006】
そこで本開示では、空撮された画像から画像処理によって作物数のカウント等を行う場合の精度を向上させる技術を提案する。
【課題を解決するための手段】
【0007】
本技術に係る情報処理装置は、上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換部と、前記射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算部と、を備える。
即ち圃場を撮像した画像を、射影変換によって圃場の上空から直下方向を見た状態の画像に変換し、この射影変換画像上に表れている作物の数をカウントする。
【0008】
上記した本技術に係る情報処理装置においては、前記出力情報演算部は、前記射影変換画像に対して作物数をカウントする対象とするカウントエリアを設定し、前記カウントエリア内でカウントした作物数に基づいて、単位面積あたりの作物数の算出を行うことが考えられる。
即ち実際の圃場の或る面積の範囲が射影変換画像上に現れている画素範囲であって、作物数のカウントを行う範囲をカウントエリアと設定する。そして例えば射影変換画像内でカウントエリアにおける作物数をカウントする。この作物数を例えば1エーカーなどの単位面積あたりの作物数に換算する。
【0009】
上記した本技術に係る情報処理装置においては、前記出力情報演算部は、前記カウントエリアとして、それぞれが圃場内の同一面積の領域に相当する複数のカウントエリアを設定し、各カウントエリア内でカウントした作物数に基づいて、作物数の代表値を求め、代表値を用いて単位面積あたりの作物数の算出を行うことが考えられる。
例えば複数のカウントエリアでカウントされた作物数の平均値を代表値とする。
【0010】
上記した本技術に係る情報処理装置においては、前記出力情報演算部は、圃場におけるカウント対象の面積に相当する、射影変換画像上でのピクセル数を求め、求めたピクセル数の画像範囲として前記カウントエリアを設定することが考えられる。
即ちカウントエリアが、圃場上で特定の面積を写した範囲となるようにする。
【0011】
上記した本技術に係る情報処理装置においては、前記カウントエリアは、作物の植え付けが行われたラインであるロウを1つ含む範囲として設定されることが考えられる。
即ちカウントエリアは1本のロウを含んだ範囲となるようにする。
【0012】
上記した本技術に係る情報処理装置においては、前記射影変換部は、前記撮像画像について撮像時の撮像装置の姿勢判定を行い、傾きが許容範囲外であった場合に射影変換画像を生成し、前記出力情報演算部は、前記射影変換部によって射影変換画像が生成されない場合は、前記撮像画像を用いて作物数のカウントを行い、作物数情報を生成することが考えられる。
即ち射影変換画像は、必要な場合のみ生成するようにする。
【0013】
上記した本技術に係る情報処理装置においては、圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定するロウ決定部を備え、前記出力情報演算部は、前記ロウ決定部で決定されたロウの情報を用いて作物数のカウントを行うことが考えられる。
圃場に関する画像において作物の部分を検出する。これに基づいて画像データにおけるロウを決定する。
【0014】
上記した本技術に係る情報処理装置においては、前記ロウ決定部は、圃場を撮像した画像として前記射影変換部による射影変換画像を用い、射影変換画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定することが考えられる。
例えば処理対象の撮像画像について射影変換をしてから、その射影変換画像上でロウ決定を行い、さらに作物カウントを行うようにする。
【0015】
上記した本技術に係る情報処理装置においては、前記ロウ決定部は、前記作物検出の結果に基づいてロウ候補を検出し、各ロウ候補における作物間隔に基づいてロウとしての確からしさを計算し、確からしさの計算結果に基づいてロウを決定することが考えられる。
作物検出として作物らしい領域の検出を行うことで、作物の並びとしてのロウが推定できるので、それをロウ候補とする。各ロウ候補については、作物間隔に基づいて確からしさを判定する。
【0016】
上記した本技術に係る情報処理装置においては、前記ロウ決定部は、ロウ候補の上付近にある作物らしい領域の大きさから作物サイズを算出し、算出された作物サイズからロウ候補上の作物候補を検出し、検出した作物候補の間隔から前記画像上の作物間隔を算出し、決定した作物間隔からロウ候補の確からしさを決定し、決定した確からしさを用いて誤検出と判定したロウ候補を除外したうえでロウを決定する処理を行うことが考えられる。
作物検出として作物らしい領域から生育サイズを推定することで、画像上の作物間隔を適切に判定できる。そのような作物間隔からロウ候補の確からしさを判定する。
【0017】
本技術に係る情報処理方法は、上方から圃場を撮像した撮像画像の射影変換を行って射影変換画像を生成し、前記射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する。
これにより情報処理装置において作物の情報の算出精度を向上させる。
本技術に係るプログラムは、上記方法の処理を情報処理装置に実行させるプログラムである。これによりユーザの手間をかけずに精度の良い出力情報を生成するコンピュータ装置の実現が容易となる。
【図面の簡単な説明】
【0018】
【
図1】本技術の実施の形態のセンシングシステムの説明図である。
【
図2】圃場におけるロウ及び撮像範囲の説明図である。
【
図3】実施の形態の情報処理装置のハードウエア構成のブロック図である。
【
図4】実施の形態の情報処理装置の機能構成の説明図である。
【
図5】第1の実施の形態の処理例のフローチャートである。
【
図6】第1の実施の形態の作物数計算処理のフローチャートである。
【
図7】実施の形態の作物らしさを示す画像の説明図である。
【
図9】実施の形態のロウ候補の直線のプロジェクション計算の説明図である。
【
図10】実施の形態のロウ上の作物箇所の検出の説明図である。
【
図11】実施の形態のロウ候補の絞り込みの説明図である。
【
図15】実施の形態の射影変換画像の座標の説明図である。
【
図16】第1の実施の形態のカウントエリアの説明図である。
【
図17】第2の実施の形態の処理例のフローチャートである。
【
図18】第2の実施の形態のカウントエリアの説明図である。
【
図19】第3の実施の形態の作物数計算処理のフローチャートである。
【
図20】第4の実施の形態の作物数計算処理のフローチャートである。
【発明を実施するための形態】
【0019】
以下、実施の形態を次の順序で説明する。
<1.センシングシステムの構成>
<2.情報処理装置の構成>
<3.第1の実施の形態>
<4.第2の実施の形態>
<5.第3の実施の形態>
<6.第4の実施の形態>
<7.第5の実施の形態>
<8.まとめ及び変形例>
【0020】
<1.センシングシステムの構成>
まず実施の形態のセンシングシステムについて説明する。
図1はセンシングシステムを構成する情報処理装置1と、例えばドローンのような小型の飛行体200に搭載された撮像装置220を示している。また植え付けを行うトラクター(播種機)270も示している。
【0021】
飛行体200は、例えば操作者の無線操縦、或いは自動操縦等により、圃場300の上空を移動することができる。
飛行体200には撮像装置220が例えば下方を撮像するようにセットされている。飛行体200が、所定の経路で圃場300の上空を移動する際に、撮像装置220は例えば定期的に静止画撮像を行う。
【0022】
なお、飛行体200が比較的低空(例えば高度10mから20m程度など)で飛行することで、1枚の撮像画像は、圃場300の一部が写るものとなる。
短時間間隔で静止画撮像を行うことで、撮像した各画像のスティッチ処理を行って、圃場全体を映し出した合成画像を得ることもできる。しかし本実施の形態のセンシングの場合は、必ずしもそのようなことは必要なく、例えば圃場300において離散的な領域が、センシングのサンプルとして撮像されて複数の画像データが得られればよい。
以下では、撮像された一枚毎の静止画としての画像データを「サンプル」とも呼ぶ。
【0023】
飛行体200に搭載される撮像装置220は、可視光イメージセンサ(R(赤)、G(緑)、B(青)の可視光を撮像するイメージセンサ)、NIR(Near Infra Red:近赤外域)画像撮像用のカメラ、複数の波長帯の画像撮像を行うマルチスペクトラムカメラ(Multi Spectrum Camera)、ハイパースペクトラムカメラ、フーリエ変換赤外分光光度計(FTIR:Fourier Transform Infrared Spectroscopy)、赤外線センサなどが想定される。もちろん複数種類のカメラ(センサ)が飛行体200に搭載されてもよい。
マルチスペクトラムカメラとしては、例えばNIR画像とR(赤)画像の撮像を行うもので、得られる画像からNDVI(Normalized Difference Vegetation Index)が算出できるものが用いられることも想定される。NDVIとは植物らしさを表す植生指数であり、植生の分布状況や活性度を示す指標とすることができる。
NDVIはR画像とNIR画像から求めることができる。即ちNDVIの値は、
NDVI=(NIR-R)/(NIR+R)
として求められる。
【0024】
撮像装置220で撮像されて得られる画像には、タグ情報が付加されている。タグ情報には撮像日時情報や、GPS(Global Positioning System)データとしての位置情報(緯度/経度情報)、撮像時の飛行体200の飛行高度の情報、撮像装置情報(カメラの個体識別情報や機種情報等)、各画像データの情報(画サイズ、波長、撮像パラメータ等の情報)などが含まれている。
【0025】
このような飛行体200に装着された撮像装置220により撮像された画像データやタグ情報は情報処理装置1に取得される。
例えば撮像装置220と情報処理装置1の無線通信やネットワーク通信などにより画像データやダグ情報が受け渡される。ネットワークとしては例えばインターネット、ホームネットワーク、LAN(Local Area Network)等、衛星通信網、その他の各種のネットワークが想定される。
或いは撮像装置220に装着されていた記録媒体(例えばメモリカードなど)が情報処理装置1側で読み取られるなどの態様で画像データやダグ情報が情報処理装置1に受け渡される。
【0026】
情報処理装置1は画像データやタグ情報を用いて、圃場300を計測対象とした分析情報を生成する。また分析結果をユーザに対して、画像として提示する処理を行う。
具体的には、画像データに写された作物のカウント等を行い、それに基づいて、例えばサンプルとしての画像に写された作物数、単位面積あたりの作物数、発芽率、予測収穫量、作物割合など、圃場300の管理に用いることができる情報を生成し、ユーザに提示することができる。
【0027】
情報処理装置1は、例えばPC(personal computer)やFPGA(field-programmable gate array)、或いはスマートフォンやタブレットなどの端末装置などとして実現される。
なお、
図1では情報処理装置1は撮像装置220とは別体のものとしているが、例えば撮像装置220を含むユニット内に情報処理装置1となる演算装置(マイクロコンピュータ等)を設けてもよい。
【0028】
本実施の形態のセンシングシステムの場合、例えば画像データ上で圃場300における「ロウ」とされる箇所を自動的に決定し、その決定に基づいて作付けされた作物のカウントを行う。
ロウとは、作物が植え付けられたラインのことであり、例えば圃場300において種植えのために形成される畝もロウの一種である。また特に畝のように土を盛り上げた状態としたものに限らず、平地に種を蒔いていったときに形成される仮想的なラインもロウである。例えばトラクター270で種まきをしたときに形成される、植え付けのラインがロウと呼ばれる。
【0029】
図2には、圃場300に形成されたロウ301を模式的に示している。例えば種まきから日にちが立つことで、種が発芽して、図のように作物の葉が並んでいるラインがロウ301となる。
本実施の形態の場合、飛行体200が移動しながら撮像装置220によって圃場300が撮像されていくが、適宜タイミングで例えば図中の撮像範囲SP1、SP2のように、各所が撮像されることになる。例えば1フレームの静止画撮像画像として撮像範囲SP1の画像データや、撮像範囲SP2の画像データが撮像装置220によって得られていき、これらがそれぞれサンプルとして情報処理装置1に取り込まれる。
【0030】
なお、この
図2は説明上のわかりやすさのために撮像範囲SP1、SP2を或るサイズの長方形で示しているが、実際の撮像範囲、即ち撮像装置220のイメージャーによって撮像される範囲は、飛行体200に搭載された撮像装置220の撮像方向、画角、ズーム倍率などの条件によって異なるし、さらに飛行体200の飛行中の揺れにより大きく変動する。必ずしも撮像装置220が直下を向いて地面からの垂直線に光軸を一致させるような撮像が行われるわけではない。従って、各サンプルとしての長方形の画像に写される実際の圃場の範囲は長方形とならないことが多い。
後述の射影変換は、このような事情を考慮して行うものである。
【0031】
また
図2では直線状のロウ301を示しているが、ロウ301は、必ずしも常に直線とは限らない。直線状のロウ301が圃場300の端などで曲がる場合がある。また圃場300の形状や種まきの際の経路、障害物などにより、ロウ301は一部がカーブする場合もあるし、例えばスパイラル状、同心円状にロウ301が形成される場合もある。
【0032】
トラクター270は、圃場300に種子等(種子や苗や株など)の植え付けを行う。トラクター270は例えば情報処理装置1から提供される植え付けの指示データに基づいて自動走行し植え付けを行う。これにより圃場300に上述のロウ301が形成される。
トラクター270にはコンピュータ装置が搭載されており、そのコンピュータ装置は指示データに基づいて走行や植え付け動作の制御を行う。例えばコンピュータ装置は、後述する指示レートマップで示されるような植え付けの指示データ(箇所毎の単位面積あたりの植え付け指示数を含むレートマップデータ)を含むデータファイルがインポートされることで、その指示データに基づいてトラクター270の走行及び植え付け動作を制御する。
またトラクター270による植え付け作業の実績(箇所毎の単位面積あたりの植え付け実績数)は、実績データとして情報処理装置1に提供される。
【0033】
<2.情報処理装置の構成>
以上のセンシングシステムにおいて撮像装置220からの画像データを取得して処理を行う情報処理装置1について説明する。
【0034】
図3は情報処理装置1のハードウエア構成を示している。情報処理装置1は、CPU(Central Processing Unit)51、ROM(Read Only Memory)52、RAM(Random Access Memory)53を有して構成される。
CPU51は、ROM52に記憶されているプログラム、または記憶部59からRAM53にロードされたプログラムに従って各種の処理を実行する。RAM53にはまた、CPU51が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU51、ROM52、およびRAM53は、バス54を介して相互に接続されている。このバス54にはまた、入出力インタフェース55も接続されている。
【0035】
入出力インタフェース55には、液晶パネル或いは有機EL(Electroluminescence)パネルなどよりなる表示部56、キーボード、マウスなどよりなる入力部57、スピーカ58、記憶部59、通信部60などが接続可能である。
【0036】
表示部56は情報処理装置1と一体でも良いし別体の機器でもよい。
表示部56では、CPU51の指示に基づいて表示画面上に撮像画像や各種の計算結果等の表示が行われる。また表示部56はCPU51の指示に基づいて、各種操作メニュー、アイコン、メッセージ等、即ちGUI(Graphical User Interface)としての表示を行う。
【0037】
入力部57は、情報処理装置1を使用するユーザが用いる入力デバイスを意味する。
例えば入力部57としては、キーボード、マウス、キー、ダイヤル、タッチパネル、タッチパッド、リモートコントローラ等の各種の操作子や操作デバイスが想定される。
入力部57によりユーザの操作が検知され、入力された操作に応じた信号はCPU51によって解釈される。
【0038】
記憶部59は例えばHDD(Hard Disk Drive)や固体メモリなどの記憶媒体より構成される。記憶部59には、例えば撮像装置220等の外部機器から受信した検出データや分析結果その他各種の情報が記憶される。また分析処理等のためのプログラムデータの格納にも記憶部59は用いられる。
【0039】
通信部60は、インターネットを含むネットワークを介しての通信処理や、周辺各部の機器との間の通信を行う。
この通信部60は例えば撮像装置220との通信を行う通信デバイスとされる場合もある。
【0040】
入出力インタフェース55には、必要に応じてドライブ61が接続され、メモリカード等のストレージデバイス62が装着され、データの書込や読出が行われる。
例えばストレージデバイス62から読み出されたコンピュータプログラムが、必要に応じて記憶部59にインストールされたり、CPU51で処理したデータが記憶されたりする。もちろんドライブ61は、磁気ディスク、光ディスク、光磁気ディスク等のリムーバブル記憶媒体に対する記録再生ドライブとされてもよい。これら磁気ディスク、光ディスク、光磁気ディスク等もストレージデバイス62の一態様である。
【0041】
なお、実施の形態の情報処理装置1は、
図3のようなハードウエア構成の情報処理装置(コンピュータ装置)1が単一で構成されることに限らず、複数のコンピュータ装置がシステム化されて構成されてもよい。複数のコンピュータ装置は、LAN等によりシステム化されていてもよいし、インターネット等を利用したVPN(Virtual Private Network)等により遠隔地に配置されたものでもよい。複数のコンピュータ装置には、クラウドコンピューティングサービスによって利用可能なコンピュータ装置が含まれてもよい。
またこの
図3の情報処理装置1は、据え置き型、ノート型等のパーソナルコンピュータ、タブレット端末やスマートフォン等の携帯端末として実現できる。さらには情報処理装置1としての機能を有する測定装置、テレビジョン装置、モニタ装置、撮像装置、設備管理装置等の電子機器でも、本実施の形態の情報処理装置1を搭載することができる。
【0042】
例えばこのようなハードウエア構成の情報処理装置1では、CPU51による演算機能や、ROM52、RAM53、記憶部59による記憶機能、通信部60やドライブ61によるデータ取得機能、表示部56などによる出力機能を有し、インストールされたソフトウエアが機能することで、
図4のような機能構成を備えるようにされる。
【0043】
即ち情報処理装置1には一例として
図4に示すように、画像取得部2、射影変換部3、ロウ決定部4、出力情報演算部5、ユーザインタフェース制御部6(以下「ユーザインタフェース」を「UI」とも表記する)、記録制御部7が設けられる。
これらの処理機能を実現するソフトウエアを構成するプログラムは、ネットワークからダウンロードされたり、ストレージデバイス62(例えばリムーバブル記憶媒体)から読み出されたりして
図3の情報処理装置1にインストールされる。或いはそのプログラムが記憶部59等に予め記憶されていてもよい。そしてCPU51において当該プログラムが起動されることで、上記各部の機能が発現する。
また各機能の演算経過や結果の記憶は、例えばRAM53の記憶領域や記憶部59の記憶領域を用いて実現される。
【0044】
画像取得部2は、処理対象とする画像データ及び画像データに付随するタグ情報を取得する機能である。例えば撮像装置220で撮像された画像データは、記憶部59などに保存されるが、CPU51が特定の画像データを読み出して、計算処理の対象とする。
【0045】
射影変換部3は、サンプルとしての画像、即ち圃場300の上方から圃場300を撮像した撮像画像の射影変換を行い射影変換画像を得る。射影変換画像は、圃場300の上空から直下方向を見た状態であり、画像内のスケールの均一性が図られた画像である。詳しくは後述する。
【0046】
ロウ決定部4は、圃場300を撮像した画像データ、即ち画像取得部2が処理対象とした画像(射影変換前の撮像画像又は射影変換画像)内で作物検出を行い、その画像データ内でロウ301(即ち画像上でロウ301が写されている部分)を作物検出の結果に基づいて決定する処理機能である。
【0047】
出力情報演算部5は、圃場300の状態を示す情報を生成する演算を行う機能である。
例えば出力情報演算部5は、画像データに写されている作物のカウントや、作物のカウント数に基づいて単位面積(例えば1エーカーなど)あたりの作物数、予測収穫量、作物割合などの計算を行う。
特に射影変換画像から作物カウントを行い、カウントされた作物数を単位面積あたりの作物数に換算する。
【0048】
UI制御部6は、例えば表示部56の表示制御や、入力部57により入力される操作情報の取得処理などを行う機能である。即ちUI制御部6は、画像や出力情報演算部5により算出された情報の提示や、ユーザ操作の認識などを行う。
【0049】
記録制御部7は、出力情報演算部5により算出された情報などの記憶部59への保存の制御を行う機能である。
通信制御部8は、出力情報演算部5により算出された情報などを通信部60により外部機器に送信する制御を行う機能である。
【0050】
<3.第1の実施の形態>
第1の実施の形態としての情報処理装置1の処理を説明する。情報処理装置1は撮像装置220で撮像された画像を用いて作物数のカウントを行うのであるが、特に本実施の形態では、撮像されたサンプルとしての画像に対して射影変換を行った画像(射影変換画像を用いてカウントを行うものである。
またそのカウントのためには画像上でのロウの検出、決定を行い、精度の良い作物カウントを実現する。
【0051】
まず本実施の形態の技術の開発に至る事情を述べておく。
農場管理者は、播種後において単位面積あたりの作物数をカウントして発芽状況を確認する必要があるが、これを手作業で行う場合は次のようになる。
【0052】
例えば米国の場合、畑の管理単位はエーカーである。1エーカーは約4047m
2であり、1エーカー全ての作物数をカウントするのは非現実的であるので、一般的には1/1000エーカー、つまり、4.047m
2の作物数をカウントし、それを1000倍することで1エーカー当たりの作物数に換算している。
ここで4.047m
2を人間が2次元的に囲むのは面倒なので、
図2に斜線部で示すように、ロウ間隔Wを用いて4.047m
2相当の面積に相当する部分を想定し、これに含まれる1本のロウ301の区分長さLを設定する。
ロウ間隔W[m]はトラクター270の播種口の間隔であり既知である。
すると、求めるロウ301の区分長さL[m]は、次式で表される。
L=4.047/W 式(1)
【0053】
例えばW=0.5mであると、区分長さLは8m程度となる。
そして、計算した区分長さL[m](例えば8m程度の区間)を、圃場300において巻き尺で計測し、その範囲で、ロウ301上にある作物数を目視でカウントする。そして、そのカウント結果を1000倍することで1エーカー当たりの作物数として決定する。
このように1本のロウ301上の作物数をカウントすることで、単位面積あたりの作物数を想定しているが、本実施の形態のように画像処理を用いる場合でも同様のことを行うようにすれば、農場管理者や農業従事者であるユーザの経験で培った感覚に近い数値を提供することができる。
無闇に高度な演算処理を行って高精度化を求めるのではなく、演算処理負担の少ない効率的な処理でありながら、これまでの農場管理者/従事者の感覚に近い数値を算出できるようにすることは重要であるといえる。
【0054】
そこで本実施の形態では、画像上で例えば実際の圃場300における1/4000エーカーなどに相当する領域を設定し、ロウ301上の作物カウントを行う。そしてそれを1エーカーなどの単位面積あたりの作物数に換算する。
【0055】
以下では、このような情報処理装置1の作物カウントの処理を
図5、
図6に沿って説明していく。なお実施の形態の処理では、作物のカウントのために、まず画像上でロウを検出するようにし、そのうえでロウ上の作物数のカウントを行うことになる。ロウの検出を含めて詳細に説明する。
【0056】
図5は、CPU51が処理対象とした画像データに対して必要な演算処理を行い、出力情報を生成して出力するまでの一連の処理を示している。この処理はCPU51が
図4に示した機能を備えることで実現される。即ちステップS101は画像取得部2、ステップS102からステップS108はロウ決定部4、ステップS110は出力情報演算部5、ステップS120はUI制御部6(又は記録制御部7、又は通信制御部8)の機能による処理となる。
【0057】
CPU51はステップS101で処理対象の画像データを特定する。即ちCPU51は、飛行体200に搭載された撮像装置220で空撮されたサンプルとしての画像データの1つを処理対象として特定する。この場合の画像データは、RGB(赤、緑、青)カメラによるカラー画像データでもよいし、IR(近赤外)データ及びR(赤)データとしての画像データでもよい。またIR(近赤外)データ及びR(赤)データから求められるNDVI画像データであってもよい。
【0058】
ステップS102でCPU51は、処理対象とした画像データについて、画像内で作物らしい領域の検出を行う。
例えばRGBカメラで撮像した画像を用いる場合の検出手法としてG画素検出を説明する。
作物は主に葉で構成され、葉は一般的に、緑色をしているので、RGBのカラー画像から緑色の領域を検出する。緑色の領域の検出については、例えば、画像中の或る画素におけるRGBの各成分を比較して、G(緑)が一番高い画素のみを検出すればよい。
あるいは、RGBをHSVなどの明度、彩度、色相の空間に変換する。そして、色相値の緑色にある幅を持った領域を設けることによって、領域内の色相を持つ画素を検出してもよい。
【0059】
次に、近赤外と赤を撮像した画像を用いる場合の検出手法としてNDVI画像に対する閾値検出について説明する。
作物(植物)の分布を示す指数であるNDVIは近赤外と赤から計算され、±1の値域をとり、作物はNDVI値が高く、土壌などはNDVIが低い。そのためIRデータとRデータからNDVI画像を作成し、閾値処理によって作物らしい画素を検出する。
なお既にNDVI画像が存在する場合は、上述のようにステップS101でNDVI画像を取得し、ステップS102では、閾値処理によって作物らしい画素を検出すればよい。
【0060】
以上のいずれかの処理のみで作物らしい領域を検出してもよいが、上記の2つの処理(G画素検出、NDVI画像に対する閾値検出)を、入力画像の持つ情報の種類に合わせて選択し、作物らしい領域の検出を行うようにしてもよい。
【0061】
例えば
図7Aのような画像が処理対象として入力された場合を考える。
図7Aの画像は、作物310がロウ上に並んで植えられている画像であるが、いくつか欠落(作物310があるべきなのに存在しない箇所)があり、また、雑草315のような、作物以外の植物がロウ以外の箇所に存在する画像である。
【0062】
そして、上述のG画素検出、又はNDVI画像に対する閾値検出として得られる、作物らしい領域の検出結果は、
図7Bのように、入力された画像と同じサイズの画像に、画素毎に作物らしい(白)、もしくは、作物らしくない(黒)、の2値で表現されたものとなる。白画素部分は、植物が写っているとされる画素領域であるが、この場合、作物310だけでなく雑草315の部分も作物らしい領域とされる。
【0063】
なお、このような結果を得るための上記の閾値を1つではなく複数設定してもよい。
例えば、NDVI値についての閾値を2つ設定し、「作物らしい」もしくは「作物らしくない」の2種類に加えて、「作物かそれ以外かは不明」の3値にしてもよい。
【0064】
また、ロウは実際には視認できるラインが存在するわけではないため、
図7Aのような画像には表れないが、この場合は、作物310が図の上下方向に並ぶラインがロウである。もちろんロウは畝などにより物理的に視認できる場合もある。
CPU51は、以降、画像内でロウを探索する処理を行うことになる。
【0065】
ステップS103でCPU51はロウ候補の検出を行う。
ロウは一般的には直線であるので、画像内の作物310の並びの直線を検出する。直線の検出には、ハフ変換やRANSAC(Random Sample Consensus)などを用いる。
上記した作物らしい画素(
図7Bの白画素部分)を通る直線をロウ候補として検出する。ロウの本数や方向は未知であるので、ここでは、
図8の破線K1から破線K7のように画像内でロウらしい直線をすべてロウ候補として検出しておく。
【0066】
次にCPU51はステップS104で、作物サイズを算出する。
まず、あるロウ候補の直線について、直線付近にある作物らしい画素を直線に沿ってプロジェクションを行う。具体的には、ロウ候補の直線に平行な任意の直線を仮定し、その直線上にある作物らしい画素の数をカウントする。これによって、ロウ候補の直線に垂直な方向に対する作物らしい画素の分布を得ることができる。
図9に、
図8の左端の破線K1で示すロウ候補の直線のプロジェクションを計算した例を示す。ロウ候補の直線は作物らしい画素を通るように検出されているので、この分布は、中央付近で最も高くなり、中央から離れていくにつれて下がっていく。そして、この分布に対して、或る閾値thSを設定し、閾値thS以上となる幅WSを作物サイズとして推定する。閾値thSとしては、例えば中央値の半分とすることが考えられる。
【0067】
このような処理をすべてのロウ候補の直線(破線K1から破線K7)に対して行い、作物サイズを算出(推定)する。
同じ時期に作付けされた作物は、ほぼ同じ大きさであると考えられるので、算出したすべてのロウ候補の作物サイズの平均値、中央値などの値を作物サイズSSとして決定する。
あるいは、任意のロウ候補の直線付近にある作物らしい画素のプロジェクションをすべて合計して、閾値処理によって、一意に作物サイズSSを決定してもよい。
【0068】
次にCPU51はステップS105で、ロウ上の作物箇所を検出する。
この場合、まず算出した作物サイズに応じて、ロウ上に参照領域RAを設定する。
図10Aに参照領域RAの例を示している。参照領域RAは、例えば、作物サイズSSを直径とした円領域でもよいし、作物サイズSSを1辺とした正方形領域でもよい。もちろん他の形状でもよい。例えば作物の種別(作物の形状)に合わせて領域形状が設定されるようにしてもよい。
【0069】
この参照領域RAをロウ候補の直線(
図10Cの破線K1から破線K7)に沿って動かしながら順次、作物箇所を決定していく。例えば
図10Bのように参照領域RAを破線K1に沿って動かしながら、それぞれの参照領域RAの箇所が作物箇所であるか否かを判定する。例えば参照領域RA内の作物らしい画素数をカウントして、カウント数が或る閾値thC以上の場合には、参照領域RAの位置を作物箇所CSとして決定する。この場合の閾値thCは、例えば、参照領域RAの面積の半分や2/3などに設定すればよい。
図10Cにロウ候補上の作物箇所CSを検出した例を示している。
【0070】
次にCPU51はステップS106で、ロウ上での作物間隔を決定する。入力された処理対象の画像において、任意のロウ上で作物は等間隔に作付けされていると考えられる場合、画像上での作物間隔を決定する。
まず、任意のロウ候補の直線において、上記した処理で検出された作物箇所CSについて、隣にある作物箇所までの距離を計算する。すべての作物箇所CSにおいて、隣の作物箇所CSまでの距離を計算し、その平均値あるいは中央値などを、処理対象の画像における作物間隔として決定する。
【0071】
次にCPU51はステップS107で、ロウ候補(破線K1から破線K7)のそれぞれについての確からしさを計算する。
正しいロウ上には、作物が均等に植えられているので、算出した作物間隔を用いて、正しい作物間隔で作付けされた作物の組の数をカウントする。
「作物の組」とは、隣り合う2つの作物のことであり、この場合の処理上では、隣り合う2つの作物箇所CSのことに相当する。つまり正しい作物間隔となっている、2つの作物箇所CSの組の数をカウントする。
作物間隔が正しいかどうかの判定は、作物間の距離が上記した作物間隔に対して誤差範囲内であるとする。ここでの誤差範囲とは例えば20%などを予め設定しておく。
【0072】
例えば
図11Aには、4つの作物箇所CSを示しており、この場合、「作物の組」としては3つの組GP1,GP2,GP3が存在する。ここで各組GP1,GP2,GP3の作物間隔が距離BT1,BT2,BT3としたときに、距離BT1,BT2は正しい作物間隔、距離BT3は正しくない作物間隔であるとしたら、正しい作物間隔となっている作物の組の数は「2」となる。
このようにCPU51は、正しい作物間隔で作付けされた作物の組みの数を、各ロウ候補について算出し、その値をロウ候補の確からしさの値として設定する。そしてその値が大きい方がロウらしいと定義する。
【0073】
次にCPU51はステップS108で、ロウ候補のうちで正しいロウを決定する。例えば次の(P1)から(P3)の手順の処理を行う。
【0074】
(P1) ロウは基本的には交差しないので、交差している2本のロウ候補を探し、2本のロウ候補の内、確からしさが低い方のロウ候補を削除する。
これを交差するロウ候補が無くなるまで繰り返す。
【0075】
(P2) 上記(P1)の処理で残された各ロウ候補の線の傾きを算出し、その平均値あるいは中央値などを画像全体のロウの傾きとして求める。各ロウは平行に配置されているので、求めたロウの傾きから許容範囲以上にズレた傾きとなっているロウ候補を削除する。なおズレの許容範囲は、例えば角度差が10度以内などとして予め設定しておく。許容範囲は撮像時の撮像装置220の傾き、画角等の情報に基づいて設定してもよい。
【0076】
(P3) 絞り込まれたロウ候補の間隔の平均値あるいは中央値から、ロウ間隔を算出する。そして、上記(P1)(P2)の処理で残された各ロウ候補のうちで、算出したロウ間隔と比べて近い間隔(例えばロウ間隔の80%以下など)となっているロウ候補を、確からしさが低いロウ候補であるとして削除する。
【0077】
このような処理により、例えば
図11Bのように、破線K1,K2,K3,K4で示すロウ候補が確からしいロウ候補として残る。この場合、交差したロウ候補が除去されただけでなく、雑草などによって検出された誤ったロウ候補も除去されることになる。
CPU51はこれらの残ったロウ候補を、画像上におけるロウであると決定する。
【0078】
CPU51はステップS110で作物数の計算を行う。
作物数については、例えばロウとして決定した直線上にある作物箇所CSの数を集計し、処理対象の画像内の作物数を全てカウントすることもできるが、ここでは画像内でカウントエリアとして設定した範囲内で作物数をカウントし、それに基づいて単位面積(例えば1エーカー)あたりの作物数を求める処理を行う例を述べる。
特にステップS108までの処理でロウを検出しているため、雑草などのロウ外もランダムに生えている植物と、ロウ上に生えている作物と区別することができため、作物数のカウントを精度よく実行できることになる。
【0079】
ステップS110の具体的な処理例を
図6により説明していく。
ステップS111としてCPU51は、処理対象としている画像の射影変換を行う。
射影変換を行う理由は次の通りである。
【0080】
画像から作物数のカウントを行う場合に問題となるのが、撮像画像と実際の地上面との関係である。ドローンなどの飛行体200によって、空中から撮像された画像上で検出される複数のロウは、トラクター270によって等間隔に播種されるため、撮像時のカメラの向きが地面に対して垂直であれば、お互いに略平行な直線上に並んでいるものとなる。
【0081】
しかしながら、実際には飛行体200に取り付けられた撮像装置220は、必ずしも地面に対して垂直で撮像できるとは限らない。また撮像される範囲内でも直下とそれ以外の周縁部では撮像装置220からの距離も異なる。
このため必ずしも画像上で平行にはならず、例えば
図12に例示するように、画像上で検出された複数のロウは放射上に並んでいることがある。図ではロウを一点鎖線RLで示しているが、この例では図面上方に広がるような放射状となっている。
また実際には平行なロウが放射状に広がっていることは、画面内でスケールも一様ではないことを意味する。例えば
図12の画像ではロウ間隔が狭い下方ほど、実際には広い面積の範囲を写していることになる。
【0082】
このような状態では、
図2の斜線部に相当するような範囲、例えば1/1000エーカーの範囲を、画面上で精度良く設定することが難しい。具体的な処理として言えば、作物のカウント対象とするロウの長さ、即ち上述した区分長さLを精度良く設定するのは難しい。
【0083】
そこで、飛行体200に撮像装置220と共に搭載している加速度センサの情報を用いて傾きを補正する。即ち加速度センサによって撮像角度を判定し、射影変換と呼ばれる処理で画像を補正する。射影変換によって画像を補正することで、補正した射影変換画像上でのロウは略平行になる。
図13Aは撮像画像を模式的に示している。撮像装置220のイメージャーで撮像された長方形の画像であるが、撮像方向の垂直に対する角度などによりロウ(一点鎖線RL)が放射状になっている。
図13Bは射影変換画像を模式的に示している。射影変換画像ではロウが平行になっている。また射影変換画像では、画像内でスケールが均一化されることにもなる。
【0084】
また、射影変換によってロウは平行になっても、撮像装置220の撮像時の高度によっても、スケールが異なるため、高度に応じた画像のスケール補正も必要となる。
画像のスケールは、飛行体200に撮像装置220と共に搭載しているGPSセンサの情報を用いる。GPSセンサは、センサの緯度経度高度の情報をセンシングしている。
【0085】
このように撮像角度、GPSセンサからの緯度経度高度情報、撮像装置220の画角から、撮像画像を地上面にスケール変換を含めた射影変換をすることで、撮像装置220の傾きにより生じた画像を、直下に向いて撮像した状態の画像に補正するとともに、実測の長さ[m]を画素[pixel]に変換するスケール変換係数を求める。
【0086】
図14Aは地上をx軸、y軸による平面とし、垂直方向をz軸とした座標系で、撮像装置220が、ある三次元位置pcで、垂直方向からのずれ角度を有する姿勢Rcamで撮像をおこなった場合を示している。ベクトルVC1、VC2,VC3,VC4は撮像装置220のレンズ焦点から長方形の撮像画像面(イメージプレーンIP)の各頂点への方向ベクトルである。
なお、この例はあくまで1つのモデルであるが、仮にx軸方向を飛行体200の飛行方向としたときに、撮像装置220の撮像方向は、x軸、y軸方向にも角度θのずれを持っている場合としている。
【0087】
図14BはベクトルVC1、VC2,VC3,VC4を地上面まで延長した状態を示しており、その各地上面に達した地点を頂点とする形状が、
図14Cに斜線で示す形状となる。この形状に相当する地上面の範囲が、
図13Bのような射影変換画像として現れることになる。
【0088】
具体的にはCPU51は、撮像装置220の緯度経度高度情報から撮像装置220の地上面に対する位置pcを求める。次に、撮像装置220の画角、レンズ焦点から撮像装置220のイメージプレーンIPの4隅への方向ベクトルVC1、VC2,VC3,VC4を求める。
次にCPU51は、それら4つの方向ベクトルVC1、VC2,VC3,VC4を地上面と交差するまで延長する。
【0089】
そしてCPU51は、この交差した4点を射影変換の4隅として、射影変換パラメータを求める。
図15Aのように元の撮像画像上のある座標(x,y)を、
図15Bの射影変換画像の座標(x’,y’)へと変換する射影変換は次式で計算できる。
x’=(ax+by+c)/(gx+hy+1)
y’=(dx+ey+f)/(gx+hy+1)
【0090】
ここで4隅のx,y座標の8つ数値(x0,y0,x1,y1、x2,y2、x3,y3)から、射影変換の8つのパラメータを一意に求めることができる。
また、この地上面は、実測の座標系なので、射影変換した座標を画像として切り出す際に、実際の距離と画素数の関係であるスケール変換係数を求めることができる。
【0091】
CPU51はこのような射影変換を
図6のステップS111で行ったら、ステップS112で、区分画素数の設定を行う。
即ち、ロウ間隔Wを用いて上述の式(1)によって区分長さLを求め、その区分長さLに相当する画素数を算出する。ロウ間隔Wはトラクター270によって決まるため、予め情報処理装置1に入力/記憶されていればよい。
【0092】
ステップS113でCPU51は
図16のようにカウントエリアCAを設定する。
図16はロウが平行化された射影変換画像の一部を示しており、その中で、1つのロウについての区分長さLに相当する画素の範囲を囲うカウントエリアCAを例示している。
このカウントエリアCAは、作物カウントの対象とするエリアであるとともに、例えば実際に1/1000エーカーなどの或る面積の範囲が射影変換画像上に現れている画素範囲である。しかもこの場合は、1つのロウのみが含まれている範囲となっている。或る面積とは、例えば1エーカーなどの単位面積に換算が容易な面積であるとよい。
1つのロウから左右(ロウ間隔方向)にW/2ずつの幅で、区分長さLの長さとすることで、カウントエリアCAは、1つのロウが含まれる1/1000エーカーの範囲に相当する範囲となる。
【0093】
ステップS114でCPU51は、カウントエリアCA内で作物数のカウントを行う。即ち先にステップS108で決定したロウ上で、作物箇所とした数をカウントする。
ステップS115でCPU51は、カウントエリアCA内でのカウント数を、単位面積あたりの作物数に換算する。例えば上記のようにカウントエリアCAを1/1000エーカーに相当する範囲とした場合、カウントエリアCAでカウントした作物数を1000倍することで1エーカーあたりの作物数を算出する。
【0094】
例えば以上のように
図6の処理を行ったら、CPU51は
図5のステップS120で、単位面積あたりの作物数を出力情報として出力する処理を行う。
例えばCPU51は、単位面積あたりの作物数の情報を表示部56で表示させたり、記憶部59やストレージデバイス62に記録させたり、通信部60により外部機器に送信させたりする処理を行う。
またCPU51は、ロウの数や位置、作物箇所CSなど、作物数を計算するまでに求められている情報を補助情報として出力してもよい。
【0095】
<4.第2の実施の形態>
第2の実施の形態は、射影変換をロウ決定の前に実行する例である。
図17にCPU51の処理例を示す。なお
図5と同一の処理は同一のステップ番号を付して重複説明を避ける。
【0096】
CPU51はステップS101で処理対象の撮像画像を特定したら、ステップS150で射影変換を行う。即ち上述した
図6のステップS111と同様の処理である。
その後CPU51は、ステップS102からステップS108の処理で、射影変換画像を対象として上述同様のロウ決定のための処理を行う。そしてステップS110Aとして作物数計算の処理を行う。
なおステップS110Aの作物数計算の処理は
図5と概略同様であるが、既に射影変換を行っているため、
図6のステップS112からステップS115の処理を行うようにすれば良い。
【0097】
この第2の実施の形態のように、ロウ決定のための処理の前に射影変換を行うことで、ロウが平行化された画像を用いることができるため、ステップS108で正しいロウを決定する場合(例えば上記(P2)のように平行であることを条件とする場合)に、より正確に判定でき、ロウ決定精度を向上させることができる。
【0098】
但し第1の実施の形態のように、ロウ決定後に射影変換を行う場合は、ロウ決定の処理過程で処理対象の画像サイズが一定(つまり処理時間が一定)であるという利点がある。
先に射影変換する場合、縮小すると画像の一部がつぶれるので、ロウ決定処理のためには拡大するようにせざるを得ない。また、回転補正を掛けると画像の外接矩形が大きくなる。また撮像装置220の撮像角度や飛行高度に誤差があると、平行である条件成り立たないことがあるが、平行である条件をそのまま適用すると精度が低下する場合もあり得る。
【0099】
そのため第1の実施の形態のように、ロウ決定後に射影変換するか、第2の実施の形態のようにロウ決定処理に先立って射影変換するかは、実施の状況、測定上の各種事情、飛行プランなどに応じて選択できるようにしてもよい。
【0100】
<5.第3の実施の形態>
第1の実施の形態では、射影変換画像上で1つのカウントエリアCAを設定する例を述べたが、もちろん1枚の射影変換画像で複数のカウントエリアCAを設定してもよい。
図18にはカウントエリアCA1,CA2,CA3,CA4として複数のカウントエリアCAを設定した状態を示している。
【0101】
そしてCPU51は、
図5のステップS110の作物数計算の処理として
図19の処理を行うようにする。
ステップS111、ステップS112は
図6と同様である。
【0102】
CPU51はステップS113Aとして、射影変換画像上で複数(N個)のカウントエリアCAを設定する。
この場合、カウントエリアCAを設定するロウは、区分画素数以上に検出されたロウ(つまり区分長さL以上の長さが射影変換画像に現れているロウ)から、それら全てを選んでもよいし、あるいは、あらかじめ設定してある本数を超えないロウの数で選んでもよい。そして例えば
図18のように、各カウントエリアCA1,CA2,CA3,CA4は、それぞれ1本のロウのみを含む区分長さLの長さのエリアとする。
各カウントエリアCA1,CA2,CA3,CA4は、それぞれL×Wの面積に相当する画像上のエリアである。
【0103】
図19のステップS130以降、CPU51はそれぞれのカウントエリアCAで順次作物カウントを行う。
即ちCPU51は、ステップS130で変数n=1とし、ステップS131で第nのカウントエリアCAについて作物数のカウントを行う。ステップS132で変数nがカウントエリア数Nに達していなければ、ステップS133で変数nをインクリメントしてステップS131に戻り、第nのカウントエリアCAについて作物数のカウントを行う。
これをステップS132でn=Nとなるまで行うことで、設定した全てのカウントエリアCAで、それぞれ作物数のカウントが完了する。
【0104】
全てのカウントエリアCAで作物数のカウントが完了したら、CPU51はステップS134で代表値を算出する。例えばカウントエリアCA1,CA2,CA3,CA4についてカウントを行った場合、これらのカウント数の平均値を代表値とする。
なお代表値は平均値に限らず、中央値、重心値、最大値と最小値の中間値などとしてもよい。
【0105】
そしてステップS115では代表値を単位面積あたりの作物数を算出する。例えば各カウントエリアCAが1/1000エーカー相当のエリアであれば、代表値を1000倍して1エーカーあたりの作物数を求める。
【0106】
以上のように複数のカウントエリアCAを設定し、その代表値により単位面積あたりの作物数を算出することで、1つだけ設定したカウントエリアCAが偶然、突出して作物数が少ない(又は多い)ような場合に単位面積あたりの作物数の値が大幅に異なってしまうような状況を避けることができる。従って単位面積あたりの作物数の検出精度を上げることができる。
【0107】
なお、
図17のようにロウ決定処理の前に射影変換を行う場合のステップS110Aの作物数計算の処理の場合は、
図19のステップS111が不要となる。
【0108】
<6.第4の実施の形態>
第4の実施の形態は、場合によっては射影変換を行わないようにする例である。
図20は
図5のステップS110で行う作物数計算の処理を示している。
ステップS140でCPU51は処理対象としている撮像画像についての撮像時の撮像装置220の姿勢判定を行う。つまり撮像装置220の姿勢として、撮像方向(光軸)の直下を向いた状態からのずれ角度が所定の許容範囲内であるか否かを確認する。
【0109】
そしてずれ角度、即ち傾きが許容範囲内でなければCPU51はステップS141からステップS111に進み、射影変換処理を行う。
一方、傾きが許容範囲内であればCPU51は、ステップS141を行わずにステップS112以降の処理に進む。ステップS112以降の処理は
図6と同様である。
【0110】
つまり元々垂直方向にずれの少ない状態で撮像されていた場合は、射影変換を行わなくとも、ロウが平行に写され、また画像内でのスケールの均一性もある程度保たれている。そこで、そのような場合は射影変換処理を行わないようにすることで、処理負担を軽減するものである。
【0111】
例えば
図2で撮像範囲SP1、SP2として示したように離散的にサンプルとしての画像撮像が行われるが、広大な農場では、1回のフライトで数10枚から数100枚のサンプル画像が得られ、それぞれについて、作物カウントが行われる。
そして飛行中の飛行体200の姿勢は、飛行速度や旋回などの状況、風の状況などにより、安定していない。すると、通常は垂直方向に対して角度をもって撮像がおこなわれていても、場合によっては撮像装置220が直下を向く場合も想定でき、その場合、射影変換しなくとも作物カウントに適した撮像画像が得られる。
このようなことを想定し、不要である場合は、射影変換処理を行わないようにするのが第4の実施の形態の処理となる。
【0112】
なお、
図17のようにロウ決定処理の前に射影変換を行う場合は、その際に
図20のステップS140,S141のような処理を行って、射影変換処理の実行判断を行うようにすればよい。
【0113】
<7.第5の実施の形態>
ここまでの実施の形態では、1枚の撮像画像に基づいてロウおよび作物数を検出するものとした。しかしながら、撮像高度が低かったり、式(1)で計算されるロウの長さ(区分長さL)が長かったりする場合、1枚の画像では、式(1)の区分長さLの範囲がカバーできないことがある。
そのような場合、複数枚の撮像画像を地面に投影してスティッチし、スティッチ画像からからロウ決定および作物カウントを行うようにすることが考えられる。
【0114】
<8.まとめ及び変形例>
以上の実施の形態によれば次のような効果が得られる。
実施の形態の情報処理装置1は、圃場300の上方から圃場300を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換部3と、射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算部5を備える。
射影変換により、撮像時に撮像装置220が姿勢のずれのない状態で撮像した画像を得ることができる。即ち撮像装置220が直下の方向を向いて撮像したような画像である。このような射影変換画像は、画像上に表れるロウが実際のロウと同様に略平行に表れている。即ちカメラ姿勢のズレにより放射状にはなっていない。また画像内のスケールが均一化された状態になる。つまりピクセルあたりの面積が均一化される。
このような射影変換画像を用いて作物カウントを行うことで、精度の高い作物カウントが可能となる。
【0115】
第1から第5の実施の形態では、出力情報演算部5は、射影変換画像に対して作物数をカウントする対象とするカウントエリアCAを設定し、カウントエリアCA内でカウントした作物数に基づいて、単位面積あたりの作物数の算出を行うものとした。
例えば1エーカーあたりの作物数を出力したい場合に、射影変換画像内で、実際の面積が1/1000エーカーになる範囲をカウントエリアCAとする。このカウントエリアCAで計測された作物数を1000倍すれば、1エーカーあたりの作物数となる。
このような場合、画像を用いたカウント数の誤差が小さくても、1000倍することで誤差の影響が大きく表れ、農場管理者に適切な情報提示とならないおそれもある。例えば撮像画像は画像内でスケールが必ずしも均一ではないため、画像内で実際の面積が1/1000エーカーに相当する範囲として選定したカウントエリアが、実際には1/1000エーカーから誤差が大きいなどの事情で、作物カウントの誤差も生じ易い。
これに対して射影変換画像を用いることで、カウントエリアを、画像内で実際の面積が1/1000エーカーに相当する範囲として誤差なく設定でき、結果として作物数のカウント誤差も小さくなる。このため1エーカーあたり作物数に換算しても、誤差は小さい。従ってユーザに提示する情報として望ましいものとなる。
【0116】
第3の実施の形態では、出力情報演算部5は、それぞれが圃場300内の同一面積の領域に相当する複数のカウントエリアCA(CA1,CA2,CA3,CA4)を設定し、各カウントエリアCA内でカウントした作物数に基づいて、作物数の代表値を求め、代表値を用いて単位面積あたりの作物数の算出を行うようにした。
射影変換画像内で1つのカウントエリアCAのみでは、偶然そのカウントエリアCAの作物数が他の部分とは大きく異なっているなどにより、単位面積での作物数に換算したときに比較的大きな誤差が生ずる可能性がある。そこで、複数のカウントエリアCAについて作物数のカウントを行い、代表値を求めることで、より広い範囲での作物数を反映した代表値に基づいて単位面積あたりの作物数を求める。これにより単位面積あたりの作物数としての誤差を小さくすることができる。
なお代表値は、平均値、重心値、中央値などとすることが考えられる。
【0117】
第1から第5の実施の形態では、出力情報演算部5は、圃場300におけるカウント対象の面積に相当する、射影変換画像上でのピクセル数を求め、求めたピクセル数の画像範囲としてカウントエリアCAを設定する例を挙げた。
例えば1エーカーの作物数を求めるためのカウント対象とする面積を1/1000エーカーとする。この場合、射影変換画像における1/1000エーカーに相当する画像範囲、つまり1/1000エーカーの範囲を撮像した画像範囲のピクセル数を求める。このピクセル数の範囲として1つのカウントエリアが設定されることで、射影変換画像からカウントされる作物数は、実際の1/1000エーカーの範囲の作物数となる。
このようにピクセル数でカウントエリアを設定することで、実際の圃場300での所定の面積内の作物数を画像からカウントできる。
【0118】
第1から第5の実施の形態では、カウントエリアCAは、1つのロウを含む範囲として設定されるものとした。
これにより作物数のカウントは、1本のロウ上でほぼ等間隔の植物をカウントしていく処理となり、比較的簡易な処理で正確性の高いものとなる。
そして、この場合、1つのロウで区分長さLの範囲で作物数をカウントし、それを単位面積あたりの作物数に換算するということになる。これは農場管理者/従事者が目視で行ってきた手法に沿ったものとなり、結果として得られる単位面積あたりの作物数が、農場管理者/従事者の感覚に極めて近いものとなる。
即ち無闇に高度な演算処理を行って高精度化を求めるのではなく、演算処理負担の少ない効率的な処理でありながら、これまでの農場管理者/従事者の感覚に近い数値を算出できるようにすることで、農場管理者/従事者にとって感覚的にわかりやすい算出結果を提供できることになる。
【0119】
なお、複数のロウが含まれる範囲でカウントエリアCAを設定してもよい。
例えば
図16の区分長さLの半分の長さで2Wの幅の範囲をカウントエリアCAとし、2本のロウが含まれる範囲をカウントエリアCAとすることも可能である。
【0120】
第4の実施の形態では、射影変換部3は、撮像画像について撮像時の撮像装置220の姿勢判定を行い、傾きが許容範囲外であった場合に射影変換画像を生成する。そして出力情報演算部5は、射影変換部3によって射影変換画像が生成されない場合は、射影変換が施されていない画像を用いて作物数のカウントを行い、作物数情報を生成するとした。
飛行体200に搭載された撮像装置220の撮像方向は、常に一定というわけではない。飛行体200自体の姿勢が飛行動作や風の影響などで変動しているためである。このため、撮像装置220の姿勢変化を想定して射影変換を行うのであるが、逆に考えると、偶然撮像装置220が直下を向いて撮像した撮像画像が得られることがある。その場合、射影変換画像を用いなくとも、誤差の少ないカウントが可能となる。そこで、撮像時の撮像装置220の姿勢が鉛直方向に対して許容範囲内のずれであれば、射影変換を行わないで、撮像画像でそのままカウントを行うようにする。これにより射影変換の処理負担を小さくすることができる。
【0121】
第1から第5の実施の形態では、圃場300を撮像した画像内で作物検出を行い、画像内で、作物の植え付けが行われたラインであるロウを、作物検出の結果に基づいて決定するロウ決定部4を備え、出力情報演算部5は、ロウ決定部4で決定されたロウの情報を用いて作物数のカウントを行うものとした。
これによりロウを、圃場300を撮像した画像データから自動的に判定できることになる。従って、ロウを特定するためにユーザ入力や、データ転送などの手間が不要となり、例えば圃場の状態をチェックするためのシステムとして、極めて使用性がよいシステムを実現できる。ロウを特定することで、ロウ上の植物として、作物のカウントを行うことができ、例えばロウ以外の場所に生えている雑草等を排除してカウント精度を高めることができる。
【0122】
第2の実施の形態では、ロウ決定部4は、圃場300を撮像した画像として射影変換部による射影変換画像を用い、射影変換画像内で、作物の植え付けが行われたラインであるロウを、作物検出の結果に基づいて決定するとした。
これによりロウ決定もロウの平行性やスケール誤差が解消された画像を用いることになるため、ロウ決定精度も向上する。これによりカウントエリアの設定や作物カウントの精度も向上される。
【0123】
実施の形態では、ロウ決定部4は、作物検出の結果に基づいてロウ候補を検出し、各ロウ候補における作物間隔に基づいてロウとしての確からしさを計算し、確からしさの計算結果に基づいてロウを決定する例を述べた(
図5参照)。
ロウの決定に関し、まずは、作物(植物)が存在する部分は、ロウの候補となり得る。作物の存在を基準とすることで、ロウ(作物の並び)の候補を多数求めることで、或るロウの検出を逃すことを排除できる。そしてロウ候補の中から確からしさを計算することで精度のよいロウ検出が実現できる。特に作物間隔を基準とすることで、確からしさを求めやすい。もちろん、ロウが平行に並ぶことなども考慮すれば、より精度を高めることができる。
そして画像上でロウを精度よく検出することで、雑草などのランダムに生えている植物と作物と区別することもできるようになる。
【0124】
第1の実施の形態で詳述したように、ロウ決定部4は、ロウ候補の上付近にある作物らしい領域の大きさから作物サイズSSを算出し、算出された作物サイズSSからロウ候補上の作物候補を検出し、検出した作物候補の間隔から画像データ上の作物間隔を算出し、決定した作物間隔からロウ候補の確からしさを決定し、決定した確からしさを用いて誤検出と判定したロウ候補を除外する。即ち誤って検出されたロウ候補を除外する。その上でロウを決定する処理を行う。
作物間隔によってロウ候補について確からしさを判定する場合、その作物間隔の精度が高いことも重要となる。実施の形態の処理では、推定された作物サイズからロウ候補上の作物候補を検出している。つまり育成サイズも加味して作物間隔を検出し、それによりロウ候補の確からしさを決定することで、より精度の高いロウの決定が可能になる。
【0125】
なお実施の形態で述べた圃場300としては、野外農地の耕作地のみでなく、水耕栽培やハウス栽培などの用地であってもよく、各種の場所で生育される作物に関する情報提示に、実施の形態の技術を用いることができる。
また実施の形態の技術は作物以外にも、例えば果実の木々、雑草などの生育に関するセンシング結果の提示などにも用いることができる。従って森林、空き地などに対するリモートセンシングに適用することもできる。
さらに実施の形態の技術は、植物に限らず圃場300等の土壌の質のセンシングなどにも応用することができる。
【0126】
図4には挙げた機能は、本技術を実現するためには常に全てを備えなければならないものではない。本技術の情報処理装置としては、少なくとも射影変換部3と出力情報演算部5が設けられればよい。他の機能を適宜備えることで、実施の形態の説明から理解される効果が得られるようになる。
【0127】
実施の形態では、撮像装置220は、無線操縦又は自動操縦が可能な飛行体200に搭載されている例を挙げた。
無線操縦又は自動操縦が可能な飛行体200としてはいわゆるドローン、小型無線操縦固定翼飛行機、小型無線操縦ヘリコプタなどがある。
【0128】
実施の形態のプログラムは、情報処理装置1に、圃場300の上方から圃場300を撮像した撮像画像の射影変換を行って射影変換画像を生成する処理と、射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する処理とを実行させるプログラムである。
即ち
図5、
図6、
図17、
図19、
図20等で説明した処理を情報処理装置1に実行させるプログラムである。
【0129】
このようなプログラムにより本実施の形態の情報処理装置1の実現が容易となる。
そしてこのようなプログラムはコンピュータ装置等の機器に内蔵されている記録媒体や、CPUを有するマイクロコンピュータ内のROM等に予め記憶しておくことができる。あるいはまた、半導体メモリ、メモリカード、光ディスク、光磁気ディスク、磁気ディスクなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記憶)しておくことができる。またこのようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
また、このようなプログラムは、リムーバブル記録媒体からパーソナルコンピュータ等にインストールする他、ダウンロードサイトから、LAN、インターネットなどのネットワークを介してダウンロードすることもできる。
【0130】
なお、本明細書に記載された効果はあくまでも例示であって限定されるものではなく、また他の効果があってもよい。
【0131】
なお本技術は以下のような構成も採ることができる。
(1)
上方から圃場を撮像した撮像画像の射影変換を行い射影変換画像を得る射影変換部と、
前記射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する出力情報演算部と、を備えた
情報処理装置。
(2)
前記出力情報演算部は、
前記射影変換画像に対して作物数をカウントする対象とするカウントエリアを設定し、前記カウントエリア内でカウントした作物数に基づいて、単位面積あたりの作物数の算出を行う
上記(1)に記載の情報処理装置。
(3)
前記出力情報演算部は、
前記カウントエリアとして、それぞれが圃場内の同一面積の領域に相当する複数のカウントエリアを設定し、各カウントエリア内でカウントした作物数に基づいて、作物数の代表値を求め、代表値を用いて単位面積あたりの作物数の算出を行う
上記(2)に記載の情報処理装置。
(4)
前記出力情報演算部は、
圃場におけるカウント対象の面積に相当する、射影変換画像上でのピクセル数を求め、求めたピクセル数の画像範囲として前記カウントエリアを設定する
上記(2)又は(3)に記載の情報処理装置。
(5)
前記カウントエリアは、作物の植え付けが行われたラインであるロウを1つ含む範囲として設定される
上記(2)から(4)のいずれかに記載の情報処理装置。
(6)
前記射影変換部は、前記撮像画像について撮像時の撮像装置の姿勢判定を行い、傾きが許容範囲外であった場合に射影変換画像を生成し、
前記出力情報演算部は、前記射影変換部によって射影変換画像が生成されない場合は、前記射影変換が施されていない画像を用いて作物数のカウントを行い、作物数情報を生成する
上記(1)から(5)のいずれかに記載の情報処理装置。
(7)
圃場を撮像した画像内で作物検出を行い、前記画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定するロウ決定部を備え、
前記出力情報演算部は、前記ロウ決定部で決定されたロウの情報を用いて作物数のカウントを行う
上記(1)から(6)のいずれかに記載の情報処理装置。
(8)
前記ロウ決定部は、
圃場を撮像した画像として前記射影変換部による射影変換画像を用い、射影変換画像内で、作物の植え付けが行われたラインであるロウを、前記作物検出の結果に基づいて決定する
上記(7)に記載の情報処理装置。
(9)
前記ロウ決定部は、
前記作物検出の結果に基づいてロウ候補を検出し、
各ロウ候補における作物間隔に基づいてロウとしての確からしさを計算し、
確からしさの計算結果に基づいてロウを決定する
上記(7)又は(8)に記載の情報処理装置。
(10)
前記ロウ決定部は、
ロウ候補の上付近にある作物らしい領域の大きさから作物サイズを算出し、
算出された作物サイズからロウ候補上の作物候補を検出し、
検出した作物候補の間隔から前記画像上の作物間隔を算出し、
決定した作物間隔からロウ候補の確からしさを決定し、
決定した確からしさを用いて誤検出と判定したロウ候補を除外したうえでロウを決定する処理を行う
上記(7)から(9)のいずれかに記載の情報処理装置。
(11)
上方から圃場を撮像した撮像画像の射影変換を行って射影変換画像を生成し、
前記射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する
情報処理方法。
(12)
上方から圃場を撮像した撮像画像の射影変換を行って射影変換画像を生成する処理と、
前記射影変換画像を用いて作物数のカウントを行い、作物数情報を生成する処理と、
を情報処理装置に実行させるプログラム。
【符号の説明】
【0132】
1 情報処理装置
2 画像取得部
3 射影変換部
4 ロウ決定部
5 出力情報演算部
6 UI制御部
7 記録制御部
8 通信制御部
51 CPU
56 表示部
57 入力部
59 記憶部
60 通信部
200 飛行体
220 撮像装置
270 トラクター
300 圃場