以下、本発明の実施の形態について、図を参照して説明する。
図1は、本発明の一実施の形態に係る食事管理システムの概略構成を示すブロック図である。食事管理システム100は、端末装置110とサーバ装置120とを含む。端末装置110とサーバ装置120とは、例えば、インターネット回線、WAN(Wide Area Network)、LAN(Local Area Network)等のネットワークを介して相互に通信可能に接続される。
端末装置110のユーザは、端末装置110の撮像部111を使用して、食事に関する画像を撮像する。端末装置110は、撮像した食事に関する画像をサーバ装置120に送信する。サーバ装置120では、サーバ制御部126が、受信した画像に基づいて、ユーザの食生活を推定する。食生活とは、生活のうち食事に関することである。食生活には、食事の内容、及び食事と時間との関係が含まれる。ユーザの食生活には、例えばユーザの食事の摂取量及びユーザが摂取した食事の栄養バランス等を含む食事の内容を含んでもよい。ユーザの食生活には、例えばユーザが食事を摂取した時間帯を含んでもよい。サーバ装置120は、推定した食生活に関する情報を端末装置110に送信する。食生活に関する情報を受信した端末装置110は、表示部113に受信した情報を表示する。ユーザは、表示部113に表示された情報を閲覧することにより、自らの食生活に関する情報を知ることができる。
端末装置110は、撮像部111と、検出部112と、表示部113と、入力部114と、記憶部115と、端末制御部116と、端末送信部117と、端末受信部118とを備える。端末装置110は、例えば食事管理システム100に使用される専用の端末装置であってもよく、例えば携帯電話機等の電子機器であってもよい。
撮像部111は、例えばカメラにより構成される。撮像部111は、食事に関する画像を撮像する。すなわち、ユーザは、食事に関する画像を撮像することによって、自らの食事を端末装置110に記録する。
食事に関する画像には、例えば、食事を摂取する前の食前画像と、食事を摂取した後の食後画像とを含んでもよい。すなわち、食前画像は、ユーザに対して提供された料理が写った画像である。食後画像は、例えば、ユーザが料理を完食した場合、料理が提供されていた食器類が写った画像であり、ユーザが料理を食べ残した場合、食べ残した料理と食器類とが写った画像である。ユーザは、例えば食前及び食後に、それぞれ食前画像及び食後画像を撮像することにより、食事を、画像として端末装置110に記録する。ユーザの食生活は、撮像した画像に基づいて推定される。具体的な推定の方法は後述する。
ユーザは、1回の食事で食べる料理の画像を1枚の画像として撮像できない場合、複数回に分けて、料理の画像を撮像してもよい。1回の食事で食べる料理の画像を1枚の画像として撮像できない場合とは、例えば、コンパで食事を摂取する場合や、コース料理の食事を摂取する場合である。コンパの場合には、注文に応じて順次料理が提供される。コース料理では、コースに含まれる料理が、予め定められた順序で順次提供される。このような場合、ユーザは、料理が提供されるたびに、料理ごとに画像を撮像することにより、食事の記録を行う。
なお、コンパの場合には、提供された料理を、ユーザを含む複数人で食べることが想定される。この場合でも、ユーザは、提供された複数人分の料理の画像を撮像することにより、食事の記録を行う。ユーザの食生活は、撮像した複数人分の料理に基づいて推定されるが、具体的な推定の方法については後述する。
検出部112は、ユーザの身体の状態を検出するセンサである。ユーザの身体の状態とは、身体に関する物理的な状態であり、例えば体動、脈拍、体温等である。検出部112は、例えば加速度センサにより構成され、ユーザの身体の状態として体動を検出する。加速度センサは、端末装置110に作用する加速度の方向及び大きさ等の加速度に関する情報を検出する。例えば、ユーザが端末装置110を所持したまま歩行した場合、検出部112は、歩行によって端末装置110に作用する加速度に関する情報を検出する。例えば、ユーザが、睡眠時に、ユーザが寝ている布団等の上に端末装置110を置いている場合、検出部112は、ユーザの寝返りによって生じる布団の振動から、端末装置110に作用する加速度に関する情報を検出する。このようにして、検出部112は、ユーザの体動に関する情報を、加速度に関する情報として検出する。検出部112により検出された加速度に関する情報は、ユーザの動作の推定に使用される。ユーザの動作の推定の詳細は、後述する。検出部112は、例えば赤外線センサにより構成され、ユーザの身体の状態として脈拍を検出する。検出部112は、例えば温度センサにより構成され、ユーザの身体の状態として体温を検出する。検出部112は、端末装置110と別体としてもよく、ユーザが常に体の一部に装着できるように構成してもよい。検出部112は、上述した加速度センサ、赤外線センサ及び温度センサを少なくとも1つを備えていればよい。検出部112は、例えば、角速度センサ、地磁気センサ、湿度センサ、又は気圧センサを含んでもよい。検出部112は、上述のセンサのうち2つ以上を備えることにより、ユーザの身体の状態をより正確に検出することができる。
表示部113は、液晶ディスプレイ、有機ELディスプレイ、又は無機ELディスプレイ等の表示デバイスである。表示部113は、様々な情報を表示する。表示部113は、例えば、端末装置110がサーバ装置120から受信したユーザの食生活に関する情報を表示する。表示部113は、例えば、入力部114からのユーザの操作に基づいて、ユーザの食生活に関する情報を表示してもよい。表示部113は、例えば、ユーザが食事を終了するたびに、ユーザの食生活に関する情報を表示してもよい。
なお、表示部113は、食生活に関する情報をユーザに通知する通知部の一例である。端末装置110は、表示部113に代わり、又は表示部113と共に、他の手段により食生活に関する情報をユーザに通知してもよい。端末装置110は、例えば、スピーカを備え、スピーカから音声により食生活に関する情報を通知してもよい。
入力部114は、ユーザからの操作入力を受け付けるものであり、例えば、操作ボタン(操作キー)から構成される。入力部114は、例えば、タッチスクリーンにより構成され、表示部113の一部にユーザからの操作入力を受け付ける入力領域を表示して、ユーザによるタッチ操作入力を受け付けてもよい。ユーザは、入力部114を使用して、例えば、食事開始を入力できる。食事開始の入力は、例えば、ユーザが食事を開始するときに、タッチパネルとして構成された端末装置110の入力部114に表示された「食事開始」ボタンをタップすることにより行う。端末装置110の端末制御部116は、時計機能を利用して、食事開始が入力された時刻を、ユーザの食事開始時刻と認識してもよい。ユーザは、食事開始の入力と同様に、食事終了の入力を行うことができる。端末制御部116は、時計機能を利用して、食事終了が入力された時刻を、ユーザの食事終了時刻と認識してもよい。
ユーザは、入力部114を使用して、食事の種別を入力できる。本実施の形態において、食事の種別は、例えば、「コンパ・コース料理モード」と「食事モード」との2つの種別を有する。端末制御部116及びサーバ制御部126は、食事の種別に応じてそれぞれ異なる制御を行う。ユーザは、端末制御部116及びサーバ制御部126での制御方法を決定するために、入力部114から食事の種別を入力する。なお、以下、本実施の形態において、「コンパ・コース料理モード」は、コンパ又はコース料理等のように、1回の食事において順次料理が提供される食事の形態をいい、「食事モード」は、食事を開始するときに1回の食事の料理が全て提供されている食事の形態をいう。
ユーザは、「コンパ・コース料理モード」を選択した場合、撮像する料理を何人で摂取したかを、入力部114を使用して入力する。例えば、10人でコンパを行った場合、ユーザは、「10」と入力する。例えば、ユーザは、1人分のコース料理の画像を撮像する場合、「1」と入力する。入力した人数は、「コンパ・コース料理モード」における食生活の推定に使用される。
ユーザは、入力部114を使用して、ユーザの身長、体重、年齢及び性別等、食生活の管理を行うために必要なユーザ情報を入力できる。
ユーザは、入力部114を使用して、睡眠を行う場合に、「睡眠モード」の入力を行うことができる。ユーザが「睡眠モード」を入力した場合、端末制御部116は、検出部112が検出した振動を、ユーザの寝返りによって生じる布団の振動であると認識する。
ユーザは、入力部114を使用して、撮像モードのオン及びオフを制御できる。ユーザが「撮像モードオン」を入力した場合、端末制御部116が撮像部111を起動し、画像の撮像が可能となる。ユーザが「撮像モードオフ」を入力した場合、端末制御部116が撮像部111を停止する。端末制御部116は、ユーザによる「撮像モードオフ」の入力がない場合であっても、例えば「撮像モードオン」の状態で所定の時間ユーザが撮像部111を使用しない場合に、自動的に撮像モードをオフにしてもよい。端末制御部116は、ユーザによる「撮像モードオフ」の入力がない場合であっても、例えば「撮像モードオン」の状態でユーザが1枚画像を撮像した場合に、自動的に撮像モードをオフにしてもよい。
記憶部115は、例えば半導体メモリ、磁気メモリ等で構成でき、各種情報や端末装置110を動作させるためのプログラム等を記憶する。記憶部115は、例えば、撮像部111が撮像した食事に関する画像、検出部112が検出したユーザの体動に関する情報、及び入力部114から入力されたユーザ情報等を記憶する。記憶部115は、例えば、サーバ装置120から受信したユーザの食生活に関する情報を記憶する。
記憶部115は、ユーザが食事中であるか否かを示す食事中フラグに関する情報を記憶してもよい。食事中フラグは、例えば、ユーザが食事を行っていないと端末制御部116が判断する場合にオフ状態に、ユーザが食事を行っていると端末制御部116が判断する場合にオン状態に設定される。食事中フラグの設定については、図2において説明する。
端末制御部116は、端末装置110の全体の動作を制御するプロセッサである。端末制御部116は、例えば、撮像部111が食事に関する画像を撮像したとき、時計機能を利用して、当該画像を、画像の撮像時刻と対応付けて記憶部115に記憶させる。端末制御部116は、例えば、時計機能を利用して、検出部112により検出されたユーザの身体の状態に関する情報を、当該身体の状態を検出した時刻と対応付けて記憶部115に記憶させてもよい。端末制御部116は、記憶部115に記憶された情報を、データとして端末送信部117を介してサーバ装置120に送信する。端末制御部116は、定期的又は不定期的にデータを送信してもよい。例えば、端末制御部116は、毎日所定の時刻(例えば0時)にデータを送信してもよい。端末制御部116は、入力部114へのユーザの操作に基づいて、データを送信してもよい。端末制御部116は、ユーザが食事の記録を行うたびにデータを送信してもよい。
端末制御部116は、撮像部111が撮像した複数の画像から、食前画像と食後画像とを決定する。端末制御部116は、様々な方法により、食前画像と食後画像とを決定できる。
端末制御部116は、ユーザが入力部114から食事の種別として「食事モード」を入力した場合、例えば、入力部114に食事開始が入力された後、1回目に撮像された画像を食前画像と決定し、2回目に撮像された画像を食後画像と決定できる。この場合、ユーザは、食事開始の入力をした後、実際に食事を始める前に画像の撮像を行う。端末制御部116は、このようにして撮像された1回目の画像を食前画像と決定する。ユーザは、食事を終えた後、もう一度画像の撮像を行う。端末制御部116は、このようにして撮像された2回目の画像を食後画像と決定する。この方法により、端末制御部116は、自動的に食前画像及び食後画像を決定できる。
端末制御部116は、ユーザが入力部114から食事の種別として「食事モード」を入力した場合、例えば、入力部114に食事開始が入力された後に最初に撮像された画像を食前画像と決定し、入力部114に食事終了が入力される前に最後に撮像された画像を食後画像と決定する。この場合、ユーザは、食事開始の入力をした後、実際に食事を始める前に画像の撮像を行う。端末制御部116は、このようにして撮像された最初の画像を食前画像と決定する。ユーザは、食事を終えた後、画像の撮像を行い、その後、食事終了を入力する。すると、端末制御部116は、食事終了の入力前に最後に撮像された画像を食後画像と決定する。この方法によれば、ユーザが食事中に複数の画像を撮像しても、端末制御部116は、食前画像と食後画像とを自動的に決定できる。なお、端末制御部116は、食事終了が入力された後に最初に撮像された画像を食後画像と決定してもよい。この場合、ユーザは、食事を終えたときに、食事終了を入力し、その後、画像の撮像を行う。
端末制御部116は、ユーザが食事の記録を行うときの制限時間を管理できる。制限時間は、ユーザが食事を開始してから食事に関する画像を撮像できる時間を、所定の時間内に制限するものである。例えば、ユーザが食前画像を撮像したものの、食後画像を撮像し忘れた場合、端末制御部116は、食事の記録を終了する。例えば、食事を終了したときにユーザが食事終了を入力する必要がある場合であって、ユーザが食事終了の入力をし忘れた場合、端末制御部116は、制限時間を経過したときに、食事の記録を終了する。制限時間は、例えば3時間である。制限時間は、予め端末制御部116により決定されていてもよく、ユーザにより設定されてもよい。
端末送信部117は、端末装置110が有する情報をサーバ装置120に送信する。端末送信部117は、例えば、食事に関する画像と撮像時刻とを対応付けたデータ、ユーザの身体の状態に関するデータ、及びユーザ情報に関するデータ等を送信する。
端末受信部118は、サーバ装置120から送信される情報を受信する。端末受信部118は、例えば、サーバ装置120が推定したユーザの食生活に関する情報を受信する。なお、端末送信部117と端末受信部118とは、送受信機能を有する1つの端末通信部として構成してもよい。
サーバ装置120は、記憶部125と、サーバ制御部126と、サーバ送信部127と、サーバ受信部128とを備える。
記憶部125は、例えば半導体メモリ、磁気メモリ等で構成でき、各種情報やサーバ装置120を動作させるためのプログラム等を記憶する。例えば、記憶部125は、端末装置110から受信した各種情報を記憶する。記憶部125は、サーバ制御部126が推定したユーザの食生活に関する情報を記憶する。
記憶部125は、サーバ制御部126がユーザの食生活を推定するために必要な、基準となる基準情報を記憶する。基準情報は、例えば、好ましい栄養バランスに関する情報、好ましい食事の摂取量、好ましい食事の所要時間及び好ましい食事の摂取時間帯等に関する情報である。
サーバ制御部126は、サーバ装置120の全体の動作を制御するプロセッサである。サーバ制御部126は、端末装置110から受信した画像及び画像の撮像時刻に基づいて、記憶部125の基準情報を参照して、ユーザの食生活を推定する。このとき、サーバ制御部126は、ユーザが入力した食事の種別に応じたアルゴリズムを用いて、ユーザの食生活を推定する。サーバ制御部126は、推定した食生活に関する情報を端末装置110に送信する。このとき、サーバ制御部126は、端末装置110の表示部113に表示させるユーザに対する食生活のアドバイスを、推定した食生活に関する情報と共に、又は推定した食生活に関する情報に代えて、端末装置110に送信してもよい。
サーバ制御部126は、例えば、ユーザが「食事モード」を種別として入力した場合、端末装置110から受信した食前画像及び食後画像に基づいて、食事の摂取量及び栄養バランスの少なくとも一方を含む食事の内容を推定する。本実施の形態においては、サーバ制御部126は、食事の摂取量及び栄養バランスの双方を推定するとして説明する。
まず、サーバ制御部126が食事の摂取量を推定する方法について説明する。サーバ制御部126は、食前画像の画像分析により、食前の料理の量を推定する。料理の量は、例えば、画像分析に基づく料理の体積である。サーバ制御部126は、例えば、予め記憶部125が記憶する料理ごとの平均密度を参照して、画像分析により推定した料理の内容に基づき、料理の重さを料理の量として推定してもよい。次に、サーバ制御部126は、食後画像の画像分析により、ユーザが食べ残した料理の量を推定する。例えば、食後画像に食べ残した料理が移っていない場合には、サーバ制御部126は、ユーザが食べ残していないと判断する。サーバ制御部126は、食前画像の画像分析により推定した食前の料理の量から、食後画像の画像分析により推定したユーザが食べ残した料理の量の差を算出することにより、ユーザが実際に摂取した食事の摂取量を推定する。なお、サーバ制御部126は、例えば食前画像のみに基づいて、食前画像に写った料理をユーザが完食したと想定して、ユーザの食事の摂取量を簡便に推定してもよい。
サーバ制御部126は、推定した食事の摂取量に基づき、ユーザ情報、すなわちユーザの身長、体重、年齢及び性別等を参照して、食事の摂取量が適当であるか否かを判断する。サーバ制御部126は、例えば文章として表示部113に表示させるアドバイスを、端末装置110に送信する。サーバ制御部126は、例えば食事の摂取量が多いと判断した場合、「食事の量が多いです。もう少し食事の量を控えましょう」等のアドバイスを端末装置110に送信する。
次に、サーバ制御部126が食事の栄養バランスを推定する方法について説明する。サーバ制御部126は、受信した食前画像及び食後画像の画像分析を行う。例えば、サーバ制御部126は、食前画像の画像分析により、食事の色のバランス(色バランス)を分析する。食事に含まれる食材の色は、必ずしも食材が含む栄養素に対応するものではないが、食材の色によって、その食材が含む栄養素を推定できる。例えば、茶色の食材は、肉類のようにタンパク質を多く含む食材である可能性が高いことが推定できる。例えば、白色の食材は、米、パン及び麺類のように炭水化物を多く含む食材である可能性が高いことが推定できる。例えば、緑色の食材は、葉物野菜のようにミネラル及びビタミン類を多く含む可能性が高いことが推定できる。サーバ制御部126は、食材の色バランスを分析することにより、栄養バランスを推定する。
サーバ制御部126は、食前画像の画像分析の結果、例えば、基準情報における好ましい摂取量に対して緑色の食材が少ないと判断した場合、葉物野菜が不足していると判断する。この場合、サーバ制御部126は、食事の内容として、ミネラル及びビタミン類が不足しているという情報を端末装置110に送信する。このとき、サーバ制御部126は、例えば文章として表示部113に表示させるアドバイスを、端末装置110に送信する。上述の例では、サーバ制御部126は、例えば「葉物野菜が不足しています。もっと食事に取り入れるようにしましょう」等のアドバイスを端末装置110に送信する。
例えば、サーバ制御部126は、食後画像の画像分析により、ユーザが摂取した食事の栄養バランス及び摂取量等を分析できる。例えば、サーバ制御部126は、食前画像の色バランスの分析の結果、基準情報に照らして、栄養バランスが良いと判断したとする。サーバ制御部126は、食後画像の画像分析を行った結果、緑色の食材が残っていると判断したとする。この場合、サーバ制御部126は、ユーザが摂取した食事において、葉物野菜が不足していると判断する。サーバ制御部126は、食事の内容として、ミネラル及びビタミン類が不足しているという情報を端末装置110に送信する。このとき、サーバ制御部126は、例えば「葉物野菜が残っています。残さず食べるようにしましょう」等のアドバイスを端末装置110に送信する。
なお、サーバ制御部126は、食事の内容に関する他の情報を推定してもよく、例えば、食事のカロリーを推定してもよい。
サーバ制御部126は、例えば、ユーザが「コンパ・コース料理モード」を種別として入力した場合、端末装置110から受信した画像に基づいて、食事の内容を推定する。ここでは、一例として、サーバ制御部126が、食事の摂取量を推定する方法について説明する。サーバ制御部126は、「コンパ・コース料理モード」において、上述の「食事モード」と同様に、食前画像及び食後画像に基づいて、食事の摂取量を推定してもよいが、ここでは、食後画像を使用せずに食事の摂取量を推定する方法について説明する。
ユーザが種別として「コンパ・コース料理モード」を選択した場合、料理の画像は、料理が提供されるたびに、料理ごとに撮像されている。サーバ制御部126は、1回の食事として撮像された全ての画像を分析することにより、「コンパ・コース料理モード」において全体で摂取された料理の量を推定する。サーバ制御部126は、推定した全体の料理の量を、ユーザが入力した食事を摂取した人数で割り算を行うことにより、1人当たりが摂取した食事の量を推定する。例えば、10人でコンパを行い、ユーザが食事を摂取した人数として「10」と入力していた場合、サーバ制御部126は、推定した全体の料理の量を10で割る演算を行う。サーバ制御部126は、このようにして算出した1人分の量を、ユーザの食事の摂取量として推定する。
サーバ制御部126は、「コンパ・コース料理モード」の場合、食事の所要時間の算出を行わなくてもよい。例えば、コンパは数時間にわたって行われることがあるため、コンパの所要時間を、食生活として管理される食事の所要時間として記録することが、必ずしも食生活の管理において適当であるとは限らないためである。
サーバ制御部126は、推定したユーザの食事の摂取量に基づき、上述の説明と同様に、食事の摂取量が適当であるか否かを判断し、表示部113に表示させるアドバイスを、端末装置110に送信する。
サーバ制御部126は、食前画像の撮像時刻及び食後画像の撮像時刻に基づいて、ユーザの食事の所要時間を算出する。ここで食事の所要時間は、ユーザが食事を開始してから、食べ終えるまでの時間であり、すなわち、食事に要した時間である。サーバ制御部126は、食後画像の撮像時刻と食前画像の撮像時刻との差を算出することにより、食事の所要時間を算出できる。
サーバ制御部126は、所定の所要時間閾値に基づいて、ユーザの食事の所要時間が短いか否かを判断できる。所定の所要時間閾値は、例えば、ユーザの過食を抑制できる時間である。具体的には、ユーザは、食事を開始してから約20分経過すると、満腹中枢の働きにより満腹と感じる。ユーザは、満腹中枢が働き始める時間よりも短い時間で食事を終了すると、満腹感を得られないため、より多くの食事を摂取する可能性がある。従って、過食を抑制するためには、ユーザは、満腹中枢が働き始めるまで時間をかけて食事を摂取することが好ましい。そのため、サーバ制御部126は、例えば、ユーザが食事を開始して20分以内に食べ終えた場合には、食事の所要時間が短いと判断できる。
サーバ制御部126は、ユーザの食生活を推定した内容として、食事の内容と、算出したユーザの食事の所要時間とを端末装置110に送信できる。このとき、サーバ制御部126は、食事の所要時間が短いか否かの判断についての情報を端末装置110に送信できる。サーバ制御部126は、食事の所要時間が短いと判断した場合、例えば「もっと時間をかけて食事を行いましょう」等のアドバイスを端末装置110に送信してもよい。このアドバイスには、食事にかける具体的な目標時間(例えば30分)を含めてもよい。
サーバ制御部126は、ユーザの身体活動に関する情報を推定すると共に、身体活動に関する情報と画像の撮像時刻とに基づいて、食生活を推定できる。身体活動とは、睡眠や運動等、ユーザが生活において行う任意の活動である。サーバ制御部126は、検出部112が検出したユーザの身体の状態に関する情報を端末装置110から取得し、身体の状態に基づいて、身体活動に関する情報を推定する。
サーバ制御部126は、例えば、身体活動に関する情報として、睡眠に関する情報を推定すると共に、睡眠に関する情報と画像の撮像時刻とに基づいて、食生活を推定できる。端末装置110の検出部112が体動を検出する場合、サーバ制御部126は、端末装置110から取得した体動に関するデータに基づいて、ユーザの睡眠に関する情報を推定する。
ここで、サーバ制御部126による睡眠に関する情報の推定について具体的に説明する。人は、睡眠中に、ほぼ一定のサイクルでレム睡眠とノンレム睡眠との2つの睡眠状態を繰り返すことが知られている。睡眠状態がレム睡眠の場合、人は寝返りをうちやすい傾向にあり、ノンレム睡眠の場合、人は寝返りをうちにくい傾向にある。端末装置110の検出部112が体動を検出する場合、サーバ制御部126は、この傾向を利用して、ユーザの寝返りに起因する体動に基づき、ユーザの睡眠状態を推定する。すなわち、所定のサイクルで体動が検出される時間帯をノンレム睡眠と推定し、所定のサイクルで体動が検出されない時間帯をレム睡眠と推定する。2つの睡眠状態は、ほぼ一定のサイクルで繰り返される。そのため、サーバ制御部126は、2つの睡眠状態のサイクルを決定した後、2つの睡眠状態の時間帯に基づいて、遡ってユーザが入眠した時刻、すなわち実際に眠りに入った時刻を推定する。
端末装置110の検出部112が脈拍及び体温を検出する場合、睡眠に関する情報は、脈拍及び体温に基づいて推定してもよい。具体的には、睡眠中に人は脈拍が減少し、体温が低下する。サーバ制御部126は、脈拍および体温について予め所定の睡眠判定閾値を設定し、脈拍及び体温が所定の睡眠判定閾値よりも低くなった時刻を、実際に眠りに入った時刻と推定する。
これらの睡眠に関する情報の推定は、端末制御部116で推定してもよい。その場合、端末制御部116は推定した入眠時刻を、端末送信部117を介してサーバ装置120に送信する。
サーバ制御部126は、上述のようにして推定した入眠時刻と、食事に関する画像の撮像時刻とに基づいて、ユーザの食生活を推定する。この場合、サーバ制御部126が推定する食生活は、例えば、ユーザが食事を食べ終えてから睡眠をとるまでの時間に関する。具体的には、例えば、サーバ制御部126は、推定した入眠時刻と食後画像の撮像時刻との差を算出することにより、ユーザが食事を食べ終えてから睡眠をとるまでの時間を算出する。
サーバ制御部126は、所定の睡眠前時間閾値に基づいて、ユーザが食事を摂取してから睡眠をとるまでの時間が短いか否かを判断できる。所定の睡眠前時間閾値は、例えば、ユーザに内臓脂肪がつきやすい時間である。具体的には、食事を食べ終えてから約2時間以内に睡眠をとると、摂取した食事が睡眠の間に内臓脂肪として蓄積されやすい。内臓脂肪が蓄積されると、ユーザは、例えば、動脈硬化、高脂血症、高血圧及び糖尿病等の様々な疾患にかかりやすくなる。内臓脂肪の蓄積を抑制するために、ユーザは、睡眠を行う2時間以上前に食事を終了していることが好ましい。そこで、サーバ制御部126は、例えば、ユーザが食後画像の撮像時刻から2時間以内に入眠した場合には、食事を摂取してから睡眠をとるまでの時間が短いと判断できる。サーバ制御部126は、食事画像の分析により、食事の内容として、ユーザが摂取した食事の栄養バランス及び摂取量等を推定できる。
サーバ制御部126は、ユーザの食生活を推定した内容として、睡眠前に摂った食事の内容と、食事を摂取してから睡眠をとるまでの時間とを端末装置110に送信できる。このとき、サーバ制御部126は、食事を摂取してから睡眠をとるまでの時間が短いか否かの判断についての情報を端末装置110に送信できる。サーバ制御部126は、食事を摂取してから睡眠をとるまでの時間が短いと判断した場合、例えば「もっと早めに夕食を摂りましょう」等のアドバイスを端末装置110に送信してもよい。このアドバイスには、夕食を摂取する具体的な目標時間(例えば午後7時頃)を含めてもよい。
サーバ制御部126は、例えば、身体活動に関する情報として、運動に関する情報を推定すると共に、運動に関する情報と画像の撮像時刻とに基づいて、食生活を推定できる。端末装置110の検出部112が体動を検出する場合、サーバ制御部126は、端末装置110から取得した体動に関する情報に基づいて、ユーザの運動に関する情報を推定する。
ここで、サーバ制御部126による運動に関する情報の推定について具体的に説明する。サーバ制御部126は、検出部112によって検出されたユーザの体動の大きさに従って、運動の強度及び運動を行った運動時間を推定する。サーバ制御部126は、体動の大きさが所定の体動閾値を超えている場合にユーザが運動を行っていると判断する。サーバ制御部126は、体動の大きさが所定の体動閾値を継続して超えている時間をユーザの運動時間として推定する。また、サーバ制御部126は、体動の大きさが所定の体動閾値を超えた時刻及び下回った時刻を、それぞれ運動時間の開始時刻及び終了時刻として推定する。サーバ制御部126は、所定の体動閾値を複数設定し、複数の強度レベルの運動に対応する運動時間の開始時刻及び終了時刻を推定してもよい。
端末装置110の検出部112が脈拍及び体温を検出する場合、運動に関する情報は、脈拍及び体温に基づいて推定してもよい。具体的には、運動中に人は脈拍が増加し、体温が上昇する。サーバ制御部126は、脈拍及び体温について、予めユーザが運動をしているか否かを判定するための所定の運動判定閾値を設定し、脈拍及び体温が所定の運動判定閾値よりも大きくなった時刻を、運動を開始した時刻と推定する。
なお、上述した運動強度及び運動時間は、端末制御部116で推定してもよい。その場合、端末制御部116は推定した運動強度と運動時間とを、端末送信部117を介してサーバ装置120に送信する。
サーバ制御部126は、上述のようにして推定した運動時間と、食事に関する画像の撮像時刻とに基づいて、ユーザの食生活を推定する。この場合、サーバ制御部126が推定する食生活は、例えば、ユーザが食事を食べ終えてから運動を開始するまでの時間に関する。具体的には、例えば、サーバ制御部126は、推定した運動開始時刻と食後画像の撮像時刻との差を算出することにより、ユーザが食事を食べ終えてから運動を開始するまでの時間を算出する。
サーバ制御部126は、所定の食事後時間閾値に基づいて、ユーザが食事を食べ終えてから運動を開始するまでの時間が適切か否かを判断できる。所定の食事後時間閾値は、例えば、体が運動しやすい状態となる時間である。食事直後の運動は、胃腸や肝臓などの消化器官に負担がかかる。血糖が低い状態で運動すると、体は脂肪をエネルギー源にしようとして、血液中に脂肪酸を出すことになる。血液中の脂肪酸の量が増えると心臓など身体に悪い影響を及ぼす。具体的には、食事を食べ終えてから約2時間後から3時間後の間が、食事直後でもなく、血糖も程よく上がっていて、体が運動しやすい状態となる時間である。サーバ制御部126は、例えば、ユーザが食後画像の撮像時刻から2時間以内に運動を開始した場合には、食事を摂取してから運動を開始するまでの時間が短く適切ではないと判断できる。サーバ制御部126は、例えば、ユーザが食後画像の撮像時刻から3時間以上経ってから運動を開始した場合には、食事を摂取してから運動を開始するまでの時間が長く適切ではないと判断できる。
サーバ制御部126は、ユーザの食生活を推定した内容として、食事を摂取してから運動を開始するまでの時間を端末装置110に送信できる。このとき、サーバ制御部126は、食事を摂取してから運動を開始するまでの時間が適切か否かの判断についての情報を端末装置110に送信できる。サーバ制御部126は、食事を摂取してから運動を開始するまでの時間が適切ではないと判断した場合、例えば「運動の前の食事はもっと早めに摂りましょう」等のアドバイスを端末装置110に送信してもよい。このアドバイスには、運動前又は運動後における食事の量、食事の内容等を含めてもよい。例えば「空腹時は、糖質を含むバナナなどの食品を少量でも食べてから運動しましょう」等のアドバイスを端末装置110に送信してもよい。
サーバ制御部126が推定する食生活は、例えば、ユーザが運動を終了してから食事を摂取するまでの時間に関する。具体的には、例えば、サーバ制御部126は、推定した運動終了時刻と食前画像の撮像時刻との差を算出することにより、ユーザが運動を終了してから食事を摂取するまでの時間を算出する。
サーバ制御部126は、所定の運動後時間閾値に基づいて、ユーザが運動を終えてから食事を開始するまでの時間が適切か否かを判断できる。所定の運動後時間閾値は、例えば、運動により破壊された筋組織を修復しやすい時間である。運動により、筋組織が破壊された状態のまま放置しておくと、筋肉痛の原因となる。運動した後、早い時間にタンパク質を摂取すると、破壊された筋組織を修復しやすいため、筋組織を修復しやすい時間に食事を行うことが好ましい。具体的には、例えば、運動を終了してから1時間以内に食事を行うと、筋組織が修復されやすい。サーバ制御部126は、例えば、ユーザが運動後1時間以内に食事を開始した場合、筋組織が修復されやすく、適切であると判断できる。サーバ制御部126は、例えば、ユーザが運動を終了してから2時間経過後に食事を開始した場合、筋組織の修復がされにくく、適切ではないと判断できる。
サーバ制御部126は、ユーザの食生活を推定した内容として、食事の内容と、運動を終了してから食事を摂取するまでの時間とを端末装置110に送信できる。このとき、サーバ制御部126は、運動を終了してから食事を摂取するまでの時間が適切か否かの判断についての情報を端末装置110に送信できる。サーバ制御部126は、運動を終了してから食事を摂取するまでの時間が適切ではないと判断した場合、例えば「運動後は1時間以内に食事を摂りましょう」等のアドバイスを端末装置110に送信してもよい。このアドバイスには、運動後における食事の量、食事の内容等を含めてもよい。例えば「運動後の食事にタンパク質が足りません。運動後は肉、大豆などを食べて筋肉を修復しましょう」等のアドバイスを端末装置110に送信してもよい。
図1において、サーバ送信部127は、サーバ装置120が有する情報を端末装置110に送信する。サーバ送信部127は、例えば、サーバ制御部126が推定した食生活に関する情報を送信する。
サーバ受信部128は、端末装置110から送信される情報を受信する。サーバ受信部128は、例えば、食事に関する画像と撮像時刻とを対応付けたデータを受信する。サーバ受信部128は、例えば、ユーザの体動に関するデータを受信する。なお、サーバ送信部127とサーバ受信部128とは、送受信機能を有する1つのサーバ通信部として構成してもよい。
次に、端末装置110が行う食事の記録処理について説明する。図2は、図1の端末装置110における食事の記録処理の一例を示すフローチャートである。図2は、食事モードにおいて、端末制御部116が、入力部114に食事開始が入力された後、1回目に撮像された画像を食前画像と決定し、2回目に撮像された画像を食後画像と決定する場合の食事の記録処理を示すフローチャートである。このフローのスタートの段階では、端末制御部116は、記憶部115に記憶される食事中フラグをオフ状態に設定している。
まず、入力部114は、ユーザから食事の種別の入力を受け付ける(ステップS101)。端末制御部116は、入力された食事の種別が「食事モード」であるか否かを判断する(ステップS102)。
端末制御部116は、入力された食事の種別が「食事モード」ではなく、「コンパ・コース料理モード」であると判断した場合(ステップS102のNo)、「コンパ・コース料理モード」で食事を記録する(ステップS103)。「コンパ・コース料理モード」の食事の記録の詳細については、図5及び図6において説明する。この場合、端末制御部116は、このフローを終了する。
端末制御部116は、入力された食事の種別が「食事モード」であると判断した場合(ステップS102のYes)、「食事モード」で食事を記録する。この場合、入力部114は、ユーザから食事開始の入力を受け付ける(ステップS104)。端末制御部116は、食事時間の計測を開始する(ステップS105)。
次に、端末制御部116は、食事時間の計測を開始してから制限時間を経過したか否かを判断する(ステップS106)。
端末制御部116は、制限時間を経過したと判断した場合(ステップS106のYes)、食事時間の計測を終了して(ステップS114)、このフローを終了する。
一方、端末制御部116は、制限時間を経過していないと判断した場合(ステップS106のNo)、入力部114に「撮像モードオン」の入力が行われたか否かを判断する(ステップS107)。
端末制御部116は、ユーザにより「撮像モードオン」の入力が行われていないと判断した場合(ステップS107のNo)、制限時間を経過したか否かを判断する(ステップS106)。端末制御部116は、「撮像モードオン」の入力が行われるまで、ステップS106及びステップS107を繰り返す。
端末制御部116は、ユーザにより「撮像モードオン」の入力が行われたと判断した場合(ステップS107のYes)、撮像部111の撮像モードをオンにする(ステップS108)。撮像部111は、ユーザの操作により、食事に関する画像を撮像する(ステップS109)。
記憶部115は、撮像部111が撮像した画像を撮像時刻と対応付けて記憶する(ステップS110)。端末制御部116は、撮像部111の撮像モードをオフにする(ステップS111)。
次に、端末制御部116は、食事中フラグがオン状態であるか否かを確認する(ステップS112)。
端末制御部116は、食事中フラグがオフ状態の場合(ステップS112のNo)、ステップS109において画像を撮像しているため、ユーザが既に食事を開始しているとして、食事中フラグをオン状態に設定する(ステップS113)。このフローは、ステップS106に戻る。
一方、端末制御部116は、食事中フラグがオン状態の場合(ステップS112のYes)、食事時間の計測を終了し(ステップS114)、このフローを終了する。
図2のフローにおいては、ユーザの食事開始前は、食事中フラグがオフ状態である。ユーザが1回目に食事に関する画像を撮像したとき(ステップS109)、端末制御部116は、この画像を食前画像と決定する。食事中フラグをオン状態にする(ステップS113)。このフローがステップS106に戻り、2回目にユーザが食事に関する画像を撮像したとき(ステップS109)端末制御部116は、この画像を食後画像と決定する。このとき、食事中フラグはオン状態であるから、端末制御部116は、食事時間の計測を終了して(ステップS114)、このフローを終了する。端末装置110は、このようにして、食事モードにおいて、1回目に撮像された画像を食前画像と決定し、2回目に撮像された画像を食後画像と決定する。端末制御部116は、食前画像又は食後画像が撮像されているか否かにかかわらず、制限時間を経過した場合には、このフローを終了できる。
図3は、図1の端末装置110における食事の記録処理の他の一例を示すフローチャートである。図3は、食事モードにおいて、端末制御部116が、食事開始が入力された後に最初に撮像された画像を食前画像と決定し、食事終了が入力された後に最初に撮像された画像を食後画像と決定する場合の食事の記録処理を示すフローチャートである。このフローでは、図2のフローと異なり、食事中フラグは使用されない。
端末装置110の各機能部は、図3のフローチャートにおいて、図2のステップS101からステップS111と同様に、それぞれ対応する図3のステップS201からステップS211を実行する。ここでは、ステップS201からステップS211は、ステップS101からステップS111と同じであるため、説明を省略する。
端末制御部116は、ステップS211で、撮像部111の撮像モードをオフにすると、次に、ユーザにより、入力部114に食事終了の入力が行われたか否かを判断する(ステップS212)。
端末制御部116は、食事終了の入力が行なわれていないと判断した場合(ステップS212のNo)、ユーザが食事を継続していると判断し、このフローはステップS206に戻る。このようにして、このフローは、ステップS212で端末制御部116が食事終了の入力が行なわれたと判断するまで、ステップS206からステップS212を繰り返す。
一方、端末制御部116は、食事終了の入力が行なわれたと判断した場合(ステップS212のYes)、食事時間の計測を終了し(ステップS213)、このフローを終了する。
図3のフローにおいては、ユーザが食事を開始した後、自ら食事終了の入力を行うまで、ステップS206からステップS212を繰り返すことができる。つまり、ユーザは、例えば撮像した画像に料理が全て写りこんでいない等、適当な画像が撮像できていないと判断した場合、画像を撮像し直すことができる。
図2又は図3のフローチャートにより撮像された画像は、次にサーバ装置120に送信される。サーバ装置120は、受信した食前画像及び食後画像に基づいて、ユーザの食生活を推定する。
図4は、図1のサーバ装置120における食生活の推定処理の一例を示すフローチャートである。ここで、図4を参照して、サーバ装置120による食生活の推定処理について説明する。
まず、サーバ受信部128が、端末装置110から送信された画像に関する情報を受信する(ステップS301)。
次に、サーバ制御部126は、食前画像の撮像時刻及び食後画像の撮像時刻に基づいて、ユーザの食事の所要時間を算出する(ステップS302)。サーバ制御部126は、食前画像及び食後画像を分析することにより、ユーザが摂取した食事の内容を推定する(ステップS303)。
サーバ送信部127は、食事の所要時間及びユーザが摂取した食事の内容を含む食生活の推定結果を端末装置110に送信する(ステップS304)。ユーザは、端末装置110が受信した推定結果を、表示部113に表示させることにより確認することができる。
次に、図2のステップS103又は図3のステップS203における「コンパ・コース料理モード」の場合の食事の記録処理について説明する。
図5は、図1の端末装置110における食事の記録処理の一例を示すフローチャートである。具体的には、図5は、端末装置110が、「コンパ・コース料理モード」において、食事時間を管理する場合の記録処理の一例を示すフローチャートである。
図2のステップS103又は図3のステップS203において、端末制御部116が、「コンパ・コース料理モード」が入力されたと判断した場合、入力部114は、ユーザから「コンパ・コース料理モード」における食事を摂取する人数の入力を受け付ける(ステップS401)。受付に際し、端末制御部116は、例えば、人数の入力を促す画面を表示部113に表示させてもよい。
入力部114は、ユーザから食事開始の入力を受け付ける(ステップS402)。ステップS402からステップS411は、それぞれ図3のステップS204からステップS213に対応する。すなわち、各機能部は、それぞれ対応するステップと同じ処理を行う。そのため、ここでは、処理の詳細な説明を省略する。
食事時間を管理する場合の「コンパ・コース料理モード」では、ステップS404で端末制御部116が制限時間を経過したと判断するまで、又は、ステップS410で端末制御部116が食事終了の入力が行われたと判断するまで、ユーザは、ステップS404からステップS410を繰り返すことにより、食事に関する画像の撮像を行うことができる。このようにして、ユーザは、順次提供される料理を順次撮像することにより、摂取した食事全体の画像を記録できる。
図6は、図1の端末装置110における食事の記録処理の他の一例を示すフローチャートである。具体的には、図6は、端末装置110が、「コンパ・コース料理モード」において、食事時間を管理しない場合の記録処理の一例を示すフローチャートである。
図2のステップS103又は図3のステップS203において、端末制御部116は、「コンパ・コース料理モード」が入力されたと判断した場合、入力部114に「撮像モードオン」の入力が行われたか否かを判断する(ステップS501)。
端末制御部116は、ユーザにより「撮像モードオン」の入力が行われていないと判断した場合(ステップS501のNo)、ユーザにより、入力部114に食事終了の入力が行われたか否かを判断する(ステップS506)。
一方、端末制御部116は、ユーザにより「撮像モードオン」の入力が行われたと判断した場合(ステップS501のYes)、撮像部111の撮像モードをオンにする(ステップS502)。ステップS502からステップS505は、それぞれ図2のステップS108からステップS111に対応する。すなわち、各機能部は、それぞれ対応するステップと同じ処理を行う。そのため、ここでは、処理の詳細な説明を省略する。
端末制御部116は、ステップS505において撮像部111の撮像モードをオフにすると、次に、ユーザにより、入力部114に食事終了の入力が行われたか否かを判断する(ステップS506)。
端末制御部116は、食事終了の入力が行なわれていないと判断した場合(ステップS506のNo)、ユーザが食事を継続していると判断し、このフローはステップS501に戻る。このようにして、このフローは、ステップS506で端末制御部116が食事終了の入力が行なわれたと判断するまで、ステップS501からステップS506を繰り返す。
一方、端末制御部116は、食事終了の入力が行なわれたと判断した場合(ステップS506のYes)、このフローを終了する。
食事時間を管理しない場合の「コンパ・コース料理モード」では、ステップS506で端末制御部116が食事終了の入力が行われたと判断するまで、ユーザは、食事に関する画像の撮像を行うことができる。このようにして、ユーザは、順次提供される料理を順次撮像することにより、摂取した食事全体の画像を記録できる。制限時間を越える長時間のコンパであっても、ユーザは、提供された全ての料理の画像を撮像できる。
図7は、表示部113が表示する食生活の推定結果の一例を示す図である。図7(a)は、ある1日において、ユーザが食事を行った時間を示すチャートである。図7(a)において、斜線で示すA領域は、ユーザが食事を行った時間を示している。表示部113が表示する推定結果は、さらに他の情報を表示してもよく、例えば、ユーザの睡眠時間及び運動時間を表示してもよい。例えば、図7(a)に示すように、点で示すB領域は、ユーザが運動を行った時間を示しており、黒塗りで示すC領域は、ユーザの睡眠時間を示している。図7(a)を参照すると、表示された日において、ユーザは3回の食事を行ったことが理解できる。図7(a)を参照すると、食事を行った時間帯及び食事に要した時間も知ることができる。図7(a)を参照すると、食事を行った時間と、運動及び睡眠の時間との関係も理解することができる。
図7(b)は、個別の食事に関する情報の表示の一例を示す図である。表示部113は、例えば、ユーザが、入力部114を使用して、図7(a)のチャートにおいて食事を示すいずれかのA領域を選択した場合に、図7(b)に示す図を表示する。図7(b)に示す例では、食事の食前画像と、その食事に対するアドバイスが表示されている。表示部113は、他の情報も表示できる。例えば、表示部113は、食後画像を表示してもよい。表示部113は、例えば食事の栄養バランスやカロリー等の情報を表示してもよい。
以上説明したように、食事管理システム100は、栄養バランスや食事の摂取量等の食事の内容の他、食事に要した時間等を考慮した食生活を推定できる。食事管理システム100は、例えば、食事を行った時間帯と入眠時間及び運動時間等の複数の要素に基づいて食生活を推定できる。食事管理システム100は、このようにして推定した食生活に基づき、例えばアドバイス等の情報をユーザに提示できる。そのため食事管理システム100は、有用な情報を提示できる。ユーザはこのようにして提示された情報に基づいて、食生活の改善を行うことができる。
なお、本発明は、上記実施の形態にのみ限定されるものではなく、幾多の変形又は変更が可能である。例えば、各構成部、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部やステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
例えば、上記実施の形態では、サーバ装置120は、食事に関する画像のデータの提供元である端末装置110に、推定した食生活に関する情報を送信したが、本発明は、この形態に限られない。例えば、サーバ装置120は、撮像部111を有する専用の端末装置から食事に関する画像データを受信し、食生活の推定を行った後、専用の端末装置とは異なる他の端末装置に食生活に関する情報を送信してもよい。他の端末装置として、例えば、携帯電話機、携帯型ミュージックプレイヤ、ノートパソコン、タブレット端末、ゲーム機などの多岐にわたる任意の電子機器を使用することができる。
例えば、上記実施の形態では、サーバ制御部126は、検出部112が検出したユーザの身体の状態に基づいて、身体活動に関する情報を推定し、身体活動に関する情報に基づいて、食生活を推定すると説明した。しかし、食生活の推定を行う方法は、これに限定されない。例えば、ユーザが、端末装置110の入力部114から運動時間及び睡眠時間等の身体活動に関する情報を入力し、サーバ制御部126は、ユーザが入力した身体活動に基づいて、食生活を推定してもよい。この場合、端末装置110は、検出部112を備えていなくてもよい。
食生活の推定は、必ずしもサーバ装置120で行われていなくてもよい。例えば、撮像部を備える端末装置が、上述の実施形態におけるサーバ制御部126の機能を有する制御部を備えていてもよい。この場合、食事に関する画像を撮像した端末装置が、自ら食生活に関する情報を推定できる。
食生活の推定は、例えば管理栄養士等の専門化が行ってもよい。この場合、具体的には、管理栄養士が、端末装置110からサーバ装置120に送信された食事に関する画像を閲覧し、画像の情報から、ユーザの食事の内容を推定することができる。この場合、管理栄養士がユーザへのアドバイスを作成することができる。
ユーザに提示されるアドバイスは、既にユーザが摂取し終えた食事に関するものでなくてもよい。例えば、サーバ装置120は、推定した食事の内容において、揚げ物が多い場合には、「明日は油ものを控えましょう」等のように、将来の食事に関するアドバイスを表示部113に表示させることもできる。