(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】情報処理装置、情報処理方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20241209BHJP
A01G 7/00 20060101ALI20241209BHJP
【FI】
G06T7/00 350B
A01G7/00 603
(21)【出願番号】P 2020179983
(22)【出願日】2020-10-27
【審査請求日】2023-10-27
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】瀧本 将史
(72)【発明者】
【氏名】山本 竜也
(72)【発明者】
【氏名】小野 英太
(72)【発明者】
【氏名】間宮 悟
(72)【発明者】
【氏名】弘岡 茂樹
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2019-087229(JP,A)
【文献】特開2019-186918(JP,A)
【文献】国際公開第2018/173577(WO,A1)
【文献】特開2020-106467(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A01G 7/00
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
オブジェクトの撮影に係る情報に基づいて、互いに異なる学習環境において学習した複数の学習モデルから1以上の学習モデルを候補学習モデルとして選択する第1選択手段と、
前記第1選択手段が選択した候補学習モデルによるオブジェクト検出処理の結果に基づいて、該候補学習モデルから1以上の候補学習モデルを選択する第2選択手段と、
前記第2選択手段が選択した候補学習モデルのうちの少なくともいずれか一つの候補学習モデルを用いて、前記オブジェクトの撮影画像に対するオブジェクト検出処理を行う検出手段と
、
前記オブジェクト検出処理の結果として得られるオブジェクトの検出領域に基づいて、農作物の収量の予測、圃場における修繕箇所の検出を行う手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記第1選択手段は、前記情報に基づいてクエリパラメータを生成し、前記複数の学習モデルのうち該クエリパラメータが示す環境と類似する環境において学習した1以上の学習モデルを候補学習モデルとして選択することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2選択手段は、前記第1選択手段が選択した候補学習モデルごとに、該候補学習モデルによるオブジェクト検出処理の結果に基づくスコアを求め、該スコアに基づいて、前記第1選択手段が選択した候補学習モデルから1以上の候補学習モデルを選択することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
更に、
前記第2選択手段が選択した候補学習モデルによるオブジェクト検出処理の結果を表示させる表示制御手段を備えることを特徴とする請求項1ないし3の何れか1項に記載の情報処理装置。
【請求項5】
前記表示制御手段は、前記第2選択手段が選択したそれぞれの候補学習モデルがオブジェクト検出処理を行った複数の撮影画像のそれぞれについて、候補学習モデル間でオブジェクト検出処理の結果が大きく異なるほど大きいスコアを決定し、前記第2選択手段が選択した候補学習モデルごとに、スコアが大きい順に上位から規定枚数の撮影画像に対する該候補学習モデルによるオブジェクト検出処理の結果を含むGUIを表示させることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記GUIは候補学習モデルを選択するための選択部を含み、
前記検出手段は、前記GUIにおいてユーザ操作に応じて選択された選択部に対応する候補学習モデルを選択学習モデルとし、該選択学習モデルを用いてオブジェクト検出処理を行うことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記検出手段は、前記表示制御手段が候補学習モデルごとに表示したオブジェクト検出処理の結果のうち、ユーザ操作に応じて選択されたオブジェクト検出処理の結果が最も多い候補学習モデルを選択学習モデルとし、該選択学習モデルを用いてオブジェクト検出処理を行うことを特徴とする請求項5に記載の情報処理装置。
【請求項8】
前記情報は、前記撮影画像のExif情報、前記撮影画像を撮影した圃場に係る情報、前記撮影画像に含まれるオブジェクトに係る情報、を含むことを特徴とする請求項1ないし
7の何れか1項に記載の情報処理装置。
【請求項9】
前記情報は、前記撮影画像に含まれるオブジェクトに係る情報を含むことを特徴とする請求項1ないし7の何れか1項に記載の情報処理装置。
【請求項10】
前記検出手段は、前記第2選択手段が選択した候補学習モデルのうちユーザ操作に基づいて選択された候補学習モデルを用いて、前記オブジェクトの撮影画像に対する前記オブジェクト検出処理を行うことを特徴とする請求項1ないし
9の何れか1項に記載の情報処理装置。
【請求項11】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の第1選択手段が、オブジェクトの撮影に係る情報に基づいて、互いに異なる学習環境において学習した複数の学習モデルから1以上の学習モデルを候補学習モデルとして選択する第1選択工程と、
前記情報処理装置の第2選択手段が、前記第1選択工程で選択した候補学習モデルによるオブジェクト検出処理の結果に基づいて、該候補学習モデルから1以上の候補学習モデルを選択する第2選択工程と、
前記情報処理装置の
第1検出手段が、前記第2選択工程で選択した候補学習モデルのうちの少なくともいずれか一つの候補学習モデルを用いて、前記オブジェクトの撮影画像に対するオブジェクト検出処理を行う
第1検出工程と
、
前記情報処理装置の第2検出手段が、前記オブジェクト検出処理の結果として得られるオブジェクトの検出領域に基づいて、農作物の収量の予測、圃場における修繕箇所の検出を行う第2検出工程と
を備えることを特徴とする情報処理方法。
【請求項12】
コンピュータを、請求項1ないし
10の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影画像に基づく予測のための技術に関するものである。
【背景技術】
【0002】
近年、農業において、収量の予測、最適な収穫時期の予測や農薬散布量の制御、圃場修復計画等、多様な問題解決に役立てるために、IT化によって課題を解決する取り組みが盛んに行われている。
【0003】
例えば、特許文献1には、農作物を生育させる場から取得したセンサ情報とそれら情報を格納したデータベースを適宜参照することにより生育状況や収穫予測を早期に把握し、生育の異常状態を早期に発見して対処する方法が開示されている。
【0004】
また、特許文献2には、農作物に関する多種多様なセンサから獲得した情報を基に登録済の情報を参照して任意の推論を行うことで農作物の品質や収量のばらつきを抑制する圃場管理を行う方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2005-137209号公報
【文献】特開2016-49102号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来から提案されてきた方式では、予測等を実施する圃場に関して過去取得した事例を充分数保持し、該事例に関する情報を基に予測事項が精度良く推定できるような調整作業が済んでいることが前提となっている。
【0007】
一方で、農作物の出来不出来は一般的に、天候・気候等の環境の変動に大きく影響を受け、作業者による肥料・農薬等の散布状態によっても大きく異なる。全ての外的要因による条件が毎年不変であるならば、収量の予測や収穫時期の予測等は実施する必要すら無くなるが、工業と異なり農業は作業者自ら制御不可能な外的要因が多いため、予測は非常に困難である。また、未経験の天候が続いた場合の収量等を予測するような場合、上記の過去に取得した事例から調整された推定システムでは正しい予測が困難である。
【0008】
最も予測が困難なケースは、新規に上記の予測システムを圃場に導入した場合である。例えば、特定の圃場で収量の予測や、生育不良な領域(枯れ枝・病変)を修繕することを目的とした非生産領域の検出を行う場合を考える。こういったタスクにおいては通常、上記の圃場で過去に収集した農作物に関する画像やパラメータをデータベースに保持しておく。そして、実際に圃場に対して予測等を実施する際には、観測された現在の圃場で撮影された画像やその他センサから取得された生育情報に関わるデータを相互に参照して調整し、精度良く予測する。しかし、上記の如く、これらの予測システムや非生産領域検出器を異なる新規の圃場にも導入した場合、(圃場の)条件が合致しないことが多いために、すぐに適用することができない。こういった場合は、新規の圃場で充分な数のデータの収集を実施して調整するという作業が必要であった。
【0009】
また、上記の予測システムや非生産領域検出器の調整を人手による調整で行う場合、農作物の生育に関わるパラメータは高次元になるため多くの手間がかかる。また、ディープラーニングやそれらに準じた機械学習的手法で実施する場合であっても、新規の入力に対して良い性能を発揮するためには通常、人手によるラベル付与(アノテーション)作業が必要となるため、作業コストが大きくかかってしまう。
【0010】
本来であれば、予測システムを新規に導入する際や、過去に無かった天災や天候の場合であっても、ユーザの負荷が少ない簡易な設定で良好な予測・推定を行うことが好ましい。
【0011】
本発明では、過去に収集している情報のみから処理が困難である場合や、過去に収集した情報が無い場合であっても、状況に応じた学習モデルによる処理を可能にするための技術を提供する。
【課題を解決するための手段】
【0012】
本発明の一様態は、オブジェクトの撮影に係る情報に基づいて、互いに異なる学習環境において学習した複数の学習モデルから1以上の学習モデルを候補学習モデルとして選択する第1選択手段と、
前記第1選択手段が選択した候補学習モデルによるオブジェクト検出処理の結果に基づいて、該候補学習モデルから1以上の候補学習モデルを選択する第2選択手段と、
前記第2選択手段が選択した候補学習モデルのうちの少なくともいずれか一つの候補学習モデルを用いて、前記オブジェクトの撮影画像に対するオブジェクト検出処理を行う検出手段と、
前記オブジェクト検出処理の結果として得られるオブジェクトの検出領域に基づいて、農作物の収量の予測、圃場における修繕箇所の検出を行う手段と
を備えることを特徴とする。
【発明の効果】
【0013】
本発明の構成によれば、過去に収集している情報のみから処理が困難である場合や、過去に収集した情報が無い場合であっても、状況に応じた学習モデルによる処理を可能にすることができる。
【図面の簡単な説明】
【0014】
【
図2B】ステップS23における処理の詳細を示すフローチャート。
【
図2C】ステップS233における処理の詳細を示すフローチャート。
【
図3】カメラ10による圃場の撮影方法の一例を示す図。
【
図5】撮影画像に対してアノテーション作業を行った結果を示す図。
【
図8B】ステップS83における処理の詳細を示すフローチャート。
【
図8C】ステップS833における処理の詳細を示すフローチャート。
【
図11】(A)はクエリパラメータの構成例を示す図、(B)は学習モデルのパラメータセットの構成例を示す図、(C)はクエリパラメータの構成例を示す図。
【発明を実施するための形態】
【0015】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0016】
[第1の実施形態]
本実施形態では、カメラによって撮影された圃場の撮影画像から、該圃場における農作物の収量の予測や修繕箇所の検出等、該圃場の分析処理を行うシステムについて説明する。
【0017】
まず、本実施形態に係るシステムの構成例について、
図1を用いて説明する。
図1に示す如く、本実施形態に係るシステムは、カメラ10、クラウドサーバ12、情報処理装置13を有する。
【0018】
まず、カメラ10について説明する。カメラ10は圃場の動画像を撮影し、該動画像における各フレームの画像を「圃場の撮影画像」として出力する。もしくはカメラ10は圃場の静止画像を定期的もしくは不定期的に撮影し、該撮影した静止画像を「圃場の撮影画像」として出力する。撮影画像から後述の予測を正確に行うためには、同じ圃場で撮影した画像は可能な限り同じ環境、条件で撮影されていることが望ましい。カメラ10から出力された撮影画像はLANやインターネットなどの通信網11を介してクラウドサーバ12や情報処理装置13に対して送信される。
【0019】
カメラ10による圃場の撮影方法は特定の撮影方法に限らない。カメラ10による圃場の撮影方法の一例を
図3(A)を用いて説明する。
図3(A)ではカメラ10としてカメラ33およびカメラ34を用いている。一般的な圃場では、農家によって計画的に植えられた農作物の木が列をなしており、例えば、
図3(A)に示す如く、農作物の木の列30や農作物の木の列31のように、何列も農作物の木が並んで植えられている。農作業用トラクター32には、矢印で示している進行方向において左側の農作物の木の列31を撮影するカメラ34と、右側の農作物の木の列30を撮影するカメラ33と、が設けられている。よって農作業用トラクター32が列30と列31との間を矢印で示す進行方向に移動すると、カメラ34は列31における農作物の木の撮影画像を複数枚撮影することになり、カメラ33は列30における農作物の木の撮影画像を複数枚撮影することになる。
【0020】
農作業用トラクター32が入って作業するようにデザインされ、等間隔に農作物の木が植えられているような多くの圃場では、
図3(A)に示す如く農作業用トラクター32に設置されたカメラ33,34で農作物の木を撮影することで、より多くの農作物の木を一定の高さで農作物の木から一定の距離を保った状態で撮影することが比較的容易に実現できる。そのため、ほとんど同じ条件で対象の圃場全ての画像を撮影することが可能となり、望ましい条件での画像撮影が容易に実現される。
【0021】
なお、概ね同等の条件で圃場の撮影を行うことが可能であれば、他の撮影方法を採用しても良い。カメラ10による圃場の撮影方法の一例を
図3(B)を用いて説明する。
図3(B)ではカメラ10としてカメラ38およびカメラ39を用いている。
図3(B)に示す如く、農作物の木の列35と農作物の木の列36との間の間隔が狭く、トラクターによる走行が不可能な圃場等では、ドローン37に取り付けたカメラ38およびカメラ39による撮影でも良い。ドローン37には、矢印で示している進行方向において左側の農作物の木の列36を撮影するカメラ39と、右側の農作物の木の列35を撮影するカメラ38と、が設けられている。よってドローン37が列35と列36との間を矢印で示す進行方向に移動すると、カメラ39は列36における農作物の木の撮影画像を複数枚撮影することになり、カメラ38は列35における農作物の木の撮影画像を複数枚撮影することになる。
【0022】
また、自走ロボットに設置されたカメラによって農作物の木の撮影画像を撮影するようにしても良い。また、撮影に用いるカメラの数は
図3(A)、(B)では2としているが、特定の数に限らない。
【0023】
農作物の木の撮影画像をどのような撮影方法で撮影したとしても、カメラ10は、撮像画像には、該撮影画像の撮影時における撮影情報(撮影位置(例えばGPSによって測定された撮影位置)、撮影日時、カメラ10に係る情報等が記録されたExif情報)を添付して出力する。
【0024】
次に、クラウドサーバ12について説明する。クラウドサーバ12には、カメラ10から送信される撮影画像およびExif情報が登録される。また、クラウドサーバ12には、撮影画像から農作物に係る画像領域を検出するための学習モデル(検出器/設定)が複数登録されており、それぞれの学習モデルは互いに異なる学習環境で学習したモデルである。そしてクラウドサーバ12は、自身が保持している複数の学習モデルのうち、撮影画像から農作物に係る画像領域を検出する際に用いる学習モデルの候補を選択して情報処理装置13に提示する。
【0025】
CPU191は、RAM192やROM193に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU191は、クラウドサーバ12全体の動作制御を行うと共に、クラウドサーバ12が行うものとして説明する各種の処理を実行もしくは制御する。
【0026】
RAM192は、ROM193や外部記憶装置196からロードされたコンピュータプログラムやデータを格納するためのエリア、I/F197を介して外部から受信したデータを格納するためのエリア、を有する。さらにRAM192は、CPU191が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM192は、各種のエリアを適宜提供することができる。
【0027】
ROM193には、クラウドサーバ12の設定データ、クラウドサーバ12の起動に係るコンピュータプログラムやデータ、クラウドサーバ12の基本動作に係るコンピュータプログラムやデータ、などが格納されている。
【0028】
操作部194は、キーボード、マウス、タッチパネルなどのユーザインターフェースであり、ユーザが操作することで各種の指示をCPU191に対して入力することができる。
【0029】
表示部195は、液晶画面やタッチパネル画面などの画面を有し、CPU191による処理結果を画像や文字などでもって表示することができる。なお、表示部195は、画像や文字を投影するプロジェクタなどの投影装置であっても良い。
【0030】
外部記憶装置196は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置196には、OS(オペレーティングシステム)や、クラウドサーバ12が行うものとして説明する各種の処理をCPU191に実行もしくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置196に保存されているデータには、上記の学習モデルに係るデータも含まれている。外部記憶装置196に保存されているコンピュータプログラムやデータは、CPU191による制御に従って適宜RAM192にロードされ、CPU191による処理対象となる。
【0031】
I/F197は、外部とのデータ通信を行うための通信インターフェースであり、クラウドサーバ12は、I/F197を介して外部とのデータの送受信を行う。CPU191、RAM192、ROM193、操作部194、表示部195、外部記憶装置196、I/F197、は何れもシステムバス198に接続されている。なお、クラウドサーバ12の構成は
図1に示した構成に限らない。
【0032】
なお、カメラ10から出力された撮影画像およびExif情報を一時的に他の装置のメモリに格納し、該メモリから通信網11を介してクラウドサーバ12に該撮影画像およびExif情報を転送するようにしても良い。
【0033】
次に、情報処理装置13について説明する。情報処理装置13は、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末装置、などのコンピュータ装置である。情報処理装置13は、クラウドサーバ12によって提示された学習モデルの候補をユーザに提示してユーザからの学習モデルの選択を受け付け、ユーザにより選択された学習モデルをクラウドサーバ12に通知する。クラウドサーバ12は、情報処理装置13から通知された学習モデル(候補からユーザが選択した学習モデル)用いて、カメラ10による撮影画像から農作物に係る画像領域の検出(オブジェクト検出処理)を行って、上記の分析処理を行う。
【0034】
CPU131は、RAM132やROM133に格納されているコンピュータプログラムやデータを用いて各種の処理を行う。これによりCPU131は、情報処理装置13全体の動作制御を行うと共に、情報処理装置13が行うものとして説明する各種の処理を実行もしくは制御する。
【0035】
RAM132は、ROM133からロードされたコンピュータプログラムやデータを格納するためのエリア、入力I/F135を介してカメラ10やクラウドサーバ12から受信したデータを格納するためのエリア、を有する。さらにRAM132は、CPU131が各種の処理を実行する際に用いるワークエリアを有する。このように、RAM132は、各種のエリアを適宜提供することができる。
【0036】
ROM133には、情報処理装置13の設定データ、情報処理装置13の起動に係るコンピュータプログラムやデータ、情報処理装置13の基本動作に係るコンピュータプログラムやデータ、などが格納されている。
【0037】
出力I/F134は、情報処理装置13が各種の情報を外部に出力/送信するために用いるインターフェースである。
【0038】
入力I/F135は、情報処理装置13が各種の情報を外部から入力/受信するために用いるインターフェースである。
【0039】
表示装置14は、液晶画面やタッチパネル画面を有し、CPU131による処理結果を画像や文字などでもって表示することができる。なお、表示装置14は、画像や文字を投影するプロジェクタなどの投影装置であっても良い。
【0040】
ユーザインターフェース15は、キーボードやマウスを含み、ユーザが操作することで各種の指示をCPU131に対して入力することができる。なお、情報処理装置13の構成は
図1に示した構成に限らず、例えば、ハードディスクドライブ装置などの大容量情報記憶装置を有し、該ハードディスクドライブ装置に後述するGUIなどのコンピュータプログラムやデータを保存しておいても良い。また、ユーザインターフェース15には、タッチパネルなどのタッチセンサを含めても良い。
【0041】
次に、カメラ10により撮影された圃場の撮影画像から、該圃場で収穫される農作物の収量を収穫時期よりも早い段階で予測するタスクの流れについて説明する。単純に収穫時期に収穫対象である果実等をカウントすることによって収穫量を予測する場合、単純に特定物体検出と称される方法で対象果実を撮影画像から識別器によって検出すれば目的が達成される。これは、果実自体が極めて特徴的な外観を有しているため、この特徴的な外観を学習した識別器によって検出する方法である。
【0042】
本実施形態では、農作物が果実の場合は、該果実が成熟した後に該果実をカウントすることのみに留まらず、収穫時期よりも早い段階で該果実の収量を予測する。例えば、後に果実となる花序を検出してその数から収量を予測したり、果実が生る可能性の低い枯れ枝や病変領域を検出することで収量を予測したり、木の葉の生い茂り方の状態から収量を予測したりする。このような予測を行うためには、撮影時期や気候によって農作物の生育状況が異なってくることに対応した予測方法が必要となる。つまり、農作物の状況に応じて、予測性能が良い予測方式を選択する必要が有る。この場合、予測対象の圃場に合致した学習モデルによって上記の予測を適切に行うことが期待される。
【0043】
ここで、撮影画像内に写る様々なオブジェクトを農作物の木の幹クラス、枝クラス、枯れ枝クラス、支柱クラス等のクラスに分類し、クラスによって収量を予測する。撮影時期によって木の幹クラスや枝クラス等のクラスに属するオブジェクトの外観は変わるため、万能な予測は困難である。このような困難な事例を
図4に示す。
【0044】
図4(A)および
図4(B)は、上記のカメラ10によって撮影された撮影画像の一例を示している。これらの撮影画像には、ほぼ等間隔に農作物の木が写っているが、収穫される予定の果実等が未だなっていないので、該撮影画像からは果実を検出するタスクは実行できない。
図4(A)の撮影画像中の木は、比較的シーズンの早い段階で撮影された農作物の木であり、
図4(B)の撮影画像中の木は、ある程度葉が生い茂った段階で撮影された木である。
図4(A)の撮影画像では、どの木の枝も同程度葉が有るため、生育不良な領域は無いと判断でき、全て収穫可能な領域と判定することができる。一方で
図4(B)の撮影画像では、該撮影画像中の中央領域41付近の枝の葉の生い茂り方が明らかに他と異なっており、生育不良と判断することは容易である。しかし、中央領域41(葉が少ない領域)の様子は、
図4(A)の撮影画像中の領域40付近でも、同様のパターンとして見つけることができる。この2つの事例が示すことは、農産物の木の異常領域は局所的なパターンでは判定不可能ということである。つまり、上記の特定物体検出のような局所パターンのみの入力で判断はできず、画像全体から得られるコンテキストを反映させることが必要となる。
【0045】
つまり、過去に同様の生育状況の農作物を同様の条件で撮影した画像で学習した学習モデルを用いて上記の特定物体検出を行わなければ、充分な性能を発揮することができない。
【0046】
過去に撮影したことのない新規の圃場で撮影した画像が入力された場合や、日照りが続いた、雨量が極端に多かった等の何かの外的要因によって以前に撮影した条件と異なる条件における画像が入力された場合のみならず、ユーザが都合の良い時期に撮影した画像が入力された場合など、のあらゆるケースに対応するためには、毎度、入力画像の条件に近い条件で学習した学習モデルを獲得する必要がある。
【0047】
ここで、圃場の撮影を行うたびに毎回アノテーション作業とディープラーニングによる学習を実施する場合に、どのようなアノテーション作業が必要となるのかについて説明する。例えば、
図4(A)、
図4(B)のそれぞれの撮影画像に対してアノテーション作業を行った結果を、それぞれ
図5(A)、
図5(B)に示す。
【0048】
図5(A)の撮影画像における矩形領域500~504がアノテーション作業によって指定された画像領域である。矩形領域500は、正常な枝の領域として指定された画像領域であり、矩形領域501~504は、木の幹の領域として指定された画像領域である。矩形領域500は、木の生育に関して正常な状態を表している画像領域であるため、該画像領域が収量の予測に大きく関連する領域となる。以下では、矩形領域500のような、木の生育に関して正常な状態を表す領域、果実等が収穫可能な部分の領域、を生産領域と称する。
【0049】
図5(B)の撮影画像における矩形領域505~507、511~514がアノテーション作業によって指定された画像領域である。矩形領域505,507は、正常な枝の領域として指定された画像領域であり、矩形領域506は、異常な枯れ枝の領域として指定された画像領域である。矩形領域506のような、異常な状態を表す領域、果実等が収穫不可能な部分の領域、を非生産領域と称する。矩形領域511~514は、木の幹の領域として指定された画像領域である。果実等が収穫可能な部分の領域(生産領域)と判断される画像領域は矩形領域505、507であるから、該矩形領域505,507が収量の予測に大きく関連する領域となる。
【0050】
このようなアノテーション作業を圃場の撮影の度に多数(例えば、数百~数千枚)の撮影画像に対して実施するには、非常にコストがかかる。そこで、本実施形態では、このようなより煩わしいアノテーション作業を実施せずに、良好な予測結果を獲得する。本実施形態では、ディープラーニングによって学習モデルを獲得する。しかし、学習モデルの獲得方法は特定の獲得方法に限らない。また、様々なオブジェクト検出器を学習モデルの代わりに適用してもかまわない。
【0051】
次に、カメラ10によって撮影された圃場の撮影画像に基づいて該圃場における収量の予測や該圃場全体に対する非生産率の計算等の分析処理を行うために本実施形態に係るシステムが行う処理について、
図2Aのフローチャートに従って説明する。
【0052】
ステップS20では、カメラ10は、農作業用トラクター32やドローン37などの移動体が移動中に圃場を撮影することで該圃場の撮影画像を生成する。
【0053】
ステップS21では、カメラ10は、ステップS20で生成した撮影画像に上記のExif情報(撮影情報)を添付し、該Exif情報が添付された撮影画像を通信網11を介してクラウドサーバ12および情報処理装置13に対して送信する。
【0054】
ステップS22では、情報処理装置13のCPU131は、カメラ10が撮影した圃場や農作物などに関する情報(農作物の品種や樹齢、農作物の育成法や剪定法等)を撮影圃場パラメータとして取得する。例えば、CPU131は、
図6(A)に示すGUI(グラフィカルユーザインターフェース)を表示装置14に表示させて、ユーザからの撮影圃場パラメータの入力を受け付ける。
【0055】
図6(A)のGUIにおいて領域600には、圃場全体のマップが表示される。領域600に表示される圃場のマップは複数の区分に分かれており、それぞれの区分には該区分に固有の識別子(ID)が表示されている。ユーザはユーザインターフェース15を操作して、カメラ10により撮影を行った区分(つまりこれから上記の分析処理を行いたい区分)に該当する領域600内の箇所を指定するか、若しくは該区分の識別子を領域601に入力する。ユーザがユーザインターフェース15を操作して、カメラ10により撮影を行った区分に該当する領域600内の箇所を指定した場合、該区分の識別子が領域601に表示される。
【0056】
ユーザはユーザインターフェース15を操作して領域602に作物名(農作物の名称)を入力することができる。またユーザはユーザインターフェース15を操作して領域603に農作物の品種を入力することができる。またユーザはユーザインターフェース15を操作して領域604にTrellisを入力することができる。Trellisとは、例えば、農作物が葡萄である場合、葡萄圃場で葡萄を生育させるための葡萄の木のデザイン方法である。またユーザはユーザインターフェース15を操作して領域605にPlanted Yearを入力することができる。Planted Yearとは、例えば、農作物が葡萄である場合、葡萄の木を植えた時期を表す。なお、これら全ての項目について撮影圃場パラメータを入力することは必須ではない。
【0057】
そしてユーザがユーザインターフェース15を操作して登録ボタン606を指示すると、情報処理装置13のCPU131は、
図6(A)のGUIにおいて入力された上記の各項目の撮影圃場パラメータをクラウドサーバ12に対して送信する。クラウドサーバ12のCPU191は、情報処理装置13から送信された撮影圃場パラメータを外部記憶装置196に保存(登録)する。
【0058】
また、ユーザがユーザインターフェース15を操作して修正ボタン607を指示すると、情報処理装置13のCPU131は、
図6(A)のGUIにおいて入力済みの撮影圃場パラメータの修正を可能にする。
【0059】
図6(A)のGUIは、特に葡萄の圃場を管理することを前提とした撮影圃場パラメータを入力させるためのGUIであるが、同様の目的であったとしても、ユーザに入力させる撮影圃場パラメータは
図6(A)に示したものに限らない。また、農作物が葡萄でない場合であっても同様に、ユーザに入力させる撮影圃場パラメータは
図6(A)に示したものに限らない。例えば、領域602に入力する作物名を変更すると、領域603~605のタイトルおよび入力させる撮影圃場パラメータを変更するようにしても良い。
【0060】
図6(A)のGUIで入力した撮影圃場パラメータは、基本的には一度決定した後は固定のまま利用すれば良いため、例えば、毎年圃場の撮影を行って収量を予測する場合、既に登録済の撮影圃場パラメータを呼び出して利用できる。所望の区分について既に撮影圃場パラメータが登録されていれば、次回からは
図6(B)に示す如く、領域600内で該所望の区分に該当する箇所を指示することで、該区分に対応する撮影圃場パラメータが領域609~613に表示される。
【0061】
ここで、正しい撮影圃場パラメータを全て入力することが後段の学習モデル選択のためにも望ましいが、ユーザにとって不明であるがために入力できなかった撮影圃場パラメータがあったとしても、不明のまま後続する処理を行うことができる。
【0062】
ステップS23では、撮影画像から農作物などのオブジェクトを検出するために用いる学習モデルの候補を選択するための処理が行われる。ステップS23における処理の詳細について、
図2Bのフローチャートに従って説明する。
【0063】
ステップS230では、クラウドサーバ12のCPU191は、カメラ10から取得したそれぞれの撮影画像に添付されているExif情報と、外部記憶装置196に登録されている撮影圃場パラメータ(撮影画像に対応する区分の撮影圃場パラメータ)と、からクエリパラメータを生成する。
【0064】
クエリパラメータの構成例を
図11(A)に示す。
図11(A)のクエリパラメータは、
図6(B)の撮影圃場パラメータが入力された場合に生成されるクエリパラメータである。
【0065】
「クエリ名」には、領域609に入力された「F5」が設定されている。「品種」には、領域611に入力された「Shiraz」が設定されている。「Trellis」には、領域612に入力された「Scott-Henry」が設定されている。「樹齢」には、領域613に入力された「2001」からExif情報に含まれている撮影日時(年)までの経過年数が樹齢「19」として設定されている。「撮影日」には、Exif情報に含まれている撮影日時(月日)「Oct 20」が設定されている。「撮影時間帯」には、カメラ10から受信したそれぞれの撮影画像に添付されているExif情報中の撮影日時(時間)のうち最も過去の撮影日時(時間)から最近の撮影日時(時間)までの間の時間帯「12:00-14:00」が設定されている。「緯度、経度」には、Exif情報に含まれている撮影位置「35°28’S, 149°12’E」が設定されている。
【0066】
なお、クエリパラメータの生成方法は上記の方法に限らず、例えば、農作物の農家が既に圃場管理で用いているデータを読み込み、上記の項目に一致するパラメータの集合をクエリパラメータとしても良い。
【0067】
なお、場合によっては一部の項目に関する情報が不明となっている場合も有り得る。例えばPlanted Yearや品種に関する情報が分からない場合、
図11(A)に例示したような全項目を埋めることができない。この場合のクエリパラメータは
図11(C)に示す如く、一部空欄になる。
【0068】
次に、ステップS231では、クラウドサーバ12のCPU191は、外部記憶装置196に保存しているE個(Eは2以上の整数)の学習モデルのうち候補となるM(1≦M<E)個の学習モデル(候補学習モデル)を選択する。該選択では、クエリパラメータが示す環境と類似する環境に基づいて学習した学習モデルを候補学習モデルとして選択する。外部記憶装置196には、E個の学習モデルのそれぞれについて、該学習モデルがどのような環境に基づいて学習したのかを示すパラメータセットが保存されている。外部記憶装置196におけるそれぞれの学習モデルのパラメータセットの構成例を
図11(B)に示す。
【0069】
「モデル名」は、学習モデルの名称であり、「品種」は、該学習モデルが学習した農作物の品種であり、「Trellis」は、該学習モデルが学習した「葡萄圃場で葡萄を生育させるための葡萄の木のデザイン方法」である。「樹齢」は、該学習モデルが学習した農作物の樹齢であり、「撮影日」は、該学習モデルが学習に使用した農作物の撮影画像の撮影日時である。「撮影時間帯」は、該学習モデルが学習に使用した農作物の撮影画像のうち最古の撮影日時から最近の撮影日時までの間の期間であり、「緯度、経度」は、該学習モデルが学習に使用した農作物の撮影画像の撮影位置「35°28’S, 149°12’E」である。
【0070】
学習モデルによっては、複数の圃場のブロックで収集されたデータセットを混在させて学習しているものもある。そのため、例えばモデル名が「M004」、「M005」の学習モデルのように、複数の設定(品種や樹齢等)を含むようにパラメータセットが設定されているものがあっても良い。
【0071】
よってクラウドサーバ12のCPU191は、クエリパラメータと、
図11(B)に示す学習モデルごとのパラメータセットと、の類似度を求め、該類似度が高い順に上位M個の学習モデルを候補学習モデルとして選択する。
【0072】
モデル名=M001、M002,…のそれぞれの学習モデルのパラメータセットをM1,M2,…と表記すると、クラウドサーバ12のCPU191は、クエリパラメータQと、パラメータセットMxと、の類似度D(Q,Mx)を以下の式(1)を計算することで求める。
【0073】
【0074】
ここで、q
kはクエリパラメータQにおいて先頭からk番目の要素を表す。
図11(A)の場合、クエリパラメータQには、「品種」、「Trellis」、「樹齢」、「撮影日」、「撮影時間帯」、「緯度、経度」の6つの要素が含まれているため、k=1~6である。
【0075】
m
x、kはパラメータセットM
xにおいて先頭からk番目の要素を表す。
図11(B)の場合、パラメータセットには、「品種」、「Trellis」、「樹齢」、「撮影日」、「撮影時間帯」、「緯度、経度」の6つの要素が含まれているため、k=1~6である。
【0076】
fk(ak、bk)は、要素akとbkとの間の距離を求めるための関数であり、予め設定されている。fk(ak、bk)は、事前に実験により注意深く設定しても良いが、上記の式(1)による距離定義は基本的に性質の異なる学習モデル程大きな値になるようになっていれば良いため、以下のように簡易に設定すれば良い。
【0077】
つまり、基本的に要素は、分類要素(品種、Trellis)である場合と、連続値要素(樹齢、撮影日…)である場合と、の2類種に分けられる。よって、分類要素間の距離を規定する関数は以下の式(2)のように定義し、連続値要素間の距離を規定する関数は以下の式(3)のように定義する。
【0078】
【0079】
【0080】
全ての要素(k)に対する関数は事前にルールベースで実装しておく。また、各々の要素の最終的なモデル間距離への影響度に応じてαkを決めておく。例えば、「品種」(k=1)による違いはそれ程画像の違いに表れないため、α1は0に限りなく近づけ、「Trellis」(k=2)の違いは大きく影響するため、α2は大きく設定しておく、というように予め調整しておく。
【0081】
また、
図11(B)のモデル名が「M004」、「M005」の学習モデルのように、「品種」や「樹齢」に複数の設定が登録されている学習モデルの場合、例えば「品種」の場合は、「品種」に登録されているそれぞれの設定について距離を求め、その平均距離を「品種」に対応する距離とする。「樹齢」の場合も同様に、「樹齢」に登録されているそれぞれの設定について距離を求め、その平均距離を「樹齢」に対応する距離とする。
【0082】
なお、クラウドサーバ12のCPU191は、上記の類似度に基づいてM個の学習モデルを候補学習モデルとして選択するのであれば、その選択方法は特定の選択方法に限らない。例えば、クラウドサーバ12のCPU191は、閾値以上の類似度を有するM個の学習モデルを選択するようにしても良い。
【0083】
ただし、クエリパラメータにおける要素が何れも空の場合は、ステップS231における処理は行われず、その結果、全ての学習モデルを候補学習モデルとして以降の処理が行われることになる。
【0084】
候補学習モデルを選択することによる効果は、多岐に及ぶ。まず、事前知識として可能性の低い学習モデルを本ステップで排除することで、以降続く学習モデルのスコアリングによるランキング作成などに係る処理時間を大幅にカットすることができる。また、ルールベースによる学習モデルのスコアリングであっても、本来比較する必要の無い学習モデルをも候補に入れると、学習モデルの選択精度を落とす可能性があるが、その可能性を最小限に留めることができる。
【0085】
次に、ステップS232では、クラウドサーバ12のCPU191は、カメラ10から受信した撮影画像からP(Pは2以上の整数)枚の撮影画像をモデル選択対象画像として選択する。カメラ10から受信した撮影画像からP枚の撮影画像を選択する方法は特定の選択方法に限らない。例えば、CPU191は、カメラ10から受信した撮影画像からランダムにP枚の撮影画像を選択しても良いし、何らかの基準に従って選択しても良い。
【0086】
次に、ステップS233では、ステップS232で選択したP枚の撮影画像を用いて、M個の候補学習モデルから1つを選択学習モデルとして選択するための処理が行われる。ステップS233における処理の詳細について、
図2Cのフローチャートに従って説明する。
【0087】
ステップS2330では、クラウドサーバ12のCPU191は、M個の候補学習モデルのそれぞれについて、「P枚の撮影画像のそれぞれについて、該候補学習モデルを用いて該撮影画像からオブジェクトを検出する処理であるオブジェクト検出処理」を行う。
【0088】
これにより、P枚の撮影画像のそれぞれについて、M個の候補学習モデルのそれぞれの「該撮影画像に対するオブジェクト検出処理の結果」が得られる。本実施形態では、「撮影画像に対するオブジェクト検出処理の結果」は、該撮影画像から検出されたオブジェクトの画像領域(矩形領域、検出領域)の位置情報である。
【0089】
ステップS2331では、CPU191は、M個の候補学習モデルのそれぞれの「P枚の撮影画像のそれぞれに対するオブジェクト検出処理の結果」に対するスコアを求める。そしてCPU191は、該スコアに基づいてM個の候補学習モデルの順位付け(ランキング作成)を行って、M個の候補学習モデルからN(N≦M)個の候補学習モデルを選択する。
【0090】
このとき、撮影画像にはアノテーション情報が無いため、正確な検出精度評価はできない。しかし、農場のように計画的にデザインされてメンテナンスされている対象では、以下の様なルールを利用してオブジェクト検出処理の精度を予測して評価することが可能である。候補学習モデルによるオブジェクト検出処理の結果に対するスコアは、例えば、以下のようにして求める。
【0091】
一般的な圃場では、
図3(A)、(B)に示したように、等間隔に農作物が植わっている。よって、
図5(A)、(B)で例示したアノテーション(矩形領域)のようにオブジェクトを検出をする際は、常に等しく画像の左端から右端まで矩形領域が連続して検出されるのが正常に検出した状態である。
【0092】
例えば、
図5(A)のように撮影画像の左端から右端まで全て果実等が収穫可能な領域と検出される場合、矩形領域500のように生産領域が検出されるべきである。また、
図5(B)のように、撮影画像内に非生産領域である矩形領域506がある場合も、撮影画像の左端から右端まで矩形領域505、506、507と検出されるべきである。もし撮影画像の条件に合わない学習モデルを用いて該撮影画像に対するオブジェクト検出処理を実施すると、上記の矩形領域のうち検出されない矩形領域が発生する可能性がある。撮影画像の条件から遠い条件に対応する学習モデルほど、このような可能性は高くなる。よって、候補学習モデルの評価を行う最も、簡易なスコアリング方法としては、例えば次のような方法が考えられる。
【0093】
着目候補学習モデルにより着目撮影画像からは複数のオブジェクトの検出領域が検出される。よって、該着目撮影画像の垂直方向に検出領域を探索して該検出領域がない領域の画素数Cpをカウントし、該着目撮影画像の幅の画素数に対する画素数Cpの割合を該着目撮影画像の罰則スコアとする。このようにして、着目候補学習モデルによりオブジェクト検出処理を行ったP枚の撮影画像のそれぞれについて罰則スコアを求め、該求めた罰則スコアの合計値を、該着目候補学習モデルのスコアとする。このような処理をM個の候補学習モデルのそれぞれについて行うことで、それぞれの候補学習モデルのスコアが確定する。そしてM個の候補学習モデルをスコアが小さい順に順位付けし、スコアが小さい順に上位N個の候補学習モデルを選択する。該選択の際には、「スコアが閾値未満」という条件を加えても良い。
【0094】
また、候補学習モデルのスコアとして、通常等間隔に植えられている木の幹部分の検出領域から類推されるスコアを求めても良い。木の幹は
図5(A)に示す如く、矩形領域501、502、503、504と凡そ等間隔に検出されるべきであるため、撮影画像の幅に対する「木の幹の領域の検出数」として想定される数は決まっている。想定される数より少ない/多い撮影画像は検出ミスを起こしている可能性が高いため、この検出数をスコアに反映させても良い。
【0095】
そしてCPU191は、P枚の撮影画像、M個の候補学習モデルから選択したN個の候補学習モデルのそれぞれの「該P枚の撮影画像に対するオブジェクト検出処理の結果」、該N個の候補学習モデルに関する情報(モデル名など)、を情報処理装置13に対して送信する。上記の如く、本実施形態では、「撮影画像に対するオブジェクト検出処理の結果」は、該撮影画像から検出されたオブジェクトの画像領域(矩形領域、検出領域)の位置情報であり、このような位置情報は、例えば、json形式またはtxt形式等のファイルフォーマットのデータとして情報処理装置13に対して送信される。
【0096】
次に、選択されたN個の候補学習モデルから1つをユーザに選択させる。ステップS2331の処理の終了時点で未だ候補学習モデルはN個残っており、性能を比較する根拠とする出力は上記のP枚の撮影画像に対するオブジェクト検出処理の結果であるため、ユーザは、N×P枚の撮影画像に対するオブジェクト検出処理の結果を見比べなければならない。そのような状態で適切に1つの候補学習モデルを選択学習モデルとして選択する(1つに絞り込む)のは困難である。
【0097】
よってステップS2332では、情報処理装置13のCPU131は、P枚の撮影画像について、ユーザの主観による比較がしやすい情報提示のためのスコアリング(表示画像スコアリング)を行う。表示画像スコアリングでは、P枚の撮影画像のそれぞれについて、N個の候補学習モデル間で検出領域の配置パターンが大きく異なるほど大きいスコアを決定する。このようなスコアは、例えば、以下の式(4)を計算することで求めることができる。
【0098】
【0099】
ここで、Score(z)は、撮影画像Izに対するスコアである。TIz(Ma、Mb)は、候補学習モデルMaが撮影画像Izに対して行ったオブジェクト検出処理の結果(検出領域の配置パターン)と、候補学習モデルMbが撮影画像Izに対して行ったオブジェクト検出処理の結果(検出領域の配置パターン)と、の差に基づくスコアを求めるための関数である。このような関数には様々な関数が適用可能であり、特定の関数に限らない。例えば、候補学習モデルMaが撮影画像Izから検出した検出領域Raごとに、候補学習モデルMbが撮影画像Izから検出した検出領域Rbのうち該検出領域Raに最も近い検出領域Rb’の位置(例えば左上隅の位置および右下隅の位置)と該検出領域Raの位置(例えば左上隅の位置および右下隅の位置)との差を求め、求めた差の合計を返す関数をTIz(Ma、Mb)としても良い。
【0100】
上位N個の候補学習モデルによるオブジェクト検出処理の結果は多くの場合は類似することが多いため、無作為に取り出した画像で見比べてもほとんど差が無い場合が多く、学習モデルを選ぶ際の根拠にならない。よって上記の式(4)でスコアリングした上位の撮影画像だけを見ることによって容易に学習モデルの良し悪しを判断しやすくなる。
【0101】
ステップS2333では、情報処理装置13のCPU131は、上記のN個の候補学習モデルのそれぞれについて、クラウドサーバ12から受信したP枚の撮影画像のうちスコアが大きい順に上位F枚(上位から規定枚数)の撮影画像と、クラウドサーバ12から受信した該撮影画像に対するオブジェクト検出処理の結果と、を表示装置14に表示させる(表示制御)。その際、F枚の撮影画像はスコアが大きい順に左から並べて表示する。
【0102】
候補学習モデルごとの撮影画像およびオブジェクト検出処理の結果を表示したGUIの表示例を
図7(A)に示す。
図7(A)では、N=3、F=4のケースについて示している。
【0103】
最上の行には、スコアが最も大きい候補学習モデルのモデル名「M002」がラジオボタン70と共に表示されており、その右側には、スコアが大きい順に上位4枚の撮影画像が左から順に並んで表示されている。該撮影画像にはモデル名「M002」の候補学習モデルが該撮影画像から検出したオブジェクトの検出領域を示す枠が重ねて表示されている。
【0104】
中段の行には、スコアが2番目に大きい候補学習モデルのモデル名「M011」がラジオボタン70と共に表示されており、その右側には、スコアが大きい順に上位4枚の撮影画像が左から順に並んで表示されている。該撮影画像にはモデル名「M011」の候補学習モデルが該撮影画像から検出したオブジェクトの検出領域を示す枠が重ねて表示されている。
【0105】
下段の行には、スコアが3番目に大きい候補学習モデルのモデル名「M009」がラジオボタン70と共に表示されており、その右側には、スコアが大きい順に上位4枚の撮影画像が左から順に並んで表示されている。該撮影画像にはモデル名「M009」の候補学習モデルが該撮影画像から検出したオブジェクトの検出領域を示す枠が重ねて表示されている。
【0106】
なお、このGUIでは、各々の候補学習モデルによるオブジェクト検出処理の結果を一瞥して比較しやすいように、同列に並ぶ撮影画像は同じ撮影画像になるように表示する。
【0107】
そして、F枚の撮影画像に対するN個の候補学習モデルによるオブジェクト検出処理の結果の違いをユーザは目視により確認し、N個の候補学習モデルのうち1つをユーザインターフェース15を用いて選択する。
【0108】
ステップS2334では、情報処理装置13のCPU131は、ユーザによる候補学習モデルの選択操作(ユーザ操作、ユーザ入力)を受け付ける。ステップS2335では、情報処理装置13のCPU131は、ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われたか否かを判断する。
【0109】
図7(A)の場合、ユーザは、モデル名「M002」の候補学習モデルを選択する場合には、最上の行におけるラジオボタン70をユーザインターフェース15を用いて選択する。また、ユーザは、モデル名「M011」の候補学習モデルを選択する場合には、中段の行におけるラジオボタン70をユーザインターフェース15を用いて選択する。また、ユーザは、モデル名「M009」の候補学習モデルを選択する場合には、下段の行におけるラジオボタン70をユーザインターフェース15を用いて選択する。
図7(A)では、モデル名「M002」に対応するラジオボタン70が選択されているため、モデル名「M002」の候補学習モデルが選択されたことを示す枠74が表示される。
【0110】
そしてユーザがユーザインターフェース15を操作して決定ボタン71を指示すると、CPU131は、「ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われた」と判断し、選択したラジオボタン70に対応する候補学習モデルを選択学習モデルとして選択する。
【0111】
この判断の結果、ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われた場合には、処理はステップS2336に進み、ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われていない場合には、処理はステップS2334に進む。
【0112】
ステップS2336では、情報処理装置13のCPU131は、最終的に学習モデルが1個のみ選択された状態であるのかを確認する。そして、最終的に学習モデルが1個のみ選択された状態である場合には、処理はステップS24に進み、最終的に学習モデルが1個のみ選択された状態ではない場合には、処理はステップS2332に進む。
【0113】
ここで、ユーザが
図7(A)の表示を見ただけでは1個に絞ることが出来なかった場合は、複数のラジオボタン70を選択することで複数の候補学習モデルを選択するようにしても良い。例えば、ユーザがユーザインターフェース15を操作して、
図7(A)においてモデル名「M002」に対応するラジオボタン70とモデル名「M011」に対応するラジオボタン70とを選択して決定ボタン71を指定した場合、選択したラジオボタン70の数「2」をNに設定して、処理はステップS2336を介してステップS2332に進む。この場合、ステップS2332以降では、N=2、F=4について同様の処理を行う。このようにして、最終的に選択される学習モデルの数が「1」になるまで処理を繰り返す。
【0114】
また、ユーザは、
図7(A)のGUIの代わりに
図7(B)のGUIを用いて学習モデルを選択しても良い。
図7(A)のGUIは、ユーザに直接どの学習モデルが良いのかを選択させるGUIとなっている。これに対し、
図7(B)のGUIでは、それぞれの撮影画像にチェックボックス72が設けられており、ユーザは、縦一列に並ぶ撮影画像列ごとに、該撮影画像列中の撮影画像のうちオブジェクト検出処理の結果が好ましいと判断した撮影画像のチェックボックス72を、ユーザインターフェース15を操作して指定してオンにする(チェックマークを付ける)。そしてユーザがユーザインターフェース15を操作して決定ボタン75を指示すると、情報処理装置13のCPU131は、モデル名が「M002」、「M011」、「M009」の候補学習モデルのうち、チェックボックス72がオンになっている撮影画像の数が最も多い候補学習モデルを選択学習モデルとして選択する。
図7(B)の例では、モデル名が「M002」の候補学習モデルの4枚の撮影画像のうち3つのチェックボックス72がオンになっており、モデル名が「M011」の候補学習モデルの4枚の撮影画像のうち1つのチェックボックス72がオンになっており、モデル名が「M009」の候補学習モデルの候補学習モデルの4枚の撮影画像の何れのチェックボックス72もオンになっていない。この場合は、モデル名が「M002」の候補学習モデルが選択学習モデルとして選択されることになる。このようなGUIによる選択学習モデルの選択方法は、例えば、Fの値が増加してユーザがどの候補学習モデルが最も良いか判断するのが難しい場合に有効である。
【0115】
なお、「チェックボックス72がオンになっている撮影画像の数」が同数または僅差の候補学習モデルが存在する場合には、ステップS2336で「最終的に学習モデルが1個のみ選択された状態ではない」と判断して、処理はステップS2332に進む。そしてステップS2332以降では、「チェックボックス72がオンになっている撮影画像の数」が同数または僅差の候補学習モデルを対象にして処理を行う。このような場合でも、最終的に選択される学習モデルの数が「1」になるまで処理を繰り返す。
【0116】
また、より左に表示された撮影画像は、候補学習モデル間におけるオブジェクト検出処理の結果の差異がより大きい撮影画像であることから、より左に表示される撮影画像ほどより大きい重み値を割り当てても良い。この場合、候補学習モデルごとに、チェックボックス72がオンになっている撮影画像の重み値の合計を求め、求めた合計が最も大きい候補学習モデルを選択学習モデルとして選択するようにしても良い。
【0117】
そして情報処理装置13のCPU131は、どのような方法で選択学習モデルを選択したとしても、該選択学習モデルを示す情報(例えば選択学習モデルのモデル名)をクラウドサーバ12に通知する。
【0118】
ステップS24では、クラウドサーバ12のCPU191は、情報処理装置13から通知された情報で特定される選択学習モデルを用いて、撮影画像(カメラ10がクラウドサーバ12および情報処理装置13に送信した撮影画像)に対するオブジェクト検出処理を行う。
【0119】
ステップS25では、クラウドサーバ12のCPU191は、ステップS24におけるオブジェクト検出処理の結果として得られる検出領域から、目的としていた圃場の収量の予測や圃場全体に対する非生産率の計算等の分析処理を行う。この計算は、全撮影画像から検出された生産領域矩形と枯れ枝領域、病変領域等と判定された非生産領域の双方の領域を加味して行われる。
【0120】
なお、本実施形態に係る学習モデルはディープラーニングによって学習されたモデルであるが、各種パラメータで定義されたルールベースによる検出器、ファジィ推論、遺伝的アルゴリズム、等の様々なオブジェクト検出技術を学習モデルとして利用しても良い。
【0121】
[第2の実施形態]
本実施形態以降では、第1の実施形態との差分について説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。本実施形態では、工場の生産ラインにおける外観検査を行うシステムを例にとり説明する。本実施形態に係るシステムは、検査対象である工業製品の異常領域を検出する。
【0122】
従来、工場の生産ラインにおける外観検査では、製造ラインごとに検査装置(製品の外観を撮影して検査する装置)の撮影条件等が綿密に調整されており、各製造ラインが立ち上がるごとに検査装置の設定も時間をかけて調整するのが一般的であった。しかし、近年では、顧客ニーズの多様化と市場の移り変わりに即座に対応することが製造現場に望まれている。そして、小ロットであっても短期間でラインを立ち上げて需要に見合う数量の製造を行い、さらに充分な供給が終了すると即座にラインを解体して次の製造ラインに備える、といったスピーディな対応へのニーズが高まっている。
【0123】
その際、従来同様に外観検査の設定を製造現場の専門家の経験や勘を基に毎度設定しているのでは迅速な立ち上げに対応しきれない。類似した製品の検査を過去に実施していたような場合、それらに関わる設定パラメータを保持しておいて、類似した検査を行う場合に該過去の設定パラメータを呼び出すことができれば、専門家の経験に頼ることなく誰でも検査装置の設定を行うことが可能になる。
【0124】
第1の実施形態と同様に、既に保持している学習モデルを新規製品の検査対象画像に割り当てることで同様に上記目的が達成される。よって、第2の実施形態にも上記の情報処理装置13を適用することができる。
【0125】
本実施形態に係るシステムによる検査装置の設定処理(外観検査用の設定処理)について、
図8Aのフローチャートに従って説明する。なお、外観検査用の設定処理は、製造ラインにおける検査ステップの立ち上げ時に実施することを想定している。
【0126】
クラウドサーバ12の外部記憶装置196には、撮影画像における外観検査を行うための学習モデル(外観検査用モデル/設定)が複数登録されており、それぞれの学習モデルは互いに異なる学習環境で学習されたモデルである。
【0127】
カメラ10は、外観検査の対象となる製品(検査対象製品)を撮影するためのカメラである。第1の実施形態と同様、カメラ10は定期的もしくは不定期的に撮影を行うカメラであっても良いし、動画像を撮影するカメラであっても良い。撮影画像から検査対象製品における正確な異常領域の検出を行うために、異常領域を含む検査対象製品が検査工程に入ってきた場合は、可能な限り異常領域が強調されるような条件で撮影されることが望ましい。カメラ10は、検査対象製品を複数の条件で撮影するのであればマルチカメラであっても良い。
【0128】
ステップS80では、カメラ10は、検査対象製品を撮影することで該検査対象製品の撮影画像を生成する。ステップS81では、カメラ10は、ステップS80で生成した撮影画像を通信網11を介してクラウドサーバ12および情報処理装置13に対して送信する。
【0129】
ステップS82では、情報処理装置13のCPU131は、カメラ10が撮影した検査対象製品などに関する情報(検査対象製品の部品名や材質、製造年月日、撮影時の撮像系パラメータ、ロット番号や気温、湿度等)を検査対象製品パラメータとして取得する。例えば、CPU131は、GUIを表示装置14に表示させて、ユーザからの検査対象製品パラメータの入力を受け付ける。そしてユーザがユーザインターフェース15を操作して登録指示を入力すると、情報処理装置13のCPU131は、GUIにおいて入力された上記の各項目の検査対象製品パラメータをクラウドサーバ12に対して送信する。クラウドサーバ12のCPU191は、情報処理装置13から送信された検査対象製品パラメータを外部記憶装置196に保存(登録)する。
【0130】
ステップS83では、撮影画像から上記の検査対象製品を検出するために用いる学習モデルを選択するための処理が行われる。ステップS83における処理の詳細について、
図8Bのフローチャートに従って説明する。
【0131】
ステップS831では、クラウドサーバ12のCPU191は、外部記憶装置196に保存しているE個の学習モデルのうち候補となるM個の学習モデル(候補学習モデル)を選択する。CPU191は、外部記憶装置196に登録されている検査対象製品パラメータから第1の実施形態と同様にクエリパラメータを生成し、該クエリパラメータが示す環境と類似する環境について学習した学習モデル(過去の類似した検査で用いた学習モデル)を選択する。
【0132】
クエリパラメータに「部品名」として「基盤」が含まれている場合、過去の基盤検査に用いられた学習モデルが選ばれやすくなり、さらに「材質」として「ガラスエポキシ」が含まれている場合、ガラスエポキシ基盤の検査に用いられた学習モデルが選ばれやすくなる。
【0133】
ステップS831でも第1の実施形態と同様、学習モデルのパラメータセットとクエリパラメータとを用いてM個の候補学習モデルを選択するが、その際には、第1の実施形態と同様、上記の式(1)を用いる。
【0134】
次に、ステップS832では、クラウドサーバ12のCPU191は、カメラ10から受信した撮影画像からP枚の撮影画像をモデル選択対象画像として選択する。例えば、本製造ラインの本検査工程に流れてくる製品をランダムに選択して実運用時と同様の設定でカメラ10で撮影した撮影画像からP枚の撮影画像を取得する。通常、製造ラインで発生する異常品の数は少ないため、該工程で撮影する製品の数が少ない場合は以降のステップにおける処理が良く機能しない。よって、目安として数百個以上の製品の撮影が望ましい。
【0135】
次に、ステップS833では、ステップS832で選択したP枚の撮影画像を用いて、M個の候補学習モデルから1つを選択学習モデルとして選択するための処理が行われる。ステップS833における処理の詳細について、
図8Cのフローチャートに従って説明する。
【0136】
ステップS8330では、クラウドサーバ12のCPU191は、M個の候補学習モデルのそれぞれについて、「P枚の撮影画像のそれぞれについて、該候補学習モデルを用いて該撮影画像からオブジェクトを検出する処理であるオブジェクト検出処理」を行う。本実施形態でも、撮影画像に対するオブジェクト検出処理の結果は、該撮影画像から検出されたオブジェクトの画像領域(矩形領域、検出領域)の位置情報である。
【0137】
ステップS8331では、CPU191は、M個の候補学習モデルのそれぞれの「P枚の撮影画像のそれぞれに対するオブジェクト検出処理の結果」に対するスコアを求める。そしてCPU191は、該スコアに基づいてM個の候補学習モデルの順位付け(ランキング作成)を行って、M個の候補学習モデルからN個の候補学習モデルを選択する。候補学習モデルによるオブジェクト検出処理の結果に対するスコアは、例えば、以下のようにして求める。
【0138】
例えば、プリント基板上の異常を検出するようなタスクにおいて、固定プリントパターン上の各種特定局所パターンに対してオブジェクト検出処理を実施するものとする。ここで、特定の学習モデルでは正常品の撮影画像からは、
図9(A)のような検出領域901~906が得られるとする。製造ラインで生産される製品の異常の発生頻度は極めて少ないため、上記タスクを実施する上で良い学習モデルとは、想定される撮影画像のバラつきに対して安定した結果を出力できる学習モデルである。例えば、エリアセンサ側の環境の変動によって僅かに製品を撮影した画像の見た目が変わることによって
図9(B)のように検出領域901~906のうち検出領域906が検出できなくなることがある。このような場合、僅かな違いしか無い入力に対して検出領域が変わる学習モデルの評価スコアに対しては罰則を与えるべきである。
【0139】
よって、例えば、クラウドサーバ12のCPU191は、M個の候補学習モデルのそれぞれについて、P枚の撮影画像間で該候補学習モデルによる検出領域の配置パターンが大きく異なるほど大きいスコアを決定する。このようなスコアは、例えば、上記の式(4)を計算することで求めることができる。そしてM個の候補学習モデルをスコアが小さい順に順位付けし、スコアが小さい順に上位N個の候補学習モデルを選択する。該選択の際には、「スコアが閾値未満」という条件を加えても良い。
【0140】
ステップS8332では、情報処理装置13のCPU131は、P枚の撮影画像について、ユーザの主観による比較がしやすい情報提示のためのスコアリング(表示画像スコアリング)を、第1の実施形態(ステップS2332)と同様にして行う。
【0141】
ステップS8333では、情報処理装置13のCPU131は、ステップS8331で選択したN個の候補学習モデルのそれぞれについて、クラウドサーバ12から受信したP枚の撮影画像のうちスコアが大きい順に上位F枚の撮影画像と、クラウドサーバ12から受信した該撮影画像に対するオブジェクト検出処理の結果と、を表示装置14に表示させる。その際、F枚の撮影画像はスコアが大きい順に左から並べて表示する。
【0142】
候補学習モデルごとの撮影画像およびオブジェクト検出処理の結果を表示したGUIの表示例を
図10(A)に示す。
図10(A)では、N=3、F=4のケースについて示している。
【0143】
最上の行には、スコアが最も大きい候補学習モデルのモデル名「M005」がラジオボタン100と共に表示されており、その右側には、スコアが大きい順に上位4枚の撮影画像が左から順に並んで表示されている。該撮影画像にはモデル名「M005」の候補学習モデルが該撮影画像から検出した検出領域を示す枠が重ねて表示されている。
【0144】
中段の行には、スコアが2番目に大きい候補学習モデルのモデル名「M023」がラジオボタン100と共に表示されており、その右側には、スコアが大きい順に上位4枚の撮影画像が左から順に並んで表示されている。該撮影画像にはモデル名「M023」の候補学習モデルが該撮影画像から検出した検出領域を示す枠が重ねて表示されている。
【0145】
下段の行には、スコアが3番目に大きい候補学習モデルのモデル名「M014」がラジオボタン100と共に表示されており、その右側には、スコアが大きい順に上位4枚の撮影画像が左から順に並んで表示されている。該撮影画像にはモデル名「M014」の候補学習モデルが該撮影画像から検出した検出領域を示す枠が重ねて表示されている。
【0146】
なお、このGUIでは、各々の候補学習モデルによるオブジェクト検出処理の結果を一瞥して比較しやすいように、同列に並ぶ撮影画像は同じ撮影画像になるように表示する。
【0147】
この場合、検出領域の配置パターンの違いについては、製品外観がほとんど固定であり、多くは正常品であることが多いため、
図10(A)に示されるようになる。F枚の撮影画像はスコアが大きい順に左から並べて表示するが、スコアの大きいものは個別撮影時の撮影条件の違いが大きかった場合もしくは異常領域を含む個体であった場合になる傾向がある。よって、ユーザは事前に製品の撮影画像に対して異常領域へのアノテーション作業を実施するほか、数多くの製品から欠陥品を手作業で探してから検査装置の設定を行っていた従来の方式に比べ、該作業を一切実施しなくともこのGUIを見るだけで異常領域を含む可能性のある製品の撮影画像から優先的にユーザに提示することができるため、省力化になる。ユーザは
図10(A)のGUIでオブジェクト検出処理の結果を見比べながら、正しく異常領域を検出できている学習モデルを選択すれば良い。
【0148】
そして、F枚の撮影画像に対するN個の候補学習モデルによるオブジェクト検出処理の結果の違いをユーザは目視により確認し、N個の候補学習モデルのうち1つをユーザインターフェース15を用いて選択する。
【0149】
ステップS8334では、情報処理装置13のCPU131は、ユーザによる候補学習モデルの選択操作(ユーザ入力)を受け付ける。ステップS8335では、情報処理装置13のCPU131は、ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われたか否かを判断する。
【0150】
図10(A)の場合、ユーザは、モデル名「M005」の候補学習モデルを選択する場合には、最上の行におけるラジオボタン100をユーザインターフェース15を用いて選択する。また、ユーザは、モデル名「M023」の候補学習モデルを選択する場合には、中段の行におけるラジオボタン100をユーザインターフェース15を用いて選択する。また、ユーザは、モデル名「M014」の候補学習モデルを選択する場合には、下段の行におけるラジオボタン100をユーザインターフェース15を用いて選択する。
図10(A)では、モデル名「M005」に対応するラジオボタン100が選択されているため、モデル名「M005」の候補学習モデルが選択されたことを示す枠104が表示される。
【0151】
そしてユーザがユーザインターフェース15を操作して決定ボタン101を指示すると、CPU131は、「ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われた」と判断し、選択したラジオボタン100に対応する候補学習モデルを選択学習モデルとして選択する。
【0152】
この判断の結果、ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われた場合には、処理はステップS8336に進み、ユーザによる候補学習モデルの選択操作(ユーザ入力)が行われていない場合には、処理はステップS8334に進む。
【0153】
ステップS8336では、情報処理装置13のCPU131は、最終的に学習モデルが「ユーザが希望する数」だけ選択された状態であるのかを確認する。そして、最終的に学習モデルが「ユーザが希望する数」だけ選択された状態である場合には、処理はステップS84に進み、最終的に学習モデルが「ユーザが希望する数」だけ選択された状態ではない場合には、処理はステップS8332に進む。
【0154】
ここで、「ユーザが希望する数」とは、主に外観検査にかけてよい時間(タクトタイム)に応じて決定する。例えば、「ユーザが希望する数」が2個の場合は、1個の学習モデルで低周波の異常領域を検出し、もう一方の学習モデルで高周波欠陥を検出するなど検出対象の傾向を変えることで幅広い検出が可能となる場合がある。
【0155】
ここで、ユーザが
図10(A)の表示を見ただけでは「ユーザが希望する数」に絞ることが出来なかった場合は、複数のラジオボタン100を選択することで複数の候補学習モデルを選択するようにしても良い。例えば、「ユーザが希望する数」が「1」で、選択したラジオボタン100の数が2の場合、N=2として処理はステップS8336を介してステップS8332に進む。この場合、ステップS8332以降では、N=2、F=4について同様の処理を行う。このようにして、最終的に選択される学習モデルの数が「ユーザが希望する数」になるまで処理を繰り返す。
【0156】
また、ユーザは、
図10(A)のGUIの代わりに
図10(B)のGUIを用いて学習モデルを選択しても良い。
図10(A)のGUIは、ユーザに直接どの学習モデルが良いのかを選択させるGUIとなっている。これに対し、
図10(B)のGUIでは、それぞれの撮影画像にチェックボックス102が設けられており、ユーザは、縦一列に並ぶ撮影画像列ごとに、該撮影画像列中の撮影画像のうちオブジェクト検出処理の結果が好ましいと判断した撮影画像のチェックボックス102を、ユーザインターフェース15を操作して指定してオンにする(チェックマークを付ける)。そしてユーザがユーザインターフェース15を操作して決定ボタン1015を指定すると、情報処理装置13のCPU131は、モデル名が「M005」、「M023」、「M014」の候補学習モデルのうち、チェックボックス102がオンになっている撮影画像の数が最も多い候補学習モデルを選択学習モデルとして選択する。
図10(B)の例では、モデル名が「M005」の候補学習モデルの4枚の撮影画像のうち2つのチェックボックス102がオンになっており、モデル名が「M023」の候補学習モデルの4枚の撮影画像のうち1つのチェックボックス102がオンになっており、モデル名が「M014」の候補学習モデルの4枚の撮影画像のうち1つのチェックボックス102がオンになっている。この場合は、モデル名が「M005」の候補学習モデルが選択学習モデルとして選択されることになる。このようなGUIによる選択学習モデルの選択方法は、例えば、Fの値が増加してユーザがどの候補学習モデルが最も良いか判断するのが難しい場合に有効である。
【0157】
図10(B)のGUIにおいて最終的に「ユーザが希望する数」の学習モデルに絞り込む最も簡単な方法は、オンになっているチェックボックスの数が多い順に上位から「ユーザが希望する数」までを選択する方法である。
【0158】
なお、「チェックボックス102がオンになっている撮影画像の数」が同数または僅差の候補学習モデルが存在する場合には、ステップS8336で「最終的に学習モデルが「ユーザが希望する数」だけ選択された状態ではない」と判断して、処理はステップS8332に進む。そしてステップS8332以降では、「チェックボックス102がオンになっている撮影画像の数」が同数または僅差の候補学習モデルを対象にして処理を行う。このような場合でも、最終的に選択される学習モデルの数が「ユーザが希望する数」になるまで処理を繰り返す。
【0159】
そして情報処理装置13のCPU131は、どのような方法で選択学習モデルを選択したとしても、該選択学習モデルを示す情報(例えば選択学習モデルのモデル名)をクラウドサーバ12に通知する。
【0160】
ステップS84では、クラウドサーバ12のCPU191は、情報処理装置13から通知された情報で特定される選択学習モデルを用いて、撮影画像(カメラ10がクラウドサーバ12および情報処理装置13に送信した撮影画像)に対するオブジェクト検出処理を行う。そしてクラウドサーバ12のCPU191は、オブジェクト検出処理の結果として得られる検出領域から、最終的な検査装置の設定を行う。ここで設定された学習モデルおよび各種パラメータによって実際に製造ラインが立ち上がった段階で検査が実行される。
【0161】
なお、本実施形態に係る学習モデルはディープラーニングによって学習されたモデルであるが、各種パラメータで定義されたルールベースによる検出器、ファジィ推論、遺伝的アルゴリズム、等の様々なオブジェクト検出技術を学習モデルとして利用しても良い。
【0162】
<変形例>
上記の各実施形態は、目的とする検出・識別処理を実施するタスクにおいて、新規対象への検出・識別処理を行う場合に都度、学習モデルの学習や設定の調整を行うコストを低減させるための技術の一例である。よって、上記の各実施形態にて説明した技術は、農作物の収量の予測や修繕領域検出、検査対象である工業製品の異常領域の検出等に適用することに限定されない。対象は農業、工業、水産業やその他幅広い分野において適用される。
【0163】
また、上記のラジオボタンやチェックボックスは、ユーザが対象を選択するための選択部の一例として表示するものであり、同様の効果を奏するものであれば、他の表示アイテムを代わりに表示させても良い。また、上述の実施形態においてオブジェクト検出処理に用いる学習モデルをユーザ操作に基づいて選択する構成を説明した(S24)。しかしながら、これに限られず、オブジェクト検出処理に用いる学習モデルを自動で選択する構成としてもよい。例えば、スコアが最も大きい候補学習モデルをオブジェクト検出処理に用いる学習モデルとして自動で選択する構成としてもよい。
【0164】
また、上記の説明における各処理の主体は一例である。例えば、クラウドサーバ12のCPU191が行うものとして説明した処理の一部若しくは全部を情報処理装置13のCPU131が行うようにしても良い。また、情報処理装置13のCPU131が行うものとして説明した処理の一部若しくは全部をクラウドサーバ12のCPU191が行うようにしても良い。
【0165】
また、上記の説明では、各実施形態のシステムが分析処理を行うものとして説明した。しかし、分析処理の主体もまた上記の各実施形態のシステムに限らず、例えば、分析処理は他の装置/システムが行うようにしても良い。
【0166】
また、上記の各実施形態や変形例で使用した数値、処理タイミング、処理順、処理の主体、データ(情報)の構成/送信先/送信元などは、具体的な説明を行うために一例として挙げたものであり、このような一例に限定することを意図したものではない。
【0167】
また、以上説明した各実施形態や変形例の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態や変形例の一部若しくは全部を選択的に使用しても構わない。
【0168】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0169】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0170】
10:カメラ 11:通信網 12:クラウドサーバ 13:情報処理装置 14:表示装置 15:ユーザインターフェース 131:CPU 132:RAM 133:ROM 134:出力I/F 135:入力I/F 191:CPU 192:RAM 193:ROM 194:操作部 195:表示部 196:外部記憶装置 197:I/F 198:システムバス