JP2021157767A - 作物状態推定プログラム、作物状態推定方法および作物状態推定装置 - Google Patents

作物状態推定プログラム、作物状態推定方法および作物状態推定装置 Download PDF

Info

Publication number
JP2021157767A
JP2021157767A JP2020198406A JP2020198406A JP2021157767A JP 2021157767 A JP2021157767 A JP 2021157767A JP 2020198406 A JP2020198406 A JP 2020198406A JP 2020198406 A JP2020198406 A JP 2020198406A JP 2021157767 A JP2021157767 A JP 2021157767A
Authority
JP
Japan
Prior art keywords
crop
image
data
state
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020198406A
Other languages
English (en)
Inventor
忠重 岩尾
Tadashige Iwao
忠重 岩尾
あきら 宮崎
Akira Miyazaki
あきら 宮崎
大輔 安武
Daisuke Yasutake
大輔 安武
雅治 北野
Masaharu Kitano
雅治 北野
崇史 岡安
Takashi Okayasu
崇史 岡安
行生 尾崎
Yukio Ozaki
行生 尾崎
浩一 野村
Koichi Nomura
浩一 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyushu University NUC
Fujitsu Ltd
Original Assignee
Kyushu University NUC
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyushu University NUC, Fujitsu Ltd filed Critical Kyushu University NUC
Publication of JP2021157767A publication Critical patent/JP2021157767A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】異なる状態指標の値を推定するための推定モデルの学習コストを削減する。【解決手段】画像を当該画像より次元数の小さい特徴データに変換するエンコーダと、特徴データから画像を推定するデコーダと、を含むオートエンコーダの中のエンコーダを用いて、作物を撮像した作物画像を作物特徴データに変換する。作物特徴データと作物の状態を示す第1の指標の測定値とを対応付けた第1の訓練データを用いて、第1の指標の推定値を算出する第1の推定モデルを生成する。作物特徴データと作物の状態を示す第2の指標の測定値とを対応付けた第2の訓練データを用いて、第2の指標の推定値を算出する第2の推定モデルを生成する。【選択図】図7

Description

本発明は作物状態推定プログラム、作物状態推定方法および作物状態推定装置に関する。
作物の育成を情報処理システムによって支援する試みが行われている。作物育成支援を効果的に行うためには、ある時点における作物の状態を把握することになる。しかし、作物の状態を測定するための測定コストが高いことがあり、十分な経験を積まなければ作物の状態を正確に把握することが難しいこともある。そこで、情報処理システムが、作物を撮像した作物画像から作物の状態を推定することが考えられる。作物画像からの状態の推定には、機械学習によって生成した推定モデルを用いることが考えられる。
なお、農場を上空から撮像した空撮画像と気象データとから、作物の収穫量を予測する収量予測システムが提案されている。また、気象条件などの栽培状況と開花日などの栽培結果とを対応付けた訓練データを用意し、栽培状況を説明変数とし栽培結果を目的変数とする決定木の予測モデルを生成する栽培結果予測システムが提案されている。
特開2015−49号公報 特開2019−170359号公報
作物の状態の指標としては、高さや重量のような作物の大きさに関する指標、光合成速度のような作物の成長活動に関する指標など、様々な指標がある。同一作物に対して様々な指標値を求めるための単純な方法としては、状態指標毎に個別に、作物画像から指標値を推定する推定モデルを用意することが考えられる。しかし、作物画像から指標値を直接推定する推定モデルを指標毎に生成することは、機械学習のコストが大きい。また、機械学習に用いる作物画像にはノイズが含まれていることがあり、ノイズの影響で推定精度が低下しないように個々の推定モデルを生成することは容易でない。
1つの側面では、本発明は、異なる状態指標の値を推定するための推定モデルの学習コストを削減する作物状態推定プログラム、作物状態推定方法および作物状態推定装置を提供することを目的とする。
1つの態様では、コンピュータに以下の処理を実行させる作物状態推定プログラムが提供される。画像を画像より次元数の小さい特徴データに変換するエンコーダと、特徴データから画像を推定するデコーダと、を含むオートエンコーダの中のエンコーダを用いて、作物を撮像した作物画像を作物特徴データに変換する。作物特徴データと作物の状態を示す第1の指標の測定値とを対応付けた第1の訓練データを用いて、第1の指標の推定値を算出する第1の推定モデルを生成する。作物特徴データと作物の状態を示す第2の指標の測定値とを対応付けた第2の訓練データを用いて、第2の指標の推定値を算出する第2の推定モデルを生成する。
また、1つの態様では、コンピュータが実行する作物状態推定方法が提供される。また、1つの態様では、記憶部と処理部とを有する作物状態推定装置が提供される。
1つの側面では、異なる状態指標の値を推定するための推定モデルの学習コストを削減することができる。
第1の実施の形態の作物状態推定装置を説明するための図である。 第2の実施の形態の情報処理システムの例を示す図である。 サーバ装置のハードウェア例を示すブロック図である。 オートエンコーダの例を示す図である。 畳み込み演算の例を示す図である。 転置畳み込み演算の例を示す図である。 草丈推定モデルと新鮮重推定モデルの例を示す図である。 光合成速度推定モデルの例を示す図である。 ニューラルネットワークの例を示す図である。 潜在空間における特徴ベクトルの分布の例を示すグラフである。 サーバ装置の機能例を示すブロック図である。 状態テーブルと環境テーブルの例を示す図である。 訓練データテーブルの例を示す図である。 モデル生成の手順例を示すフローチャートである。 状態推定の手順例を示すフローチャートである。 潜在空間における状態遷移の例を示すグラフである。 状態テーブルの他の例を示す図である。 訓練データテーブルの他の例を示す図である。 状態遷移モデルの例を示す図である。 育成計画の探索例を示す図である。 サーバ装置の他の機能例を示すブロック図である。 状態遷移モデル生成の手順例を示すフローチャートである。 育成計画生成の手順例を示すフローチャートである。 育成計画生成の手順例を示すフローチャート(続き)である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の作物状態推定装置を説明するための図である。
第1の実施の形態の作物状態推定装置10は、機械学習により、作物の画像から作物の状態を推定するための推定モデルを生成する。これにより、作物状態推定装置10は、作物の状態の推定を可能にし、作物の育成を支援する。作物状態推定装置10は、クライアント装置でもよいしサーバ装置でもよい。作物状態推定装置10を、コンピュータ、情報処理装置、機械学習装置などと言うこともできる。
作物状態推定装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
記憶部11は、作物画像13および測定値14−1,14−2を記憶する。
作物画像13は、ある時点で撮像装置により作物を撮像した写真画像である。作物は、例えば、葉菜類および果菜類などの栽培植物である。作物は、食用として農家により育成されていることがある。更に、作物は花きなどでもよい。作物画像13には、作物の葉や枝が写っていることがあり、作物の茎が写っていることがあり、作物の実が写っていることがある。
測定値14−1,14−2は、作物の状態を示す指標の値(指標値)である。測定値14−1は、ある指標(第1の指標)の測定値であり、測定値14−2は、測定値14−1とは異なる指標(第2の指標)の測定値である。測定値14−1,14−2の指標はそれぞれ、高さや重量など作物の大きさに関する指標であってもよいし、光合成速度など作物の成長活動に関する指標であってもよい。指標の例として、草丈、新鮮重、光合成速度などが挙げられる。測定値14−1,14−2はそれぞれ、作物画像13が撮像された時点における作物の状態を表していてもよいし、作物画像13から所定期間経過後(例えば、1日後)における作物の状態を表していてもよい。
処理部12は、作物画像13および測定値14−1,14−2を用いて機械学習を行い、推定モデル18−1,18−2を生成する。ここで、処理部12は、オートエンコーダ15を取得する。オートエンコーダ15は、多層ニューラルネットワークであり、畳み込み演算を行う畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)でもよい。オートエンコーダ15は、エンコーダ15aおよびデコーダ15bを含む。
エンコーダ15aは、入力の画像を、入力の画像より次元数の小さい特徴データに変換する。例えば、エンコーダ15aは、128ピクセル×128ピクセルの画像を、400次元の特徴ベクトルに変換する。特徴データを、潜在状態や潜在変数などと言うこともできる。デコーダ15bは、エンコーダ15aが生成した特徴データから、エンコーダ15aの入力の画像を推定する。例えば、デコーダ15bは、400次元の特徴ベクトルを、128ピクセル×128ピクセルの画像に変換する。理想的には、デコーダ15bは、エンコーダ15aの入力と同一の画像を出力する。
処理部12は、作物画像13をエンコーダ15aの入力かつデコーダ15bの出力に対する教師データとして使用することで、機械学習によってオートエンコーダ15を生成してもよい。例えば、処理部12は、作物画像13をエンコーダ15aに入力し、デコーダ15bの出力と作物画像13との間の誤差を算出し、誤差逆伝播法によってエンコーダ15aおよびデコーダ15bに含まれるパラメータの値を調整する。
処理部12は、オートエンコーダ15の中のエンコーダ15aを用いて、作物画像13を作物特徴データ16に変換する。作物特徴データ16は、作物画像13をエンコーダ15aに入力したときにエンコーダ15aが出力する特徴データである。よって、作物特徴データ16は、作物画像13よりも小さい次元数をもつ。作物特徴データ16は、作物画像13に写った作物の潜在状態を表していると言うこともできる。この作物特徴データ16が、推定モデル18−1,18−2の説明変数の値として使用される。
具体的には、処理部12は、作物特徴データ16と測定値14−1とを対応付けた訓練データ17−1(第1の訓練データ)を生成する。作物特徴データ16が説明変数の値に相当し、測定値14−1が目的変数の値に相当する。処理部12は、訓練データ17−1を用いて、機械学習により推定モデル18−1(第1の推定モデル)を生成する。推定モデル18−1は、ある作物画像の作物特徴データから、第1の指標の推定値を算出する。
また、処理部12は、作物特徴データ16と測定値14−2とを対応付けた訓練データ17−2(第2の訓練データ)を生成する。作物特徴データ16が説明変数の値に相当し、測定値14−2が目的変数の値に相当する。処理部12は、訓練データ17−2を用いて、機械学習により推定モデル18−2(第2の推定モデル)を生成する。推定モデル18−2は、ある作物画像の作物特徴データから、第2の指標の推定値を算出する。
推定モデル18−1,18−2は、例えば、多層ニューラルネットワークである。この場合、例えば、処理部12は、作物特徴データ16を推定モデル18−1に入力し、推定モデル18−1の出力と測定値14−1との間の誤差を算出し、誤差逆伝播法によって推定モデル18−1に含まれるパラメータの値を調整する。同様に、処理部12は、作物特徴データ16を推定モデル18−2に入力し、推定モデル18−2の出力と測定値14−2との間の誤差を算出し、誤差逆伝播法によって推定モデル18−2に含まれるパラメータの値を調整する。ただし、推定モデル18−1,18−2として、回帰モデルやランダムフォレストなど、ニューラルネットワーク以外のモデルを用いてもよい。
一例として、推定モデル18−1を、ある作物画像に対応する作物特徴データから、当該作物画像の撮像時点における作物の草丈を推定するように生成することが可能である。また、推定モデル18−2を、ある作物画像に対応する作物特徴データから、当該作物画像の撮像時点における作物の新鮮重を推定するように生成することが可能である。
また、作物特徴データ16に加えて、作物の育成環境を示す環境データを、説明変数の値として訓練データ17−1,17−2の少なくとも一方に追加することも可能である。環境データには、例えば、作物が育成されている場所の温度、湿度、二酸化炭素濃度(CO2濃度)、光量などが含まれる。この場合、推定モデル18−1,18−2の少なくとも一方を、ある作物画像に対応する作物特徴データと当該作物画像の撮像時点の環境データから、所定期間経過後における作物の状態を推定するように生成することが可能である。一例として、推定モデル18−1を、作物特徴データと環境データから、所定期間経過後の光合成速度を推定するように生成することが可能である。
生成された推定モデル18−1,18−2を利用して作物の状態を推定する場合、処理部12は、新たな作物画像をエンコーダ15aに入力して、新たな作物画像に対応する作物特徴データを生成する。そして、処理部12は、その作物特徴データを推定モデル18−1,18−2にそれぞれ入力して、異なる指標の推定値を算出する。
第1の実施の形態の作物状態推定装置10によれば、オートエンコーダ15を用いて、作物画像13が作物特徴データ16に変換される。そして、変換された作物特徴データ16を説明変数の値として用いて、作物の状態に関する異なる指標の推定値を算出する推定モデル18−1,18−2が生成される。
このように、作物画像13に写っている作物が有する様々な側面の特徴が、次元数の小さい作物特徴データ16に圧縮して表現される。一般的に、類似する作物特徴データ16が算出される作物は、類似する潜在状態をもつ。よって、作物画像13そのものに代えて作物特徴データ16を入力データとして利用することで、様々な指標の推定モデルを生成することが容易となり、機械学習のコストを削減できる。また、作物画像13を作物特徴データ16に変換することで、作物画像13に含まれるノイズを除去することができ、推定モデル18−1,18−2の推定精度を向上させることができる。また、訓練データ17−1,17−2の量が少なくても十分な推定精度を達成しやすくなる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、農家による作物の育成を支援する。この情報処理システムは、機械学習により、作物を撮像した作物画像から作物の状態を推定するための各種の推定モデルを生成する。また、情報処理システムは、生成した推定モデルを用いて、現在または近い将来の作物の状態を推定する。
情報処理システムは、ビニールハウス31、端末装置33およびサーバ装置100を含む。端末装置33およびサーバ装置100は、ネットワーク30に接続されている。ネットワーク30は、インターネットなどの広域データ通信ネットワークである。サーバ装置100は、第1の実施の形態の作物状態推定装置10に対応する。
ビニールハウス31は、作物を育成する農地を覆う園芸施設の一例である。園芸施設は、ビニールハウス以外に、ガラス温室などであってもよい。ビニールハウス31の中には、栽培区画が設けられている。栽培区画では、例えば、葉菜類および果菜類などの作物が育成される。ビニールハウス31の中には、センサデバイス32などの1以上のセンサデバイスが設置されている。センサデバイス32は、育成環境として温度、湿度、CO2濃度および光量を測定する。光量の指標として、例えば、光合成光量子束密度(PPFD:Photosynthetic Photon Flux Density)が用いられる。
また、センサデバイス32または他のセンサデバイスは、サンプルとして予め指定された作物を撮像する。例えば、撮像素子を含むデジタルカメラによって、静止画像としての作物画像が生成される。センサデバイス32がネットワーク30に接続されていてもよく、環境データや作物画像がネットワーク30を介してサーバ装置100に送信されてもよい。また、環境データや作物画像が端末装置33に送信されてもよい。
端末装置33は、農家であるユーザが使用するクライアントコンピュータである。端末装置33は、ネットワーク30を介してサーバ装置100にアクセスし、サーバ装置100から画面データを受信して表示する。これにより、サーバ装置100によって提供される作物育成支援サービスを利用することができる。サーバ装置100へのアクセスおよび画面データの表示には、例えば、Webブラウザが用いられる。
端末装置33は、ビニールハウス31から環境データおよび作物画像を収集し、サーバ装置100にアップロードしてもよい。また、端末装置33は、ユーザから環境データや作物画像の入力を受け付け、サーバ装置100にアップロードしてもよい。端末装置33は、アップロードされた環境データや作物画像に応じて、サーバ装置100から作物の状態に関する各種の指標の推定値を受信して表示する。
サーバ装置100は、データセンタに設置されたサーバコンピュータである。サーバ装置100は、いわゆるクラウドシステムの計算資源であってもよい。サーバ装置100は、ビニールハウス31における作物の育成を支援する。サーバ装置100は、ビニールハウス31から環境データおよび作物画像を継続的に収集してもよい。また、サーバ装置100は、端末装置33から環境データおよび作物画像を受信してもよい。サーバ装置100は、ビニールハウス31の環境データや作物画像に基づいて、ビニールハウス31の作物の状態に関する各種の指標の推定値を算出して端末装置33に送信する。
作物状態の推定のために、サーバ装置100は、予め機械学習によって推定モデルを生成しておく。推定モデルの生成にあたり、サーバ装置100は、環境データ、作物画像および各種指標の測定値を収集して、機械学習に用いる訓練データを用意する。作物状態の指標として、草丈や新鮮重など作物の大きさに関する指標が挙げられる。また、作物状態の指標として、光合成速度など作物の成長活動に関する指標が挙げられる。訓練データを用意するために、作物のサンプルに対して指標値が予め測定される。
推定モデルの生成に使用されるこれらのデータは、ビニールハウス31から収集されてもよいし、他のビニールハウスや他の農家の農地から収集されてもよい。なお、第2の実施の形態では、サーバ装置100が推定モデルの生成と推定モデルを利用した状態推定の両方を行っているが、両者を別個のサーバ装置が行うようにしてもよい。
図3は、サーバ装置のハードウェア例を示すブロック図である。
サーバ装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。サーバ装置100が有するこれらのユニットは、バスに接続されている。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。端末装置33も、サーバ装置100と同様のハードウェアを用いて実現することができる。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、サーバ装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。サーバ装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。サーバ装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
画像インタフェース104は、CPU101からの命令に従って、サーバ装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。サーバ装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
入力インタフェース105は、サーバ装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。サーバ装置100に複数種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
通信インタフェース107は、ネットワーク30に接続され、ネットワーク30を介して端末装置33などの他の装置と通信する。通信インタフェース107は、例えば、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースである。ただし、通信インタフェース107が、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースであってもよい。
次に、推定モデルについて説明する。
図4は、オートエンコーダの例を示す図である。
後述するように、サーバ装置100は、作物の状態についての複数の指標に対応する複数の推定モデルを生成する。第2の実施の形態では、これら複数の推定モデルそれぞれの入力として、作物の画像そのものに代えて、画像から変換される特徴ベクトルを使用する。特徴ベクトルの算出には、オートエンコーダ140が用いられる。
オートエンコーダ140は、エンコーダ141およびデコーダ142を含む。エンコーダ141は、画像144を特徴ベクトル143に変換する。デコーダ142は、エンコーダ141に入力された画像144を特徴ベクトル143から推定する。理想的には、デコーダ142は、特徴ベクトル143から画像144そのものを再現する。
画像144は、作物を撮像した作物画像である。画像144には、作物の葉や枝が写っていてもよく、作物の茎が写っていてもよく、作物の実が写っていてもよい。また、画像144には、作物の全体ではなく一部分のみが写っていてもよい。第2の実施の形態では、画像144は、縦128ピクセル×横128ピクセル×3チャネルのカラー画像である。3チャネルは、赤(R)、緑(G)、青(B)に対応する。画像144は、画素値が128×128×3の構造に並んだ3階のテンソルとみなすことができる。
特徴ベクトル143は、画像144よりも次元数の小さいベクトルである。特徴ベクトル143を、潜在状態、潜在変数、特徴量などと言うこともできる。第2の実施の形態では、特徴ベクトル143は、400次元のベクトル(400個の数値が一列に並んだもの)である。後述するように、特徴ベクトル143は、画像144に写った作物がもつ様々な側面の特徴を、画像144よりも小さい次元に圧縮して表現したものである。類似する状態の作物を写した画像からは、類似する特徴ベクトルが算出されることが多い。画像144には、撮像装置によって生成されるものであるためノイズが含まれていることがある。これに対して、特徴ベクトル143では、低次元に圧縮されて作物の本質的特徴が抽出されているため、ノイズの影響が低減されている。
オートエンコーダ140は、多層ニューラルネットワーク(DNN:Deep Neural Network)かつ畳み込みニューラルネットワーク(CNN)のモデルである。オートエンコーダ140は、複数のノードおよびノード間を接続する複数のエッジを含み、エッジの重みを示すパラメータをもつ。このパラメータの値が、機械学習を通じて決定される。エンコーダ141は、段階的に次元数が小さくなる複数の層を含む。デコーダ142は、段階的に次元数が大きくなる複数の層を含む。
エンコーダ141は、畳み込み層141−1,141−2,141−3,141−4および全結合層141−5を含む。畳み込み層141−1は、縦128×横128のテンソル、すなわち、画像144の入力を受け付け、後述するストライド=2の畳み込み演算(Convolution)によって、縦64×横64のテンソルを出力する。ストライド=2の畳み込み演算では、出力テンソルの縦の次元数および横の次元数がそれぞれ、入力テンソルの2分の1になる。畳み込み演算によって出力されるテンソルを特徴マップと言うことがある。畳み込み演算の出力には、複数のチャネルが含まれ得る。
畳み込み層141−2は、畳み込み層141−1が出力した縦64×横64のテンソルを受け付け、ストライド=2の畳み込み演算によって縦32×横32のテンソルを出力する。畳み込み層141−3は、畳み込み層141−2が出力した縦32×横32のテンソルを受け付け、ストライド=2の畳み込み演算によって縦16×横16のテンソルを出力する。畳み込み層141−4は、畳み込み層141−3が出力した縦16×横16のテンソルを受け付け、ストライド=2の畳み込み演算によって縦8×横8のテンソルを出力する。全結合層141−5は、畳み込み層141−4が出力した縦8×横8のテンソルを受け付け、1階のテンソルである特徴ベクトル143を生成する。
デコーダ142は、全結合層142−1および畳み込み層142−2,142−3を含む。全結合層142−1は、400次元の特徴ベクトル143の入力を受け付け、縦32×横32のテンソルを出力する。畳み込み層142−2は、全結合層142−1が出力した縦32×横32のテンソルを受け付け、後述するストライド=2の転置畳み込み演算(Transposed Convolution)によって、縦64×横64のテンソルを出力する。転置畳み込み演算を、逆畳み込み演算(Deconvolution)と言うこともある。ストライド=2の転置畳み込み演算では、出力テンソルの縦の次元数および横の次元数がそれぞれ、入力テンソルの2倍になる。転置畳み込み演算の出力には、複数のチャネルが含まれ得る。
畳み込み層142−3は、畳み込み層142−2が出力した縦64×横64のテンソルを受け付け、ストライド=2の転置畳み込み演算によって縦128×横128のテンソルを出力する。畳み込み層142−3の出力が、画像144に相当する。
オートエンコーダ140の機械学習では、ある種類の作物を撮像したサンプル画像の集合が使用される。このサンプル画像は、エンコーダ141の入力、かつ、デコーダ142の出力に対する正解データとして使用される。サンプル画像がエンコーダ141に入力され、デコーダ142によってエンコーダ141の入力が推定される。この推定画像と元のサンプル画像との間の誤差が算出され、誤差が小さくなるように、誤差逆伝播法によってエンコーダ141とデコーダ142のパラメータ(エッジの重み)が最適化される。
図5は、畳み込み演算の例を示す図である。
畳み込み演算は、エンコーダ141の畳み込み層141−1,141−2,141−3,141−4で実行される。ここでは説明を簡単にするため、1チャネルの入力テンソルから、1個のカーネルを用いて1チャネルの出力テンソルを生成する例を説明する。
入力テンソル161には、要素aij(i=1,2,3,…;j=1,2,3,…)が並んでいる。カーネル162は、入力テンソル161に対して適用されるフィルタである。この例では、カーネル162は、縦3×横3の大きさをもち、要素mij(i=1,2,3;j=1,2,3)を含む。カーネル162の大きさは、オートエンコーダ140の生成にあたって予めユーザから指定されるハイパーパラメータである。例えば、カーネル162の大きさを、縦5×横5としてもよい。
入力テンソル161にカーネル162が適用されて、出力テンソル163が生成される。出力テンソル163を特徴マップと言うことがある。ストライド=2であるため、出力テンソル163の縦の次元数は入力テンソル161の2分の1であり、出力テンソル163の横の次元数は入力テンソル161の2分の1である。出力テンソル163には、要素bij(i=1,2,3,…;j=1,2,3,…)が並んでいる。
ここで、畳み込み演算では、カーネル162が入力テンソル161の左上に重ね合わされる。これにより、a11とm11、a12とm12、a13とm13、a21とm21、a22とm22、a23とm23、a31とm31、a32とm32、a33とm33が重なる。これら重なった要素同士を乗算して合計した結果、すなわち、積和演算の結果が、出力テンソル163の左上の要素b11になる。
入力テンソル161の上でカーネル162をスライドさせながら積和演算を行うことで、出力テンソル163の他の要素も算出される。このとき、カーネル162を1回にスライドさせる量がストライドである。ここではストライド=2であるため、カーネル162が、入力テンソル161の縦方向または横方向に2ずつスライドする。よって、カーネル162の中心の要素m22を入力テンソル161の要素a24に合わせたときの積和演算の結果が、出力テンソル163の要素b12になる。
また、カーネル162の中心の要素m22を入力テンソル161の要素a42に合わせたときの積和演算の結果が、出力テンソル163の要素b21になる。また、カーネル162の中心の要素m22を入力テンソル161の要素a44に重ねたときの積和演算の結果が、出力テンソル163の要素b22になる。具体的には、b22=a33*m11+a34*m12+a35*m13+a43*m21+a44*m22+a45*m23+a53*m31+a54*m32+a55*m33である。
このような畳み込み演算は、ニューラルネットワークとして表現することが可能である。入力テンソル161の要素がノードに対応し、出力テンソル163の要素が次段のノードに対応し、カーネル162の要素がエッジの重みに対応する。オートエンコーダ140の機械学習を通じて、カーネル162の要素の値が決定される。
図6は、転置畳み込み演算の例を示す図である。
転置畳み込み演算は、デコーダ142の畳み込み層142−2,142−3で実行される。ここでは説明を簡単にするため、1チャネルの入力テンソルから、1個のカーネルを用いて1チャネルの出力テンソルを生成する例を説明する。
入力テンソル164には、要素cij(i=1,2,3,…;j=1,2,3,…)が並んでいる。入力テンソル164を特徴マップと言うことがある。カーネル165は、入力テンソル164に対して適用されるフィルタである。この例では、カーネル165は、縦3×横3の大きさをもち、要素nij(i=1,2,3;j=1,2,3)を含む。通常、カーネル165の大きさはカーネル162と同じでよい。入力テンソル164にカーネル165が適用されて、出力テンソル166が生成される。ストライド=2であるため、出力テンソル166の縦の次元数は入力テンソル164の2倍であり、出力テンソル166の横の次元数は入力テンソル164の2倍である。出力テンソル166には、要素dij(i=1,2,3,…;j=1,2,3,…)が並んでいる。
ここで、転置畳み込み演算では、出力テンソル166の各要素の値が0に初期化される。次に、入力テンソル164の左上の要素c11とカーネル165の各要素との積が算出され、出力テンソル166の左上の縦3×横3の領域に加算される。ここでは、c11*n11がd11に加算され、c11*n12がd12に加算され、c11*n13がd13に加算される。また、c11*n21がd21に加算され、c11*n22がd22に加算され、c11*n23がd23に加算される。また、c11*n31がd31に加算され、c11*n32がd32に加算され、c11*n33がd33に加算される。
入力テンソル164の他の要素についても、カーネル165の各要素との積が算出され、出力テンソル166の適切な要素に対して加算される。このとき、積を加算する出力テンソル166の位置を、ストライドだけスライドさせる。ここではストライド=2であるため、出力テンソル166の縦方向または横方向に2つずつスライドすることになる。
よって、入力テンソル164の要素c12に着目したとき、c12*n11がd13に加算され、c12*n12がd14に加算され、c12*n13がd15に加算される。また、入力テンソル164の要素c21に着目したとき、c21*n11がd31に加算され、c21*n12がd32に加算され、c21*n13がd33に加算される。また、入力テンソル164の要素c22に着目したとき、c22*n11がd33に加算され、c22*n12がd34に加算され、c22*n13がd35に加算される。
上記の演算を入力テンソル164の各要素に対して行うことで、出力テンソル166が生成される。例えば、出力テンソル166の要素d33は、入力テンソルの要素c11,c12,c21,c22の影響を受け、d33=c11*n33+c12*n31+c21*n13+c22*n11のように算出される。
このような転置畳み込み演算は、ニューラルネットワークとして表現することが可能である。入力テンソル164の要素がノードに対応し、出力テンソル166の要素が次段のノードに対応し、カーネル165の要素がエッジの重みに対応する。オートエンコーダ140の機械学習を通じて、カーネル165の要素の値が決定される。なお、転置畳み込み演算は、図5の畳み込み演算の逆演算に相当する。カーネル165の要素の値を調整することで、出力テンソル163から入力テンソル161を再現することもできる。
このようにして、オートエンコーダ140が生成される。オートエンコーダ140に含まれるエンコーダ141を用いて、画像144が特徴ベクトル143に変換される。この特徴ベクトル143を入力として使用する様々な推定モデルを生成することができる。なお、以下では推定モデルをニューラルネットワークとしているが、回帰モデルやランダムフォレストなどニューラルネットワーク以外のモデルとしてもよい。
図7は、草丈推定モデルと新鮮重推定モデルの例を示す図である。
草丈推定モデル151は、特徴ベクトル143から、画像144を撮像した時点における作物の草丈を推定する推定モデルである。草丈は、作物の地表からの高さであり、茎や枝や葉などの部位を含む作物全体の高さである。草丈推定モデル151を用いることで、作物の写真を取れば、測定作業を行わずに草丈を算出することができる。
草丈推定モデル151は、多層ニューラルネットワークである。草丈推定モデル151は、入力層151−1、中間層151−2および出力層151−3を含む。入力層151−1は、400次元の特徴ベクトル143の入力を受け付ける。中間層151−2は、入力層151−1が出力した400次元のベクトルを200次元のベクトルに変換する。出力層151−3は、中間層151−2が出力した200次元のベクトルを2次元のベクトルに変換する。出力層151−3の出力は、草丈の平均と草丈の標準偏差を示す。作物には個体差があることから、草丈推定モデル151は、画像144が撮像された場所の周辺における草丈の分布を推定するようにしている。ただし、草丈推定モデル151が、草丈の期待値のみを推定するようにすることも可能である。
機械学習によって草丈推定モデル151を生成する場合、画像144に対応付けて、画像144が撮像された時点における草丈の測定値が教師データとして与えられる。草丈の分布を推定するため、例えば、画像144が撮像された場所の周辺における複数箇所の草丈が測定され、測定値の平均と標準偏差が算出される。機械学習では、画像144がエンコーダ141によって特徴ベクトル143に変換され、特徴ベクトル143が草丈推定モデル151に入力されて、草丈の平均および標準偏差の推定値が算出される。この推定値と測定値との間の誤差が小さくなるように、誤差逆伝播法によって、草丈推定モデル151のパラメータであるエッジの重みが最適化される。
新鮮重推定モデル152は、特徴ベクトル143から、画像144を撮像した時点における作物の新鮮重を推定する推定モデルである。新鮮重は、水分を含んだ作物の重量であり、茎や枝や葉などの部位を含む作物全体の重量である。新鮮重推定モデル152を用いることで、作物の写真を取れば、測定作業を行わずに新鮮重を算出することができる。
新鮮重推定モデル152は、多層ニューラルネットワークである。新鮮重推定モデル152は、入力層152−1、中間層152−2および出力層152−3を含む。入力層152−1は、400次元の特徴ベクトル143の入力を受け付ける。中間層152−2は、入力層152−1が出力した400次元のベクトルを200次元のベクトルに変換する。出力層152−3は、中間層152−2が出力した200次元のベクトルを2次元のベクトルに変換する。出力層152−3の出力は、新鮮重の平均と新鮮重の標準偏差を示す。作物には個体差があることから、新鮮重推定モデル152は、画像144が撮像された場所の周辺における新鮮重の分布を推定するようにしている。ただし、新鮮重推定モデル152が、新鮮重の期待値のみを推定するようにすることも可能である。
機械学習によって新鮮重推定モデル152を生成する場合、画像144に対応付けて、画像144が撮像された時点における新鮮重の測定値が教師データとして与えられる。新鮮重の分布を推定するため、例えば、画像144が撮像された場所の周辺における複数箇所の新鮮重が測定され、測定値の平均と標準偏差が算出される。草丈推定モデル151と同様、誤差逆伝播法によってパラメータであるエッジの重みが最適化される。このように、同じ特徴ベクトル143を入力とする複数の推定モデルを生成することができ、これら複数の推定モデルにより作物の状態に関する異なる指標の推定値を求めることができる。
図8は、光合成速度推定モデルの例を示す図である。
光合成速度推定モデル153は、特徴ベクトル143と環境データ145から、画像144を撮像した時点から所定期間後(例えば、1日後)の作物の光合成速度を推定するモデルである。光合成速度は、作物の葉によって水と二酸化炭素から糖類を合成する生化学反応の速度である。光合成速度は、例えば、単位時間当たりの二酸化炭素吸収量、酸素発生量、光合成産物量、光エネルギー吸収量などの観点から測定される。
環境データ145は、画像144が撮像された時点における育成環境を示す。環境データ145は、温度、湿度、二酸化炭素濃度および光量を含む4次元ベクトルである。光合成速度推定モデル153を用いることで、現在の画像144および現在の環境データ145から、1日後などの近い将来の光合成速度を予測することができる。光合成速度推定モデル153が出力する光合成速度の推定値は、将来の作物の生育状態の予測に用いることができる。また、目標とする作物の生育状態を達成するための環境データ145を推定して、生育計画を立案するために用いることもできる。
光合成速度推定モデル153は、多層ニューラルネットワークである。光合成速度推定モデル153は、入力層153−1、中間層153−2および出力層153−3を含む。入力層153−1は、400次元の特徴ベクトル143と4次元の環境データ145とを結合した404次元のベクトルの入力を受け付ける。中間層153−2は、入力層153−1が出力した404次元のベクトルを200次元のベクトルに変換する。出力層153−3は、中間層153−2が出力した200次元のベクトルをスカラ値に変換する。出力層153−3の出力は、所定期間後の光合成速度の期待値を示す。
機械学習によって光合成速度推定モデル153を生成する場合、画像144と共に、画像144が撮像された日の環境データ145が与えられる。また、画像144および環境データ145と対応付けて、画像144が撮像された時点から所定期間後における光合成速度の測定値が教師データとして与えられる。機械学習では、画像144がエンコーダ141によって特徴ベクトル143に変換され、環境データ145と結合されて光合成速度推定モデル153に入力されて、光合成速度の推定値が算出される。この推定値と測定値との間の誤差が小さくなるように、誤差逆伝播法によって、光合成速度推定モデル153のパラメータであるエッジの重みが最適化される。
ここで、ニューラルネットワークについて説明を補足する。
図9は、ニューラルネットワークの例を示す図である。
図9に示すような構造をもつニューラルネットワーク170が、前述のオートエンコーダ140、草丈推定モデル151、新鮮重推定モデル152および光合成速度推定モデル153として使用される。ニューラルネットワーク170は、層171,172,173などの複数の層を含む。層172は層171の次段であり、層173は層172の次段である。層171,172,173は、それぞれ複数のノードを含む。ある層のノードは、前段の層のノードおよび次段の層のノードとの間でエッジをもつ。よって、層172のノードは、層171のノードおよび層173のノードとの間でエッジをもつ。これらエッジに対して、それぞれ重みがパラメータとして設定される。
ニューラルネットワーク170に入力データが与えられると、入力側から出力側に向かって数値が伝播する。層171の各ノードから出力される数値が、重み付けされた上で層172に伝播する。また、層172の各ノードから出力される数値が、重み付けされた上で層173に伝播する。パラメータの更新では、誤差逆伝播法に従って出力側から入力側に向かって誤差情報が伝播し、出力側に近いエッジから順に重みが更新される。エッジ毎に誤差勾配が算出され、誤差勾配に所定の学習率を乗じた分だけ重みが変動する。
次に、特徴ベクトルの特性について説明を補足する。
図10は、潜在空間における特徴ベクトルの分布の例を示すグラフである。
同じ種類の作物を撮像した画像の集合をエンコーダ141によって特徴ベクトルの集合に変換し、特徴ベクトルの集合を400次元の特徴空間にプロットすると、グラフ180のような特徴ベクトルの分布が得られる。特徴空間を、潜在空間と言うこともある。なお、グラフ180では可視化のために、400次元を2次元にマッピングしている。
作物の本質的特徴が近い画像からは、近い特徴ベクトルが算出されることが多い。草丈や新鮮重や光合成速度などの何れか1つの指標に着目すると、近い特徴ベクトルが算出される作物は近い指標値をもつことが多い。よって、特徴ベクトルを入力とする推定モデルを生成することは、特徴空間の中の連続領域を指標値に対応付けていると言うことができ、1つの指標の観点から特徴空間を分割していると言うこともできる。ただし、特徴空間の中の連続領域と指標値との対応関係は容易にはわからない。このため、機械学習を通じてこの対応関係が推定されることになる。
例えば、ある指標(例えば、草丈)の値域を複数の区間に分割し、同一区間に属する指標値が対応付けられた画像の特徴ベクトルを同一グループに分類すると、特徴空間においてグループ181,182,183のような複数のグループが形成される。グループ181に属する特徴ベクトルは、互いに類似する指標値をもつ作物の画像から変換されたものである。同様に、グループ182に属する特徴ベクトルは、互いに類似する指標値をもつ作物の画像から変換されたものであり、グループ183に属する特徴ベクトルは、互いに類似する指標値をもつ作物の画像から変換されたものである。
一方、グループ181に属する特徴ベクトルとグループ182に属する特徴ベクトルとは、類似しない指標値をもつ作物の画像から変換されたものである。同様に、グループ181に属する特徴ベクトルとグループ183に属する特徴ベクトルとは、類似しない指標値をもつ作物の画像から変換されたものである。グループ182に属する特徴ベクトルとグループ183に属する特徴ベクトルとは、類似しない指標値をもつ作物の画像から変換されたものである。このように、指標を1つ選択すると、特徴空間に分布する特徴ベクトルを指標値に応じてグルーピングすることができる。
次に、サーバ装置100の機能について説明する。
図11は、サーバ装置の機能例を示すブロック図である。
サーバ装置100は、画像記憶部121、状態データ記憶部122、環境データ記憶部123、オートエンコーダ記憶部124および推定モデル記憶部125を有する。これらの記憶部は、例えば、RAM102またはHDD103の記憶領域を用いて実装される。また、サーバ装置100は、オートエンコーダ生成部126、推定モデル生成部127および状態推定部128を有する。これらの処理部は、例えば、CPU101が実行するプログラムを用いて実装される。
画像記憶部121は、機械学習用の画像を記憶する。また、画像記憶部121は、ビニールハウス31または端末装置33から受信される状態推定用の画像を記憶する。機械学習用の画像と状態推定用の画像は、同じ種類の作物を撮像したものである。状態データ記憶部122は、機械学習用の画像が撮像された農地において測定された作物の状態を示す状態データを記憶する。この状態データは、教師データに相当する。環境データ記憶部123は、機械学習用の画像が撮像された農地において測定された育成環境を示す環境データを記憶する。また、環境データ記憶部123は、ビニールハウス31または端末装置33から受信される状態推定用の環境データを記憶する。
オートエンコーダ記憶部124は、機械学習によって生成されたオートエンコーダ140を記憶する。ただし、エンコーダ141およびデコーダ142のうち、エンコーダ141のみを保存するようにしてもよい。推定モデル記憶部125は、機械学習によって生成された複数の推定モデルを記憶する。例えば、前述の草丈推定モデル151、新鮮重推定モデル152および光合成速度推定モデル153が記憶される。
オートエンコーダ生成部126は、画像記憶部121に記憶された機械学習用の画像を用いて、オートエンコーダ140を生成する。オートエンコーダ生成部126は、同一の画像をオートエンコーダ140の入力、かつ、オートエンコーダ140の出力に対する教師データとして用いることで、パラメータを最適化する。オートエンコーダ140には、エンコーダ141とデコーダ142が含まれる。オートエンコーダ生成部126は、生成したオートエンコーダ140をオートエンコーダ記憶部124に保存する。
推定モデル生成部127は、作物の状態を示す指標毎に、訓練データを生成して機械学習によって推定モデルを生成する。訓練データの生成では、推定モデル生成部127は、画像記憶部121に記憶された機械学習用の画像を、オートエンコーダ記憶部124に記憶されたエンコーダ141に入力して、特徴ベクトルに変換する。
推定モデル生成部127は、この特徴ベクトルを説明変数の値として訓練データに追加する。また、推定モデル生成部127は、環境データ記憶部123に記憶された環境データを、説明変数の値として訓練データに追加する。ただし、推定モデルによっては、環境データを説明変数として使用しないこともある。また、推定モデル生成部127は、状態データ記憶部122に記憶された状態データを、目的変数の値として訓練データに追加する。推定モデル生成部127は、このような訓練データを用いて推定モデルを生成し、生成した推定モデルを推定モデル記憶部125に保存する。
状態推定部128は、端末装置33からの要求に応じて、作物の状態を示す複数の指標の推定値を算出し、端末装置33に送信する。このとき、状態推定部128は、アップロードされた最新の作物の画像を画像記憶部121から抽出し、アップロードされた最新の環境データを環境データ記憶部123から抽出する。状態推定部128は、オートエンコーダ記憶部124に記憶されたエンコーダ141に画像を入力して、特徴ベクトルを算出する。状態推定部128は、特徴ベクトルに環境データを結合して、推定モデル記憶部125に記憶された推定モデルにそれぞれ入力し、推定値を算出する。ただし、推定モデルによっては、環境データを説明変数として使用しないこともある。
図12は、状態テーブルと環境テーブルの例を示す図である。
状態テーブル131は、状態データ記憶部122に記憶される。状態テーブル131は、日付、画像ID、草丈、新鮮重および光合成速度の項目を含む。日付として、画像が撮像された日が登録される。画像IDとして、画像ファイルの識別子が登録される。草丈として、画像が撮像された日における草丈の測定値が登録される。草丈の単位は、例えば、cm(センチメートル)である。新鮮重として、画像が撮像された日における新鮮重の測定値が登録される。新鮮重の単位は、例えば、g(グラム)である。
光合成速度として、画像が撮像された日における光合成速度の測定値が登録される。光合成速度の単位は、例えば、μmol/(m・s)である。なお、推定モデルが指標値の分布を出力する場合、例えば、複数箇所で測定された異なる指標値(例えば、草丈の複数の測定値や新鮮重の複数の測定値)が列挙される。
環境テーブル132は、環境データ記憶部123に記憶される。環境テーブル132は、日付、温度、湿度、二酸化炭素濃度および光量の項目を含む。日付として、環境データが測定された日が登録される。温度の単位は、例えば、℃である。湿度の単位は、例えば、%である。二酸化炭素濃度の単位は、例えば、ppm(parts per million)である。光量の単位は、例えば、μmol/(m・s)である。光量を、日射量やPPFDと言うこともある。温度、湿度、二酸化炭素濃度および光量は、例えば、1日の平均値である。
図13は、訓練データテーブルの例を示す図である。
訓練データテーブル133は、草丈推定モデル151のための訓練データである。訓練データテーブル133は、特徴ベクトル、草丈平均および草丈標準偏差の項目を含む。特徴ベクトルが説明変数に相当し、草丈平均および草丈標準偏差が目的変数に相当する。訓練データテーブル133の1つのレコード(一行)は、状態テーブル131の1つのレコード(一行)に対応する。特徴ベクトルは、状態テーブル131に含まれる画像IDが示す画像を、エンコーダ141に入力することで算出される。草丈平均および草丈標準偏差は、状態テーブル131に含まれる草丈の測定値の平均および標準偏差である。
訓練データテーブル134は、新鮮重推定モデル152のための訓練データである。訓練データテーブル134は、特徴ベクトル、新鮮重平均および新鮮重標準偏差の項目を含む。特徴ベクトルが説明変数に相当し、新鮮重平均および新鮮重標準偏差が目的変数に相当する。訓練データテーブル134の1つのレコード(一行)は、状態テーブル131の1つのレコード(一行)に対応する。特徴ベクトルは、訓練データテーブル133で算出されたものと同じである。新鮮重平均および新鮮重標準偏差は、状態テーブル131に含まれる新鮮重の測定値の平均および標準偏差である。
訓練データテーブル135は、光合成速度推定モデル153のための訓練データである。訓練データテーブル135は、特徴ベクトル、環境データおよび光合成速度の項目を含む。特徴ベクトルおよび環境データが説明変数に相当し、光合成速度が目的変数に相当する。訓練データテーブル135の1つのレコード(一行)は、状態テーブル131の1つのレコード(一行)に対応する。特徴ベクトルは、訓練データテーブル133,134で算出されたものと同じである。環境データは、状態テーブル131の日付と同じ日付として環境テーブル132に登録されている温度、湿度、二酸化炭素濃度および光量である。光合成速度は、状態テーブル131に翌日の値として登録されているものである。これは、光合成速度推定モデル153が翌日の光合成速度を推定するためである。
次に、サーバ装置100の処理手順について説明する。
図14は、モデル生成の手順例を示すフローチャートである。
(S10)オートエンコーダ生成部126は、エンコーダ141およびデコーダ142を含むオートエンコーダ140のパラメータを初期化する。
(S11)オートエンコーダ生成部126は、作物画像を1つ選択してオートエンコーダ140に入力し、オートエンコーダ140が出力する推定画像を取得する。オートエンコーダ生成部126は、推定画像と元の作物画像とを比較して誤差を算出する。
(S12)オートエンコーダ生成部126は、誤差逆伝播法により、誤差が小さくなるようにオートエンコーダ140のパラメータを更新する。
(S13)オートエンコーダ生成部126は、停止条件を満たすか判断する。停止条件として、例えば、オートエンコーダ140への作物画像の入力回数が所定の上限に達したことが挙げられる。また、停止条件として、例えば、直近の平均誤差が閾値未満に低下したことが挙げられる。なお、停止条件を満たすまでの間に、ステップS11において同じ画像が複数回選択されることもある。
(S14)オートエンコーダ生成部126は、ステップS10〜S13を通じて生成したオートエンコーダ140をオートエンコーダ記憶部124に保存する。
(S15)推定モデル生成部127は、オートエンコーダ140に含まれるエンコーダ141に、複数の作物画像をそれぞれ入力して特徴ベクトルを算出する。
(S16)推定モデル生成部127は、ステップS15で算出した特徴ベクトルを説明変数に含む訓練データを生成する。説明変数に環境データを含める場合、推定モデル生成部127は、環境テーブル132から環境データを抽出する。また、推定モデル生成部127は、状態テーブル131から状態データを抽出し、目的変数の値を定義する。
(S17)推定モデル生成部127は、推定モデルのパラメータを初期化する。
(S18)推定モデル生成部127は、ステップS16で生成した訓練データからレコードを1つ選択し、レコードに含まれる説明変数の値を推定モデルに入力し、推定モデルから推定値を取得する。推定モデル生成部127は、推定値と当該レコードに含まれる目的変数の値(正解値)とを比較して誤差を算出する。
(S19)推定モデル生成部127は、誤差逆伝播法により、誤差が小さくなるように推定モデルのパラメータを更新する。
(S20)推定モデル生成部127は、停止条件を満たすか判断する。停止条件として、例えば、推定モデルへの説明変数の値の入力回数が所定の上限に達したことが挙げられる。また、停止条件として、例えば、直近の平均誤差が閾値未満に低下したことが挙げられる。なお、停止条件を満たすまでの間に、ステップS18において訓練データの中の同じレコードが複数回選択されることもある。
(S21)推定モデル生成部127は、ステップS15〜S20を通じて生成した推定モデルを推定モデル記憶部125に保存する。なお、異なる複数の指標に対応する複数の推定モデルを生成する場合、指標毎に上記のステップS16〜S20が実行される。特徴ベクトルについては、複数の推定モデルの間で流用できる。
図15は、状態推定の手順例を示すフローチャートである。
(S30)状態推定部128は、推定対象の作物画像を取得する。使用する推定モデルに応じて、状態推定部128は、併せて環境データを取得することがある。
(S31)状態推定部128は、オートエンコーダ記憶部124に保存されているエンコーダ141に、ステップS30の作物画像を入力して特徴ベクトルを算出する。
(S32)状態推定部128は、ステップS31で算出した特徴ベクトルを含む入力データを生成する。説明変数が特徴ベクトルのみの推定モデルを使用する場合、特徴ベクトルそのものが入力データになる。説明変数に環境データを含む推定モデルを使用する場合、特徴ベクトルと環境データを連結したものが入力データになる。
(S33)状態推定部128は、推定モデル記憶部125に保存されている推定モデルに、ステップS32で生成した入力データを入力して推定値を算出する。なお、複数の推定モデルを用いて複数の指標の推定値を求める場合、指標毎にステップS32,S33が実行される。特徴ベクトルについては、複数の推定モデルの間で流用できる。
(S34)状態推定部128は、ステップS33で算出した推定値を端末装置33に送信して、端末装置33のディスプレイに表示させる。
第2の実施の形態の情報処理システムによれば、作物画像から作物の潜在状態を表現した特徴ベクトルが算出され、特徴ベクトルから作物の状態を示す具体的な指標の推定値が算出される。これにより、作物育成者の経験によらずに、成長の勢いといった漠然とした作物の状態を可視化することができる。また、指標値を実際に測定せずに、作物の写真を撮ることで推定値を得ることができる。また、近い将来の指標値を推定することも可能となる。よって、作物の育成に有用な情報を効率的に入手することができる。
また、作物画像から低次元の特徴ベクトルへの変換を通じて、作物の潜在状態との関連性が低い画像ノイズが除去される。よって、推定モデルが作物画像から指標値を直接算出する場合よりも、画像ノイズの影響を抑制して推定精度を向上させることができる。また、特徴ベクトルには作物の様々な側面の特徴が反映されており、同一の特徴ベクトルから異なる指標の推定値を算出することができる。よって、作物画像から指標値を算出する推定モデルを指標毎に個別に生成する場合よりも、計算量といった機械学習のコストを低減できる。また、少ない訓練データからでも推定モデルの精度が向上しやすくなる。
[第3の実施の形態]
次に、第3の実施の形態を説明する。
第2の実施の形態との違いを中心に説明し、第2の実施の形態と同様の内容については説明を省略することがある。第3の実施の形態の情報処理システムは、第2の実施の形態で説明したオートエンコーダや推定モデルを応用して、作物の育成計画を生成する。
一般的に作物の将来の状態は、現在の状態と温度や湿度などの環境条件とから決まることが多い。また、作物を育成する農家は、草丈や着果数などの作物の状態について、一定期間後に達成されるべき目標状態を設定することが多い。そこで、農家は、ビニールハウス内の環境条件を調節して、作物の状態を目標状態に誘導することがある。目標状態を達成するための今後の環境条件の調節方法が、育成計画として決定される。
ここで、草丈や着果数などの数値は、1つの評価尺度に基づいて測定される測定値に相当し、作物の外見に顕在化している顕在状態を表している。育成計画の生成に機械学習を利用する場合、1つの方法として、ある時点の顕在状態と環境条件とから一定期間後の顕在状態を予測する予測モデルを使用する方法が考えられる。例えば、ある時点の草丈と温度や湿度とから一定期間後の草丈を予測する予測モデルを使用する方法が考えられる。
しかし、草丈や着果数などの顕在状態は、作物の様々な側面のうちの1つの側面を切り出して評価した結果であり、作物がもつ本質的特徴である潜在状態の全てを表しているわけではない。異なる潜在状態の作物が、結果的に同一の顕在状態をもつこともある。例えば、異なる潜在状態の作物が、同一の草丈をもつことがある。そのため、同一の顕在状態をもつ作物を同一の環境条件で育成しても、将来の顕在状態が大きく異なることがある。例えば、同一の草丈をもつ作物を同一の環境条件で育成しても、一定期間後の草丈が大きくばらつくことがある。その結果、ある時点の顕在状態と環境条件とから一定期間後の顕在状態を予測する予測モデルでは、予測精度が低くなることがあるという問題がある。
これに対して、第2の実施の形態で説明した特徴ベクトルは、作物の様々な顕在状態に対応する特徴を複合的に含んでおり、作物の潜在状態を表している。第2の実施の形態の特徴ベクトルを、潜在状態ベクトルと呼ぶこともできる。そこで、第3の実施の形態では、この特徴ベクトルを利用して最適な育成計画を探索する。
図16は、潜在空間における状態遷移の例を示すグラフである。
前述のように、グラフ180は、特徴ベクトルの集合を400次元の特徴空間(潜在空間)にプロットした結果を可視化したものである。ある時点の1つの作物画像からエンコーダにより算出される特徴ベクトルは、特徴空間の1つの点で表される。また、所定期間後の1つの作物画像からエンコーダにより算出される特徴ベクトルは、特徴空間の別の1つの点で表される。また、所定期間について温度や湿度などの環境条件が測定される。そこで、特徴空間上に、1つの特徴ベクトルと1つの環境条件の組から別の1つの特徴ベクトルが決定されるという状態遷移関数を定義することができる。
例えば、グラフ180は、特徴ベクトル184,185,186,187を含む。特徴ベクトル184,185,186,187は、それぞれ作物の潜在状態を表す。特徴ベクトル184をもつ作物を特定の環境条件のもとで所定期間育成すると、特徴ベクトル185をもつ作物に成長する。よって、状態遷移関数は、特徴ベクトル184と特定の環境条件の組に対して、特徴ベクトル185を出力する。
同様に、特徴ベクトル185をもつ作物を特定の環境条件のもとで所定期間育成すると、特徴ベクトル186をもつ作物に成長する。よって、状態遷移関数は、特徴ベクトル185と特定の環境条件の組に対して、特徴ベクトル186を出力する。特徴ベクトル186をもつ作物を特定の環境条件のもとで所定期間育成すると、特徴ベクトル187をもつ作物に成長する。よって、状態遷移関数は、特徴ベクトル186と特定の環境条件の組に対して、特徴ベクトル187を出力する。このように、状態遷移関数は、特徴ベクトルの間の遷移を規定する。なお、第3の実施の形態では、所定期間を1週間とする。
過去に育成された作物の作物画像と環境条件に基づいて、機械学習によって状態遷移関数が生成される。状態遷移関数は、ニューラルネットワークである状態遷移モデルによって規定される。また、第2の実施の形態で説明したように、ある時点の特徴ベクトルからその時点の顕在状態を推定する推定モデルが生成される。例えば、特徴ベクトルから草丈を推定する草丈推定モデルが生成される。また、例えば、草丈推定モデルとは別に、特徴ベクトルから着果数を推定する着果数推定モデルが生成される。
第3の実施の形態では、この状態遷移モデルと推定モデルを用いて、所望の顕在状態を達成するための最適な育成計画が探索される。ある顕在状態から所定期間後に別の顕在状態に作物が成長するための環境条件は、特徴空間において、ある特徴ベクトルから別の特徴ベクトルに潜在状態が遷移するための環境条件に対応する。特徴空間における特徴ベクトルは、推定モデルを用いて顕在状態に変換される。
そこで、第3の実施の形態の情報処理システムは、現在の作物画像からエンコーダにより現在の特徴ベクトルを算出し、現在の特徴ベクトルと仮の環境条件との組から状態遷移モデルにより一定期間後の特徴ベクトルを算出する。情報処理システムは、一定期間後の特徴ベクトルから推定モデルにより一定期間後の顕在状態を推定し、推定した顕在状態と所望の顕在状態との間の誤差を算出する。情報処理システムは、推定した顕在状態が所望の顕在状態に近付くように、状態遷移モデルに入力する環境条件を変更する。
これにより、一定期間後に所望の顕在状態を達成するための環境条件が探索される。一定期間後の顕在状態に対応する特徴ベクトルを基準として、上記の探索を連鎖的に実行することで、今後の環境条件を列挙した育成計画が生成される。また、特徴空間を経由して環境条件を探索することで、特徴空間を経由せずに顕在状態のみから環境条件を探索する場合と比べて、潜在状態の違いを考慮でき予測精度が向上する。
第3の実施の形態の情報処理システムは、図2に示した第2の実施の形態のシステム構成と同様のシステム構成によって実現できる。また、第3の実施の形態の情報処理システムは、図3に示した第2の実施の形態のハードウェア構成と同様のハードウェア構成によって実現できる。ただし、後述するように第3の実施の形態では、第2の実施の形態のサーバ装置100に代えてサーバ装置100aが使用される。
次に、機械学習に用いるデータについて説明する。
図17は、状態テーブルの他の例を示す図である。
サーバ装置100aは、状態テーブル136を記憶する。状態テーブル136は、第2の実施の形態の状態テーブル131に相当する。状態テーブル136は、日付、画像ID、草丈、着果数および収量の項目をそれぞれ含む複数のレコードを記憶する。日付として、画像が撮像された日が登録される。画像IDとして、画像ファイルの識別子が登録される。草丈として、画像が撮像された日における草丈の測定値が登録される。着果数として、画像が撮像された日にカウントされた果実の個数が登録される。収量として、画像が撮像された日までの直近1週間に収穫された作物の重量が登録される。
状態テーブル136は、同一の農場において1週間毎に観察された作物の状態を示す。よって、状態テーブル136には、1週間毎に1つのレコードが登録される。なお、サーバ装置100aは、複数の農場に対応する複数の状態テーブルを記憶してもよい。
図18は、訓練データテーブルの他の例を示す図である。
サーバ装置100aは、図17に示した状態テーブル136に加えて、図12に示した環境テーブル132を記憶する。サーバ装置100aは、状態テーブル136を用いて、推定モデルの機械学習のための訓練データテーブル137−1,137−2,137−3を生成する。また、サーバ装置100aは、状態テーブル136および環境テーブル132を用いて、状態遷移モデルの機械学習のための訓練データテーブル138を生成する。
訓練データテーブル137−1は、特徴ベクトルから草丈を推定するための草丈推定モデルの機械学習に使用される。訓練データテーブル137−1は、特徴ベクトルおよび草丈の項目をそれぞれ含む複数のレコードを記憶する。特徴ベクトルが説明変数に相当する入力データであり、草丈が目的変数に相当する教師データである。特徴ベクトルは、状態テーブル136が示す作物画像からエンコーダにより変換される特徴ベクトルである。草丈は、状態テーブル136に登録された草丈である。
訓練データテーブル137−2は、特徴ベクトルから着果数を推定するための着果数推定モデルの機械学習に使用される。訓練データテーブル137−2は、特徴ベクトルおよび着果数の項目をそれぞれ含む複数のレコードを記憶する。特徴ベクトルが説明変数に相当する入力データであり、着果数が目的変数に相当する教師データである。特徴ベクトルは、状態テーブル136が示す作物画像からエンコーダにより変換される特徴ベクトルである。着果数は、状態テーブル136に登録された着果数である。
訓練データテーブル137−3は、特徴ベクトルから収量を推定するための収量推定モデルの機械学習に使用される。訓練データテーブル137−3は、特徴ベクトルおよび収量の項目をそれぞれ含む複数のレコードを記憶する。特徴ベクトルが説明変数に相当する入力データであり、収量が目的変数に相当する教師データである。特徴ベクトルは、状態テーブル136が示す作物画像からエンコーダにより変換される特徴ベクトルである。収量は、状態テーブル136に登録された収量である。
訓練データテーブル138は、状態遷移モデルの機械学習に使用される。訓練データテーブル138は、遷移前ベクトル、環境データおよび遷移後ベクトルの項目をそれぞれ含む複数のレコードを記憶する。遷移前ベクトルおよび環境データが説明変数に相当する入力データであり、遷移後ベクトルが目的変数に相当する教師データである。
遷移前ベクトルは、状態テーブル136が示す作物画像のうち、ある週の作物画像からエンコーダにより変換される特徴ベクトルである。遷移後ベクトルは、状態テーブル136が示す作物画像のうち、その1週間後の作物画像からエンコーダにより変換される特徴ベクトルである。環境データは、環境テーブル132が示す育成環境のうち、遷移前ベクトルが属する日から遷移後ベクトルが属する日の前日までの1週間における育成環境の平均を示す。環境データは、平均温度、平均湿度、平均CO2濃度および平均光量を含む。
図19は、状態遷移モデルの例を示す図である。
サーバ装置100aは、訓練データテーブル138に基づいて状態遷移モデル154を生成する。状態遷移モデル154は、入力層154−1、中間層154−2および出力層154−3を含む。状態遷移モデル154が、更に多数の中間層を含んでもよい。
入力層154−1は、404次元の入力データを受け付ける。よって、入力層154−1は、404個のノードを含む。404次元の入力データは、400次元の特徴ベクトル143と4次元の環境データ146とを含む。環境データ146は、温度、湿度、CO2濃度および光量を含む。中間層154−2は、複数のノードを含む。中間層154−2の次元数は、入力層154−1より大きくてもよいし小さくてもよい。例えば、中間層154−2の次元数は、500次元から1000次元程度である。出力層154−3は、400次元の特徴ベクトル147を出力する。よって、出力層154−3は、400個のノードを含む。特徴ベクトル147は、特徴ベクトル143から1週間後の潜在状態を示す。
次に、状態遷移モデル154を利用した育成計画の探索例について説明する。
図20は、育成計画の探索例を示す図である。
ここでは説明を簡単にするため、サーバ装置100aのユーザが2週間後の目標状態を指定する場合を考える。ユーザが3週間以上先の目標状態を指定する場合についても、同様の方法で育成計画を生成できる。また、ある週の1つの潜在状態から、異なる環境条件を仮定して翌週の2通りの潜在状態を予測する場合を考える。翌週の3通り以上の潜在状態を予測することも可能である。また、ここでは顕在状態として草丈を使用する。
サーバ装置100aは、2週間後の目標状態としてユーザから2週間後の草丈の目標値を受け付ける。すると、サーバ装置100aは、現在の草丈の測定値と2週間後の草丈の目標値とから、1週間後の草丈の目標中間値を算出する。目標中間値の算出には、一定速度での成長を仮定して線形補間を用いてもよいし、作物の種類に応じた所定の成長曲線を仮定して非線形補間を用いてもよい。ノード191は、現在の顕在状態を示す。ノード191は、草丈が120cmであることを示す。
次に、サーバ装置100aは、現在の作物画像をエンコーダに入力して現在の特徴ベクトルを算出する。また、サーバ装置100aは、2つの環境初期値を生成する。環境初期値は、温度、湿度、CO2濃度および光量を含む。環境初期値はランダムに選択してもよい。サーバ装置100aは、2つの環境初期値それぞれについて、現在の特徴ベクトルと環境初期値を状態遷移モデルに入力して1週間後の特徴ベクトルを推定し、推定した特徴ベクトルを草丈推定モデルに入力して1週間後の草丈を推定する。サーバ装置100aは、1週間後の草丈の目標中間値と1週間後の草丈の推定値とを比較して誤差を算出し、誤差が小さくなるように、状態遷移モデルに入力する環境値を変更する。
サーバ装置100aは、誤差が最小化された際の第1週の環境値および1週間後の草丈を、解候補として採用する。これにより、サーバ装置100aは、2つの環境初期値に対応する2通りの解候補を取得する。2通りの解候補を取得するのは、異なる環境初期値から局所解として異なる環境値に到達する可能性があるためである。ただし、2つの環境初期値から同一の環境値に到達する可能性もある。ノード192,193は、異なる環境条件を仮定して予測された1週間後の顕在状態を示す。ノード192は草丈が130cmであることを示す、ノード193は草丈が124cmであることを示す。
サーバ装置100aは、上記と同様の方法で、1週間後の草丈を前提として2週間後の草丈を予測する。すなわち、サーバ装置100aは、予測した1週間後の草丈それぞれについて、2つの環境初期値を生成する。サーバ装置100aは、2つの環境初期値それぞれについて、推定した1週間後の特徴ベクトルと環境初期値を状態遷移モデルに入力して2週間後の特徴ベクトルを推定し、推定した2週間後の特徴ベクトルを草丈推定モデルに入力して2週間後の草丈を推定する。サーバ装置100aは、2週間後の草丈の目標値と2週間後の草丈の推定値とを比較して誤差を算出し、誤差が小さくなるように、状態遷移モデルに入力する環境値を変更する。サーバ装置100aは、誤差が最小化された際の第2週の環境値および2週間後の草丈を、解候補として採用する。
これにより、サーバ装置100aは、1週間後の2つの草丈の推定値と2つの環境初期値の組み合わせから、第2週について合計で4通りの解候補を取得する。ノード194,195,196,197は、異なる環境条件を仮定して予測された2週間後の顕在状態を示す。ノード194は草丈が137cmであることを示し、ノード195は草丈が134cmであることを示し、ノード196は草丈が132cmであることを示し、ノード197は草丈が128cmであることを示す。その結果、ノード191,192,194を通るパスと、ノード191,192,195を通るパスと、ノード191,193,196を通るパスと、ノード191,193,197を通るパスとが得られる。
サーバ装置100aは、2週間後の草丈の推定値が目標値に最も近いパスを選択し、選択したパスが示す第1週の環境値および第2週の環境値を育成計画として出力する。ユーザがビニールハウスの育成環境を育成計画に従って今後2週間調節することで、2週間後に作物の草丈が目標値に到達することが期待される。なお、サーバ装置100aは、2週間後の草丈の推定値が目標値に近い複数個のパスを選択し、育成環境を調節するために要するコストなどの他の評価基準に基づいて、何れか1つのパスに絞り込んでもよい。
次に、サーバ装置100aの機能および処理手順について説明する。
図21は、サーバ装置の他の機能例を示すブロック図である。
サーバ装置100aは、第2の実施の形態のサーバ装置100の推定モデル記憶部125および推定モデル生成部127に代えて、モデル記憶部125aおよびモデル生成部127aを有する。また、サーバ装置100aは、育成計画生成部129を有する。
モデル記憶部125aは、異なる顕在状態の種類に対応する異なる推定モデルを記憶する。例えば、モデル記憶部125aは、特徴ベクトルから草丈を推定する草丈推定モデルと、特徴ベクトルから着果数を推定する着果数推定モデルと、特徴ベクトルから収量を推定する収量推定モデルとを記憶する。また、モデル記憶部125aは、特徴ベクトルと環境条件から次の特徴ベクトルを推定する状態遷移モデルを記憶する。
モデル生成部127aは、状態テーブル136が示す作物画像をオートエンコーダのエンコーダに入力して特徴ベクトルに変換する。モデル生成部127aは、状態テーブル136が示す顕在状態と特徴ベクトルとを組み合わせて訓練データを生成し、この訓練データを用いて機械学習により推定モデルを生成する。また、モデル生成部127aは、環境テーブル132に基づいて各週の環境条件を算出し、週始めの特徴ベクトルと環境条件と週終わりの特徴ベクトルとを組み合わせて訓練データを生成する。モデル生成部127aは、この訓練データを用いて機械学習により状態遷移モデルを生成する。
育成計画生成部129は、モデル記憶部125aに記憶された推定モデルおよび状態遷移モデルを用いて育成計画を生成する。育成計画生成部129は、ユーザから顕在状態の目標値を受け付ける。育成計画生成部129は、現在の作物画像に対応する特徴ベクトルを取得し、状態遷移モデルに特徴ベクトルと仮の環境条件を入力して1週間後の特徴ベクトルを推定し、推定モデルに1週間後の特徴ベクトルを入力して1週間後の顕在状態を推定する。育成計画生成部129は、状態遷移モデルに入力する環境条件を変更することで、顕在状態の目標値を達成するための最適な環境条件を判定する。
育成計画生成部129は、今後の最適な環境条件を示す育成計画データを生成し、育成計画データを出力する。例えば、育成計画生成部129は、育成計画データをHDD103などの不揮発性ストレージに保存する。また、例えば、育成計画生成部129は、育成計画データをネットワーク30を介して端末装置33に送信する。また、例えば、育成計画生成部129は、育成計画データを表示装置111に表示する。なお、第3の実施の形態では、モデル生成部127aと育成計画生成部129を同一のサーバ装置に実装しているが、両者を別個のサーバ装置に実装することも可能である。
図22は、状態遷移モデル生成の手順例を示すフローチャートである。
(S40)モデル生成部127aは、予め機械学習により生成されたオートエンコーダに含まれるエンコーダを取得する。モデル生成部127aは、状態テーブル136が示す各週の作物画像をエンコーダに入力して、各週の特徴ベクトルを算出する。
(S41)モデル生成部127aは、環境テーブル132に含まれるレコードを1週間毎に分類して、各週の環境データを算出する。各週の環境データは、1週間分の温度の平均値と湿度の平均値とCO2濃度の平均値と光量の平均値を含む。
(S42)モデル生成部127aは、遷移前ベクトルと環境データと遷移後ベクトルとを対応付けた訓練データを生成する。遷移前ベクトルは、週開始時点の特徴ベクトルである。環境データは、1週間の育成環境の平均を示す。遷移後ベクトルは、週終了時点、すなわち、翌週開始時点の特徴ベクトルである。
(S43)モデル生成部127aは、状態遷移モデルのパラメータを初期化する。状態遷移モデルのパラメータは、ニューラルネットワークの重みを含む。
(S44)モデル生成部127aは、ステップS42で生成された訓練データからレコードを1つ選択する。モデル生成部127aは、レコードに含まれる遷移前ベクトルおよび環境データを状態遷移モデルに入力し、状態遷移モデルの出力とレコードに含まれる正解の遷移後ベクトルとの間の誤差を算出する。
(S45)モデル生成部127aは、ステップS44の誤差が小さくなるように状態遷移モデルのパラメータを更新する。例えば、モデル生成部127aは、誤差逆伝播法によって状態遷移モデルの出力から入力に向かって重みを更新する。
(S46)モデル生成部127aは、停止条件を満たすか判断する。停止条件は、ステップS44,S45のイテレーション回数が所定回数に達したことでもよい。また、停止条件は、ステップS44の誤差が閾値を下回ったことでもよい。停止条件を満たす場合はステップS47に進み、停止条件を満たさない場合はステップS44に戻る。
(S47)モデル生成部127aは、状態遷移モデルを保存する。
図23は、育成計画生成の手順例を示すフローチャートである。
(S50)育成計画生成部129は、ユーザから期日と目標状態の指定を受け付ける。目標状態は、草丈などの特定の顕在状態の数値として指定される。
(S51)育成計画生成部129は、現在の顕在状態を取得する。育成計画生成部129は、現在の顕在状態と指定された目標状態とに基づいて、現在から期日までの各週の目標中間状態を算出する。例えば、育成計画生成部129は、作物が現在から期日まで線形に成長すると仮定して、各週の目標中間状態を補間する。
(S52)育成計画生成部129は、現在の作物画像を取得し、エンコーダに作物画像を入力して現在の特徴ベクトルを算出する。
(S53)育成計画生成部129は、現在に近い方から未処理の週を1つ選択する。
(S54)育成計画生成部129は、ステップS53で選択した週に属する状態を1つ選択する。なお、現在の属する週は1つの初期状態をもつ。
(S55)育成計画生成部129は、温度、湿度、CO2濃度および光量を含む環境初期値を所定個(例えば、3個)生成する。育成計画生成部129は、所定個の環境初期値をランダムに生成してもよいし、できる限り離れた値になるよう生成してもよい。
(S56)育成計画生成部129は、環境初期値を1つ選択する。
(S57)育成計画生成部129は、ステップS54で選択した状態に対応する特徴ベクトルと、ステップS56で選択した環境初期値またはその環境初期値から変更された環境値を、状態遷移モデルに入力して、翌週の特徴ベクトルを予測する。
(S58)育成計画生成部129は、ステップS57で算出された翌週の特徴ベクトルを推定モデルに入力して、翌週の顕在状態に変換する。
(S59)育成計画生成部129は、翌週に対して設定された目標中間状態とステップS58で算出された翌週の顕在状態との間の誤差を算出する。
(S60)育成計画生成部129は、ステップS57〜S61の繰り返しを通じて、ステップS59で算出された誤差が極小化されたか判断する。誤差が極小化された場合はステップS62に進み、極小化されていない場合はステップS61に進む。
(S61)育成計画生成部129は、ステップS59の誤差が小さくなるように、状態遷移モデルに入力する環境値を更新する。そして、ステップS57に戻る。
図24は、育成計画生成の手順例を示すフローチャート(続き)である。
(S62)育成計画生成部129は、ステップS58で算出した顕在状態を、翌週に属する中間状態として採用する。この中間状態は、ステップS54の選択対象になり得る。
(S63)育成計画生成部129は、ステップS56において全ての環境初期値を選択したか判断する。全ての環境初期値を選択した場合はステップS64に進み、未選択の環境初期値がある場合はステップS56に戻る。
(S64)育成計画生成部129は、ステップS54において、現在選択されている週に属する全ての状態を選択したか判断する。全ての状態を選択した場合はステップS65に進み、未選択の状態がある場合はステップS54に戻る。
(S65)育成計画生成部129は、現在選択されている週が期日の属する週であるか、すなわち、期日に到達したか判断する。期日に到達した場合はステップS66に進み、期日に到達していない場合はステップS53に戻る。
(S66)育成計画生成部129は、現在から期日までの状態遷移を示す複数のパスのうち、期日における顕在状態が目標状態に最も近いパスを抽出する。
(S67)育成計画生成部129は、ステップS66で抽出したパスに含まれる各週の環境値を順に列挙した育成計画データを生成する。
(S68)育成計画生成部129は、育成計画データを出力する。例えば、育成計画生成部129は、育成計画データを端末装置33に送信する。また、例えば、育成計画生成部129は、育成計画データを表示装置111に表示する。
第3の実施の形態の情報処理システムによれば、期日における顕在状態の目標値が指定されると、目標値を達成するための現在から期日までの環境条件を示す育成計画データが生成される。よって、農家による作物の育成を支援することができる。また、最適な環境条件は、作物画像から算出される特徴ベクトルが属する潜在空間において、特徴ベクトルの間の遷移を示す状態遷移モデルを用いて探索される。よって、同一の顕在状態をもつ作物を同一の環境条件で育成しても、潜在状態が同一とは限らないため成長量がばらつくという問題に対し、将来の顕在状態の予測精度を向上させることができる。その結果、信頼性の高い育成計画データを生成することが可能となる。
10 作物状態推定装置
11 記憶部
12 処理部
13 作物画像
14−1,14−2 測定値
15 オートエンコーダ
15a エンコーダ
15b デコーダ
16 作物特徴データ
17−1,17−2 訓練データ
18−1,18−2 推定モデル

Claims (7)

  1. コンピュータに、
    画像を前記画像より次元数の小さい特徴データに変換するエンコーダと、前記特徴データから前記画像を推定するデコーダと、を含むオートエンコーダの中の前記エンコーダを用いて、作物を撮像した作物画像を作物特徴データに変換し、
    前記作物特徴データと前記作物の状態を示す第1の指標の測定値とを対応付けた第1の訓練データを用いて、前記第1の指標の推定値を算出する第1の推定モデルを生成し、
    前記作物特徴データと前記作物の状態を示す第2の指標の測定値とを対応付けた第2の訓練データを用いて、前記第2の指標の推定値を算出する第2の推定モデルを生成する、
    処理を実行させる作物状態推定プログラム。
  2. 前記コンピュータに更に、前記作物画像を、前記オートエンコーダの入力かつ前記オートエンコーダの出力に対する教師データとして使用することで、前記オートエンコーダに含まれるパラメータの値を調整する処理を実行させる、
    請求項1記載の作物状態推定プログラム。
  3. 前記コンピュータに更に、前記エンコーダを用いて他の作物画像を他の作物特徴データに変換し、前記他の作物特徴データを前記第1の推定モデルに入力して前記第1の指標の推定値を算出し、前記他の作物特徴データを前記第2の推定モデルに入力して前記第2の指標の推定値を算出する処理を実行させる、
    請求項1記載の作物状態推定プログラム。
  4. 前記第1の訓練データは、前記作物の育成環境を示す環境データを更に含み、
    前記第1の指標の測定値は、前記作物画像よりも後に測定された測定値であり、
    前記第1の推定モデルの生成では、前記作物特徴データおよび前記環境データから前記第1の指標の測定値を推定するように前記第1の推定モデルを生成する、
    請求項1記載の作物状態推定プログラム。
  5. 前記第1の指標は、前記作物の高さ、重量および光合成速度のうちの1つであり、前記第2の指標は、前記高さ、前記重量および前記光合成速度のうちの他の1つである、
    請求項1記載の作物状態推定プログラム。
  6. コンピュータが、
    画像を前記画像より次元数の小さい特徴データに変換するエンコーダと、前記特徴データから前記画像を推定するデコーダと、を含むオートエンコーダの中の前記エンコーダを用いて、作物を撮像した作物画像を作物特徴データに変換し、
    前記作物特徴データと前記作物の状態を示す第1の指標の測定値とを対応付けた第1の訓練データを用いて、前記第1の指標の推定値を算出する第1の推定モデルを生成し、
    前記作物特徴データと前記作物の状態を示す第2の指標の測定値とを対応付けた第2の訓練データを用いて、前記第2の指標の推定値を算出する第2の推定モデルを生成する、
    作物状態推定方法。
  7. 作物を撮像した作物画像と、前記作物の状態を示す第1の指標の測定値と、前記作物の状態を示す第2の指標の測定値とを記憶する記憶部と、
    画像を前記画像より次元数の小さい特徴データに変換するエンコーダと、前記特徴データから前記画像を推定するデコーダと、を含むオートエンコーダの中の前記エンコーダを用いて、前記作物画像を作物特徴データに変換し、前記作物特徴データと前記第1の指標の測定値とを対応付けた第1の訓練データを用いて、前記第1の指標の推定値を算出する第1の推定モデルを生成し、前記作物特徴データと前記第2の指標の測定値とを対応付けた第2の訓練データを用いて、前記第2の指標の推定値を算出する第2の推定モデルを生成する処理部と、
    を有する作物状態推定装置。
JP2020198406A 2020-03-27 2020-11-30 作物状態推定プログラム、作物状態推定方法および作物状態推定装置 Pending JP2021157767A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020057798 2020-03-27
JP2020057798 2020-03-27

Publications (1)

Publication Number Publication Date
JP2021157767A true JP2021157767A (ja) 2021-10-07

Family

ID=77918660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020198406A Pending JP2021157767A (ja) 2020-03-27 2020-11-30 作物状態推定プログラム、作物状態推定方法および作物状態推定装置

Country Status (1)

Country Link
JP (1) JP2021157767A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7152097B1 (ja) 2022-07-06 2022-10-12 株式会社笑農和 情報処理装置、情報処理方法、およびプログラム
WO2023105721A1 (ja) * 2021-12-09 2023-06-15 日本電信電話株式会社 情報解析方法及び情報解析装置
KR102677271B1 (ko) * 2023-10-18 2024-06-24 주식회사 파모스 기상 데이터를 이용한 잎의 수증기압차(vpd) 예측방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023105721A1 (ja) * 2021-12-09 2023-06-15 日本電信電話株式会社 情報解析方法及び情報解析装置
JP7152097B1 (ja) 2022-07-06 2022-10-12 株式会社笑農和 情報処理装置、情報処理方法、およびプログラム
WO2024009941A1 (ja) * 2022-07-06 2024-01-11 株式会社笑農和 情報処理装置、情報処理方法、および記録媒体
JP2024007612A (ja) * 2022-07-06 2024-01-19 株式会社笑農和 情報処理装置、情報処理方法、およびプログラム
CN117677963A (zh) * 2022-07-06 2024-03-08 株式会社笑农和 信息处理装置、信息处理方法、以及存储介质
KR102677271B1 (ko) * 2023-10-18 2024-06-24 주식회사 파모스 기상 데이터를 이용한 잎의 수증기압차(vpd) 예측방법

Similar Documents

Publication Publication Date Title
JP2021157767A (ja) 作物状態推定プログラム、作物状態推定方法および作物状態推定装置
Zhang et al. Growth monitoring of greenhouse lettuce based on a convolutional neural network
An et al. Real-time monitoring method of strawberry fruit growth state based on YOLO improved model
CN113223040B (zh) 基于遥感的香蕉估产方法、装置、电子设备和存储介质
US20210209747A1 (en) Unmanned aerial system genotype analysis using machine learning routines
JP7208503B2 (ja) 機械学習プログラム、機械学習方法および機械学習装置
CN116188993A (zh) 一种基于多任务学习的遥感图像耕地地块分割方法
Salazar et al. Tomato yield prediction in a semi-closed greenhouse
CN115879653B (zh) 一种多因子农作物产量估算方法、设备及介质
Li et al. Three-dimensional reconstruction and phenotype measurement of maize seedlings based on multi-view image sequences
Lu et al. Citrus green fruit detection via improved feature network extraction
Gandhi Deep reinforcement learning for agriculture: principles and use cases
Narra et al. A data driven approach to decision support in farming
Niu et al. YOLO-plum: A high precision and real-time improved algorithm for plum recognition
Yang et al. State-of-the-art technology and applications in crop phenomics
He et al. Extraction of soybean plant trait parameters based on SfM-MVS algorithm combined with GRNN
Hao et al. Automatic acquisition, analysis and wilting measurement of cotton 3D phenotype based on point cloud
Patel et al. Deep Learning-Based Plant Organ Segmentation and Phenotyping of Sorghum Plants Using LiDAR Point Cloud
Nakajima et al. Biomass estimation of World rice (Oryza sativa L.) core collection based on the convolutional neural network and digital images of canopy
Saenz et al. Strawberries collecting robot prototype in greenhouse hydroponic systems
CN116070789A (zh) 基于人工智能的成熟期水稻和小麦的单产预估方法
Yu et al. Research on precise phenotype identification and growth prediction of lettuce based on deep learning
Schneider et al. Detection of Growth Stages of Chilli Plants in a Hydroponic Grower Using Machine Vision and YOLOv8 Deep Learning Algorithms
Morelli-Ferreira et al. Comparison of machine learning techniques in cotton yield prediction using satellite remote sensing
Kim et al. Development of a machine vision-based weight prediction system of butterhead lettuce (Lactuca sativa L.) using deep learning models for industrial plant factory

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20201218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20201218