IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザ、クライメイト、コーポレーションの特許一覧

特許7357674改良された機械学習による植物病害の感染検出
<>
  • 特許-改良された機械学習による植物病害の感染検出 図1
  • 特許-改良された機械学習による植物病害の感染検出 図2
  • 特許-改良された機械学習による植物病害の感染検出 図3
  • 特許-改良された機械学習による植物病害の感染検出 図4
  • 特許-改良された機械学習による植物病害の感染検出 図5
  • 特許-改良された機械学習による植物病害の感染検出 図6
  • 特許-改良された機械学習による植物病害の感染検出 図7
  • 特許-改良された機械学習による植物病害の感染検出 図8
  • 特許-改良された機械学習による植物病害の感染検出 図9
  • 特許-改良された機械学習による植物病害の感染検出 図10
  • 特許-改良された機械学習による植物病害の感染検出 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-28
(45)【発行日】2023-10-06
(54)【発明の名称】改良された機械学習による植物病害の感染検出
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230929BHJP
   G06N 3/08 20230101ALI20230929BHJP
   G06N 20/00 20190101ALI20230929BHJP
   G06Q 50/02 20120101ALI20230929BHJP
【FI】
G06T7/00 350C
G06N3/08
G06N20/00 130
G06Q50/02
【請求項の数】 20
(21)【出願番号】P 2021522396
(86)(22)【出願日】2019-10-23
(65)【公表番号】
(43)【公表日】2022-01-14
(86)【国際出願番号】 US2019057739
(87)【国際公開番号】W WO2020086774
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-13
(31)【優先権主張番号】62/750,118
(32)【優先日】2018-10-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521165688
【氏名又は名称】クライメイト、リミテッド、ライアビリティー、カンパニー
【氏名又は名称原語表記】CLIMATE LLC
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100126099
【弁理士】
【氏名又は名称】反町 洋
(74)【代理人】
【識別番号】100141830
【弁理士】
【氏名又は名称】村田 卓久
(74)【代理人】
【識別番号】100124372
【弁理士】
【氏名又は名称】山ノ井 傑
(72)【発明者】
【氏名】イン、ショー
(72)【発明者】
【氏名】ウェイ、コアン
【審査官】藤原 敬利
(56)【参考文献】
【文献】特表2018-520404(JP,A)
【文献】Deepak Mittal 等,Recovering from Random Pruning: On the Plasticity of Deep Convolutional Neural Networks,2018 IEEE Winter Conference on Applications of Computer Vision (WACV),米国,IEEE,2018年05月07日,第848-857頁,https://ieeexplore.ieee.org/document/8354202
【文献】Xiaohan Ding 等,Auto-Balanced Filter Pruning for Efficient Convolutional Neural Networks,Proceedings of the AAAI Conference on Artificial Intelligence,米国,AAAI Press,2018年04月27日,第32巻,第1号,第6797-6804頁,https://ojs.aaai.org/index.php/AAAI/article/view/12262
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 7/00- 7/90
G06V 10/00-20/90
G06Q 50/02
(57)【特許請求の範囲】
【請求項1】
クラス特有の特徴量にフォーカスするために畳み込みニューラルネットワークをブラッシュアップするコンピュータ実装方法であって、
プロセッサによって、一連をなす複数の畳み込みブロックを含む初期的畳み込みニューラルネットワーク(CNN)を表すデジタルデータを受領することであり、
前記一連をなす複数の畳み込みブロックの各々を、1つ以上のフィルタを有した畳み込み層を含むものとし、
前記一連をなす複数の畳み込みブロックのうちの明確な数の最後の畳み込みブロックの畳み込み層を、特定数の特徴量に対応した特定数のフィルタを有したものとする、
受領することと、
前記プロセッサによって、複数のデジタル画像からなるデジタル画像セットと、複数のクラスのうちの1つのクラスを各々識別する複数のクラスラベルからなる対応クラスラベルセットと、を受領することと、
前記一連をなす複数の畳み込みブロックを使用して、前記デジタル画像セット内の各デジタル画像を処理することにより、前記デジタル画像セットの各デジタル画像に関して特定数の特徴マップを生成することと、
前記デジタル画像に関する前記特定数の特徴マップに基づいて、前記デジタル画像セットの各デジタル画像に関してベクトルを生成することと、
前記デジタル画像セットに関する前記ベクトルからなるベクトルセットに基づいて、および、前記対応クラスラベルセットに基づいて、前記特定数のフィルタをランク付けすることと、
前記特定数のフィルタから、特定数の最高ランクのフィルタを選択することと、
前記初期的CNNから、前記特定数のフィルタのうち非選択のフィルタの適用を排除して、更新されたCNNを構築することと、
前記更新されたCNNを、クライアントデバイスから受領した新たな画像に対して適用することにより、前記新たな画像を、前記複数のクラスのうちの1つへと分類することと、
前記分類に関連した情報を送信することと、
を含むコンピュータ実装方法。
【請求項2】
前記デジタル画像セットのうちの1つを、1つのタイプの植物の写真とし、
前記複数のクラスのうちの1つを、前記タイプの植物に影響を与える可能性のある病害とする、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記一連をなす複数の畳み込みブロックの各々を、プーリング層をさらに含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記特定数を、前記一連をなす複数の畳み込みブロックのうちの、前記明確な数の最後の畳み込みブロック以外の畳み込みブロックの、1つの畳み込み層に関連したフィルタの数よりも大きなものとする、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記生成を、前記デジタル画像に関する前記特定数の特徴マップのうちの1つの特徴マップ内の値に対する集約として、前記ベクトルの成分を計算することを含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記特徴マップの前記特定数を、前記フィルタの前記特定数と等しいものとし、
前記生成を、前記デジタル画像に関する前記特定数の特徴マップの各々に対してグローバル平均プーリングを実行することを含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記選択を、更新されたCNNを構築するために選択された異なる数の最高ランクのフィルタに関連した過去の結果に基づくものとする、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記ランク付けを、前記ベクトルセットおよび前記対応クラスラベルセットから、ランダムフォレストを構築することを含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記更新されたCNNを、前記一連をなす複数の畳み込みブロックと、前記特定数のフィルタのうち非選択のフィルタをマスクアウトするマスキング層と、を含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記構築を、前記特定数のフィルタから非選択のフィルタを除去するように前記畳み込み層を修正することを含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記初期的CNNを、前記一連をなす複数の畳み込みブロックの後に、分類ブロックをさらに含むものとし、前記分類ブロックを、全結合層を含むものとする、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記更新されたCNNを、更新された分類ブロックを含むものとし、前記更新された分類ブロックを、前記特定数の最高ランクのフィルタに関連した重みを保持する全結合層を含むものとする、請求項11に記載のコンピュータ実装方法。
【請求項13】
前記更新された分類ブロックを、ソフトマックス層をさらに含むものとする、請求項12に記載のコンピュータ実装方法。
【請求項14】
1つ以上のプロセッサを使用して実行されたときには、前記1つ以上のプロセッサに、クラス特有の特徴量にフォーカスするために畳み込みニューラルネットワークをブラッシュアップする方法を実行させる1つ以上の命令のシーケンスを格納する1つ以上の非一時的コンピュータ可読媒体であって、
前記方法は、
一連をなす複数の畳み込みブロックを含む初期的畳み込みニューラルネットワーク(CNN)を表すデジタルデータを受領することであり、
前記一連をなす複数の畳み込みブロックの各々を、1つ以上のフィルタを有した畳み込み層を含むものとし、
前記一連をなす複数の畳み込みブロックのうちの明確な数の最後の畳み込みブロックの畳み込み層を、特定数の特徴量に対応した特定数のフィルタを有したものとする、
受領することと、
複数のデジタル画像からなるデジタル画像セットと、複数のクラスのうちの1つのクラスを各々識別する複数のクラスラベルからなる対応クラスラベルセットと、を受領することと、
前記一連をなす複数の畳み込みブロックを使用して、前記デジタル画像セット内の各デジタル画像を処理することにより、前記デジタル画像セットの各デジタル画像に関して特定数の特徴マップを生成することと、
前記デジタル画像に関する前記特定数の特徴マップに基づいて、前記デジタル画像セットの各デジタル画像に関してベクトルを生成することと、
前記デジタル画像セットに関する前記ベクトルからなるベクトルセットに基づいて、および、前記対応クラスラベルセットに基づいて、前記特定数のフィルタをランク付けすることと、
前記特定数のフィルタから、特定数の最高ランクのフィルタを選択することと、
前記初期的CNNから、前記特定数のフィルタのうち非選択のフィルタの適用を排除して、更新されたCNNを構築することと、
前記更新されたCNNを、クライアントデバイスから受領した新たな画像に対して適用することにより、前記新たな画像を、前記複数のクラスのうちの1つへと分類することと、
前記分類に関連した情報を送信することと、
を含む1つ以上の非一時的コンピュータ可読媒体。
【請求項15】
前記生成を、前記デジタル画像に関する前記特定数の特徴マップのうちの1つの特徴マップ内の値に対する集約として、前記ベクトルの成分を計算することを含むものとする、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項16】
前記選択を、更新されたCNNを構築するために選択された異なる数の最高ランクのフィルタに関連した過去の結果に基づくものとする、請求項1に記載のコンピュータ実装方法。
【請求項17】
前記ランク付けを、前記ベクトルセットおよび前記対応クラスラベルセットから、ランダムフォレストを構築することを含むものとする、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項18】
前記更新されたCNNを、前記一連をなす複数の畳み込みブロックと、前記特定数のフィルタのうち非選択のフィルタをマスクアウトするマスキング層と、を含むものとする、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項19】
前記初期的CNNを、前記一連をなす複数の畳み込みブロックの後に、分類ブロックをさらに含むものとし、前記分類ブロックを、全結合層を含むものとする、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項20】
前記更新されたCNNを、更新された分類ブロックを含むものとし、前記更新された分類ブロックを、前記特定数の最高ランクのフィルタに関連した重みを保持する全結合層を含むものとする、請求項19に記載の1つ以上の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【著作権通告】
【0001】
この特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権所有者は、特許商標庁の書類または記録に現れる特許文書または特許開示を何人がファクシミリで複製することに対して何らの異議も申し立てないけれども、それ以外に関しては、すべての著作権または権利を保有するものである。著作権 2015~2019 The Climate Corporation。
【技術分野】
【0002】
本開示は、植物病害の認識および機械学習の技術分野に関する。本開示は、また、病害の検出のための改良された機械学習モデルを使用して植物の写真を分析する技術分野に関する。
【背景技術】
【0003】
本項で説明するアプローチは、追求し得るアプローチであるが、必ずしも以前に考案されたり追求されたりしたアプローチではない。したがって、特段に明記しない限り、本項で説明するいずれのアプローチも、本項に含まれているという理由だけで、従来技術として適格であると想定されるべきではない。
【0004】
植物病害の検出は、農業において重要である。今日、自動化されたアプローチは、多くの場合、植物の写真を分類することを含み、これは、畳み込みニューラルネットワーク(CNN)を適用することによって実装することができる。CNNは、比較的複雑な構造を有している。典型的なCNNは、一連をなす複数の畳み込みブロックを含むことができ、各々の畳み込みブロックは、畳み込み層と、プーリング層と、正規化線形ユニット(RELU)層と、を含む。その場合、各々の畳み込み層は、画像の特徴量に対応した複数のフィルタを含む。このような複雑な構造は、分類に特異性を付与し得るものであり、分類結果の精度を高め得る。
【0005】
しかしながら、植物病害の症状は、様々な形態で出現し得る。植物病害を検出するためには、比較的少ない訓練セットから構築された単一のCNNでは不充分な場合がある。図7は、異なる条件下で栽培された2つの植物が共通の植物病害に感染しているサンプル写真を示している。これらの写真は、トウモロコシの葉であり、共通の植物病害は、灰色葉斑点(GLS)である。画像702は、接種した葉(病害を意図的に接種した葉)を示しており、画像704は、接種していない葉を示している。2つの写真は、全体的に同様の病変を示しているものの、画像702内における病変706などの病変は、よりきれいな背景上におけるより滑らかな形状を有しているのに対し、画像704内における病変708などの病変は、ゴテゴテした背景上におけるよりギザギザな形状を有しているとともに、葉だけでなく、例えば土壌などを含み得る。したがって、接種した葉の写真からGLSを認識するように設計された1つのCNNは、接種していない葉の写真からGLSを認識しない可能性があり、その逆もまた成立する。
【0006】
植物病害が多数であることを考えると、また、環境要因が多数であることを考えると、そして、植物病害を検出するためにデジタルモデルを訓練するための充分なサンプルの取得が困難であることが多いことを考えると、特定量の訓練データを必要とすることなく、満足のいく効率および精度でもって、様々な環境要因にわたって複数の病害を認識し得るアプローチが存在すると有用であろう。
【発明の概要】
【0007】
添付の特許請求の範囲は、本開示の要約として機能し得る。
【0008】
図面は、以下の通りである。
【図面の簡単な説明】
【0009】
図1図1は、本明細書において説明する機能を実行するように構成された例示的なコンピュータシステムを、システムが相互運用し得る他の装置と共にフィールド環境内で示している。
【0010】
図2図2は、例示的なモバイルアプリケーションが実行のためにロードされるときの、メインメモリ内の命令セットに関する例示的なロジック編成を示す2つの図である。
【0011】
図3図3は、農業インテリジェンスコンピュータシステムが、1つ以上のデータソースによって提供された農学的データを使用して、1つ以上の事前構成された農学的モデルを生成するプログラムプロセスを示している。
【0012】
図4図4は、本発明の一実施形態が実装され得るコンピュータシステムを示すブロック図である。
【0013】
図5図5は、データ入力のための予定表ビューに関する例示的な実施形態を図示している。
【0014】
図6図6は、データ入力のための計算表ビューに関する例示的な実施形態を図示している。
【0015】
図7図7は、異なる条件下で栽培された2つの植物が共通の植物病害に感染しているサンプル写真を示している。
【0016】
図8図8は、例示的な更新されたCNNを示している。
【0017】
図9図9は、典型的なCNNの異なる畳み込みブロック内におけるフィルタに対応した特徴量に関する例示的なグラフィック表示を示している。
【0018】
図10図10は、選択された特徴量の数が変化する際の、CNNに関する例示的な性能チャートを示している。
【0019】
図11図11は、クラス特有の特徴量にフォーカスするためにCNNをブラッシュアップ(refine)するようにプログラムされたサーバコンピュータによって実行される例示的な方法を示している。
【発明を実施するための形態】
【0020】
以下の説明では、説明の目的のため、本開示の完全な理解を提供するために、多数の具体的な詳細について記載している。しかしながら、実施形態が、これらの具体的な詳細がなくても実施し得ることは明らかであろう。他の実例では、本開示を無用に不明瞭とすることを回避するよう、周知の構造およびデバイスをブロック図の形態で図示している。実施形態は、以下の概要に従って項ごとに開示される。
1.全体的な概要
2.例示的な農業インテリジェンスコンピュータシステム
2.1.構造的な概要
2.2.アプリケーションプログラムの概要
2.3.コンピュータシステムへのデータ取り込み
2.4.プロセスの概要-農学的モデルの訓練
2.5.実装例-ハードウェアの概要
3.機能の説明
3.1 特徴マップの収集
3.2 特徴量の選択
3.3 分類モデルの修正
3.4 代替可能な実施形態
3.5 例示的なプロセス
4.拡張機能および代替手段
【0021】
1.全体的な概要
【0022】
異なるクラスを特徴付ける特徴量を取得するために畳み込みニューラルネットワーク(CNN)をブラッシュアップするための、システムおよび処理方法を開示する。いくつかの実施形態では、システムは、初期的CNNの最後のいくつかの畳み込み層のうちの1つの畳み込み層内における、よりクラス特有の特徴量に対応していることが多いフィルタを使用して開始するように、そして、より関連性の高いフィルタを洗練するためにそれらフィルタをランク付けするように、さらに、その1つの畳み込み層内における関連性の低いフィルタをオフとすることによって初期的CNNを更新するように、プログラムされる。その結果、多くの場合、クラスの特徴付けに役立たない特定のフィルタが削除された、より一般化されたCNNとなる。
【0023】
いくつかの実施形態では、システムは、アイテムを複数のクラスへと分類する初期的CNNと、初期的CNNのためのアイテムの訓練セットと、任意選択的に、複数のクラスに属するアイテムであるものの異なる環境要因を反映し得るアイテムに関する追加的なセットと、を受領するようにプログラムされる。例えば、アイテムは、トウモロコシ植物の写真とすることができ、初期的CNNは、写真および対応するトウモロコシ植物を、健康クラスへとあるいは複数の病害クラスへと、分類するように設計され得る。訓練セットは、接種されたトウモロコシ植物に対応することができ、追加的なセットは、接種されていない通常のトウモロコシ植物に対応することができる。初期的CNNは、典型的には、各々が畳み込み層を含む一連をなす複数の畳み込みブロックを含む。
【0024】
いくつかの実施形態では、システムは、初期的CNNの最後の畳み込み層内においてあるいは別の特定の層内において、フィルタから特定のフィルタを選択するために、アイテムに関する訓練セットおよび任意選択的に追加的なセットを使用するようにプログラムされる。アイテムに関する訓練セットと、アイテムに関する追加的なセットと、の各々について、フィルタの各々に対して1次元でもって、ベクトルを構築することができる。例えば、最後の畳み込み層が512個のフィルタを有している場合には、入力画像に関するベクトルは、512個の値を含有することとなり、各々が、入力画像からフィルタによって生成された特徴マップ内の値の集計である。システムは、その後、例えばランダムフォレストを構築してフィルタの重要度指標を得ることなどによって、アイテムから得られたベクトルに基づいて、フィルタをランク付けするようにプログラムされる。システムは、さらに、最後の畳み込み層内のすべてのフィルタから、特定数の最高ランクのフィルタを選択するようにプログラムされる。
【0025】
いくつかの実施形態では、システムは、初期的CNN内の一連をなす複数の畳み込みブロックに対して、非選択のフィルタをオフにするマスキング層を付加することによって、更新されたCNNを構築するようにプログラムされる。マスキング層の後には、選択されたフィルタを複数のクラスに対して接続する全結合層が続くことができる。初期的CNNが、最後の畳み込み層内のすべてのフィルタを複数のクラスに対して接続する全結合層を含む場合には、選択されたフィルタに関する全結合層の重みは、更新されたCNNにおいて再利用することができ、そうでなければ、これらの重みを訓練することができる。そして、更新されたCNNは、初期的CNNの訓練または更新のいずれもが、環境または他の外部要因を反映する追加アイテムに対して実質的に依存していない場合であっても、そのような追加アイテムセットに関してあるいは複数のクラスに属する他の追加アイテムセットに対して、良好に動作することが期待される。
【0026】
システムは、様々な技術的利点を生成する。システムは、各クラスを詳細に特徴付ける特徴量にフォーカスした、よりスリムなデジタルモデルを提供する。このフォーカスにより、環境要因または他の外部要因を受け流して、より多くのクラスメンバーを認識させる能力をもたらし、これにより、全体的な分類精度を向上させる。植物病害を認識する場合、システムは、植物病害を、より効果的に検出して治療することができ、作物の健康および成長を促進する。スリム化により、計算リソースの利用量を低下させ、デジタルモデルを格納するためのメモリが少なくて済むとともに、デジタルモデルを実行するためのCPU/GPU時間が短くて済む。加えて、利用可能なデータに基づいてデジタルモデルを改良することにより、システムは、クラスの様々なニュアンスの非代表的な態様を捕捉しつつ、著しく大きな分類精度を達成し得ないであろう複雑なモデルを構築に際し、より多くの訓練データを不要とする。
【0027】
実施形態に関する他の態様および特徴点は、本開示の他の項から明瞭となるであろう。
【0028】
2.例示的な農業インテリジェンスコンピュータシステム
【0029】
2.1 構造的な概要
【0030】
図1は、本明細書において説明する機能を実行するように構成された例示的なコンピュータシステムを、システムが相互運用し得る他の装置と共にフィールド環境内で示している。一実施形態では、ユーザ102は、農業活動を目的としたフィールドなどの、あるいは、1つ以上の農業フィールドに関する管理位置などの、フィールド位置において、あるいはフィールド位置に関連して、フィールド管理コンピュータデバイス104を、所有または操作または所持している。フィールド管理コンピュータデバイス104は、フィールドデータ106を、1つ以上のネットワーク109を介して、農業インテリジェンスコンピュータシステム130に対して提供するように、プログラムまたは構成されている。
【0031】
フィールドデータ106の例は、(a)識別データ(例えば、エーカー数、フィールド名、フィールド識別子、地理的識別子、境界識別子、作物識別子、ならびに、農地を識別するために使用し得る他の適切なデータ、例えば共有地ユニット(CLU)、ロットおよびブロック番号、地番、地理的な座標および境界、農場シリアル番号(FSN)、農場番号、区画番号、フィールド番号、セクション、タウンシップ、および/または範囲などの、他の適切なデータ)、(b)収穫データ(例えば、作物のタイプ、作物の品種、輪作、作物が有機栽培されているかどうか、収穫日、実際の生産履歴(APH)、予想収穫量、収穫量、作物価格、作物収益、穀粒水分、耕耘慣行、ならびに、前の栽培シーズンの情報)、(c)土壌データ(例えば、タイプ、組成、pH、有機物(OM)、陽イオン交換容量(CEC))、(d)播種データ(例えば、播種日、種子のタイプ、播種した種子の相対的な成熟度(RM)、種子の個体数)、(e)肥料データ(例えば、栄養分のタイプ(窒素、リン、カリウム)、施肥のタイプ、施肥日、量、供給源、方法)、(f)化学物質の散布データ(例えば、農薬、除草剤、殺菌剤、植物調節剤や枯葉剤や乾燥剤として使用することを目的とした他の物質または物質混合物、散布日、量、供給源、方法)、(g)灌漑データ(例えば、適用日、量、供給源、方法)、(h)気象データ(例えば、降水量、降雨率、予測降雨量、水流出率地域、気温、風、予報、気圧、視界、雲、熱指数、露点、湿度、積雪深さ、大気の品質、日の出、日没)、(i)画像データ(例えば、農業装置のセンサ、カメラ、コンピュータ、スマートフォン、タブレット、無人航空機、飛行機、または衛星、からの画像および光スペクトル情報)、(j)偵察観測(写真、ビデオ、自由書式のメモ、音声記録、音声文字起こし、気象条件(気温、降水量(現在および過去)、土壌水分、作物の成長段階、風速、相対湿度、露点、黒色層)、ならびに、(k)土壌、種子、作物季節学、害虫および病害の報告、ならびに、予測源およびデータベース、を含む。
【0032】
データサーバコンピュータ108は、農業インテリジェンスコンピュータシステム130に対して通信可能に結合されており、1つ以上のネットワーク109を介して農業インテリジェンスコンピュータシステム130に対して外部データ110を送信するようにプログラムまたは構成されている。外部データサーバコンピュータ108は、農業インテリジェンスコンピュータシステム130と同じ法人または同じ事業体によって所有または操作されてもよく、あるいは、政府機関、非政府組織(NGO)、および/または民間のデータサービスプロバイダ、などの異なる法人または異なる事業体によって所有または操作されてもよい。外部データの例は、とりわけ、気象データ、画像データ、土壌データ、あるいは、作物の収穫量に関連する統計データ、を含む。外部データ110は、フィールドデータ106と同じタイプの情報から構成されてもよい。いくつかの実施形態では、外部データ110は、農業インテリジェンスコンピュータシステム130を所有および/または操作するのと同じ事業体が所有する外部データサーバ108によって提供される。例えば、農業インテリジェンスコンピュータシステム130は、気象データなどの、第三者の情報源から入手し得るタイプのデータに排他的にフォーカスしたデータサーバを含んでもよい。いくつかの実施形態では、外部データサーバ108は、システム130内に実際に組み込まれてもよい。
【0033】
農業装置111は、その上に固定された1つ以上の遠隔センサ112を有してもよく、センサは、農業装置111を介して農業インテリジェンスコンピュータシステム130に対して直接的にまたは間接的に通信可能に結合されているとともに、農業インテリジェンスコンピュータシステム130に対してセンサデータを送信するようにプログラムまたは構成されている。農業装置111の例は、トラクタ、コンバイン、ハーベスタ、播種機、トラック、施肥設備、無人航空機を含む航空機、ならびに、物理的な機械またはハードウェアからなる任意の他の物品であって、典型的には移動式機械であり、農業に関連するタスクにおいて使用され得る任意の他の物品、を含む。いくつかの実施形態では、装置111からなる単一ユニットは、装置上のネットワーク内において局所的に結合された複数のセンサ112を含んでもよく、コントローラエリアネットワーク(CAN)は、コンバイン、ハーベスタ、噴霧機、および耕耘機、に設置し得るこのようなネットワークの一例である。アプリケーションコントローラ114は、1つ以上のネットワーク109を介して農業インテリジェンスコンピュータシステム130に対して通信可能に結合されているとともに、農業車両または農業機器の動作パラメータを制御するために使用される1つ以上のスクリプトを、農業インテリジェンスコンピュータシステム130から受領するようにプログラムまたは構成されている。例えば、カリフォルニア州サンフランシスコのThe Climate Corporationから入手可能なCLIMATE FIELDVIEW DRIVEをどのようにして使用するかなどのように、農業インテリジェンスコンピュータシステム130から農業装置111への通信を可能とするために、コントローラエリアネットワーク(CAN)バスインターフェースを使用してもよい。センサデータは、フィールドデータ106と同じタイプの情報から構成されてもよい。いくつかの実施形態では、遠隔センサ112は、農業装置111に対して固定されなくてもよく、その場合、フィールド内に遠隔的に配置されることで、ネットワーク109と通信してもよい。
【0034】
装置111は、キャブアプリケーションによってプログラムされたキャブコンピュータ115を含んでもよく、キャブアプリケーションは、本明細書の他の項でさらに説明するデバイス104のためのモバイルアプリケーションのバージョンまたは変形を含んでもよい。一実施形態では、キャブコンピュータ115は、装置111の操作室内に設置された、カラーディスプレイなどのグラフィック画面ディスプレイを有したコンパクトなコンピュータであって、多くの場合、タブレットサイズのコンピュータまたはスマートフォンとされるコンパクトなコンピュータを含む。キャブコンピュータ115は、モバイルコンピュータデバイス104に関して本明細書においてさらに説明する操作および機能の、一部または全部を実装してもよい。
【0035】
1つ以上のネットワーク109とは、地上または衛星リンクを含む任意の有線リンクまたは無線リンクを使用した、ローカルエリアネットワークやワイドエリアネットワークやインターネットワークやインターネットを含む1つ以上のデータ通信ネットワークの任意の組合せを、広義的に表している。1つ以上のネットワークは、図1の様々な構成要素どうしの間にわたってのデータ交換を提供する任意の媒体または機構によって実装されてもよい。図1の様々な構成要素は、また、直接的な(有線または無線の)通信リンクを有していてもよい。センサ112、コントローラ114、外部データサーバコンピュータ108、ならびに、システムの他の構成要素は、各々、1つ以上のネットワーク109と互換的なインターフェースを含み、TCP/IP、Bluetooth(登録商標)、CANプロトコル、ならびに、HTTPやTLSや同種のものといった上位層プロトコル、などの、ネットワークを介した通信のための標準化されたプロトコルを使用するようにプログラムまたは構成される。
【0036】
農業インテリジェンスコンピュータシステム130は、フィールド管理コンピューティングデバイス104からのフィールドデータ106と、外部データサーバコンピュータ108からの外部データ110と、遠隔センサ112からのセンサデータと、を受領するようにプログラムまたは構成されている。農業インテリジェンスコンピュータシステム130は、本開示の他の項でさらに説明する態様で、データ値の変換および保存、1つ以上のフィールド上における1つ以上の作物に関するデジタルモデルの構築、推奨および通知の生成、ならびにアプリケーションコントローラ114に対してのスクリプトの生成および送信、を実行するために、1つ以上のコンピュータプログラムを、あるいは、他のソフトウェア要素を、あるいは、FPGAsまたはASICsなどのデジタル的にプログラムされたロジックを、あるいは、これらの任意の組合せを、ホストまたは使用または実行するようにさらに構成されてもよい。
【0037】
一実施形態では、農業インテリジェンスコンピュータシステム130は、通信層132と、提示層134と、データ管理層140と、ハードウェア/仮想化層150と、モデルデータフィールドデータリポジトリ160と、を使用してプログラムされる、あるいは、これらを含む。「層」とは、この文脈では、電子デジタルインターフェース回路、マイクロコントローラ、ドライバなどのファームウェア、および/または、コンピュータプログラムまたは他のソフトウェア要素、からなる任意の組合せを指す。
【0038】
通信層132は、フィールドデータ、外部データ、およびセンサデータ、に関して、各々対応する、フィールド管理コンピューティングデバイス104、外部データサーバコンピュータ108、および遠隔センサ112、に対して要求を送信することを含めて、入力/出力インターフェース機能を実行するようにプログラムまたは構成されてもよい。通信層132は、受領したデータを、モデルデータフィールドデータリポジトリ160に対して送信してフィールドデータ106として記憶させるようにプログラムまたは構成されてもよい。
【0039】
提示層134は、フィールド管理コンピューティングデバイス104、キャブコンピュータ115、あるいは、ネットワーク109を介してシステム130に対して結合されている他のコンピュータ、上に表示されるべきグラフィカルユーザインターフェース(GUI)を生成するようにプログラムまたは構成されてもよい。GUIは、農業インテリジェンスコンピュータシステム130に対して送信するデータを入力するための、および/または、モデルおよび/または推奨に関する要求を生成するための、および/または、推奨や通知やモデルや他のフィールドデータを表示するための、制御手段を含んでもよい。
【0040】
データ管理層140は、システムの機能要素とリポジトリとの間において通信される質問および結果セットを含めた、リポジトリ160およびシステムの他の機能要素が関与する読み取り操作および書き込み操作を管理するようにプログラムまたは構成されてもよい。データ管理層140の例は、とりわけ、JDBC、SQLサーバインターフェースコード、および/または、HADOOPインターフェースコード、を含む。リポジトリ160は、データベースを含んでもよい。本明細書で使用する際には、「データベース」という用語は、データの本体と、リレーショナルデータベース管理システム(RDBMS)と、のうちのいずれかを、あるいはそれらの両方を、指してもよい。本明細書で使用する際には、データベースは、階層データベース、リレーショナルデータベース、フラットファイルデータベース、オブジェクトリレーショナルデータベース、オブジェクト指向データベース、分散データベース、および、コンピュータシステム内に格納される記録またはデータに関する任意の他の構造化された収集を含めた、データに関する任意の収集を含んでもよい。RDBMSの例には、ORACLE(登録商標)データベース、MYSQLデータベース、IBM(登録商標)DB2データベース、MICROSOFT(登録商標)SQL SERVERデータベース、SYBASE(登録商標)データベース、および、POSTGRESQLデータベース、を含むが、これらに限定されるものではない。しかしながら、本明細書において説明するシステムおよび方法を可能とする任意のデータベースを使用してもよい。
【0041】
フィールドデータ106が、農業インテリジェンスコンピュータシステムと相互作用する1つ以上の農業機械または農業機械デバイスを介して農業インテリジェンスコンピュータシステムに対して直接的に提供されない場合には、ユーザは、(農業インテリジェンスコンピュータシステムによって提供される)ユーザデバイス上の1つ以上のユーザインターフェースを介して、そのような情報を入力するように促されてもよい。例示的な実施形態では、ユーザは、(農業インテリジェンスコンピュータシステムによって提供される)ユーザデバイス上のマップに対してアクセスすることにより、そして、マップ上にグラフィック的に表示された特定のCLUsを選択することによって、識別データを指定してもよい。代替可能な実施形態では、ユーザ102は、(農業インテリジェンスコンピュータシステム130によって提供される)ユーザデバイス上のマップに対してアクセスすることにより、そして、マップ上においてフィールドの境界を描画することによって、識別データを指定してもよい。そのようなCLU選択あるいはマップ描画は、地理的な識別子を表す。代替可能な実施形態では、ユーザは、ユーザデバイスを介して米国農務省ファームサービス局または他の情報源から、フィールド識別データ(形状ファイルとして提供されるあるいは同様のフォーマットで提供される)に対してアクセスすることにより、そして、そのようなフィールド識別データを農業インテリジェンスコンピュータシステムに対して提供することにより、識別データを指定してもよい。
【0042】
例示的な実施形態では、農業インテリジェンスコンピュータシステム130は、データ入力のためのデータ管理手段を含むグラフィカルユーザインターフェースを生成して、それを表示させるようにプログラムされる。上述した方法を使用して1つ以上のフィールドが識別された後に、データ管理手段は、選択されたときにはフィールドや土壌や作物や耕耘や養分の慣行に対する変化を識別し得る1つ以上のグラフィカルユーザインターフェースウィジェットを提供してもよい。データ管理手段は、予定表ビュー、計算表ビュー、および/または、1つ以上の編集可能なプログラム、を含んでもよい。
【0043】
図5は、データ入力のための予定表ビューに関する例示的な実施形態を図示している。図5に図示されたディスプレイを使用して、ユーザコンピュータは、イベントの追加のために、特定のフィールドおよび特定の日付に関する選択を入力することができる。予定表の上部に表示されるイベントは、窒素、播種、慣行、土壌、を含んでもよい。窒素散布イベントを追加するために、ユーザコンピュータは、窒素タブを選択する入力を提供してもよい。ユーザコンピュータは、その後、選択されたフィールドへの窒素散布を表示するために、特定のフィールドに関し、予定表上における位置を選択してもよい。特定のフィールドに関し、予定表上における位置の選択を受領したことに応答して、データ管理手段は、データ入力オーバーレイを表示してもよく、これにより、ユーザコンピュータが、窒素の散布、播種手順、土壌適用、耕耘手順、灌漑の慣行、あるいは、特定のフィールドに関連する他の情報、に関連したデータを入力できるようにする。例えば、ユーザコンピュータが、予定表の一部を選択して、窒素の散布を表示した場合、データ入力オーバーレイは、散布される窒素の量、散布日、使用された肥料のタイプ、および、窒素の散布に関連する他の情報、を入力するためのフィールドを含むことができる。
【0044】
一実施形態では、データ管理手段は、1つ以上のプログラムを作成するためのインターフェースを提供する。「プログラム」とは、この文脈では、窒素散布、播種手順、土壌適用、耕耘手順、灌漑慣行、あるいは、1つ以上のフィールドに関連し得る他の情報、に関連するデータセットであり、他の操作においてセットとして再利用するためにデジタルデータストレージ内に格納され得るデータセットを指す。プログラムを作成した後に、そのプログラムを、1つ以上のフィールドに対して概念的に適用してもよく、そのプログラムへの参照を、フィールドを識別するデータと関連付けてデジタルストレージ内に格納してもよい。よって、複数の異なるフィールドに対して同じ窒素散布に関する同一データを手動で入力することに代えて、ユーザコンピュータは、特定の窒素散布を示すプログラムを作成してもよく、その後、そのプログラムを、複数の異なるフィールドに対して適用してもよい。例えば、図5の予定表ビューでは、上の2つの予定表は、「春に散布する」プログラムが選択されており、これは、4月上旬における150ポンド/acでの窒素散布を含む。データ管理手段は、プログラムを編集するためのインターフェースを提供してもよい。一実施形態では、特定のプログラムが編集されたときには、特定のプログラムを選択した各フィールドが編集される。例えば、図5では、「春に散布する」プログラムが、窒素散布を130ポンド/acへと低減するように編集された場合には、上の2つのフィールドは、編集されたプログラムに基づいて、低減された窒素散布によって更新されてもよい。
【0045】
一実施形態では、プログラムが選択されているフィールドに対しての編集を受領したことに応答して、データ管理手段は、選択されたプログラムに対するフィールドの対応関係を削除する。例えば、図5の上部フィールドに対して窒素散布が追加された場合には、インターフェースは、「春に散布する」プログラムがもはや上部フィールドに対して適用されていないことを示すように、更新してもよい。4月上旬における窒素散布は残り得るけれども、「春に散布する」プログラムへの更新は、4月における窒素散布を変更しないこととなる。
【0046】
図6は、データ入力のための計算表ビューに関する例示的な実施形態を図示している。図6に図示された表示を使用して、ユーザは、1つ以上のフィールドに関する情報を作成して編集することができる。データ管理手段は、図6に示すように、窒素、播種、慣行、および土壌に関する情報を入力するための計算表を含んでもよい。特定のアイテムを編集するために、ユーザコンピュータは、計算表内において特定の入力を選択してもよく、その値を更新してもよい。例えば、図6は、第2フィールドに関する目標収穫量の更新が進行中であることを図示している。加えて、ユーザコンピュータは、1つ以上のプログラムを適用するために、1つ以上のフィールドを選択してもよい。特定のフィールドに関するプログラムの選択を受領したことに応答して、データ管理手段は、選択されたプログラムに基づいて、特定のフィールドに対する入力を自動的に完了させてもよい。予定表ビューの場合と同様に、データ管理手段は、プログラムの更新を受領したことに応答して、特定のプログラムに関連する各フィールドの入力を更新してもよい。加えて、データ管理手段は、フィールドに関する1つの入力に対して編集を受領したことに応答して、そのフィールドに対しての選択されたプログラムの対応関係を削除してもよい。
【0047】
一実施形態では、モデルデータおよびフィールドデータは、モデルデータフィールドデータリポジトリ160内に格納される。モデルデータは、1つ以上のフィールドに対して作成されたデータモデルを含む。例えば、作物モデルは、1つ以上のフィールド上における作物の開発に関してデジタル的に構築されたモデルを含んでもよい。「モデル」とは、この文脈では、互いに関連付けられた実行可能な命令およびデータ値の電子的なデジタル保存されたセットを指し、これらの命令およびデータ値は、指定された入力値に基づく解決のために、プログラム的なまたは他のデジタル的な要請や呼び出しや要求を受領して応答することができ、これにより、とりわけ、コンピュータ実装された推奨、出力データ表示、または機械制御の基礎となる1つ以上の保存されたまたは計算された出力値をもたらすことができる。当業者であれば、数式を使用してモデルを表現することが便利だと考えるけれども、そのような表現形式は、本明細書で開示するモデルを抽象的な概念に限定するものではなく、その代わりに、本明細書における各モデルは、コンピュータを使用してモデルを実装する保存された実行可能な命令およびデータの形式で、コンピュータ内に実用的なアプリケーションを有している。モデルは、1つ以上のフィールド上における過去のイベントに関するモデル、1つ以上のフィールドの現在の状態に関するモデル、および/または、1つ以上のフィールド上における予測されるイベントに関するモデル、を含んでもよい。モデルデータおよびフィールドデータは、メモリ内におけるデータ構造として、データベーステーブル内内における行として、フラットファイルまたは計算表として、あるいは、他の形式の格納されたデジタルデータとして、格納されてもよい。
【0048】
一実施形態では、農業インテリジェンスコンピュータシステム130は、分類モデル管理サーバコンピュータ(サーバ)170を含むようにプログラムされる。サーバ170は、モデルデータ収集命令172、特徴量選択命令174、モデル更新命令176、および、ユーザインターフェース命令178、を含むようにさらに構成される。
【0049】
いくつかの実施形態では、モデルデータ収集命令172は、アイテムを複数のクラスへと分類する初期的畳み込みニューラルネットワーク(CNN)と、初期的CNNを更新するための、複数のクラスに該当するアイテムセットと、を受領するためのコンピュータ実行可能な命令を提供する。モデルデータ収集命令172は、アイテムセットに対するベクトルセットを生成するためのコンピュータ実行可能な命令をさらに提供し、ここで、各ベクトルは、初期的CNNの特定の畳み込み層によって取得された特定数の特徴量に対応した特定数の値を有している。
【0050】
いくつかの実施形態では、特徴量選択命令174は、複数のベクトルからなるベクトルセットを使用して特定数の特徴量をランク付けするとともに特定数の最高ランクの特徴量を選択するコンピュータ実行可能な命令を提供する。ランク付けは、ランダムフォレストを使用して、または、主成分分析を使用して、または、特定の属性を順序付けるための他の技法を使用して、実行することができる。
【0051】
いくつかの実施形態では、モデル更新命令176は、選択された特徴量のみを認識するために、特定の畳み込み層内で選択された特徴量に対応したフィルタのみを利用することにより、初期的CNNを更新するコンピュータ実行可能な命令を提供する。更新は、非選択のフィルタをマスクオフするマスキング層を追加し、これにより、アイテムの分類を、選択された特徴量のみに基づいて効果的に制限することを含む。加えて、更新は、専門家の入力に基づいて、選択された特徴量の一部をさらにマスクアウトすることを含むことができる。更新は、選択されたフィルタを複数のクラスに対して接続する最終的な全結合層に関する重みを決定することをさらに含むことができる。
【0052】
いくつかの実施形態では、ユーザインターフェース命令178は、ユーザデバイスとの通信を管理するためのコンピュータ実行可能な命令を提供する。管理は、分類されるべき新たなアイテムを、ユーザデバイスから受領することと、更新されたCNNを、新たなアイテムに対して適用することと、分類結果をユーザデバイスに対して送信することと、を含んでもよい。管理は、選択された特徴量も含めて、初期的CNNによって取得された特定の特徴量に関するクラス活性化データまたは特徴量投影データを準備することと、特定の特徴量を可視化するためにそのようなデータをユーザデバイスに対して送信することと、特定の特徴量から更なる選択を受領することと、をさらに含んでもよい。
【0053】
サーバ170の各構成要素は、農業インテリジェンスコンピュータシステム130内の、RAMなどの、メインメモリの1つ以上のページセットであり、実行可能な命令が内部へとロードされるとともに、実行されたときには、農業インテリジェンスコンピューティングシステムに、それらモジュールを参照して本明細書において説明する機能または操作を実行させる、メインメモリの1つ以上のページセットを含む。例えば、モデルデータ収集モジュール172は、実行されたときには、本明細書において説明する位置選択機能を実行させる命令を含む、RAM内のページセットを含んでもよい。命令は、CPUの命令セット内の機械実行可能コードであってもよく、JAVA、C、C++、OBJECTIVE-C、あるいは、任意の他の人間が読み取り可能なプログラミング言語もしくは環境、で書かれたソースコードに基づいて、JAVASCRIPTや他のスクリプト言語によるスクリプトと一緒に、および他のプログラミングソーステキストと一緒に、単独であるいは組み合わせて、コンパイルされてもよい。「ページ」という用語は、メインメモリ内の任意の領域を広義に指すことを意図しており、システム内で使用される特定の用語は、メモリアーキテクチャまたはプロセッサアーキテクチャに応じて相違してもよい。別の実施形態では、サーバ170の各構成要素は、また、農業インテリジェンスコンピュータシステム130内のあるいは別のリポジトリシステム内の、不揮発性RAMまたはディスクストレージなどの大容量ストレージデバイス内にデジタル的に格納されている、ソースコードからなる1つ以上のファイルまたはプロジェクトを表してもよく、これらのファイルまたはプロジェクトは、コンパイルされたときにはあるいは解釈されたときには、実行可能な命令を生成し、この命令は、実行されたときには、農業インテリジェンスコンピューティングシステムに、それらのモジュールを参照して本明細書において説明する機能または操作を実行させる。言い換えれば、図示した図は、プログラマまたはソフトウェア開発者が、農業インテリジェンスコンピュータシステム130による実行のために、実行ファイルへのその後のコンパイル、またはバイトコードもしくはそれに相当するものへの解釈のために、ソースコードを編成および配置する態様を表してもよい。
【0054】
ハードウェア/仮想化層150は、例えば図4に関連して図示して説明するように、1つ以上の中央処理装置(CPUs)、メモリコントローラ、ならびに、揮発性または不揮発性メモリや、ディスクなどの不揮発性ストレージや、I/Oデバイスまたはインターフェースなどのコンピュータシステムの他のデバイスや構成要素や構成部材、を含む。この層150は、また、仮想化、コンテナ化、または他の技術、をサポートするように構成されたプログラムされた命令を含んでもよい。
【0055】
明確な例を図示する目的で、図1は、特定の機能要素の限られた数の実例を示している。しかしながら、他の実施形態では、任意の数のそのような要素が存在してもよい。例えば、実施形態では、異なるユーザに関連付けられた数千個のまたは数百万個の異なるモバイルコンピューティングデバイス104を使用してもよい。さらに、システム130および/または外部データサーバコンピュータ108は、物理機械または仮想機械の、2つ以上のプロセッサ、コア、クラスタ、またはインスタンスを使用して実装されてもよく、離散的な位置で構成される、あるいは、データセンタや共有コンピューティング施設やクラウドコンピューティング施設内において他の構成要素と一緒に配置される。
【0056】
2.2.アプリケーションプログラムの概要
【0057】
一実施形態では、1つ以上の汎用コンピュータ内へとロードされてその1つ以上の汎用コンピュータを使用して実行される1つ以上のコンピュータプログラムまたは他のソフトウェア要素を使用して、本明細書において説明する機能を実装することにより、その汎用コンピュータを、特定の機械として、あるいは、本明細書において説明する機能を実行するように特別に構成されたコンピュータとして、構成することとなる。さらに、本明細書でさらに説明するフロー図の各々は、単独であるいは本明細書の散文におけるプロセスおよび機能の説明と組み合わせて、説明する機能を実行するためにコンピュータまたはロジックをプログラムするために使用され得るアルゴリズムや計画やまたは指示として、機能してもよい。言い換えれば、本明細書におけるすべての散文テキストと、すべての図面の図示とは、一緒になって、このタイプの発明および開示に適した技術レベルを与えられた当業者の技術および知識と組み合わせて、本明細書において説明する機能を実行するように当業者がコンピュータをプログラムすることを可能とするのに充分なアルゴリズムや計画やまたは指示に関する開示を提供することを意図している。
【0058】
一実施形態では、ユーザ102は、オペレーティングシステムと1つ以上のアプリケーションプログラムすなわちアプリとによって構成されたフィールド管理コンピューティングデバイス104を使用して、農業インテリジェンスコンピュータシステム130と対話し、その場合、フィールド管理コンピューティングデバイス104は、また、プログラム制御またはロジック制御の下で独立的かつ自動的に農業インテリジェンスコンピュータシステムと相互運用してもよく、直接的なユーザ対話は、常に必要ではない。フィールド管理コンピューティングデバイス104とは、スマートフォン、PDA、タブレットコンピューティングデバイス、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、あるいは、情報を送受信し得るとともに本明細書において説明する機能を実行し得る任意の他のコンピューティングデバイス、のうちの1つ以上のものを広義的に表す。フィールド管理コンピューティングデバイス104は、フィールド管理コンピューティングデバイス104上に格納されたモバイルアプリケーションを使用してネットワークを介して通信してもよく、いくつかの実施形態では、このデバイスは、ケーブル113またはコネクタを使用して、センサ112および/またはコントローラ114に対して結合されてもよい。特定のユーザ102は、一度に2つ以上のフィールド管理コンピューティングデバイス104を、所有または操作または所持してもよく、それらフィールド管理コンピューティングデバイス104を、システム130に関連して使用してもよい。
【0059】
モバイルアプリケーションは、ネットワークを介して、1つ以上のモバイルコンピューティングデバイスに対して、クライアント側の機能を提供してもよい。例示的な実施形態では、フィールド管理コンピューティングデバイス104は、ウェブブラウザまたはローカルクライアントアプリケーションまたはアプリを介して、モバイルアプリケーションに対してアクセスしてもよい。フィールド管理コンピューティングデバイス104は、HTTP、XML、および/またはJSON、などのウェブベースのプロトコルまたはフォーマットを使用して、もしくはアプリ固有のプロトコルを使用して、1つ以上のフロントエンドサーバに対してデータを送信してもよく、また、1つ以上のフロントエンドサーバからデータを受信してもよい。例示的な実施形態では、データは、モバイルコンピューティングデバイス内へと入力された、フィールドデータなどの、要求およびユーザ情報の形態をとってもよい。いくつかの実施形態では、モバイルアプリケーションは、フィールド管理コンピューティングデバイス104上における、無線信号のマルチラテレーション、全地球測位システム(GPS)、WiFi測位システム、またはモバイル測位の他の方法、などの標準的な追跡技法を使用してフィールド管理コンピューティングデバイス104の位置を決定する位置追跡用のハードウェアおよびソフトウェアと相互作用する。いくつかの場合では、デバイス104および/またはユーザ102および/または1つ以上のユーザアカウントに関連する位置データまたは他のデータは、デバイスのオペレーティングシステムへの質問によって取得されてもよく、もしくは、デバイス上のアプリに、オペレーティングシステムからデータを取得するように要求することによって、取得されてもよい。
【0060】
一実施形態では、フィールド管理コンピューティングデバイス104は、限定するものではないが、1つ以上のフィールドの地理的位置、1つ以上のフィールドに関する耕耘情報、1つ以上のフィールド内に播種された作物、および1つ以上のフィールドから抽出された土壌データ、のうちの1つ以上を表すデータ値を含むフィールドデータ106を、農業インテリジェンスコンピュータシステム130に対して送信する。フィールド管理コンピューティングデバイス104は、1つ以上のフィールドのデータ値を指定するユーザ102からのユーザ入力に応答して、フィールドデータ106を送信してもよい。加えて、フィールド管理コンピューティングデバイス104は、1つ以上のデータ値がフィールド管理コンピューティングデバイス104に対して利用可能になったときには、フィールドデータ106を自動的に送信してもよい。例えば、フィールド管理コンピューティングデバイス104は、灌漑センサおよび/または灌漑コントローラを含む遠隔センサ112および/またはアプリケーションコントローラ114に対して通信可能に結合されてもよい。アプリケーションコントローラ114が1つ以上のフィールド上へと水を放出したことを示すデータを受領したことに応答して、フィールド管理コンピューティングデバイス104は、1つ以上のフィールド上へと水が放出されたことを示すフィールドデータ106を、農業インテリジェンスコンピュータシステム130に対して送信してもよい。本開示で識別されるフィールドデータ106は、HTTP上のパラメータ化されたURLを使用して、もしくは別の適切な通信プロトコルまたはメッセージングプロトコルを使用して、コンピューティングデバイスどうしの間で通信される電子デジタルデータを使用して入力および通信されてもよい。
【0061】
モバイルアプリケーションの商業的な一例は、カリフォルニア州サンフランシスコのThe Climate Corporationから市販されているCLIMATE FIELDVIEWである。CLIMATE FIELDVIEWアプリケーションは、あるいは他のアプリケーションは、本開示の出願日よりも前に開示されていなかった特徴量、機能、およびプログラミングを含むように改変または拡張または適応されてもよい。一実施形態では、モバイルアプリケーションは、統合されたソフトウェアプラットフォームを含み、栽培者のフィールドに関する過去データを、栽培者が比較を希望する任意の他のデータに対して組み合わせることのために、栽培者が、自分の操作に関して事実に基づいた決定を可能とする。組合せおよび比較は、リアルタイムで実行されてもよく、科学的なモデルに基づいているために、可能性のあるシナリオを提供して、栽培者は、より良好でかつより情報に基づいた意思決定を行うことができる。
【0062】
図2は、例示的なモバイルアプリケーションが実行のためにロードされたときの、メインメモリ内の命令セットに関する例示的なロジック編成を示す2つの図である。図2では、名称が付された各要素は、RAMまたは他のメインメモリの1つ以上のページにおける、あるいは、ディスクストレージまたは他の不揮発性ストレージの1つ以上のブロックにおける、フィールドと、それらフィールド内におけるプログラム命令を示している。一実施形態では、ビュー(a)において、モバイルコンピュータアプリケーション200は、アカウント-フィールド-データ取り込み-共有命令202と、概要および警報命令204と、デジタルマップブック命令206と、種子および播種命令208と、窒素命令210と、気象命令212と、フィールド衛生命令214と、性能命令216と、を含む。
【0063】
一実施形態では、モバイルコンピュータアプリケーション200は、手動アップロードまたはAPIsを介してサードパーティシステムからフィールドデータを受領して変換しさらに取り込むようにプログラムされた、アカウント、フィールド、データ取り込み、共有命令202を含む。データタイプは、とりわけ、フィールドの境界、収穫量マップ、播種時のマップ、土壌テストの結果、散布時のマップ、および/または、管理ゾーン、を含んでもよい。データフォーマットは、とりわけ、形状ファイル、サードパーティのネイティブデータフォーマット、および/または、農場管理情報システム(FMIS)からのエクスポート、を含んでもよい。データの受領は、手動アップロードを介して、または、添付ファイル付き電子メールを介して、または、モバイルアプリケーションに対してデータを押し込む外部APIsを介して、または、モバイルアプリケーション内へとデータを取り込むために外部システムのAPIsを呼び出す命令を介して、行われてもよい。一実施形態では、モバイルコンピュータアプリケーション200は、データ受信ボックスを含む。データ受信ボックスの選択を受領したことに応答して、モバイルコンピュータアプリケーション200は、手動でデータファイルをアップロードするとともにアップロードされたファイルをデータ管理手段へとインポートするためのグラフィカルユーザインターフェースを表示してもよい。
【0064】
一実施形態では、デジタルマップブック命令206は、デバイスメモリ内に格納されたフィールドマップデータ層を含み、データ可視化ツールおよび地理空間フィールドノートを使用してプログラムされる。これにより、栽培者に対して、参照、記録、およびフィールド性能の視覚的洞察のために、手元にある便利な情報が提供される。一実施形態では、概要および警報命令204は、栽培者にとって何が重要であるかについての操作全体のビュー、ならびに、行動を起こすためのあるいは特定の問題にフォーカスするためのタイムリーな推奨、を提供するようにプログラムされる。これにより、栽培者は、注意が必要なものに時間を集中することができ、時間を節約して、シーズンを通して収穫量を維持することができる。一実施形態では、種子および播種命令208は、科学的モデルおよび経験的データに基づいて、種子選択、ハイブリッド配置、および、可変レート(VR)スクリプト作成を含むスクリプト作成、のためのツールを提供するようにプログラムされる。これにより、栽培者は、最適化された種子の購入、配置、および個体数を通して、収穫量または投資収益率を最大化することができる。
【0065】
一実施形態では、スクリプト生成命令205は、可変レート(VR)肥沃度スクリプトを含むスクリプトを生成するためのインターフェースを提供するようにプログラムされる。このインターフェースにより、栽培者は、栄養剤の散布、播種、および灌漑、などのフィールド実装のためのスクリプトを作成することができる。例えば、播種スクリプトインターフェースは、播種用の種子タイプを特定するためのツールを含んでもよい。種子タイプの選択を受領したときには、モバイルコンピュータアプリケーション200は、デジタルマップブック命令206の一部として作成されたフィールドマップデータ層などの複数の管理ゾーンへと分割された1つ以上のフィールドを表示してもよい。一実施形態では、管理ゾーンは、土壌ゾーンと、加えて、各土壌ゾーンを識別するパネルと、各土壌に関しての土壌名やテクスチャや排水と、あるいは他のフィールドデータと、を含む。モバイルコンピュータアプリケーション200は、また、1つ以上のフィールドのマップ上に、土壌ゾーン等の管理ゾーンを描画するためのグラフィックツールなど、それらを編集したりまたは作成したりするためのツールを表示してもよい。播種手順は、すべての管理ゾーンに対して適用されてもよく、また、異なる播種手順が、管理ゾーンの異なるサブセットに対して適用されてもよい。スクリプトが作成されるときには、モバイルコンピュータアプリケーション200は、スクリプトを、アーカイブまたは圧縮されたフォーマットなど、アプリケーションコントローラによって読み取り可能なフォーマットでダウンロードできるようにしてもよい。追加的におよび/または代替的に、スクリプトは、モバイルコンピュータアプリケーション200からキャブコンピュータ115に対して直接的に送信されてもよく、および/または、1つ以上のデータサーバに対してアップロードされ、更なる使用のために保存されてもよい。
【0066】
一実施形態では、窒素命令210は、作物に対しての窒素の利用可能性を可視化することによって、窒素決定を通知するツールを提供するようにプログラムされる。これにより、栽培者は、シーズン中に最適化された窒素散布を通して、収穫量または投資収益率を最大化することができる。例示的なプログラム機能は、とりわけ、施肥ゾーンの描画を可能とするSSURGO画像などの画像、および/または、センサから取得したデータなどのサブフィールド土壌データから生成された画像を、大きな空間解像度(センサの近接性および解像度に応じてミリメートル以下の細かさ)で表示すること、既存の栽培者が規定したゾーンをアップロードすること、植物の栄養素の利用可能性のグラフを、および/または複数のゾーンにわたって窒素散布を調整できるようにするためのマップを、提供すること、機械を駆動するためのスクリプトを出力すること、大量のデータを入力および調整するためのツール、ならびに/もしくは、データを可視化するためのマップ、を含む。「大量のデータ入力」とは、この文脈では、データを一度入力し、その後、システム内で規定された複数のフィールドおよび/またはゾーンに関して同じデータを適用することを意味してもよく、例示的なデータは、同じ栽培者の多くのフィールドおよび/またはゾーンに関して同じである窒素散布データを含んでもよいが、このような大量のデータ入力は、任意のタイプのフィールドデータを、モバイルコンピュータアプリケーション200内へと入力することに対して適用される。例えば、窒素命令210は、窒素散布プログラムおよび窒素慣行プログラムの規定を受け入れるように、そして、それらプログラムを複数のフィールドにわたって適用することを指定するユーザ入力を受け入れるようにプログラムされてもよい。「窒素散布プログラム」とは、この文脈では、とりわけ、名前、カラーコードまたは他の識別子、1つ以上の散布日、各散布日に関しての材料または製品のタイプおよび量、注入またはブロードキャストなどの散布または組み込みの方法、および/または、散布対象である散布日ごとのまたは作物ごとのまたはハイブリッドごとの散布量または散布率、を関連付ける、保存された名前付きのデータセットを指す。「窒素慣行プログラム」とは、この文脈では、慣行名、以前の作物、耕耘システム、主要な耕耘日、使用された1つ以上の以前の耕耘システム、使用された肥料などの散布タイプに関する1つ以上の指標、を関連付ける、保存された名前付きのデータセットを指す。窒素命令210は、また、指定された窒素の植物使用の予測を示すとともに余剰または不足が予測されるかどうかを示す窒素グラフを生成して表示させるようにプログラムされてもよく、いくつかの実施形態では、異なる色のインジケータでもって、余剰度合いまたは不足度合いを知らせてもよい。一実施形態では、窒素グラフは、複数の行を含むコンピュータディスプレイデバイス内のグラフィックディスプレイを含み、各行は、フィールドに関連付けられていて、フィールドを識別しており、データは、フィールドにどのような作物が播種されているか、フィールドサイズ、フィールドの位置、およびフィールドの周囲のグラフィック表現を指定し、各行内には、月名に相関したポイントでの各窒素散布および量を指定するグラフィックインジケータを有した月別の予定表と、色が度合いを示す余剰または不足に関する数値的なおよび/または色付きのインジケータと、を含む。
【0067】
一実施形態では、窒素グラフは、ユーザが自身の窒素グラフを最適化できるように、窒素プログラムや播種プログラムや慣行プログラムを動的に変更するための、ダイヤルまたはスライダバーなどの1つ以上のユーザ入力特徴物を含んでもよい。その後、ユーザは、最適化された窒素グラフおよび関連する窒素プログラムや播種プログラムや慣行プログラムを使用して、可変レート(VR)肥沃度スクリプトを含む1つ以上のスクリプトを実装してもよい。窒素命令210は、また、指定された窒素の植物使用の予測を示すとともに余剰または不足が予測されるかどうかを示す窒素マップを生成して表示させるようにプログラムされてもよく、いくつかの実施形態では、異なる色のインジケータが、余剰度合いまたは不足度合いを知らせてもよい。窒素マップは、指定された窒素の植物使用の予測、および余剰または不足が予測されるかどうかを、過去および未来の異なる時間(日ごと、週ごと、月ごと、または年ごと、など)について、余剰または不足に関して、数値的な指標を使用して、および/または、色が度合いを示すようにして色付きの指標を使用して、表示してもよい。一実施形態では、窒素マップは、ダイヤルまたはスライダバーなどの1つ以上のユーザ入力特徴物を含み、これにより、窒素プログラムや播種プログラムや慣行プログラムを動的に変更することができ、これにより、ユーザは、不足に対する余剰の好ましい量を取得するなどのように、自身の窒素マップを最適化することができる。その後、ユーザは、自身の最適化された窒素マップおよび関連する窒素プログラムや播種プログラムや慣行プログラムを使用して、可変レート(VR)肥沃度スクリプトを含む1つ以上のスクリプトを実装してもよい。他の実施形態では、窒素命令210と同様の命令を、他の栄養素(リンおよびカリウムなど)の散布プログラム、農薬の散布プログラム、および灌漑プログラムプログラムに関して、使用することができる。
【0068】
一実施形態では、気象命令212は、フィールド固有の最新の気象データおよび予測された気象情報を提供するようにプログラムされる。これにより、栽培者は、時間を節約し得るとともに、日々の操作上の決定に関して効率的な統合表示を行うことができる。
【0069】
一実施形態では、フィールド衛生命令214は、シーズン内の作物の変動および潜在的な懸念を強調する遠隔センシング画像をタイムリーに提供するようにプログラムされる。例示的なプログラム機能は、とりわけ、可能性のある雲または雲の影を識別するための雲チェック、フィールド画像に基づく窒素指数の決定、例えばフィールド衛生やビューや偵察メモの共有に関連したものを含めた偵察層のグラフィック的可視化、ならびに/もしくは、複数の情報源からの衛星画像のダウンロードおよび栽培者のための画像の優先ランク付け、を含む。
【0070】
一実施形態では、性能命令216は、評価、洞察、および決定のために、農場でのデータを使用した、報告ツール、分析ツール、および洞察ツール、を提供するようにプログラムされる。これにより、栽培者は、投資利益率が以前のレベルであった理由についての事実に基づく結論を通して、また、収穫量制限要因についての洞察を通して、次年度の改良された成果を追求することができる。性能命令216は、1つ以上のネットワーク109を介して、農業インテリジェンスコンピュータシステム130および/または外部データサーバコンピュータ108で実行されるバックエンド分析プログラムに対して通信するようにプログラムされてもよく、とりわけ、収穫量、収穫量差、ハイブリッド、個体数、SSURGOゾーン、土壌試験特性、または標高、などの指標を分析するように構成される。プログラムされた報告および分析は、とりわけ、収穫量変動の分析、処理効果の推定、多数の栽培者から収集した匿名データに基づく他の栽培者に対する収穫量およびその他の指標のベンチマーク、あるいは、種子および播種に関するデータ、を含んでもよい。
【0071】
このように構成された命令を有したアプリケーションは、同じ一般的なユーザインターフェースの外観を維持しながら、異なるコンピューティングデバイスプラットフォーム向けに実装されてもよい。例えば、モバイルアプリケーションは、タブレット上で、または、スマートフォン上で、または、クライアントコンピュータでブラウザを使用してアクセスされるサーバコンピュータ上で、実行するようにプログラムされてもよい。さらに、タブレットコンピュータまたはスマートフォン用に構成されたモバイルアプリケーションは、キャブコンピュータ115の表示および処理能力に適したフルアプリ経験またはキャブアプリ経験を提供してもよい。例えば、ここで図2のビュー(b)を参照すると、一実施形態では、キャブコンピュータアプリケーション220は、マップ-キャブ命令222と、遠隔ビュー命令224と、データ収集および転送命令226と、機械警報命令228と、スクリプト転送命令230と、偵察-キャブ命令232と、を含んでもよい。ビュー(b)の命令に関するコードベースは、ビュー(a)の場合と同じであってもよく、コードを実装する実行ファイルは、それらが実行されているプラットフォームのタイプを検出するように、そして、グラフィカルユーザインターフェースを介して、キャブプラットフォームまたはフルプラットフォームに適した機能のみを公開するように、プログラムされてもよい。このアプローチにより、システムは、キャブ内の環境とキャブの異なる技術環境とに適した、明確に異なるユーザ経験を認識することができる。マップ-キャブ命令222は、機械操作を指示するのに有用なフィールドや農場や地域のマップビューを提供するようにプログラムされてもよい。遠隔ビュー命令224は、無線ネットワーク、有線コネクタまたはアダプタ、および同種のものを介してシステム130に対して接続された他のコンピューティングデバイスに対して、リアルタイムでまたはほぼリアルタイムで、機械活動のビューを、オンとする、管理する、および提供するようにプログラムされてもよい。データ収集および転送命令226は、センサおよびコントローラで収集されたデータの転送を、無線ネットワーク、有線コネクタまたはアダプタ、および同種のものを介してシステム130に対して、オンとする、管理する、および提供するようにプログラムされてもよい。機械警報命令228は、キャブに対して関連付けられた機械またはツールの操作に関する問題点を検出するように、そして、オペレータ警報を生成するように、プログラムされてもよい。スクリプト転送命令230は、機械の操作またはデータ収集を指示するように構成された命令のスクリプトを転送するように構成されてもよい。偵察キャブ命令232は、フィールド内におけるフィールド管理コンピューティングデバイス104の位置または農業装置111の位置またはセンサ112の位置に基づいて、システム130から受領した位置ベースの警報および情報を表示するように、そして、フィールド内の農業装置111の位置またはセンサ112の位置に基づいて、システム130へと、位置ベースの偵察観測の転送を、取り込むように、管理するように、および提供するように、プログラムされてもよい。
【0072】
2.3.コンピュータシステムへのデータ取り込み
【0073】
一実施形態では、外部データサーバコンピュータ108は、1つ以上のフィールドに関する土壌組成を表す土壌データと、1つ以上のフィールド上における温度および降水量を表す気象データと、を含む外部データ110を格納する。気象データは、過去および現在の気象データと、将来の気象データの予測と、を含んでもよい。一実施形態では、外部データサーバコンピュータ108は、異なる事業体によってホストされる複数のサーバを含む。例えば、第1のサーバは、土壌組成データを含有してもよく、第2のサーバは、気象データを含んでもよい。これに加えて、土壌組成データは、複数のサーバ内に格納されてもよい。例えば、1つのサーバは、土壌中の砂、泥、および粘土の割合を表すデータを格納してもよく、第2のサーバは、土壌中の有機物(OM)の割合を表すデータを格納してもよい。
【0074】
一実施形態では、遠隔センサ112は、1つ以上の観測値を生成するようにプログラムまたは構成された1つ以上のセンサを含む。遠隔センサ112は、人工衛星などの空中センサ、車両センサ、播種機器センサ、耕耘センサ、肥料または殺虫剤散布センサ、ハーベスタセンサ、ならびに、1つ以上のフィールドからデータを受領し得る任意の他の実装物、であってもよい。一実施形態では、アプリケーションコントローラ114は、農業インテリジェンスコンピュータシステム130から命令を受領するようにプログラムまたは構成される。アプリケーションコントローラ114は、また、農業用車両または農業用実装物の動作パラメータを制御するようにプログラムまたは構成されてもよい。例えば、アプリケーションコントローラは、トラクタ、播種機器、耕耘機器、肥料または殺虫剤機器、ハーベスタ機器、あるいは、水バルブなどの他の農場実装物、などの車両の動作パラメータを制御するようにプログラムまたは構成されてもよい。他の実施形態は、センサとコントローラとの任意の組合せを使用してもよく、その中で、以下のものは、選択された例にすぎない。
【0075】
システム130は、共有データベースシステムに対してデータを提供した多数の栽培者から、大量に、ユーザ102の制御において、データを取得または取り込んでもよい。データを取得するこの形態は、1つ以上のユーザ制御下でのコンピュータ操作が、システム130による使用のためにデータを取得するように要求またはトリガされることのために、「手動データ取り込み」と称されてもよい。一例として、カリフォルニア州サンフランシスコのThe Climate Corporationから市販されているCLIMATE FIELDVIEWアプリケーションを操作することにより、リポジトリ160内に格納するために、データをシステム130へとエクスポートしてもよい。
【0076】
例えば、種子モニタシステムは、播種装置の構成要素を制御し得るとともに、登録および/または診断のためのCANバックボーンおよびポイントツーポイント接続を含む信号ハーネスを介して、種子センサからの信号を含む播種データを取得することができる。種子モニタシステムは、キャブコンピュータ115を介してあるいはシステム130内の他のデバイスを介して、種子の間隔や個体数や他の情報をユーザに対して表示するようにプログラムまたは構成することができる。例は、米国特許第8,738,243号明細書および米国特許公開第20150094916号明細書に開示されており、本開示は、これらの他の特許開示の知識を前提としている。
【0077】
同様に、収穫量モニタシステムは、収穫量測定データをキャブコンピュータ115に対してまたはシステム130内の他のデバイスに対して送信するハーベスタ装置の収穫量センサを含んでもよい。収穫量モニタシステムは、コンバインまたは他のハーベスタ内における穀物水分測定値を取得するために、そして、これらの測定値を、キャブコンピュータ115を介してまたはシステム130内の他のデバイスを介してユーザに対して送信するために、1つ以上の遠隔センサ112を利用してもよい。
【0078】
一実施形態では、本明細書の他の場所で説明するタイプの任意の移動車両または移動装置と共に使用され得るセンサ112の例は、運動学的センサおよび位置センサを含む。運動学的センサは、レーダーまたは車輪速度センサなどの速度センサ、加速度計、またはジャイロ、のいずれかを含んでもよい。位置センサは、GPSレシーバまたはトランシーバ、あるいは、とりわけ近くのWiFiホットスポットに基づいて位置を決定するようにプログラムされたWiFiベースの位置アプリまたはマッピングアプリ、を含んでもよい。
【0079】
一実施形態では、トラクタまたは他の移動車両と共に使用され得るセンサ112の例は、エンジン速度センサ、燃料消費センサ、GPSまたはレーダー信号と相互作用するエリアカウンタまたは距離カウンタ、PTO(パワーテイクオフ)速度センサ、圧力または流量などの油圧パラメータを検出するように構成されたトラクタ油圧センサ、および/または、油圧ポンプ速度センサや車輪速度センサや車輪スリップセンサ、を含む。一実施形態では、トラクタと共に使用され得るコントローラ114の例は、油圧方向コントローラおよび/または圧力コントローラおよび/または流量コントローラ、油圧ポンプ速度コントローラ、速度コントローラまたはガバナ、ヒッチ位置コントローラ、あるいは、自動操舵を提供する車輪位置コントローラ、を含む。
【0080】
一実施形態では、播種機、ドリル、または空気式播種機、などの種子播種機器と共に使用され得るセンサ112の例には、光学式センサや電磁式センサや衝撃センサとされ得る種子センサ、荷重ピンや荷重セルや圧力センサなどのダウンフォースセンサ、反射率センサや水分センサや電気伝導率センサや光学式残留物センサや温度センサなどの土壌特性センサ、播種深さセンサやダウンフォースシリンダ圧力センサやシードディスク速度センサやシード駆動モータエンコーダやシードコンベアシステム速度センサや真空レベルセンサなどの構成部材動作基準センサ、あるいは、光学式センサまたは他の電磁式センサまたは衝撃センサなどの農薬散布センサ、を含む。一実施形態では、そのような種子播種機器と共に使用され得るコントローラ114の例は、油圧シリンダに関連したバルブのためのコントローラなどのツールバーフォールドコントローラ、空気圧シリンダやエアバッグや油圧シリンダに関連したバルブのためのコントローラなどのダウンフォースコントローラであり、個々の列ユニットに対してまたは播種機フレーム全体に対してダウンフォースを適用するようにプログラムされたダウンフォースコントローラ、リニアアクチュエータなどの播種深さコントローラ、電気式シードメータ駆動モータや油圧式シードメータ駆動モータやスワス制御クラッチなどの計量コントローラ、種子メータ駆動モータなどのあるいは種子メータや中央バルクホッパーに対してのまたはそこからの種子または空気種子混合物の送出を選択的に許可または防止するようにプログラムされた他のアクチュエータなどのハイブリッド選択コントローラ、電気種子メータ駆動モータや油圧種子メータ駆動モータなどの計量コントローラ、ベルト種子送出コンベアモータのためのコントローラなどの種子コンベアシステムコントローラ、空気圧アクチュエータまたは油圧アクチュエータのためのコントローラなどのマーカコントローラ、もしくは、計量駆動コントローラやオリフィスサイズコントローラやオリフィス位置コントローラなどの農薬散布量コントローラ、を含む。
【0081】
一実施形態では、耕耘機器と共に使用され得るセンサ112の例は、シャンクまたはディスクなどのツールのための位置センサ、深さやギャング角度や横方向間隔を検出するように構成されたそのようなツールのためのツール位置センサ、ダウンフォースセンサ、あるいは、牽引力センサ、を含む。一実施形態では、耕耘機器と共に使用され得るコントローラ114の例は、ツールの深さやギャング角度や横方向間隔を制御するように構成されたコントローラなどのダウンフォースコントローラまたはツール位置コントローラを含む。
【0082】
一実施形態では、播種機上のスターター肥料システムや土壌中肥料散布機や肥料噴霧機などの、肥料や殺虫剤や殺菌剤や同種のものを散布する装置に関連して使用され得るセンサ112の例は、流量センサまたは圧力センサなどの流体システム基準センサ、どのスプレーヘッドバルブまたはどの流体ラインバルブが開放されているかを示すセンサ、充填レベルセンサなどの、タンクに関連したセンサ、部分的なまたはシステム全体に関する供給ラインセンサあるいは行固有の供給ラインセンサ、もしくは、噴霧機のブーム上に配置された加速度計などの運動学的センサ、を含む。一実施形態では、そのような装置と共に使用され得るコントローラ114の例は、ポンプ速度コントローラ、圧力や流量や方向やPWMや同種のものを制御するようにプログラムされたバルブコントローラ、もしくは、ブーム高さやサブソイラ深さやブーム位置などのための位置アクチュエータ、を含む。
【0083】
一実施形態では、ハーベスタと共に使用され得るセンサ112の例は、衝撃プレート歪みまたは位置センサや、静電容量式流量センサや、エレベータまたはオーガに関連した荷重センサや重量センサやトルクセンサや、光学式または他の電磁式の穀物高さセンサ、などの収穫量モニタ、静電容量式センサなどの穀物水分センサ、衝撃センサや光学式センサや静電容量式センサなどの穀物損失センサ、ヘッダ高さセンサやヘッダタイプセンサやデッキプレートギャップセンサやフィーダ速度センサやリール速度センサなどのヘッダ動作基準センサ、凹状クリアランスセンサやロータ速度センサやシュークリアランスセンサやシャファークリアランスセンサなどのセパレータ動作基準センサ、位置や動作や速度に関するオーガセンサ、あるいは、エンジン速度センサ、を含む。一実施形態では、ハーベスタと共に使用され得るコントローラ114の例は、ヘッダ高さやヘッダタイプやデッキプレートギャップやフィーダ速度やリール速度などの、構成部材に関するヘッダ動作基準コントローラ、凹状クリアランスやロータ速度やシュークリアランスやシャファークリアランスなどの特徴物のためのセパレータ動作基準コントローラ、あるいは、オーガの位置や動作や速度のためのコントローラ、を含む。
【0084】
一実施形態では、穀物カートと共に使用され得るセンサ112の例は、重量センサ、あるいは、オーガの位置や動作や速度のためのセンサ、を含む。一実施形態では、穀物カートと共に使用され得るコントローラ114の例は、オーガの位置や動作や速度のためのコントローラを含む。
【0085】
一実施形態では、センサ112およびコントローラ114の例は、無人航空機(UAV)装置または「ドローン」に設置されてもよい。そのようなセンサは、可視光や赤外や紫外や近赤外(NIR)や同種のものを含む電磁スペクトルの任意の範囲に有効な検出器を有したカメラ、加速度計、高度計、温度センサ、湿度センサ、ピトー管センサまたは他の対気速度センサまたは風速センサ、バッテリ寿命センサ、レーダーエミッタおよび反射レーダーエネルギー検出装置、他の電磁放射エミッタおよび反射電磁放射検出装置、を含んでもよい。そのようなコントローラは、誘導制御装置またはモータ制御装置、制御面コントローラ、カメラコントローラ、あるいは、上記のセンサのいずれかを起動したり操作したりそこからデータを取得したり管理したり構成したりするようにプログラムされたコントローラ、を含んでもよい。例は、米国特許出願第14/831,165号明細書に開示されており、本開示は、この他の特許開示の知識を前提としている。
【0086】
一実施形態では、センサ112およびコントローラ114は、土壌をサンプリングするとともに土壌化学試験と土壌水分試験と土壌に関連した他の試験とを実行するように構成またはプログラムされた土壌サンプリング測定装置に対して固定されてもよい。例えば、米国特許第8,767,194号明細書および米国特許第8,712,148号明細書に開示されている装置を使用してもよく、本開示は、これらの特許開示の知識を前提としている。
【0087】
一実施形態では、センサ112およびコントローラ114は、フィールドの気象条件を監視するための気象デバイスを含んでもよい。例えば、2017年8月16日付けで出願された米国特許出願第15/551,582号明細書に開示された装置を使用してもよく、本開示は、これらの特許開示の知識を前提としている。
【0088】
2.4.プロセスの概要-農学的モデルの訓練
【0089】
一実施形態では、農業インテリジェンスコンピュータシステム130は、農学的モデルを作成するようにプログラムまたは構成される。この文脈では、農学的モデルは、農業インテリジェンスコンピュータシステム130のメモリ内のデータ構造であり、1つ以上のフィールドに関する識別データおよび収穫データなどのフィールドデータ106を含む。農学的モデルは、また、フィールド上において1つ以上の作物の生育に影響を与え得る条件、または、1つ以上の作物の特性、のうちの、一方または双方を記述する、計算された農学的特性を含んでもよい。加えて、農学的モデルは、作物の推奨、灌漑の推奨、播種の推奨、肥料の推奨、殺菌剤の推奨、農薬の推奨、収穫の推奨、および、他の作物管理の推奨などの、農学的要因に基づく推奨を含んでもよい。農学的要因は、また、農学的収穫量などの、1つ以上の作物に関連した結果を推定するために使用されてもよい。作物の農学的収穫量は、生産される作物の量に関しての推定値であり、いくつかの例では、生産された作物から得られる収入または利益の推定値である。
【0090】
一実施形態では、農業インテリジェンスコンピュータシステム130は、事前構成された農学的モデルを使用することにより、1つ以上のフィールドに関して現在受領している位置情報および作物情報に関連した農学的特性を計算してもよい。事前構成された農学的モデルは、識別データ、収穫データ、肥料データ、および気象データを含むがこれらに限定されない、以前に処理されたフィールドデータに基づいている。事前構成された農学的モデルは、モデルの精度を確保するために、交差検証されてもよい。交差検証は、同じ場所においてまたは近くの場所において、降水量の推定値を、気象データを提供している雨量計またはセンサと比較したり、あるいは、窒素含有量の推定値を土壌サンプルの測定値と比較したり、するなどの、予測された結果を、フィールド上の実際の結果と比較する、グランドトゥルースとの比較を含んでもよい。
【0091】
図3は、農業インテリジェンスコンピュータシステムが、1つ以上のデータソースによって提供されたフィールドデータを使用して、1つ以上の事前構成された農学的モデルを生成するプログラムプロセスを示している。図3は、これから説明する動作を実行するために農業インテリジェンスコンピュータシステム130の機能的構成要素をプログラミングするためのアルゴリズムまたは命令として機能してもよい。
【0092】
ブロック305において、農業インテリジェンスコンピュータシステム130は、1つ以上のデータソースから受領したフィールドデータに関して農学的データの前処理を実装するように構成またはプログラムされる。1つ以上のデータソースから受領したフィールドデータは、受領したフィールドデータ値に悪影響を及ぼし得る測定された外れ値を含む農学的データ内において、ノイズ、歪曲効果、および交絡因子を除去する目的で、前処理されてもよい。農学的データの前処理の実施形態は、外れデータ値と一般的に関連したデータ値の除去、他のデータ値を不必要に歪ませることが知られている特定の測定データポイントの除去、ノイズからの加算効果または乗算効果を除去または低減するために使用されるデータの平滑化技法または集約技法またはサンプリング技法、ならびに、正のデータ入力と負のデータ入力とを明確に区別するために使用される他のフィルタリング技法またはデータ導出技法、を含んでもよいけれども、これらに限定されない。
【0093】
ブロック310において、農業インテリジェンスコンピュータシステム130は、初期的な農学的モデル生成のために有効なデータセットを識別するために、前処理されたフィールドデータを使用してデータサブセットの選択を実行するように構成またはプログラムされる。農業インテリジェンスコンピュータシステム130は、遺伝的アルゴリズム法、全サブセットモデル法、逐次検索法、ステップワイズ回帰法、粒子群最適化法、およびアントコロニー最適化法、を含むがこれらに限定されない、データサブセット選択技法を実装してもよい。例えば、遺伝的アルゴリズム選択技法は、自然淘汰および遺伝学の進化原理に基づく適応型ヒューリスティック検索アルゴリズムを使用することにより、前処理された農学的データ内においてデータセットを決定して評価する。
【0094】
ブロック315において、農業インテリジェンスコンピュータシステム130は、フィールドデータセットの評価を実装するように構成またはプログラムされる。一実施形態では、特定のフィールドデータセットは、農学的モデルを作成し、作成された農学的モデルに対して特定の品質しきい値を使用することにより、評価される。農学的モデルは、限定するものではないが、リーブワンアウト交差検証を使用した二乗平均平方根誤差(RMSECV)、平均絶対誤差、および平均パーセンテージ誤差、などの1つ以上の比較技法を使用して、比較および/または検証を行ってもよい。例えば、RMSECVは、農学的モデルによって作成された予測された農学的特性値を、収集および分析された過去の農学的特性値と比較することによって、農学的モデルを交差検証することができる。一実施形態では、農学的データセットの評価ロジックは、構成された品質しきい値を満たさない農学的データセットが、将来のデータサブセット選択ステップ(ブロック310)時に使用されるフィードバックループとして使用される。
【0095】
ブロック320において、農業インテリジェンスコンピュータシステム130は、交差検証された農学的データセットに基づいて農学的モデルの作成を実装するように構成またはプログラムされる。一実施形態では、農学的モデルの作成は、事前構成された農学的データモデルを作成するために多変量回帰技法を実装してもよい。
【0096】
ブロック325において、農業インテリジェンスコンピュータシステム130は、将来のフィールドデータ評価のために、事前構成された農学的データモデルを格納するように構成またはプログラムされる。
【0097】
2.5.実装例-ハードウェアの概要
【0098】
一実施形態によると、本明細書において説明する技法は、1つ以上の特別目的コンピューティングデバイスによって実装される。特別目的コンピューティングデバイスは、技法を実行するように配線されてもよく、あるいは、技法を実行するように持続的にプログラムされた1つ以上の特定用途向け集積回路(ASICs)またはフィールドプログラマブルゲートアレイ(FPGAs)などのデジタル電子デバイスを含んでもよく、あるいは、ファームウェアやメモリや他のストレージやまたはこれらの組合せにおけるプログラム命令に従って技法を実行するようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含んでもよい。このような特別目的コンピューティングデバイスは、また、技法を実現するために、カスタムハードワイヤードロジックまたはASICsまたはFPGAsを、カスタムプログラミングと組み合わせてもよい。特別目的コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワークデバイス、あるいは、技法を実現するためにハードワイヤードロジックおよび/またはプログラムロジックを組み込んだ他のデバイス、であってもよい。
【0099】
例えば、図4は、本発明の一実施形態が実装され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を通信するためのバス402または他の通信機構と、情報を処理するためにバス402と結合されたハードウェアプロセッサ404と、を含む。ハードウェアプロセッサ404は、例えば、汎用マイクロプロセッサであってもよい。
【0100】
コンピュータシステム400は、また、情報を記憶するためにならびにプロセッサ404によって実行されるべき命令を記憶するために、バス402に対して結合された、ランダムアクセスメモリ(RAM)または他の動的ストレージなどのメインメモリ406を含む。メインメモリ406は、また、プロセッサ404によって実行されるべき命令の実行時に一時的な変数または他の中間情報を格納するために使用されてもよい。そのような命令は、プロセッサ404に対してアクセス可能な非一時的なストレージ媒体内に記憶されるときには、コンピュータシステム400を、命令で指定された操作を実行するようにカスタマイズされた特別目的の機械とする。
【0101】
コンピュータシステム400は、プロセッサ404のための静的な情報および命令を記憶するために、バス402に対して結合された読み取り専用メモリ(ROM)408または他の静的なストレージをさらに含む。磁気ディスク、光ディスク、またはソリッドステートドライブなどのストレージデバイス410が設けられ、情報および命令を格納するためにバス402に対して結合される。
【0102】
コンピュータシステム400は、コンピュータユーザに対して情報を表示するために、陰極線管(CRT)などのディスプレイ412に対してバス402を介して結合されてもよい。英数字キーおよび他のキーを含む入力デバイス414が、情報選択およびコマンド選択をプロセッサ404に対して伝達するために、バス402に対して結合される。ユーザ入力デバイスの別のタイプは、方向情報およびコマンド選択をプロセッサ404に対して通信するための、ならびに、ディスプレイ412上のカーソル移動を制御するための、マウスまたはトラックボールまたはカーソル方向キーなどのカーソル制御手段416である。この入力デバイスは、典型的には、第1軸(例えば、x)および第2軸(例えば、y)という2つの軸でもって2つの自由度を有し、デバイスが平面内の位置を指定することを可能とする。
【0103】
コンピュータシステム400は、カスタマイズされたハードワイヤードロジック、1つ以上のASICsまたはFPGAs、ファームウェアおよび/またはプログラムロジックを使用して、本明細書において説明する技法を実装してもよく、これらは、コンピュータシステムとの組合せにより、コンピュータシステム400を特殊目的機械とするあるいはそのようにプログラムする。一実施形態によれば、本明細書の技法は、プロセッサ404が、メインメモリ406に含まれる1つ以上の命令のうちの、1つ以上のシーケンスを実行したことに応答して、コンピュータシステム400によって実行される。そのような命令は、ストレージデバイス410などの別のストレージ媒体から、メインメモリ406内へと読み込まれてもよい。メインメモリ406に含まれる命令シーケンスの実行は、プロセッサ404に、本明細書において説明するプロセスステップを実行させる。代替可能な実施形態では、ソフトウェア命令に代えてあるいはソフトウェア命令と組み合わせて、ハードワイヤード回路を使用してもよい。
【0104】
本明細書で使用する際には、「ストレージ媒体」という用語は、機械を特定の態様で動作させるデータおよび/または命令を格納する任意の非一時的媒体を指す。このようなストレージ媒体は、不揮発性媒体および/または揮発性媒体を含んでもよい。不揮発性媒体は、例えば、光ディスク、磁気ディスク、または、ストレージデバイス410などのソリッドステートドライブ、を含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。ストレージ媒体の一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープまたは他の任意の磁気データストレージ媒体、CD-ROM、任意の他の光学的データストレージ媒体、複数の穴からなるパターンを有した任意の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任意の他のメモリチップまたはカートリッジ、を含む。
【0105】
ストレージ媒体は、伝送媒体とは異なるものの、伝送媒体と組み合わせて使用してもよい。伝送媒体は、ストレージ媒体どうしの間の情報転送に関与する。例えば、伝送媒体は、バス402を構成するワイヤを含めて、同軸ケーブル、銅線、および光ファイバ、を含む。伝送媒体は、また、ラジオ波および赤外線によるデータ通信時に生成されるものなどの、音響波または光波の形態をとることもできる。
【0106】
様々な形態の媒体が、1つ以上の命令のうちの1つ以上のシーケンスを実行のためにプロセッサ404に対して伝送することに関与してもよい。例えば、命令は、初期的には、遠隔コンピュータの磁気ディスクまたはソリッドステートドライブ上へと伝送されてもよい。遠隔コンピュータは、命令をそのダイナミックメモリ内にロードし得るとともに、モデムを使用して電話回線を介して命令を送信することができる。コンピュータシステム400に対してローカルなモデムは、電話回線上のデータを受領し得るとともに、赤外線送信機を使用してデータを赤外線信号へと変換することができる。赤外線検出器は、赤外線信号として伝送されたデータを受領することができ、適切な回路は、データを、バス402上に配置することができる。バス402は、データをメインメモリ406へと伝送し、そこからプロセッサ404が命令を取り出して実行する。メインメモリ406が受領した命令は、任意選択的に、プロセッサ404による実行の前または後のいずれかで、ストレージデバイス410上に記憶されてもよい。
【0107】
コンピュータシステム400は、また、バス402に対して結合された通信インターフェース418を含む。通信インターフェース418は、ローカルネットワーク422に対して接続されているネットワークリンク420に対して、双方向のデータ通信結合を提供する。例えば、通信インターフェース418は、統合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、あるいは、対応するタイプの電話回線に対してのデータ通信接続を提供するためのモデム、であってもよい。別の例として、通信インターフェース418は、互換性のあるLANに対してのデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであってもよい。また、無線リンクを実装してもよい。任意のそのような実装において、通信インターフェース418は、様々なタイプの情報を表すデジタルデータストリームを伝送する電気信号または電磁信号または光信号を送受信する。
【0108】
ネットワークリンク420は、典型的には、1つ以上のネットワークを介して他のデータデバイスに対してデータ通信を提供する。例えば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424に対しての接続、またはインターネットサービスプロバイダ(ISP)426が運営するデータ機器に対しての接続、を提供してもよい。ISP426は、次に、現在一般的に「インターネット」428と称されている世界的なパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク422およびインターネット428は、共に、デジタルデータストリームを伝送する電気信号または電磁信号または光信号を使用する。様々なネットワークを介した信号、ならびに、コンピュータシステム400との間でデジタルデータを伝送するネットワークリンク420上の信号および通信インターフェース418を介した信号は、伝送媒体の例示的な形態である。
【0109】
コンピュータシステム400は、1つ以上のネットワーク、ネットワークリンク420、および通信インターフェース418を介して、メッセージを送信し得るとともに、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ430が、アプリケーションプログラムのための要求されたコードを、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェース418を通して、送信することができる。
【0110】
受領したコードは、受領時にプロセッサ404によって実行されてもよく、および/または、後で実行するために、ストレージデバイス410または他の不揮発性ストレージ内に記憶されてもよい。
【0111】
3.機能の説明
【0112】
いくつかの実施形態では、分類モデル管理サーバ(サーバ)170は、植物病害の認識のためにあるいは他の分類関連の目的のために、初期的畳み込みニューラルネットワーク(CNN)を更新するようにプログラムされる。図8は、更新されたCNNの一例を示している。
【0113】
AlexNet、VGG、GoogleNet、またはResNetなどの、公開されている様々なCNNsが、植物病害の認識のために適応されており、適応された各バージョンを初期的CNNとして使用することができる。図8は、そのような典型的なCNNの一部として、フレームワーク802を含む。フレームワーク802は、各々が畳み込み層とプーリング層とを含む一連をなす複数の畳み込みブロックを含み、各畳み込み層は、画像の1つ以上の特徴量に対して各々対応する1つ以上のフィルタを含む。畳み込み層によって生成される画像または特徴マップのサイズは、フレームワーク802に沿って下がっていく。例えば、最初の畳み込みブロック812は、224×224の画像を受け入れており、最後の畳み込みブロック816は、7×7の特徴マップを生成している。他方、フィルタの数は、フレームワーク802に沿って上がることができる。例えば、最後の畳み込みブロック816におけるフィルタの数は、512とすることができる。これは、フレームワーク802が、512個の7×7特徴マップを出力することを意味する。
【0114】
CNNの最後のいくつかの畳み込みブロックにおけるフィルタは、個々のクラスをより代表し得る、よりグローバルな特徴量に対応することが多い。図9は、典型的なCNNの異なる畳み込みブロック内におけるフィルタに対応した特徴量に関する例示的なグラフィック表示を示している。この例では、CNNは、顔の表情を分類するように設計されている。部分902は、CNNの複数の初期的な畳み込みブロックのうちの、1つの初期的な畳み込みブロックにおけるフィルタに対応した、与えられた画像の特徴量を示している。これらの特徴量は、多くの画像に現れたりあるいは背景の一部を構成したりし得るような小さな領域を描写する傾向がある。部分904は、CNNの複数の中間的な畳み込みブロックのうちの、1つの中間的な畳み込みブロックにおけるフィルタに対応した、与えられた画像の特徴量を示している。これらの特徴量は、目や鼻などの、顔の一部を描写する傾向がある。部分906は、CNNの複数の最終的な畳み込みブロックのうちの、1つの最終的な畳み込みブロックにおけるフィルタに対応した、与えられた画像の特徴量を示している。これらの特徴量は、顔全体を描写する傾向があり、異なるパーツどうしが連携して、ある種の顔の表情を特徴付けている。したがって、CNNの最後のいくつかの畳み込みブロック内におけるフィルタは、個々のクラスを表す可能性が高く、これらのフィルタからの選択は、より意味があり得る。
【0115】
いくつかの実施形態では、サーバ170は、更新されたCNNが正確な分類のために充分な主要特徴量のみを実質的に取得するように、最後の畳み込みブロック内の特定のフィルタなどの選択されたフィルタをオフにすることによって、初期的CNNを一般化するようにプログラムされる。
【0116】
3.1 特徴マップの収集
【0117】
いくつかの実施形態では、サーバ170は、フィルタを選択するためのあるいはそれらフィルタに対応した特徴量を選択するための特徴マップのセットを構築するようにプログラムされる。植物病害の場合、所与のCNNを適用する目的は、植物の写真が与えられたときに、その植物が、多数の植物病害のうちのいずれかに感染しているかどうかを決定することである。トウモロコシに関しては、一般的な植物病害は、炭疽病葉枯病(ALB)、一般的なさび病(CR)、斑点病(EYE)、灰色葉斑点(GLS)、ゴス萎凋病(GW)、すす紋病(NLB)、北方斑点病(NLS)、ごま葉枯病(SLB)、および、南方さび病(SR)、を含む。したがって、健全な植物を示すクラスを含めて、少なくとも10個のクラスが存在し得る。サーバ170は、また、複数の植物病害に各々対応する追加的なクラスを規定するように構成することができる。各クラスについて、サーバ170は、まず特定数の画像を収集するようにプログラムされ、各画像は、対応する植物病害の症状を有した植物を示している、あるいは、そのクラスを特徴付けるあらゆる特徴量を示している。例えば、その特定数は、1,000個とすることができ、10個のクラスすべてに関しては、合計で10,000個の画像セットとなる。画像セットは、クラス内における、環境または他の要因による小さな変動をカバーし得る。例えば、画像セットは、接種されたトウモロコシ植物の写真を含むことができる、あるいは、接種されていない通常のトウモロコシ植物の写真を含むことができる。複数の植物病害に対応したクラスが存在する場合、収集された各画像は、それら複数の植物病害の症状を有した植物を示していてもよい。
【0118】
いくつかの実施形態では、サーバ170は、収集された画像の各々を、初期的CNNを通して、そしてついには、最後のいくつかの畳み込みブロックのうちの特定の畳み込みブロックを通して、実行するようにプログラムされる。図8に戻ると、特定の畳み込みブロックは、一番最後の畳み込みブロック816とすることができる。その結果、各画像に対して、例えば畳み込みブロック816の場合には512個などのように、特定の畳み込みブロックの特定の畳み込み層内におけるフィルタの数と同数の特徴マップが生成される。
【0119】
3.2 特徴量の選択
【0120】
いくつかの実施形態では、サーバ170は、特徴マップに基づいて、特定の畳み込みブロック内におけるフィルタを、あるいは、対応した特徴量を、ランク付けするようにプログラムされる。効率化の目的のために、特徴マップの各々は、グローバル平均プーリングを通して1つの値へと低減することができる。グローバル平均プーリングは、フィルタを選択して、初期的CNNをどのように更新するかを決定するために実行されるけれども、グローバル平均プーリング層は、後述するように、初期的CNNの一部、あるいは、更新されたCNNの一部、とすることができる。図8に戻ると、フレームワーク802に対して接続されているフレームワーク804は、グローバル平均プーリング層を表している。512個の7×7特徴マップの各々は、49個の値の平均として1つの値へと低減され、これにより、512個の値のベクトルが生成され、各ベクトルは、分類のために使用される特徴量に対応する。その結果、収集された画像の数と同数のベクトルが得られる。
【0121】
いくつかの実施形態では、サーバ170は、複数のベクトルからなるベクトルセットを使用して、特定の畳み込みブロック内のフィルタをランク付けするようにプログラムされる。上述した例では、10個のクラスの各々について1,000個を使用すると、10,000個のベクトルとなる。サーバ170は、これらのベクトルの各々を、そのベクトルが構築された元の画像に関連付けられたクラスラベルに対して、関連付けるようにプログラムされる。上述した例では、各クラスラベルは、元の画像に写っている植物が感染した植物病害に関連したクラスを識別することとなる。具体的には、サーバ170は、ベクトルセットからランダムフォレストを構築するようにプログラムすることができる。ランダムフォレストは、この場合に分類のために使用される特徴量となるであろう変数の重要性をランク付けするために使用することができる。このようなランク付けは、例えば、Rパッケージ内のランダムフォレスト関数によって実装される。サーバ170は、当業者には公知のモデル変数をランク付けするための他の技法を適用するようにプログラムすることができ、例えば、特徴量どうしの間の、あるいは、個々の特徴量のスコープどうしの間の、相関関係を決定し、その後、冗長な特徴量あるいは広すぎる特徴量を除去するように、プログラムすることができる。
【0122】
いくつかの実施形態では、サーバ170は、次に、特定数の最高ランクの特徴量を選択するようにプログラムされる。最大数は、すべてのフィルタまたは対応した特徴量を選択することに対応する、初期的CNNの特定の畳み込みブロック内のフィルタの数であろう。最小数は、更新されたCNNによって認識されて識別される必要のあるクラスの数であろう。特定数は、最大数と最小数との間の任意の数となるように、事前に規定することができる。
【0123】
3.3 分類モデルの修正
【0124】
いくつかの実施形態では、サーバ170は、フィルタまたは対応した特徴量の選択に基づいて、CNNを更新するようにプログラムされる。更新されたCNNは、新たな画像を複数のクラスへと分類するために使用することができ、例えば、より高い効率およびより高い効果で、トウモロコシ植物の新たな写真を、健康クラスまたは複数の病害クラスへと分類するために使用することができる。
【0125】
いくつかの実施形態では、サーバは、非選択のフィルタを、特定の畳み込みブロックから、単に削除または切断するようにプログラムされる。これに代えて、サーバは、この項において後述するステップを実行するようにプログラムされ、これは、特定の畳み込みブロックが初期的CNNの一番最後のものである場合に、特に好適である。一連をなす複数の畳み込みブロックの後に、サーバ170は、それが初期的CNNの一部ではない場合に、グローバル平均プーリング層を追加するようにプログラムされる。サーバ170は、マスキング層をさらに追加するようにプログラムされており、このマスキング層は、最高ランクのフィルタを単に保持して、他のフィルタをマスクオフするものであり、すなわち言い換えれば、選択されたフィルタに対応した集約的特徴マップのみを受け入れるものである。図8に戻ると、マスキング層を含むフレームワーク804に対して、フレームワーク806が接続されている。
【0126】
いくつかの実施形態では、初期的CNNは、一連をなす複数の畳み込みブロックに続く分類ブロックを含む。分類ブロックは、最後の畳み込みブロック内のフィルタをクラスに対して接続する全結合層と、これに続くソフトマックス層と、を含んでもよい。サーバ170は、全結合層に関して、選択されたフィルタに関連した重みを再利用するようにプログラムされる。図8に戻ると、フレームワーク808は、全結合層を含み、フレームワーク810は、ソフトマックス層を含む。初期的CNNでは、全結合層の512個のフィルタに対して512個の重みが存在する。ここで、更新されたCNN内の特定のフィルタがマスクオフされているため、非選択のフィルタに関する重みは、全結合層ではもはや必要ない。他の実施形態では、サーバ170は、初期的CNNの残部において他の重みを再利用しつつ、元の画像セットによって、選択されたフィルタの重みを再訓練するようにプログラムされる。
【0127】
3.4 代替可能な実施形態
【0128】
いくつかの実施形態では、特定の畳み込みブロック内において固定数のフィルタを選択することに代えて、サーバ170は、後述するように、収集された画像のセットに関して最適な数のフィルタを探すようにプログラムされる。図10は、選択されたフィルタまたは対応した特徴量の数が変化する際の、CNNに関する例示的な性能チャートを示している。この性能チャートは、画像の2つのサブセットについて、特定の畳み込み層から選択された特徴量の異なる数をx軸として、分類精度のヒストグラムをy軸として、含んでいる。画像の2つのサブセットは、各々、接種された状態で栽培された植物に、また、接種されていない状態で栽培された植物に、対応する。
【0129】
図10では、データポイント1002は、すべての特徴量の選択に対応している。上述した例では、最後の畳み込みブロック806は、512個のフィルタを有しており、そのため、特徴量の総数は、512個である。よって、バーの値は、初期的CNNの分類精度を示している。この例では、初期的CNNは、接種された状態で栽培された植物のみに対応した画像のサブセットから構築されたため、そのような植物に対しては高い分類精度を達成しているが、接種されていない状態で栽培された植物に対しては、低い分類精度である。データポイント1006は、最小数の特徴量の選択に対応しており、この最小数は、典型的には、CNNによって認識されて識別されるクラスの数である。上述した例では、9つの植物病害に対するクラスの数は、10個である。データポイント1004は、接種されていない状態で栽培された植物に関して、更新されたCNNの性能が、ピーク付近まで大幅に増加する一方で、接種された状態で栽培された植物に対する性能が、依然としてピーク付近に留まるような、中間的な数の特徴量の選択に対応している。したがって、この中間的な数が、特徴量またはフィルタの数として最適な数となり得る。このようにして、初期的CNNを、特定の畳み込みブロックから選択された異なる数のフィルタに対応して異なる方法で暫定的に更新することができ、そして、暫定的に更新されたCNNsの性能に基づいて、特徴量に関する最適な数を決定することができ、さらに、初期的CNNフレームワークを、最適数のフィルタの選択を使用して最終的に更新することができる。
【0130】
いくつかの実施形態では、更新されたCNNフレームワークは、専門家の入力によって、さらに改良することができる。サーバ170は、ディスプレイデバイスに、選択された特徴量に関する視覚的表現を表示させるように、プログラムすることができる。特徴量の視覚的表現は、その特徴量に一致する元の画像の一部分を強調する態様であってもよい。強調表示された一部分が、元の画像が属するクラスを特徴付ける物理的属性のように見える場合には、強調表示された一部分の閲覧者は、特徴量の関連性の確認を提供してもよい。
【0131】
いくつかの実施形態では、サーバ170は、クラス活性化マップの作成あるいは逆畳み込みネットワークの実行などの、当業者には公知の可視化技法を適用するように構成することができる。kを特徴量の数とし、cをクラスの数とした場合に、式M(x,y)=Σ (x,y)に基づいて、畳み込み層によって生成された特徴マップの空間内の各(x,y)に寄与度を割り当てるクラス活性化マップに関して、サーバ170は、特定の畳み込みブロックによって生成され、更新されたCNNのために選択された特徴マップを、f(x,y)として使用するように、および、更新されたCNNフレームワーク内の新たな全結合層の重みを、w として使用するように、プログラムすることができる。逆畳み込みネットワークに関して、サーバ170は、初期的CNNまたは更新されたCNN内における一連をなす複数の畳み込みブロックを通してそしてついには特定の畳み込みブロックを通して、元の画像を実行するように、さらに、特定の畳み込み層によって生成されたすべての特徴マップをゼロとするように、構成することができる。その後、サーバ170は、更新されたCNN内において選択されたフィルタの視覚的表現のための基礎データを、表示のためにクライアントデバイスに対して送信するように、さらに、更新されたCNNフレームワークのために含まれるそれらのフィルタからの更なる選択を受領するように、構成することができる。サーバ170は、フィルタの更なる選択に基づいて、上述したように、更新されたCNNをさらに改訂するように構成することができる。
【0132】
3.5 例示的なプロセス
【0133】
図11は、クラス特有の特徴量にフォーカスするためにCNNをブラッシュアップするようにプログラムされたサーバコンピュータによって実行される例示的な方法を示している。図11は、実行されたときには本明細書において説明する機能的改良および技術的進歩を実行する1つ以上のコンピュータプログラムまたは他のソフトウェア要素を実装するために使用し得るアルゴリズムまたは計画または概要を開示することを意図している。さらに、本明細書のフロー図は、当業者が、蓄積された技術および知識を使用してコード化または実装することを計画しているソフトウェアプログラムの基礎を形成するアルゴリズムまたは計画または仕様について互いに通信するために通常的に使用するのと同じレベルの詳細さで記述されている。
【0134】
いくつかの実施形態では、ステップ1102において、サーバ170は、初期的CNNを表すデジタルデータを受領するようにプログラムまたは構成される。CNNは、一連をなす複数の畳み込みブロックを含み、一連をなす複数の畳み込みブロックの各々は、1つ以上のフィルタを有した畳み込み層を含み、最後の畳み込みブロック内の畳み込み層は、特定数の特徴量に対応した特定数のフィルタを有している。畳み込みブロックの各々は、また、プーリング層を含むことができる。初期的CNNは、また、一連をなす複数の畳み込みブロックに続いて、グローバル平均プーリング層と、全結合層と、ソフトマックス層と、を含むことができる。初期的CNNは、例えばトウモロコシの葉の写真を健康クラスまたは1つの病害クラスへと分類するなどのように、与えられた画像を複数のクラスのうちの1つへと分類するように訓練される。
【0135】
いくつかの実施形態では、ステップ1104において、サーバ170は、複数のデジタル画像からなるデジタル画像セットと、複数のクラスの1つを各々識別する複数のクラスラベルからなる対応クラスラベルセットと、を受領するようにもプログラムまたは構成される。デジタル画像セットは、初期的CNNを訓練するために使用される画像、あるいは、複数のクラスへと分類されることもできる追加的な画像、を含むことができる。例えば、初期的CNNを訓練するために使用されるデジタル画像セットのいくつかは、GLSに感染した接種されたトウモロコシに対応してもよく、追加的な画像は、GLSに感染した通常の非接種のトウモロコシに対応してもよい。
【0136】
いくつかの実施形態では、ステップ1106において、サーバ170は、一連をなす複数の畳み込みブロックを通してデジタル画像セットの各デジタル画像を実行することにより、デジタル画像セットの各デジタル画像に関して特定数の特徴マップを生成するようにプログラムまたは構成される。特徴マップは、初期的CNNの最後の畳み込みブロック内の畳み込み層によって生成され、更新されたCNNにランク付けされて選択的に組み込まれるのは、その最後の畳み込みブロック内のフィルタである。
【0137】
いくつかの実施形態では、ステップ1108において、サーバ170は、デジタル画像セットの各デジタル画像に関する特定数の特徴マップの各々に関して集約を計算することにより、デジタル画像セットの各デジタル画像に関して特定数の集約のベクトルを生成するようにプログラムまたは構成される。集約値は、特徴マップ内のすべての値の平均値とすることができる。
【0138】
いくつかの実施形態では、ステップ1110において、サーバ170は、デジタル画像セットに関してのベクトルセットに基づいて、および、関連したクラスラベルセットに基づいて、特定数のフィルタをランク付けするようにプログラムまたは構成される。ベクトルが最終的に複数のクラスへと分類される方法に基づいて、フィルタまたはベクトル属性を順序付けするために、様々な技法を使用することができる。1つの例示的な技法は、ベクトルセットからランダムフォレストを構築し、変数またはベクトル属性に関する重要性指標を得ることである。
【0139】
いくつかの実施形態では、ステップ1112において、サーバ170は、特定数のフィルタから特定数の最高ランクのフィルタを選択するようにプログラムまたは構成される。サーバ170は、複数のクラスのサイズと、ベクトルを構築するために使用された最後の畳み込みブロック内のフィルタの総数と、の間の固定数を、特定数として使用するようにプログラムすることができる。これに代えて、サーバ170は、異なる暫定的に更新されたCNNsを通して異なる数を試すように、そして、それらの数のうちの1つを、最終的に更新されたCNNのための特定数として選択するように、プログラムすることができる。
【0140】
いくつかの実施形態では、ステップ1114において、サーバ170は、一連をなす複数の畳み込みブロックと、特定数のフィルタのうち非選択のフィルタをマスクアウトするマスキング層と、特定数のフィルタを複数のクラスに対して接続する全結合層と、を含む更新されたCNNを構築するようにプログラムまたは構成される。初期的CNNが、最後の畳み込みブロック内の畳み込み層内におけるすべてのフィルタを複数のクラスに対して接続する全結合層を有している場合には、選択されたフィルタに関連したその全結合層内の重みは、更新されたCNNの全結合層内において再利用することができる。これに代えて、更新されたCNNの全結合層内におけるそれらの重みは、当業者には公知の任意のCNN訓練技法を使用して、訓練することができる。更新されたCNNは、一連をなす複数の畳み込みブロックとマスキング層との間に、最後の畳み込みブロックによって生成された各特徴マップを1つの値へと低減するグローバル平均プーリング層を、さらに含むことができる。更新されたCNNは、信頼度スコアを持つ分類を生成するために、最後にソフトマックス層をさらに含むことができる。
【0141】
いくつかの実施形態では、ステップ1116において、サーバ170は、更新されたCNNを、クライアントデバイスから受領した新たな画像に対して適用することにより、複数のクラスのうちの1つ以上へと新たな画像を分類するようにプログラムまたは構成される。例えば、新たな画像は、トウモロコシの葉に関する別の写真とすることができる。ステップ1118では、サーバ170は、分類を別のデバイスに対して送信するようにプログラムまたは構成される。例えば、分類は、トウモロコシの葉が、複数の植物病害のいずれかに感染しているかどうかを示すことができる。
【0142】
4.拡張機能および代替手段
【0143】
上述した本明細書では、本発明の実施形態について、実装ごとに相違し得る多数の具体的な詳細を参照して説明した。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。本発明の範囲に関する唯一のかつ排他的な指標であって、本出願人が本発明の範囲であることを意図しているものは、その後のあらゆる修正も含めて請求項が生じる特定の形態での、本出願から生じる請求項のセットに関する文字通りの範囲ならびに同等の範囲である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11