本発明の実施形態について、図面を参照しながら説明する。なお、図中、同一又は相当部分については同一の参照符号を付して説明を繰り返さない。
まず、図1を参照して、加熱調理器1について説明する。図1は、加熱調理器1を示すブロック図である。
加熱調理器1は、例えば、電子レンジ、オーブン、炊飯器、又は電気鍋である。以下、加熱調理器1が電子レンジである場合を例に挙げて、本発明について説明する。図1に示すように、実施形態1において、加熱調理器1は、制御部10と、記憶部20と、加熱部30と、撮像部40と、操作部50と、本体部(図示せず)とを備える。
本体部は、加熱庫を含む。加熱庫には、被加熱物が配置される。被加熱物は、例えば食材である。
加熱部30は、加熱庫に配置された被加熱物を加熱する。実施形態1において、加熱部30は、例えば、レンジ加熱機能、熱風循環加熱機能、及びグリル加熱機能を有する。レンジ加熱機能は、例えば、加熱庫内にマイクロ波を放射することによって、被加熱物を加熱調理する機能である。熱風循環加熱機能は、例えば、加熱庫内に熱風を循環させて加熱庫内の温度の均一化を図ったり、熱風を被加熱物の上面に直接吹き付けたりすることによって、被加熱物を加熱調理する機能である。グリル加熱機能は、主として、被加熱物を輻射熱に曝すことによって、被加熱物を加熱調理する機能である。つまり、加熱部30は、例えば、マイクロ波供給部及びヒータを含む。
撮像部40は、例えばカメラである。具体的には、撮像部40は、例えば、CCD(Charge Coupled Device)デジタルテレビジョンカメラ等で構成されたカメラである。撮像部40は、例えば、加熱庫の外側であって、加熱庫を構成する壁面に形成された開口に対向するように設置される。撮像部40は、例えば、加熱部30によって被加熱物が加熱されている時に、被加熱物を撮像する。実施形態1において、撮像部40は、例えば、所定時間ごとに被加熱物を撮像する。具体的には、撮像部40は、例えば、加熱部30によって被加熱物が加熱されている間、所定時間が経過する度に被加熱物を撮像する。例えば、所定時間は2秒である。
記憶部20は、記憶装置を含み、ソフトウェアのようなコンピュータープログラム及び種々のデータを記憶する。具体的には、記憶部20は、ROM(Read Only Memory)、及びRAM(Random Access Memory)のような主記憶装置(例えば、半導体メモリ)と、ソリッドステートドライブ、及び/又は、ハードディスクドライブのような補助記憶装置とを含む。記憶部20は、リムーバブルメディアを含んでいてもよい。記憶部20は、記憶媒体(例えば、非一時的コンピューター読取可能記憶媒体)の一例である。
また、記憶部20は、例えば、学習済みモデルLM及びテーブルTbを記憶する。
実施形態1において、学習済みモデルLMは、学習データを機械学習することで構築される。以下、本明細書において学習データを学習データTDと記載する場合がある。学習データTDについては後述する。
また、実施形態1において、テーブルTbにおいて、複数の料理の名称(ピザ、トースト及びスポンジケーキ等)の各々に対して、料理に応じた加熱時間と、料理に応じた加熱強度とが関連付けられている。すなわち、記憶部20は、料理の名称に対して、料理に応じた加熱時間と、料理に応じた加熱強度とを関連付けて記憶する。加熱強度は、例えば、被加熱物を加熱するときの温度又はワット数のことである。
操作部50は、例えば、加熱調理器1が備える操作キー、又は、液晶ディスプレイのような表示部に設けられたタッチパネルを含む。なお、加熱調理器1は、表示部を備えていなくてもよい。操作キーには、マウス、及び/又は、キーボードのような入力デバイスも含まれる。操作部50は、ユーザーに操作されて、例えば、加熱部30による加熱を開始する指示を受け付ける。操作部50は、「受付部」の一例である。
制御部10は、CPU(Central Processing Unit)及びMPU(Micro Processing Unit)のようなプロセッサーを含む。なお、記憶部20及び制御部10は、ASIC(Application Specific Integrated Circuit)、又はFPGA(Field-Programmable Gate Array)のような集積回路で構成されてもよい。プロセッサーは、「コンピューター」の一例に相当する。
制御部10のプロセッサーは、記憶部20の記憶装置に記憶されたコンピュータープログラムを実行して、記憶部20、加熱部30、撮像部40、及び操作部50を制御する。また、制御部10のプロセッサーは、記憶部20の記憶装置に記憶されたコンピュータープログラムを実行して、推定部11、加熱制御部12、及び計測部13として機能する。つまり、制御部10は、推定部11、加熱制御部12及び計測部13を含む。
推定部11は、撮像部40の撮像結果に基づいて、被加熱物の加熱中に、被加熱物の名称を推定する。
加熱制御部12は、推定部11の推定結果に応じて、加熱部30を制御する。例えば、加熱制御部12は、推定部11の推定結果に応じて、一定時間が経過してから加熱部30による被加熱物の加熱を停止させる。より具体的には、加熱制御部12は、推定部11が推定した被加熱物の名称に応じた加熱時間にわたって被加熱物が加熱されるように、加熱部30を制御する。
計測部13は、被加熱物が加熱された時間を計測する。例えば、計測部13は、加熱部30が被加熱物への加熱を開始してから、推定部11が被加熱物の名称を推定する時までの、被加熱物が加熱された時間を計測する。
次に、図1及び図2を参照して、加熱調理器1の動作の概要について説明する。図2は、加熱調理器1の動作の概要を示すブロック図である。
図2に示すように、まず、計測部13は、加熱部30による加熱を開始する指示を操作部50が受け付けた時から、被加熱物が加熱される時間の計測を開始する。
一方、推定部11は、被加熱物が加熱されている時に、撮像部40の撮像結果である料理画像HGを学習済みモデルLMに入力する。具体的には、推定部11は、被加熱物の加熱中に、料理画像HGを学習済みモデルLMに入力する。料理画像HGは、撮像部40によって撮像された被加熱物を示す。
学習済みモデルLMは、入力された料理画像HGに基づいて、入力された料理画像HGが示す被加熱物の名称を示す名称情報MNを出力する。具体的には、学習済みモデルLMは、被加熱物の加熱中に、料理画像HGに示される被加熱物の名称情報MNを出力する。
そして、推定部11は、被加熱物の加熱中に、学習済みモデルLMが出力した名称情報MNを取得する。すなわち、推定部11は、料理画像HGに基づいて、被加熱物の加熱中に、被加熱物の名称を推定する。従って、推定部11は、被加熱物の名称を精度良く推定できる。そして、推定部11は、名称情報MNを加熱制御部12に入力する。
加熱制御部12は、名称情報MNに応じて、加熱部30を制御する。すなわち、加熱制御部12は、推定部11の推定結果に応じて、加熱部30を制御する。従って、予めユーザーが操作部50を操作して被加熱物への加熱方法(メニュー)を選択することなく、被加熱物に対して、被加熱物の名称に応じた加熱ができる。その結果、加熱調理器1を操作するユーザーの手間を軽減できる。
具体的には、加熱制御部12は、推定部11の推定結果に応じて、被加熱物に応じた加熱時間と、加熱強度とを決定する。従って、予めユーザーが操作部50を操作して被加熱物への加熱時間と加熱強度とを選択することなく、被加熱物に対して、被加熱物の名称に応じた加熱ができる。その結果、ユーザーが加熱調理器1を操作する手間を軽減しつつ、被加熱物の名称に応じた加熱時間と加熱強度とで、被加熱物を加熱できる。すなわち、被加熱物の名称に応じて、適切に被加熱物を加熱できる。
具体的には、例えば、被加熱物がトーストである場合、推定部11は、被加熱物がトーストであると推定する。一方、例えば、記憶部20が記憶するテーブルTbにおいて、トーストに対して、11分を示す加熱時間、及び180℃を示す加熱強度が関連付けられている。そこで、加熱制御部12は、被加熱物を加熱する時間を11分に決定し、被加熱物を加熱する加熱強度を180℃に決定する。従って、加熱制御部12は、例えば、被加熱物が11分にわたって180℃で加熱されるように、加熱部30を制御する。その結果、適切にトーストが焼き上がる。
より具体的には、実施形態1において、加熱制御部12は、決定した加熱時間と、計測部13の計測結果とに基づいて、被加熱物に対する残りの加熱時間を決定する。従って、加熱制御部12は、決定した残りの加熱時間にわたって被加熱物を加熱するように加熱部30を制御する。その結果、加熱部30によって被加熱物が過剰に加熱されることを防止できる。すなわち、被加熱物を適切に加熱できる。
次に、図3を参照して、学習済みモデルLMを生成する学習装置100について説明する。図3は、学習装置100を示すブロック図である。学習装置100は、例えば、コンピューターである。学習装置100は、学習データTDを機械学習することによって、学習済みモデルLMを生成する。そして、学習装置100は学習済みモデルLMを出力する。学習済みモデルLMは、上述したように、入力された料理画像HGが示す被加熱物の名称を推定する。学習データTDは、学習装置100による機械学習の対象である。
図3に示すように、学習装置100は、処理部110と、記憶部120とを備える。
処理部110は、CPU及びGPU等のプロセッサーを備える。記憶部120は、記憶装置を含み、データ及びコンピュータープログラムを記憶する。処理部110のプロセッサーは、記憶部120の記憶装置が記憶しているコンピュータープログラムを実行して、各種処理を実行する。例えば、記憶部120は、加熱調理器1の記憶部20と同様に、主記憶装置と、補助記憶装置とを備え、リムーバブルメディアを備えていてもよい。記憶部120は、例えば、非一時的コンピューター読取可能記憶媒体である。
記憶部120は、学習プログラムLPを記憶している。学習プログラムLPは、複数の学習データTDの中から一定の規則を見出し、見出した規則を表現する学習済みモデルLMを生成するための機械学習アルゴリズムを実行するためのプログラムである。
機械学習アルゴリズムは、教師あり学習であれば、特に限定されず、例えば、決定木、最近傍法、単純ベイズ分類器、サポートベクターマシン、又は、ニューラルネットワークである。従って、学習済みモデルLMは、決定木、最近傍法、単純ベイズ分類器、サポートベクターマシン、又は、ニューラルネットワークを含む。学習済みモデルLMを生成する機械学習において、誤差逆伝搬法を利用してもよい。
例えば、ニューラルネットワークは、入力層、単数又は複数の中間層、及び、出力層を含む。具体的には、ニューラルネットワークは、ディープニューラルネットワーク(DNN:Deep Neural Network)、再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、又は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)であり、ディープラーニングを行う。例えば、ディープニューラルネットワークは、入力層、複数の中間層、及び、出力層を含む。
処理部110は、学習プログラムLPに基づいて複数の学習データTDを機械学習する。その結果、複数の学習データTDの中から一定の規則が見出されて、学習済みモデルLMが生成される。つまり、学習済みモデルLMは、学習データTDを機械学習することで構築される。記憶部120は、学習済みモデルLMを記憶する。
具体的には、処理部110は、学習データTDに含まれる学習対象料理画像LGと名称情報MNとの間における一定の規則を見出して、学習済みモデルLMを生成する。学習対象料理画像LGは説明変数であり、名称情報MNは目的変数である。実施形態1において、学習対象料理画像LGは料理を示す。名称情報MNは、学習対象料理画像LGに示される料理の名称を示す。
さらに具体的には、処理部110は、学習プログラムLPに基づいて複数の学習データTDを機械学習することによって、複数の学習済みパラメータを算出し、複数の学習済みパラメータが適用された1以上の関数を含む学習済みモデルLMを生成する。学習済みパラメータは、複数の学習データTDを用いた機械学習の結果に基づいて取得されるパラメータ(係数)である。
学習済みモデルLMは、入力情報を入力して、出力情報を出力するように、コンピューターを機能させる。換言すれば、学習済みモデルLMは、入力情報を入力して、出力情報を出力する。具体的には、学習済みモデルLMは、入力された料理画像HGが示す料理の名称を推定するように、コンピューターを機能させる。換言すれば、学習済みモデルLMは、入力された料理画像HGが示す料理の名称を推定する。
次に、図4A~図4Fを参照して、学習データTDについて説明する。図4Aは、学習データTDの一例を示す。図4B~図4Fの各々は、学習データTDの他の一例を示す。以下、図4Aに示す学習データTDを学習データTD1と記載し、図4Bに示す学習データTDを学習データTD2と記載し、図4Cに示す学習データTDを学習データTD3と記載し、図4Dに示す学習データTDを学習データTD4と記載し、図4Eに示す学習データTDを学習データTD5と記載し、図4Fに示す学習データTDを学習データTD6と記載する場合がある。
実施形態1において、学習データTDは、学習対象料理画像LGと、名称情報MNとを含む。また、実施形態1において、学習対象料理画像LGに示される料理の名称を、例えばユーザーが判断する。すなわち、学習対象料理画像LGには、ユーザーによって判断された料理の名称を示す名称情報MNがラベル付けされている。理解を容易にするため、料理の焼き色をハッチングで示している。具体的には、ハッチングの間隔が広いほど焼き色が薄く、ハッチングの間隔が狭いほど焼き色が濃いように示している。
図4A~図4Fに示すように、複数の学習データTDは、それぞれ、複数の料理(例えば、ピザ及びトースト等)に対応する。具体的には、図4A~図4Cに示す複数の学習データTDは、ピザに対応する。また、図4D~図4Fに示す複数の学習データTDは、トーストに対応する。また、複数の学習データTDの各々の学習対象料理画像LGは、それぞれ、1つの料理が加熱される過程において、異なる時の料理を示す。
例えば、図4A~図4Cに示す学習データTD1~学習データTD3の各々は、ピザが加熱される過程において、異なる時のピザを示す。
図4Aに示すように、学習データTD1の学習対象料理画像LGが示すピザは、学習データTD2の学習対象料理画像LGが示すピザ及び学習データTD3の学習対象料理画像LGが示すピザよりも前の段階のピザを示す。実施形態1において、学習データTD1の学習対象料理画像LGには、「ピザ」を示す名称情報MNがラベル付けされている。本明細書において、「ピザ」を示す名称情報MNを、名称情報MN1と記載する場合がある。
また、図4Bに示すように、学習データTD2の学習対象料理画像LGが示すピザは、学習データTD1の学習対象料理画像LGが示すピザと学習データTD3の学習対象料理画像LGが示すピザとの間の段階のピザを示す。また、実施形態1において、学習データTD2の学習対象料理画像LGには、「ピザ」を示す名称情報MN1がラベル付けされている。
さらに、図4Cに示すように、学習データTD3の学習対象料理画像LGが示すピザは、学習データTD1の学習対象料理画像LGが示すピザ及び学習データTD2の学習対象料理画像LGが示すピザよりも後の段階のピザを示す。また、実施形態1において、学習データTD3の学習対象料理画像LGには、「ピザ」を示す名称情報MN1がラベル付けされている。
また、例えば、図4D~図4Fに示す学習データTD4~学習データTD6の各々は、トーストが加熱される過程において、異なる時のトーストを示す。
図4Dに示すように、学習データTD4の学習対象料理画像LGが示すトーストは、学習データTD5の学習対象料理画像LGが示すトースト及び学習データTD6の学習対象料理画像LGが示すトーストよりも前の段階のトーストを示す。また、実施形態1において、学習データTD4の学習対象料理画像LGには、「トースト」を示す名称情報MNがラベル付けされている。本明細書において、「トースト」を示す名称情報MNを、名称情報MN2と記載する場合がある。
また、図4Eに示すように、学習データTD5の学習対象料理画像LGが示すトーストは、学習データTD4の学習対象料理画像LGが示すトーストと学習データTD6の学習対象料理画像LGが示すトーストとの間の段階のトーストを示す。また、実施形態1において、学習データTD5の学習対象料理画像LGには、「トースト」を示す名称情報MN2がラベル付けされている。
さらに、図4Fに示すように、学習データTD6の学習対象料理画像LGが示すトーストは、学習データTD4の学習対象料理画像LGが示すトースト及び学習データTD5の学習対象料理画像LGが示すトーストよりも後の段階のトーストを示す。実施形態1において、学習データTD6の学習対象料理画像LGには、「トースト」を示す名称情報MN2がラベル付けされている。
なお、名称情報MNは、「ピザ」又は「トースト」等という文字列で表されていてもよいし、「ピザ」及び「トースト」の各々に対応する識別情報(ID)で示されてもよい。
次に、図5を参照して、学習済みモデルLMの入力情報及び出力情報について説明する。図5は、学習済みモデルLMの入力情報及び出力情報を示すブロック図である。
図5に示すように、学習済みモデルLMの入力情報は、撮像部40の撮像結果である料理画像HGである。学習済みモデルLMは、入力された料理画像HGに基づいて、料理画像HGが示す被加熱物の名称情報MNを出力する。図5に示す例において、学習済みモデルLMは、料理画像HGが示す被加熱物の名称は「トースト」であると推定する。従って、学習済みモデルLMは、「トースト」を示す名称情報MNを出力する。
次に、図3及び図6を参照して、学習装置100が実行する学習方法を説明する。図6は、実施形態1に係る学習済みモデル生成方法を示すフローチャートである。図6に示すように、学習済みモデル生成方法は、ステップS41~ステップS44を含む。
図3及び図6に示すように、ステップS41において、学習装置100の処理部110は、学習データTDを取得する。例えば、処理部110は、ユーザーによって入力された学習データTDを取得する。
次に、ステップS42において、処理部110は、学習プログラムLPに基づいて、学習データTDを機械学習する。
次に、ステップS43において、処理部110は、学習終了条件を満たすか否かを判定する。学習終了条件は、機械学習を終了するために予め定められた条件である。学習終了条件は、例えば、反復回数が規定回数に到達したことである。
ステップS43において、否定的判定(No)がされた場合は、処理はステップS41に進む。その結果、機械学習が繰り返される。
一方、ステップS43で肯定的判定(Yes)された場合は、処理はステップS44に進む。
ステップS44において、処理部110は、最新の複数のパラメータ(係数)つまり、複数の学習済みパラメータ(係数)を適用したモデル(1以上の関数)を、学習済みモデルLMとして出力する。そして、記憶部120は学習済みモデルLMを記憶する。
以上、学習装置100がステップS41~ステップS44を実行することで、学習済みモデルLMが生成される。
次に、図7~図9を参照して、加熱調理器1の動作について説明する。まず、加熱庫に被加熱物が載置された状態で、操作部50は、加熱部30による加熱開始の指示を受け付ける。そして、加熱制御部12は、被加熱物を加熱するように加熱部30を制御する。その結果、加熱部30は被加熱物への加熱を開始する。このとき、加熱部30は、例えば、所定の加熱強度で被加熱物を加熱する。また、加熱部30が被加熱物への加熱を開始するとともに、計測部13は、被加熱物が加熱される時間の計測を開始する。
図7は、撮像部40の撮像結果である料理画像HGを示す図である。図7に示すように、推定部11は、撮像部40の撮像結果である料理画像HGを学習済みモデルLMに入力する。学習済みモデルLMは、入力された料理画像HGに基づいて、「ピザ」を示す名称情報MNを出力する。そして、推定部11は、学習済みモデルLMが出力した名称情報MNを取得する。
図8は、記憶部20が記憶するテーブルTbを示す図である。図8に示すように、テーブルTbにおいて、名称情報MNに対して、加熱時間Htと、加熱強度Hsとが関連付けられている。加熱制御部12は、推定部11の推定結果、すなわち、推定部11が取得した名称情報MNに応じて、被加熱物に対する加熱時間Htと加熱強度Hsとを決定する。例えば、図7に示す料理画像HGが示す被加熱物の名称情報MNが「ピザ」であると推定されたため、加熱制御部12は、加熱時間Htを「25分」に決定し、加熱強度Hsを「250℃」に決定する。
図9は、加熱部30の動作の一例を示す図である。図9に示すように、推定部11が名称情報MNを取得したときの計測部13の計測結果、すなわち被加熱物の加熱時間Ctは4分である。つまり、加熱部30によって被加熱物への加熱が開始してから4分が経過したときに、撮像結果である料理画像HGに基づいて名称情報MNが取得されている。そして、加熱制御部12は、加熱時間Htを「25分」に決定し、加熱強度Hsを「250℃」に決定している。従って、加熱制御部12は、計測部13の計測結果(加熱時間Ct)と、決定した加熱時間Htとに基づいて、被加熱物に対する残りの加熱時間Rtを決定する。そして、推定部11が名称情報MNを取得してから、残りの加熱時間Rtが経過することに応じて被加熱物への加熱が終了するように、加熱制御部12は加熱部30を制御する。
次に、図10を参照して、加熱調理器1が実行する処理について説明する。図10は、実施形態1に係る加熱調理器1が実行する処理を示すフローチャートである。加熱調理器1が実行する処理は、ステップS1~ステップS10を含む。
図10に示すように、ステップS1において、操作部50は、加熱部30による加熱開始の指示を受け付ける。そして、加熱制御部12は、被加熱物を加熱するように加熱部30を制御する。その結果、加熱部30は被加熱物を加熱する。また、加熱部30が被加熱物への加熱を開始するとともに、計測部13は、被加熱物が加熱される時間の計測を開始する。
ステップS2において、制御部10は、被加熱物を撮像するように撮像部40を制御する。その結果、撮像部40は、被加熱物を撮像する。
ステップS3において、推定部11は、撮像結果である料理画像HGを学習済みモデルLMに入力する。
ステップS4において、推定部11は、ステップS3で入力された料理画像HGに基づいて、学習済みモデルLMが名称情報MNを出力したか否かを判定する。ステップS4において否定的判定(No)がされる場合、すなわち、学習済みモデルLMが名称情報MNを出力しなかった場合、又は、学習済みモデルLMが「不明」を出力した場合、処理はステップS2に進む。一方、ステップS4において肯定的判定(Yes)がされる場合、すなわち、学習済みモデルLMが名称情報MNを出力した場合、処理はステップS5に進む。学習済みモデルLMが名称情報MNを出力しなかった場合、及び、学習済みモデルLMが「不明」を出力した場合については後述する。
ステップS5において、推定部11は、学習済みモデルLMが出力した名称情報MNを取得する。そして、推定部11は、取得した状態情報SBを加熱制御部12に入力する。
ステップS6において、加熱制御部12は、推定部11の推定結果に応じて、被加熱物に対する加熱時間Htと、加熱強度Hsとを決定する。
ステップS7において、加熱制御部12は、計測部13の計測結果と、ステップS6で決定した加熱時間Htとに基づいて、被加熱物に対する残りの加熱時間Rtを決定する。
ステップS8において、加熱制御部12は、ステップS6で決定した加熱強度Hsに基づいて、加熱部30の加熱強度を調整する。
ステップS9において、加熱制御部12は、ステップS7で残りの加熱時間Rtが決定されたときから、ステップS7で決定された残りの加熱時間Rtが経過したか否かを判定する。ステップS9において肯定的判定(Yes)がされる場合、処理はステップS10に進む。一方、ステップS9において否定的判定(No)がされる場合、処理は、ステップS9に戻る。
ステップS10において、加熱制御部12は、被加熱物への加熱を停止するように加熱部30を制御する。その結果、加熱部30は、加熱を停止する。
(実施形態2)
次に、図11を参照して、実施形態2に係る加熱調理器1aについて説明する。図11は、実施形態2に係る加熱調理器1aを示すブロック図である。実施形態2では、加熱調理器1aがターンテーブル60を備える点と、推定部11aがパターンマッチングによって被加熱物の名称を推定する点とで、実施形態2は実施形態1と主に異なる。以下、実施形態2が実施形態1と異なる点を主に説明する。
加熱調理器1aは、制御部10aと、記憶部20aと、加熱部30と、撮像部40と、操作部50と、ターンテーブル60とを備える。
ターンテーブル60には、被加熱物が載置される。実施形態2において、加熱部30が被加熱物を加熱する間、ターンテーブル60は、例えば、略一定の角速度で回転する。すなわち、ターンテーブル60は、被加熱物が載置されて回転する。
制御部10aは、CPU及びMPUのようなプロセッサーを含む。制御部10のプロセッサーは、記憶部20aの記憶装置に記憶されたコンピュータープログラムを実行して、記憶部20a、加熱部30、撮像部40、操作部50、及びターンテーブル60を回転させるためのモーター(不図示)を制御する。
また、制御部10のプロセッサーは、記憶部20aの記憶装置に記憶されたコンピュータープログラムを実行して、推定部11a、加熱制御部12、計測部13、及び補正部14として機能する。つまり、制御部10は、推定部11a、加熱制御部12、計測部13、及び補正部14を含む。推定部11a及び補正部14については後述する。
記憶部20aは、パターンマッチング用データPDと、テーブルTbとを記憶する。パターンマッチング用データPDは、複数の料理画像MGと、名称情報MNとを含む。
次に、図12A~図12Fを参照して、記憶部20aが記憶するパターンマッチング用データPDについて説明する。図12Aは、パターンマッチング用データPDの一例を示す。図12B~図12Fの各々は、パターンマッチング用データPDの他の一例を示す。以下、図12Aに示すパターンマッチング用データPDをパターンマッチング用データPD1と記載し、図12Bに示すパターンマッチング用データPDをパターンマッチング用データPD2と記載し、図12Cに示すパターンマッチング用データPDをパターンマッチング用データPD3と記載し、図12Dに示すパターンマッチング用データPDをパターンマッチング用データPD4と記載し、図12Eに示すパターンマッチング用データPDをパターンマッチング用データPD5と記載し、図12Fに示すパターンマッチング用データPDをパターンマッチング用データPD6と記載する場合がある。
図12A~図12Fに示すように、複数のパターンマッチング用データPDの料理画像MGは、それぞれ、複数の料理(例えば、ピザ及びトースト等)に対応する。また、複数の料理画像MGは、それぞれ、1つの料理が加熱される過程において、異なる時の料理を示す。
例えば、図12A~図12Cに示すパターンマッチング用データPD1~パターンマッチング用データPD3の各々の料理画像MGは、ピザが加熱される過程において、異なる時のピザを示す。
図12Aに示すように、パターンマッチング用データPD1の料理画像MGが示すピザは、パターンマッチング用データPD2の料理画像MGが示すピザ及びパターンマッチング用データPD3の料理画像MGが示すピザよりも前の段階のピザを示す。実施形態2において、パターンマッチング用データPD1の料理画像MGには、「ピザ」を示す名称情報MN1がラベル付けされている。
また、図12Bに示すように、パターンマッチング用データPD2の料理画像MGが示すピザは、パターンマッチング用データPD1の料理画像MGが示すピザとパターンマッチング用データPD3の料理画像MGが示すピザとの間の段階のピザを示す。実施形態2において、パターンマッチング用データPD2の料理画像MGには、「ピザ」を示す名称情報MN1がラベル付けされている。
さらに、図12Cに示すように、パターンマッチング用データPD3の料理画像MGが示すピザは、パターンマッチング用データPD1の料理画像MGが示すピザ及びパターンマッチング用データPD2の料理画像MGが示すピザよりも後の段階のピザを示す。実施形態2において、パターンマッチング用データPD3の料理画像MGには、「ピザ」を示す名称情報MN1がラベル付けされている。
また、例えば、図12D~図12Fに示すパターンマッチング用データPD4~パターンマッチング用データPD6の各々は、トーストが加熱される過程において、異なる時のトーストを示す。
図12Dに示すように、パターンマッチング用データPD4の料理画像MGが示すトーストは、パターンマッチング用データPD5の料理画像MGが示すトースト及びパターンマッチング用データPD6の料理画像MGが示すトーストよりも前の段階のトーストを示す。実施形態2において、料理画像MG4には、「トースト」を示す名称情報MN2がラベル付けされている。
また、図12Eに示すように、パターンマッチング用データPD5の料理画像MGが示すトーストは、パターンマッチング用データPD5の料理画像MGが示すトーストとパターンマッチング用データPD6の料理画像MGが示すトーストとの間の段階のトーストを示す。実施形態2において、パターンマッチング用データPD5の料理画像MGには、「トースト」を示す名称情報MN2がラベル付けされている。
さらに、図12Fに示すように、パターンマッチング用データPD6の料理画像MGが示すトーストは、パターンマッチング用データPD4の料理画像MG4が示すトースト及びパターンマッチング用データPD5の料理画像MG5が示すトーストよりも後の段階のトーストを示す。実施形態2において、パターンマッチング用データPD6の料理画像MG6には、「トースト」を示す名称情報MN2がラベル付けされている。
次に、図13を参照して、撮像結果の向きの補正について説明する。図13は、撮像部40の撮像結果である料理画像HGと、補正後の撮像結果である料理画像HGAとを示す図である。図13に示すように、被加熱物がピザPzである場合を例に挙げて説明する。すなわち、図13に示す例において、ターンテーブル60にピザPzが載置されている。
補正部14は、ターンテーブル60が回転するときの角速度ωに基づいて、料理画像HGの向きを補正する。料理画像HGAは、補正部14によって、角速度ωと被加熱物が加熱された計測部13の計測結果とに基づき料理画像HGの向きを補正したものである。計測部13の計測結果は、被加熱物が加熱部30によって加熱された時間tのことである。具体的には、θ=ω×tによって、料理画像HGの向きを補正する角度θが算出される。補正部14は、角度θだけ、ターンテーブル60が回転する方向と反対の方向に料理画像HGを回転させることによって、料理画像HGを補正する。
推定部11aは、補正後の料理画像HGAと、記憶部20aに記憶される料理画像MGとを比較して、比較結果に基づいて、被加熱物の名称を推定する。従って、料理画像HGの向きを補正せずに被加熱物の名称を推定する場合よりも、精度よく被加熱物の名称を推定できる。
本実施形態において、推定部11aは、比較結果が示すマッチング率が閾値以上であるか否かを判定する。マッチング率とは、料理画像HGAが示す被加熱物と、記憶部20aに記憶される料理画像MGとのマッチングする比率を示す。閾値は、例えば90%である。すなわち、料理画像HGAと、料理画像MGとのマッチング率が90%以上である場合、推定部11aは、被加熱物の名称が、料理画像MGに関連付けられた名称情報MNであると推定する。そして、加熱制御部12は、推定部11aの推定結果に応じて、加熱部30を制御する。
次に、図14を参照して、実施形態2の加熱調理器1aが実行する処理について説明する。図14は、加熱調理器1aが実行する処理を示すフローチャートである。
図14に示すように、ステップS21において、操作部50は、加熱部30による加熱開始の指示を受け付ける。そして、加熱制御部12は、被加熱物を加熱するように加熱部30を制御する。その結果、加熱部30は被加熱物を加熱する。また、加熱部30が被加熱物への加熱を開始するとともに、計測部13は、被加熱物が加熱される時間の計測を開始する。
ステップS22において、制御部10は、被加熱物を撮像するように撮像部40を制御する。その結果、撮像部40は、被加熱物を撮像する。
ステップS23において、補正部14は、ターンテーブル60が回転しているか否かを判定する。ステップS23で肯定的判定(Yes)がされる場合、すなわち、ターンテーブル60が回転していると補正部14が判定した場合、処理はステップS24に進む。一方。ステップS23で否定的判定(No)がされる場合、すなわち、ターンテーブル60が回転していないと補正部14が判定した場合、処理はステップS25に進む。ここで、補正部14は、ターンテーブル60を回転させるモーターが駆動しているか否かを判定することで、ターンテーブル60が回転しているか否かを判定してもよい。
ステップS24において、補正部14は、ターンテーブル60が回転するときの角速度ωと、計測部13の計測結果とに基づいて、ステップS22での撮像部40の撮像結果である料理画像HGを補正する。
ステップS25において、推定部11は、撮像結果である料理画像HGと、料理画像MGとを比較する。なお、ステップS24で撮像結果である料理画像HGが補正部14によって補正された場合、推定部11は、補正後の撮像結果である料理画像HGAと料理画像MGとを比較する。
ステップS26において、推定部11は、ステップS25における比較結果が示すマッチング率が閾値以上であるか否かを判定する。ステップS26において否定的判定(No)がされる場合、すなわち、撮像結果と料理画像MGとのマッチング率が閾値未満である場合、処理はステップS22に進む。一方、ステップS26において肯定的判定(Yes)がされる場合、すなわち、撮像結果と料理画像MGとのマッチング率が閾値以上である場合、処理はステップS27に進む。
ステップS27において、推定部11は、被加熱物の名称を推定する。具体的には、マッチング率が閾値以上であった料理画像MGに関連づけられている名称情報MNを取得する。
ステップS28において、加熱制御部12は、推定部11の推定結果に応じて、被加熱物に対する加熱時間Htと、加熱強度Hsとを決定する。
ステップS29において、加熱制御部12は、計測部13の計測結果と、ステップS6で決定した加熱時間Htとに基づいて、被加熱物に対する残りの加熱時間Rtを決定する。
ステップS30において、加熱制御部12は、ステップS29で決定した加熱強度Hsに基づいて、加熱部30の加熱強度を調整する。
ステップS31において、加熱制御部12は、ステップS29で残りの加熱時間Rtが決定されたときから、加熱時間Rtが経過したか否かを判定する。ステップS31において肯定的判定(Yes)がされる場合、処理はステップS32に進む。一方、ステップS31において否定的判定(No)がされる場合、処理は、ステップS31に戻る。
ステップS32において、加熱制御部12は、被加熱物への加熱を停止するように加熱部30を制御する。その結果、加熱部30は、加熱を停止する。
(変形例)
次に、図15を参照して、実施形態1の変形例に係る加熱調理器1について説明する。図15は、実施形態1の変形例に係る加熱調理器1の学習済みモデルLMが機械学習した学習データTdaを示す図である。変形例では、1つの学習データTdaが複数の学習対象料理画像LDを含む点で、変形例は実施形態1と主に異なる。以下、変形例が実施形態1と異なる点を主に説明する。
図15に示すように、1つの学習データTdaは、複数の学習対象料理画像LDと、名称情報MNとを含む。具体的には、学習データTdaは、複数の学習対象料理画像LD1~LDNXを含む。理解を容易にするため、料理の焼き色をハッチングで示している。具体的には、ハッチングの間隔が広いほど焼き色が薄く、ハッチングの間隔が狭いほど焼き色が濃いように示している。
複数の学習対象料理画像LDは、それぞれ、料理が加熱される過程において、異なる時の料理を示す。具体的には、複数の学習対象料理画像LDは、それぞれ、1つの料理が加熱される過程において、所定時間ごとに撮像された料理を示す。変形例において、所定時間は例えば2秒である。すなわち、変形例に係る学習済みモデルLMが学習する学習対象料理画像LDは、料理動画である。
変形例に係る撮像部40は、例えば、所定時間ごとに被加熱物を撮像する。そして、推定部11は、所定時間ごとに撮像された複数の撮像結果である料理動画を学習済みモデルLMに入力する。すなわち、変形例において、学習済みモデルLMの入力情報は、撮像部40によって撮像された動画である。学習済みモデルLMは、入力された料理動画に基づいて、料理動画が示す被加熱物の名称情報MNを出力する。
以上、図面を参照しながら本発明の実施形態及び変形例について説明した。但し、本発明は、上記の実施形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能である。また、上記の実施形態に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明の形成が可能である。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。図面は、理解しやすくするために、それぞれの構成要素を主体に模式的に示しており、図示された各構成要素の個数等は、図面作成の都合から実際とは異なる場合もある。また、上記の実施形態で示す各構成要素は一例であって、特に限定されるものではなく、本発明の効果から実質的に逸脱しない範囲で種々の変更が可能である。
(1)図7を参照して説明したように、学習済みモデルLMは、推定部11によって入力された料理画像HGに基づいて、料理画像HGが示す被加熱物の名称示す名称情報MNを出力した。ただし、推定部11によって入力された料理画像HGに基づいて、学習済みモデルLMが被加熱物の名称を推定できない場合、学習済みモデルLMは、例えば、名称情報MNを出力しなくてもよいし、「不明」を示す名称情報MNを出力してもよい。学習済みモデルLMが名称情報MNを出力しない場合、又は学習済みモデルLMが「不明」を示す名称情報MNを出力する場合、推定部11は、再度、撮像部40が被加熱物を撮像するように撮像部40を制御する。具体的には、推定部11は、前回撮像部40が被加熱物を撮像してから所定時間後に被加熱物を撮像するように撮像部40を制御する。すなわち、推定部11が被加熱物の名称を推定するまで、撮像部40は、所定時間ごとに被加熱物を撮像する。従って、被加熱物にとって適切でない加熱強度と加熱時間とで、被加熱物が加熱されることを抑制できる。
(2)図9を参照して説明したように、加熱制御部12は、計測部13の計測結果(加熱時間Ct)と、決定した加熱時間Htとに基づいて、被加熱物に対する残りの加熱時間Rtを決定した。そして、推定部11が名称情報MNを取得してから、残りの加熱時間Rtが経過することに応じて被加熱物への加熱が終了するように、加熱制御部12は加熱部30を制御した。ただし、加熱制御部12は、残りの加熱時間Rtが経過した時から、さらに一定の時間が経過した上で被加熱物への加熱が終了するように、加熱部30を制御してもよい。
(3)図10のステップS1~ステップS10の順番は、適宜変更し得る。
(4)図14のステップS21~図15のステップS32の順番は、適宜変更し得る。
(5)図4A~図4Cを参照して説明したように、1つの料理に対して、3つの学習対象料理画像LGを学習済みモデルLMに入力させた。ただし、学習済みモデルLMが被加熱物の名称を推定できる限り、1つの料理に対して1つまたは2つの学習対象料理画像LGを学習してもよいし、4つ以上の学習対象料理画像LGを学習してもよい。
(6)図12及び図13を参照して説明したように、実施形態2に係る加熱調理器1aは、ターンテーブル60を備えていた。ただし、加熱調理器1aが被加熱物を加熱する限り、加熱調理器1aは、ターンテーブル60を備えていなくてもよい。この場合、補正部14は、撮像結果を補正しない。
(7)図12及び図13を参照して説明したように、実施形態2に係る加熱調理器1aの推定部11aは、撮像結果である料理画像HGと記憶部20aに記憶される料理画像MGとを比較して、比較結果に基づいて、被加熱物の名称を推定した。ただし、推定部11aが被加熱物の名称を推定できる限り、推定部11aは、複数の撮像結果である料理画像HGの差分と、記憶部20aに記憶される複数の料理画像MGの差分とを比較して、比較結果に基づいて、被加熱物の名称を推定してもよい。この場合、記憶部20aに記憶される複数の料理画像MGの差分とは、1つの料理が加熱される過程において異なる時の料理を示す複数の料理画像MGの差分のことである。