(57)【特許請求の範囲】
【請求項１】
食事の品目に対応するカロリー数を記憶するカロリー記憶部と、
食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部と、
前記食前画像における皿領域に載せられている食事の品目を識別し、認識結果記憶部に格納する食事認識部と、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度算出部と、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との第２の類似度を算出して、前記第１データ格納部に格納する食事部分類似度算出部と、
前記食前画像における皿領域の各々について、前記第１データ格納部に格納されている前記第１の類似度と前記第２の類似度とから算出される第３の類似度が最も大きい値となる前記食後画像における皿候補領域を特定する領域特定部と、
前記食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出部と、
前記食前画像における皿領域に載せられている食事について、前記認識結果記憶部に格納されている前記食事の品目に対応するカロリー数を前記カロリー記憶部から読み出し、読み出された当該食事のカロリー数と前記食前画像における皿領域について前記第２データ格納部に格納されている前記食事摂取割合との積を、前記食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算部と、
を有する情報処理装置。
【請求項２】
前記皿部分類似度算出部が、
前記食前画像における皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との差を表す皿部分差分画像を生成し、当該皿部分差分画像から皿部分についての第１の類似度を算出する
請求項１記載の情報処理装置。
【請求項３】
前記食事部分類似度算出部が、
前記食前画像における皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との差を表す食事部分差分画像を生成し、当該食事部分差分画像から食事部分についての第２の類似度を算出する
請求項１又は２記載の情報処理装置。
【請求項４】
前記領域特定部が、
前記第１の類似度と前記第２の類似度との重み付け加算により前記第３の類似度を算出する
請求項１乃至３のいずれか１つ記載の情報処理装置。
【請求項５】
前記領域特定部が、
前記食前画像における皿領域の各々について、前記食後画像における各皿候補領域との距離を算出し、当該距離によって前記第３の類似度を補正する
請求項１乃至４のいずれか１つ記載の情報処理装置。
【請求項６】
前記食前画像における皿領域の画像エントロピーに基づく重み値を算出する重み算出部
をさらに有する請求項４記載の情報処理装置。
【請求項７】
前記食前画像における皿領域の食事部分に対する、前記食後画像における皿候補領域の食事部分の面積比に応じた重み値を算出する重み算出部
をさらに有する請求項４記載の情報処理装置。
【請求項８】
前記摂取割合算出部が、
前記食前画像における皿領域の各々について、当該皿領域の食事部分の二値画像の画素値と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分の二値画像の画素値との差の総和を、前記食前画像における皿領域の食事部分の二値画像の画素値の総和で除することで食事摂取割合を算出する
請求項１乃至７のいずれか１つ記載の情報処理装置。
【請求項９】
食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度ステップと、
前記食前画像における皿領域に載せられている食事の品目を識別し、認識結果記憶部に格納する食事認識ステップと、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との第２の類似度を算出して、前記第１データ格納部に格納する食事部分類似度算出ステップと、
前記食前画像における皿領域の各々について、前記第１データ格納部に格納されている前記第１の類似度と前記第２の類似度とから算出される第３の類似度が最も大きい値となる前記食後画像における皿候補領域を特定する領域特定ステップと、
前記食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出ステップと、
前記食前画像における皿領域に載せられている食事について、前記認識結果記憶部に格納されている前記食事の品目に対応するカロリー数を、食事の品目に対応するカロリー数を記憶するカロリー記憶部から読み出し、読み出された当該食事のカロリー数と前記食前画像における皿領域について前記第２データ格納部に格納されている前記食事摂取割合との積を、前記食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算ステップと、
を含み、コンピュータにより実行される情報処理方法。
【請求項１０】
食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度ステップと、
前記食前画像における皿領域に載せられている食事の品目を識別し、認識結果記憶部に格納する食事認識ステップと、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との第２の類似度を算出して、前記第１データ格納部に格納する食事部分類似度算出ステップと、
前記食前画像における皿領域の各々について、前記第１データ格納部に格納されている前記第１の類似度と前記第２の類似度とから算出される第３の類似度が最も大きい値となる前記食後画像における皿候補領域を特定する領域特定ステップと、
前記食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出ステップと、
前記食前画像における皿領域に載せられている食事について、前記認識結果記憶部に格納されている前記食事の品目に対応するカロリー数を、食事の品目に対応するカロリー数を記憶するカロリー記憶部から読み出し、読み出された当該食事のカロリー数と前記食前画像における皿領域について前記第２データ格納部に格納されている前記食事摂取割合との積を、前記食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算ステップと、
を、コンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、食事の内容を撮影した食事画像の解析技術に関する。
【背景技術】
【０００２】
近年、日々の生活習慣によって引き起こされる生活習慣病が問題となっている。生活習慣病の主な原因の一つが偏った食生活であると考えられている。健康管理のため食事のカロリーに気を配る人は多く、理想的な食生活に近づけるよう専門家の指導を受けたいというニーズもある。現在、ユーザが撮影した食事画像などを送信すると管理栄養士などの専門家がユーザにコメントを返すというサービスが行われているが、このサービスは専門家を介するため費用が高くなり、利用できるユーザが限られてしまっている。より多くのユーザが利用できるよう費用を安く抑えるために、サービスの自動化が好ましい。
【０００３】
食事画像からカロリーを自動算出する従来技術は、食事認識部に食事認識技術を利用する方法を用いている。食事認識技術とは、食事の内容を撮影した食事画像に含まれている食事品目の名称及び領域を認識する技術である。従来技術では、食事認識技術を用いて食事画像から各食事品目名を取り出し、予め用意してあるカロリーデータベースから各食事品目名に対応するカロリーを読み出し、それらを合計することで食事全体のカロリーを算出する。しかし、この従来技術では、入力した食事画像に含まれている全ての食事品目をユーザが摂取することを前提としている。
【０００４】
また、予め食事画像中に存在する皿と食事品目についての情報をデータベースに登録することで、食前及び食後の画像から各食事品目名と領域を認識して対応付けを行う技術も存在している。この技術では、まず使用する皿と食事品目の対応を食事品目データベースに登録しておき、食前と食後の食事画像から皿の領域を検出し、皿で食事品目データベースを検索して、食前と食後で同一の皿領域を見つけ、それらに含まれる食事領域を抽出、比較し、食事が減った割合からユーザが摂取した食事量を算出し、各食事品目の食事量を加味してカロリーを合計し、食事全体のカロリーを算出する。
【０００５】
しかし、この方法は、食事画像に含まれる皿と食事品目の情報について事前登録が必要であるため、病院内での食事のように使用される皿が事前に分かっている場所においては適用可能である。しかしながら、一般的な人々の日常では食事シーンによって使用される皿は様々であり、食事品目も毎回変わるため、事前に皿や食事品目の登録ができずこの方法の適用は不可能である。また、食前画像と食後画像から食事領域を検出する際に、事前登録した皿情報のみを用いているため、同じような皿が複数存在する場合や、食事で皿が大きく隠れてしまっている場合に領域検出を誤ってしまう可能性がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Taichi Joutou, Keiji Yanai, "A food image recognition system with multiple kernel learning", Proceedings of the 16th IEEE international conference on Image processing, November 07-10, 2009, Cairo, Egypt.
【特許文献】
【０００７】
【特許文献１】特開２００５−７０９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従って、本技術の目的は、一側面において、正確に摂取カロリーを算出するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本情報処理装置は、（Ａ）食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部と、（Ｂ）画像格納部に格納されている食前画像と食後画像とに基づき、食前画像における皿領域の各々について、当該皿領域の皿部分と食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度算出部と、（Ｃ）画像格納部に格納されている食前画像と食後画像とに基づき、食前画像における皿領域の各々について、当該皿領域の食事部分と食後画像における各皿候補領域の食事部分との第２の類似度を算出して、第１データ格納部に格納する食事部分類似度算出部と、（Ｄ）食前画像における皿領域の各々について、第１データ格納部に格納されている第１の類似度と第２の類似度とから算出される第３の類似度が最も大きい値となる食後画像における皿候補領域を特定する領域特定部と、（Ｅ）食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出部と、（Ｆ）食前画像における皿領域に載せられている食事のカロリー数と食前画像における皿領域について第２データ格納部に格納されている食事摂取割合との積を、食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算部とを有する。
【発明の効果】
【００１０】
正確に摂取カロリーを算出することができるようになる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本技術の実施の形態におけるシステム概要図である。
【図２】図２は、第１の実施の形態に係る情報処理装置の機能ブロック図である。
【図３Ａ】図３Ａは、第１の実施の形態の処理フローを示す図である。
【図３Ｂ】図３Ｂは、食事認識結果格納部に格納されるデータの一例を示す図である。
【図４】図４は、皿領域検出部の検出結果の一例を示す図である。
【図５】図５は、皿部分の類似度を算出する処理の処理フローを示す図である。
【図６Ａ】図６Ａは、皿領域の一例を示す図である。
【図６Ｂ】図６Ｂは、食前画像の皿部分マスクの一例を示す図である。
【図７】図７は、食後画像の皿部分マスクの一例を示す図である。
【図８】図８は、合成皿部分マスクの生成を説明するための模式図である。
【図９】図９は、皿部分差分画像を生成するための演算を説明するための模式図である。
【図１０】図１０は、食事部分の類似度を算出する処理の処理フローを示す図である。
【図１１Ａ】図１１Ａは、食前画像の食事部分マスクの一例を示す図である。
【図１１Ｂ】図１１Ｂは、食後画像の食事部分マスクの一例を示す図である。
【図１２】図１２は、合成食事部分マスクの生成を説明するための模式図である。
【図１３】図１３は、食事部分差分画像を生成するための演算を説明するための模式図である。
【図１４】図１４は、第１データ格納部に格納されるデータの一例を示す図である。
【図１５】図１５は、オムライスの食前の状態の一例を表す図である。
【図１６】図１６は、オムライスの食後の状態の一例を示す図である。
【図１７】図１７は、第２データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、第１の実施の形態の処理フローを示す図である。
【図１９】図１９は、第４データ格納部に格納されるデータの一例を示す図である。
【図２０】図２０は、第２の実施の形態における統合類似度算出部１１１の機能ブロック図である。
【図２１】図２１は、第２の実施の形態における処理フローを示す図である。
【図２２】図２２は、距離格納部に格納されるデータの一例を示す図である。
【図２３】図２３は、第２の実施の形態において第２データ格納部に格納されるデータの一例を示す図である。
【図２４】図２４は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１２】
［実施の形態１］
本実施の形態に係るシステムの概要を図１に示す。例えば携帯電話ネットワークやインターネット等のネットワーク１０には、本実施の形態における主要な処理を実施する情報処理装置１０００が接続されており、例えばデジタルカメラ機能付きの携帯電話機であるユーザ端末も無線で接続されている。ユーザは、ユーザ端末を操作して、食事が皿に載せられている食前の状態を撮影し、ネットワーク１０を介して情報処理装置１０００へ食前画像として送信させる。さらに、ユーザは、ユーザ端末を操作して、食後の皿の状態を撮影し、ネットワーク１０を介して情報処理装置１０００へ食後画像として送信させる。情報処理装置１０００は、食前画像及び食後画像を受信し、以下で述べる処理を実施して、カロリー計算結果を、送信元のユーザ端末に返信する。
【００１３】
なお、このようなサービス提供形態だけではなく、情報処理装置１０００の機能をユーザ端末に備えさせて、ユーザ端末のみでカロリー計算ができるようにしても良い。ユーザ端末は、携帯電話機ではなく、カメラ機能及び通信機能を有する他の端末装置であってもよい。また、単にカメラであって、別途パーソナルコンピュータなどから、当該カメラで撮影した食事画像を、情報処理装置１０００に送信するようにしても良い。さらに、このパーソナルコンピュータ自体が情報処理装置１０００である場合もある。
【００１４】
次に、図２に情報処理装置１０００の機能ブロック図を示す。情報処理装置１０００は、入力部１００と、画像データ格納部１０１と、皿領域検出部１０２と、食事認識部１０３と、食事認識結果格納部１０４と、皿領域データ格納部１０５と、皿候補領域検出部１０６と、皿候補領域データ格納部１０７と、皿部分類似度算出部１０８と、第１データ格納部１０９と、食事部分類似度算出部１１０と、統合類似度算出部１１１と、重み算出部１１２と、第２データ格納部１１３と、対応領域選択部１１４と、第３データ格納部１１５と、摂取割合算出部１１６と、第４データ格納部１１７と、カロリーデータベース（ＤＢ）１１８と、カロリー計算部１１９と、第５データ格納部１２０と、出力部１２１とを有する。
【００１５】
入力部１００は、例えばネットワーク１０を介して送信されてきた画像データを、画像データ格納部１０１に格納する。皿領域検出部１０２は、画像データ格納部１０１から食前画像を読み出し、食事認識部１０３と連携して皿領域検出処理を実施して、処理結果を皿領域データ格納部１０５に格納する。食事認識部１０３は、皿領域検出部１０２と連携して処理を実施して、処理結果を食事認識結果格納部１０４に格納する。皿候補領域検出部１０６は、画像データ格納部１０１から食後画像を読み出して皿領域検出処理を実施して、処理結果を皿候補領域データ格納部１０７に格納する。皿部分類似度算出部１０８は、皿領域データ格納部１０５及び皿候補領域データ格納部１０７に格納されているデータを用いて処理を実施し、処理途中のデータ及び処理結果を第１データ格納部１０９に格納する。食事部分類似度算出部１１０は、皿領域データ格納部１０５、第１データ格納部１０９及び皿候補領域データ格納部１０７に格納されているデータを用いて処理を実施し、処理途中のデータ及び処理結果を第１データ格納部１０９に格納する。
【００１６】
統合類似度算出部１１１は、第１データ格納部１０９等に格納されているデータを用いて処理を行い、第２データ格納部１１３に格納する。なお、統合類似度算出部１１１は、皿領域データ格納部１０５及び皿候補領域データ格納部１０７に格納されているデータや重み算出部１１２の処理結果を用いる場合もある。重み算出部１１２は、第１データ格納部１０９や皿領域データ格納部１０５に格納されるデータを用いて処理を行う。
【００１７】
対応領域選択部１１４は、第２データ格納部１１３及び第１データ格納部１０９に格納されているデータを用いて処理を行い、処理結果を第３データ格納部１１５に格納する。摂取割合算出部１１６は、第３データ格納部１１５に格納されているデータを用いて処理を行い、処理結果を第４データ格納部１１７に格納する。カロリー算出部１１９は、カロリーＤＢ１１８に格納されているデータと第４データ格納部１１７に格納されているデータを用いて処理を実施し、処理結果を第５データ格納部１２０に格納する。出力部１２１は、第５データ格納部１２０に格納されているデータを、処理要求元のユーザ端末に送信する。
【００１８】
次に、図３Ａ乃至図１９を用いて図２に示した情報処理装置１０００の処理内容を説明する。まず、皿領域検出部１０２は、画像データ格納部１０１に格納されている食前画像から皿領域候補を抽出し、皿領域候補の画像データを食事認識部１０３に出力する。食事認識部１０３は、皿領域候補の画像データから食事品目を特定するための処理を実施する。そして、食事認識部１０３は、食事品目が特定できた皿領域候補を皿領域として特定し、当該皿領域の識別子に対応付けて食事品目を食事認識結果格納部１０４に格納する。また、食事認識部１０３は、食事品目が特定できた皿領域候補の識別子を皿領域検出部１０２に出力し、皿領域検出部１０２は、この出力データに基づき、皿領域の画像データを皿領域データ格納部１０５に格納する（図３Ａ：ステップＳ１）。
【００１９】
より具体的には、皿領域検出部１０２は、食前画像から楕円や四角の検出を行うことで皿領域候補を抽出する。楕円や四角の検出には一般化ハフ変換（例えば、D.H. Ballard, "Generalizing the Hough Transform to Detect Arbitrary Shapes", Pattern Recognition, Vol.13, No.2, p.111-122, 1981.を参照のこと）などを用いる。
【００２０】
さらに、食事認識部１０３は、各皿領域候補の画像から特徴量を抽出して特徴ベクトルを生成し、特徴ベクトルから食事が含まれているか否かを判定する識別器を用いる。例えば、特徴量は、ＳＩＦＴ（例えば米国特許第６７１１２９３号やDavid G. Lowe, "Object recognition from local scale-invariant features," International Conference on Computer Vision, Corfu, Greece (September 1999), pp. 1150-1157.を参照のこと。）やＳＵＲＦ（例えば国際特許公報ＷＯ２００７／１２８４５２号やHerbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool, "SURF: Speeded Up Robust Features", Computer Vision and Image Understanding (CVIU), Vol. 110, No. 3, pp. 346-359, を参照のこと）などの局所特徴量である。特徴ベクトルはBag-of-words（例えば、Csurka, G., Bray, C., Dance, C. and Fan, L. “Visual categorization with bags of keypoints,”in Proc. of ECCV Workshop on Statistical Learning in Computer Vision, pp. 59.74(2004).等を参照のこと）と呼ばれる表現で生成する。そして、識別器にはサポートベクターマシン（Support Vector Machine）を用いる。また、識別器は、認識対象とする食事の種類と同じ数だけ用意し、１つの識別器は１種類の食事を識別する。それぞれの識別器は認識対象の食事画像を用いて事前に学習を行っているものとする。このように食事認識部１０３の処理自体は、既に知られた技術に基づくので、これ以上述べない。なお、図３Ｂに示すようなデータが食事認識結果格納部１０４に格納される。図３Ｂの例では、皿領域毎に、食事品目（例えば食事品目の識別子）が登録されるようになっている。
【００２１】
また、皿領域検出部１０２の検出結果の一例を図４に示す。皿領域検出部１０２は、例えば図４の点線で囲まれた領域を皿領域候補として検出する。図４の例でも分かるように、検出結果だけでは、箸袋まで皿領域候補として特定されてしまう。そのため、食事認識部１０３によって食事品目が特定された場合に、有効な皿領域として取り扱うようにする。すなわち、箸袋は食事品目が特定されないので、箸袋の領域を以下では処理しない。皿領域データ格納部１０５には、例えば、皿領域の識別子と、食前画像内における皿領域の位置を表すデータ（例えば領域の左上の座標値）と、皿領域の画像データとが格納される。
【００２２】
また、皿候補領域検出部１０６は、画像データ格納部１０１に格納されている食後画像から皿候補領域を抽出し、皿候補領域データ格納部１０７に格納する（ステップＳ３）。処理自体は、皿領域検出部１０２と同様であり、食後画像から楕円や四角を検出する。但し、食後画像の場合は、食事が食べられて残っていないか、残っていても食前状態とは見た目が変わってしまっている場合もあり、食事認識部１０３では皿領域候補が有効であるか判定することはできない。そこで、以降の処理で、どの皿領域候補が有効であり、食前画像におけるどの皿領域と対応するかを特定する。なお、皿候補領域データ格納部１０７には、例えば、皿候補領域の識別子と、食後画像内における皿候補領域の位置を表すデータ（例えば領域の左上の座標値）と、皿候補領域の画像データとが格納される。
【００２３】
次に、皿部分類似度算出部１０８は、皿領域データ格納部１０５において、食前画像における未処理の皿領域を１つ特定する（ステップＳ５）。そして、皿部分類似度算出部１０８は、特定された皿領域と食後画像における各皿候補領域との組み合わせについて、皿部分の類似度Ｓpを算出し、第１データ格納部１０９に格納する（ステップＳ７）。
【００２４】
本ステップでは、皿領域から食事部分を排除した皿部分にのみ着目し、皿部分の類似度を算出する。この処理については、図５を用いて説明する。最初に、皿領域から皿部分の抽出を行う。例えば図６Ａのような皿領域を処理する場合を考える。図６Ａのような皿領域に対して、色クラスタリングなどにより減色処理を施し、皿領域内の外側周辺の連続した色クラスを選択して、当該色クラスと同一色の領域を選択領域として特定する。そして、皿部分類似度算出部１０８は、黒画像（画素値＝０）の上に、選択領域のみを白（画素値＝１）で塗りつぶした二値画像である皿部分マスクを生成し、第１データ格納部１０９に格納する（図５：ステップＳ３１）。図６Ｂに、食前画像の皿部分マスクの一例を示す。
【００２５】
同様に、皿部分類似度算出部１０８は、皿候補領域データ格納部１０７に格納されている各皿候補領域についても同様の処理を実施する。すなわち、食後画像の各皿候補領域について皿部分マスクを生成し、第１データ格納部１０９に格納する（ステップＳ３３）。そうすると、例えば、図７に示すような食後画像の皿部分マスクが得られる。なお、以下の演算では、皿領域の画像と皿候補領域の画像のサイズは同一の方が好ましいので、皿候補領域の画像のサイズを、皿領域の画像に合わせるスケーリング処理を実施する。なお、ステップＳ３３については、図３Ａの処理の繰り返しの初回のみ実施すればよい。２回目以降は、第１データ格納部１０９に格納されたデータをそのまま使用できる。
【００２６】
そして、図８に模式的に示すように、皿部分類似度算出部１０８は、食前画像の皿部分マスクと食後画像の皿部分マスクとの論理積を算出することで、合成皿部分マスクを生成し、第１データ格納部１０９に格納する（ステップＳ３５）。合成皿部分マスクは、食前及び食後ともに皿が見えている領域を白で表す。
【００２７】
その後、図９に模式的に示すように、皿部分類似度算出部１０８は、食前画像における皿領域と、食後画像における皿候補領域との輝度値についての差分を算出して、グレースケールの差分画像を生成する。輝度値についての差分値については絶対値とする。さらに、皿部分類似度算出部１０８は、このグレースケールの差分画像と合成皿部分マスクとの論理積を算出することで、皿部分差分画像を生成し、第１データ格納部１０９に格納する（ステップＳ３７）。皿部分差分画像は、グレースケールの画像となる。よって、皿部分差分画像は、黒い部分ほど食前と食後で輝度値の差が少なく、白い部分ほど食前と食後で輝度値の差が大きいことを表している。
【００２８】
このような処理は、食前画像における皿領域と食後画像における皿候補領域との組み合わせ毎に実施され、組み合わせ毎に皿部分差分画像が生成される。
【００２９】
そして、皿部分類似度算出部１０８は、以下の式に従って、食前画像における皿領域と食後画像における皿候補領域との組み合わせ毎に、皿部分差分画像の画素値から類似度Ｓpを算出し、第１データ格納部１０９に格納する（ステップＳ３９）。
【００３０】
【数１】
0005691533.tif 000002
（１）式におけるＮは、皿部分差分画像の画素数を表し、ｐiはｉ番目の画素の画素値を表す。なお、画素値は０から１までの値に分布するようになっている。例えば、０から２５５で分布する場合には、０から１の範囲にマッピングする。
【００３１】
例えば、図１４に示すようなデータが第１データ格納部１０９に格納される。図１４の例では、皿候補領域毎に、類似度Ｓpの値が登録されるようになっている。なお、図１４の例では、類似度Ｓfの値も登録されるようになっているが、類似度Ｓfについては後の処理で登録される。
【００３２】
また、食事部分類似度算出部１１０は、特定された皿領域と食後画像における各皿候補領域との組み合わせについて、食事部分の類似度Ｓfを算出し、第１データ格納部１０９に格納する（ステップＳ９）。この処理については図１０を用いて説明する。
【００３３】
本ステップでは、皿領域から皿部分を排除した食事部分にのみ着目し、食事部分の類似度を算出する。最初に、食前画像における皿領域から食事部分の抽出を行う。既に、皿部分マスクが生成されているので、食事部分類似度算出部１１０は、皿部分マスクの白黒を反転させることによって、食前画像についての食事部分マスクを生成し、第１データ格納部１０９に格納する（図１０：ステップＳ４１）。図６Ｂの皿部分マスクの場合には、図１１Ａに示すような食事部分マスクが生成される。
【００３４】
食後画像における皿候補領域の各々についても、食事部分類似度算出部１１０は、食後画像についての皿部分マスクの白黒を反転させることによって、食後画像についての食事部分マスクを生成し、第１データ格納部１０９に格納する（ステップＳ４３）。図７の皿部分マスクの場合には、図１１Ｂに示すような食事部分マスクが生成される。なお、以下の演算では、皿領域の画像と皿候補領域の画像のサイズは同一の方が好ましいので、皿候補領域の画像のサイズを、皿領域の画像に合わせるスケーリング処理を実施する。ステップＳ４３についても、図３Ａの処理の繰り返しの初回のみ実施すればよい。２回目以降は、第１データ格納部１０９に格納されたデータをそのまま使用できる。
【００３５】
そして、図１２に模式的に示すように、食事部分類似度算出部１１０は、食前画像の食事部分マスクと食後画像の食事部分マスクとの論理積を算出することで、合成食事部分マスクを生成し、第１データ格納部１０９に格納する（ステップＳ４５）。合成食事部分マスクは、食前及び食後ともに食事が見えている領域を白で表す。
【００３６】
その後、図１３に模式的に示すように、食事部分類似度算出部１１０は、食前画像における皿領域と、食後画像における皿候補領域との輝度値についての差分を算出して、グレースケールの差分画像を生成する。輝度値についての差分値については絶対値とする。なお、このようなグレースケールの差分画像については、ステップＳ３７でも生成されているので、第１データ格納部１０９に格納しておき、それを用いるようにしても良い。さらに、食事部分類似度算出部１１０は、このグレースケールの差分画像と合成食事部分マスクとの論理積を算出して、食事部分差分画像を生成し、第１データ格納部１０９に格納する（ステップＳ４７）。食事部分差分画像は、グレースケールの画像となる。よって、食事部分差分画像は、黒い部分ほど食前と食後で輝度値の差が少なく、白い部分ほど食前と食後で輝度値の差が大きいことを表している。
【００３７】
このような処理は、食前画像における皿領域と食後画像における皿候補領域との組み合わせ毎に実施され、組み合わせ毎に食事部分差分画像が生成される。
【００３８】
そして、食事部分類似度算出部１１０は、以下の式に従って、食前画像における皿領域と食後画像における皿候補領域との組み合わせ毎に、食事部分差分画像の画素値から類似度Ｓfを算出し、第１データ格納部１０９に格納する（ステップＳ４９）。
【００３９】
【数２】
0005691533.tif 000003
（２）式におけるＮは、食事部分差分画像の画素数を表し、ｐiはｉ番目の画素の画素値を表す。なお、画素値は０から１までの値に分布するようになっている。例えば、０から２５５で分布する場合には、０から１の範囲にマッピングする。図１４に示すようなデータ（Ｓｆの部分を含む。）が第１データ格納部１０９に格納されることになる。
【００４０】
また、重み算出部１１２は、例えば皿領域データ格納部１０５に格納されている皿領域の画像データを用いて、類似度Ｓp及びＳfの重み付け加算に用いられる重み値ｗを算出し、統合類似度算出部１１１に出力する（ステップＳ１１）。
【００４１】
重み値ｗの算出法は様々に存在しているが、例えば食事の複雑度に基づく方法を用いる。
【００４２】
食事の見た目は食事の種類によって大きく異なる傾向がある。例えば、図１５及び図１６のように、オムライスや冷奴などの食前の見た目が単純であったり構造的であるものは、食後では見た目が大きく変化する傾向があり、その場合は食事部分の類似度に対する信頼性は低くなる。一方で、チャーハンや野菜炒めなどの食前の見た目が構造的でなく乱雑であるものは食後においても食前の見た目と変わらない傾向があり、その場合は食事部分の類似度に対する信頼性は高くなる。
【００４３】
そこで、食事部分が乱雑であるかどうかを表す指標として画像エントロピーを用いる。食前画像の画像エントロピーが小さい場合は、見た目が単純であったり構造的であると判断し、重み値ｗを小さく設定し、食前画像のエントロピーが大きい場合は、見た目が構造的でなく乱雑であると判断し、重み値ｗを大きく設定することで、適切な統合類似度を算出できるようになる。
【００４４】
食前画像における皿領域の食事部分についてのエントロピーを加味した重み値ｗを、次のような処理で算出する。まず、食前画像における皿領域についてヒストグラム特徴量を抽出する。ヒストグラム特徴量は、輝度ヒストグラム、色ヒストグラム、ＳＩＦＴやＳＵＲＦなどの局所特徴量をbag-of-words で表現したvisual wordヒストグラムなどを用いる。
【００４５】
そして、ヒストグラムを、当該ヒストグラムにおける各ビン（出現頻度のカウント）の値を合計した値が１になるように正規化し、各ビンについての出現頻度を求め、以下の式により重み値ｗを算出する。
【００４６】
【数３】
0005691533.tif 000004
（３）式において、Ｎはヒストグラムのビンの数であり、ｒi は、ｉ番目のビンについての出現頻度（合計値が１になるように正規化されているので出現割合）である。
【００４７】
重み算出部１１２は、例えばこのような演算によって、重み値ｗを算出して、重み値ｗを統合類似度算出部１１１に出力する。
【００４８】
なお、フーリエ変換やウェーブレット変換などの周波数分析手法で、高周波成分の大きさを抽出することにより、複雑度を算出した上で、重み値ｗを算出しても良い。
【００４９】
次に、統合類似度算出部１１１は、第１データ格納部１０９に格納されている類似度Ｓp及びＳfと、重み値ｗとから、食前画像における皿領域と食後画像における各皿候補領域との組み合わせについて統合類似度を算出して、第２データ格納部１１３に格納する（ステップＳ１３）。
【００５０】
以下に示す式で統合類似度Ｓは算出される。
Ｓ＝（１−ｗ）Ｓp＋ｗＳf
このように食事部分の類似度Ｓｆと皿部分の類似度Ｓpとをｗによる重み付け加算したものとなる。本実施の形態では、重み値ｗが大きいほど食事部分が重視され、小さいほど皿部分が重視される統合類似度が算出される。ステップＳ１３の処理を実施すると、例えば図１７に示すようなデータが、第２データ格納部１１３に格納される。図１７の例では、皿候補領域毎に、統合類似度Ｓの値が登録されるようになっている。  
【００５１】
そして、対応領域選択部１１４は、統合類似度Ｓが最大となる皿候補領域を特定し、摂取割合を算出するために用いるので第１データ格納部１０９から処理に係る皿領域についての食事部分マスクと統合類似度Ｓが最大となる皿候補領域についての食事部分マスクとを読み出して、第３データ格納部１１５に格納する（ステップＳ１５）。皿領域の識別子及び統合類似度Ｓが最大となる皿候補領域の識別子も、第３データ格納部１１５に格納する。処理は、端子Ａを介して図１８の処理に移行する。
【００５２】
図１８の処理の説明に移行して、例えば皿部分類似度算出部１０８は、食前画像において未処理の皿領域が存在するか判断する（図１８：ステップＳ１７）。未処理の皿領域が存在する場合には、端子Ｂを介してステップＳ５に戻る。
【００５３】
一方、食前画像における未処理の皿領域が存在しなければ、摂取割合算出部１１６は、第３データ格納部１１５に格納されているデータから、食前画像における皿領域毎に、摂取割合を算出し、第４データ格納部１１７に格納する（ステップＳ１９）。
【００５４】
本実施の形態では、対応する領域について、食前画像の食事部分マスクから食後画像の食事部分マスクを引くことで、食前と食後の食事部分における変化量がわかる。従って、食事部分における変化の割合を、ユーザの摂取割合として算出する。具体的には、以下の式で算出する。
【００５５】
【数４】
0005691533.tif 000005
（４）式において、Ｎは、食前画像の皿部分マスクの画素数であり、ｐbiは食前画像の食事部分マスクのｉ番目の画素値を表し、ｐaiは食後画像の食事部分マスクのｉ番目の画素値を表す。このように、食前画像の皿部分マスクの画素値の累積値に対する、画素値の差の累積値の割合で、摂取割合が算出される。第４データ格納部１１７には例えば図１９に示すようなデータが格納される。図１９の例では、皿領域毎に、摂取割合ｖの値が登録されるようになっている。
【００５６】
そして、カロリー算出部１１９は、食事認識結果格納部１０４から各皿領域の食事品目を読み出して、カロリーＤＢ１１８から対応するカロリー数を読み出し、第４データ格納部１１７から各皿領域の摂取率を読み出し、これらから摂取カロリーを算出し、第５データ格納部１２０に格納する。
【００５７】
カロリーＤＢ１１８は、例えば食事品目毎に、典型的なカロリー数が登録されている。食事認識結果格納部１０４には、皿領域毎に食事品目名が登録されているので、各食事品目に対応するカロリー数を読み出す。同様に、第４データ格納部１１７には、各皿領域について摂取割合ｖが登録されているので、これを読み出し、以下の式で摂取カロリーｃを算出する。
【００５８】
【数５】
0005691533.tif 000006
（５）式において、ｃiは、ｉ番目の皿領域の食事品目のカロリー数を表し、ｖiは、ｉ番目の皿領域の摂取割合を表す。
【００５９】
出力部１２１は、第５データ格納部１２０に格納されている摂取カロリーｃを、要求元のユーザ端末に出力する（ステップＳ２１）。これによって、ユーザは、正確な摂取カロリーｃを自動的に得ることができるようになる。
【００６０】
［実施の形態２］
上で述べた実施の形態１では、画像データだけで統合類似度Ｓを算出する処理フローを示したが、本実施の形態では、以下のような観点で統合類似度を補正することで、食前画像と食後画像との領域対応付けの精度を向上させる。
【００６１】
具体的には、実際の食事シーンでは、ほとんどの場合、食前と食後で各食事品目の位置があまり変わらない傾向がある。例えば、図４のような食前画像における皿の配置は、食後であってもほとんど変わらない場合が多い。従って、食前と食後で皿領域の移動量が小さい場合は、同一の食事品目である可能性が高いと判断でき、逆に皿領域の移動量が大きい場合は、同一の食事品目である可能性が低いと判断できる。
【００６２】
このため、本実施の形態では、図２０に示すような統合類似度算出部１１１を採用する。本実施の形態における統合類似度算出部１１１は、類似度算出部１１１１と、類似度格納部１１１２と、距離算出部１１１３と、距離格納部１１１４と、拡張統合類似度算出部１１１５とを有する。
【００６３】
類似度算出部１１１１は、第１データ格納部１０９に格納されているデータから、食前画像における皿領域と食後画像における各皿候補領域との組み合わせについて統合類似度Ｓを算出し、類似度格納部１１１２に格納する。距離算出部１１１３は、皿領域データ格納部１０５と皿候補領域データ格納部１０７とに格納されているデータを用いて距離算出処理を実施し、食前画像における皿領域と食後画像における各皿候補領域との組み合わせについて距離データを、距離格納部１１１４に格納する。
【００６４】
拡張統合類似度算出部１１１５は、類似格納部１１１２と距離格納部１１１４とに格納されているデータを用いて処理を実施し、処理結果を第２データ格納部１１３に格納する。
【００６５】
次に、図２１乃至図２３を用いて図２及び図２０に示した情報処理装置１０００の処理内容を説明する。まず、皿領域検出部１０２は、画像データ格納部１０１に格納されている食前画像から皿領域候補を抽出し、皿領域候補の画像データを食事認識部１０３に出力する。食事認識部１０３は、皿領域候補の画像データから食事品目を特定するための処理を実施する。そして、食事認識部１０３は、食事品目が特定できた皿領域候補を皿領域として特定し、当該皿領域の識別子に対応付けて食事品目を食事認識結果格納部１０４に格納する。また、食事認識部１０３は、食事品目が特定できた皿領域候補の識別子を皿領域検出部１０２に出力し、皿領域検出部１０２は、この出力データに基づき、皿領域の画像データを皿領域データ格納部１０５に格納する（図２１：ステップＳ１０１）。ステップＳ１と同様であるから、これ以上は述べない。皿領域データ格納部１０５には、例えば、皿領域の識別子と、食前画像内における皿領域の位置を表すデータ（例えば領域の左上の座標値）と、皿領域の画像データとが格納される。
【００６６】
また、皿候補領域検出部１０６は、画像データ格納部１０１に格納されている食後画像から皿候補領域を抽出し、皿候補領域データ格納部１０７に格納する（ステップＳ１０３）。処理自体は、皿領域検出部１０２と同様であり、食後画像から楕円や四角を検出する。なお、皿候補領域データ格納部１０７には、例えば、皿候補領域の識別子と、食後画像内における皿候補領域の位置を表すデータ（例えば領域の左上の座標値）と、皿候補領域の画像データとが格納される。
【００６７】
次に、皿部分類似度算出部１０８は、皿領域データ格納部１０５において、食前画像における未処理の皿領域を１つ特定する（ステップＳ１０５）。そして、皿部分類似度算出部１０８及び食事部分類似度算出部１１０は、統合類似度算出処理を実施する（ステップＳ１０７）。この処理については、ステップＳ７乃至Ｓ１３と同様であり、ここでは詳細な説明は省略する。なお、類似度算出部１１１１によりステップＳ１０７は実施される。
【００６８】
そして、距離算出部１１１３は、特定された皿領域と食後画像における各皿候補領域との組み合わせについて距離ｄを算出し、距離格納部１１１４に格納する（ステップＳ１０９）。距離は、例えばユークリッド距離とし、例えば図２２に示すようなデータが、距離格納部１１１４に格納される。図２２の例では、皿候補領域毎に、距離ｄが登録されるようになっている。
【００６９】
その後、拡張統合類似度算出部１１１５は、距離格納部１１１４に格納されている距離ｄのうち最大値ｄmaxを特定し（ステップＳ１１１）、特定された皿領域と食後画像における各皿候補領域の組み合わせについて、拡張統合類似度Ｓeを算出し、第２データ格納部１１３に格納する（ステップＳ１１３）。
【００７０】
拡張統合類似度Ｓeについては、以下の式で算出される。
【００７１】
【数６】
0005691533.tif 000007
ｄは、食前画像における皿領域と食後画像における皿候補領域との距離を表す。また、Ｋは、移動距離の影響度を表す０乃至１の定数である。従って、Ｋ＝０のときは距離を加味しない統合類似度だけで拡張統合類似度が算出され、Ｋ＝１のときは統合類似度を加味しない距離だけで拡張統合類似度が算出される。なお、健康管理サービスにおける一般的なユーザの場合には、Ｋ＝０．３乃至０．４程度を設定することによって適切な拡張統合類似度が算出されることが経験的に知られている。
【００７２】
ステップＳ１１３を実施することによって、例えば図２３に示すようなデータが、第２データ格納部１１３に格納されることになる。図２３の例では、皿候補領域毎に、拡張統合類似度Ｓeの値が登録されるようになっている。
【００７３】
その後、対応領域選択部１１４は、第２データ格納部１１３に格納されている拡張統合類似度Ｓeが最大となる皿候補領域を特定し、摂取割合を算出するために用いるので第１データ格納部１０９から処理に係る皿領域についての食事部分マスクと統合類似度Ｓeが最大となる皿候補領域についての食事部分マスクとを読み出して、第３データ格納部１１５に格納する（ステップＳ１１５）。皿領域の識別子及び拡張統合類似度Ｓeが最大となる皿候補領域の識別子も、第３データ格納部１１５に格納する。処理は、端子Ａを介して図１８の処理に移行する。本実施の形態でも、図１８の処理については同じであるので、説明を省略する。
【００７４】
以上のような処理を実施することによって、皿領域と皿候補領域とをより精度良く対応付けることができるようになる。
【００７５】
［実施の形態３］
また、以下で述べるような方法で重みｗを算出するようにしても良い。食事の見た目は、食前と食後で変わる場合がある。一般的に、食事の見た目は食べた量によって大きく変わる傾向がある。例えば、ほとんど食べられてしまった食事は、食前の形を留めていない場合が多く、その場合は食事部分の類似度に対して信頼性は低くなる。一方で、ほとんど食べられなかった食事は、食後においても食前の形を留めており、その場合は食事部分の類似度に対して信頼性は高くなる。
【００７６】
従って、本実施の形態では、食前と食後で食事部分の変化量が大きい場合は、食事部分の類似度が与える影響を少なくするため、重みｗを小さく設定する。また、食前と食後で食事の変化量が小さい場合は、食事部分の類似度が与える影響を大きくするため、重みｗを大きく設定する。
【００７７】
そこで、適切な統合類似度を求めるために、食前画像の皿領域における食事部分の面積に対する、食後画像の皿領域における食事部分の面積の比によって、食前食後での食事部分の変化を加味した重みｗを算出する。この重みｗは以下の（７）式で算出される。
【００７８】
【数７】
0005691533.tif 000008
【００７９】
Ｎは食前画像の食事部分マスクのピクセル数（サイズは同じなので食後画像の合成食事部分マスクのピクセル数も同じ）である。ｐaiは、食後画像における皿候補領域の合成食事部分マスクのｉ番目のピクセル値である。また、ｐbiは、食前画像における皿領域の合成食事部分マスクのｉ番目のピクセル値である。これらの合成食事マスクは二値画像であるから、そのピクセル値は０又は１である。
【００８０】
従って、重み算出部１１２は、第１データ格納部１０９から、皿領域の合成食事部分マスクと、各皿候補領域の合成食事部分マスクとを読み出して、上で述べた（７）式に従って、各皿候補領域について重みｗを算出し、統合類似算出部１１１に出力する。
【００８１】
これ以外の処理については実施の形態１と同じであるから、説明を省略する。
【００８２】
この手法では、食事の変化量が大きいと食事の見た目の変化も大きくなるという知識を前提とし、食前画像の皿領域と、食後の皿候補領域とが正しく対応付けられている場合において、統合類似度ができるだけ大きくなるように重みを設定するものである。
【００８３】
正しくない対応付けの場合は、適切でない重みが設定されるため算出される統合類似度にも影響は出るものの、前提とする知識が成立する状況下においては、それよりも正しく対応付けられた場合の統合類似度の方が大きくなる傾向があるため、問題なく本手法が有効に機能する。
【００８４】
［実施の形態４］
さらに、他の方法にて重みｗを算出するようにしても良い。第３の実施の形態で述べた重み算出手法は、ユーザが摂取した食事量に基づき食事部分の類似度に対する信頼性を決定する手法である。ユーザが食事を多く摂取すると、食事部分の見た目も変わり、食事部分の面積も減るため、食事部分の類似度が与える影響を少なくする考え方を採用したものである。この方法は、食事の種類を問わず、平均的に適切な重みを算出できる特性を有する。一方、第１の実施の形態で示した重み算出手法は、食前の食事特徴から食事部分の類似度に対する信頼性を決定する手法である。オムライスのような食事は、食前と食後で見た目が変わりやすいため、食事部分の類似度が与える影響を少なくするという考え方に基づく。この手法は一部の食事に対しては、極めて適切な重みを算出できる。
【００８５】
このように、上で述べた手法は特性が異なっている。もし、撮影対象の食事の種類が限られていて、オムライスのような見た目が変わりやすい食事が対象にない場合は、第１の実施の形態で述べた重み算出手法のみを用いれば良い。一方で、見た目が変わりやすい食事が頻繁に出ることがわかっている場合は、食事の複雑度による重み算出法を用いれば良い。
【００８６】
しかしながら、撮影対象の食事が限定されていない場合は、どちらか片方だけでなく、両方の特性を併せ持つ重み算出方法を適用することが望ましい。そのような場合、第３の実施の形態で述べた第１の重みｗaと第１の実施の形態で述べた第２の重みｗbとの平均値（（８）式）を採用しても良い。
【００８７】
【数８】
0005691533.tif 000009
【００８８】
（８）式を採用して重み値を算出することで、両方の特性を併せ持つ重みを算出することができるようになる。
【００８９】
以上本技術の実施の形態を説明したが、本技術はこれに限定されない。例えば、上で述べた機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成とは一致しない。また、処理フローについても、処理結果が変わらない限り変更することができる。例えば処理順番を入れ替えたり、複数のステップを並列実行することができる。具体的には、食前画像と食後画像との処理については並列実行できる場合がある。
【００９０】
さらに、システム構成についても、上でも述べたように１つの装置で全ての機能を有するようにしても良いし、複数の装置で機能分担を行うようにしても良い。特に、画像を撮影する装置と、画像を送信したり処理結果を受信したりする装置を別にすることも可能である。
【００９１】
なお、上で述べた情報処理装置１０００は、コンピュータ装置であって、図２４に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９２】
以上述べた本実施の形態をまとめると、以下のようになる。
【００９３】
本実施の形態に係る情報処理方法は、（Ａ）食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部に格納されている食前画像と食後画像とに基づき、食前画像における皿領域の各々について、当該皿領域の皿部分と食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度ステップと、（Ｂ）画像格納部に格納されている食前画像と食後画像とに基づき、食前画像における皿領域の各々について、当該皿領域の食事部分と食後画像における各皿候補領域の食事部分との第２の類似度を算出して、第１データ格納部に格納する食事部分類似度算出ステップと、（Ｃ）食前画像における皿領域の各々について、第１データ格納部に格納されている第１の類似度と第２の類似度とから算出される第３の類似度が最も大きい値となる食後画像における皿候補領域を特定する領域特定ステップと、（Ｄ）食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出ステップと、（Ｅ）食前画像における皿領域に載せられている食事のカロリー数と食前画像における皿領域について第２データ格納部に格納されている前記食事摂取割合との積を、食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算ステップとを含む。
【００９４】
このように皿部分と食事部分とに分けて類似度を算出した上で統合することで、より精度良く食前画像の皿領域と食後画像の皿候補領域とを対応付けることができるようになる。従って、一般的な食前画像及び食後画像によって、カロリー計算を精度良く行うことができるようになる。
【００９５】
また、上で述べた皿部分類似度算出ステップが、食前画像における皿領域の皿部分と食後画像における各皿候補領域の皿部分との差を表す皿部分差分画像を生成し、当該皿部分差分画像から皿部分についての第１の類似度を算出するステップを含むようにしてもよい。
【００９６】
さらに、上で述べた食事部分類似度算出ステップが、食前画像における皿領域の食事部分と食後画像における各皿候補領域の食事部分との差を表す食事部分差分画像を生成し、当該食事部分差分画像から食事部分についての第２の類似度を算出するステップを含むようにしてもよい。
【００９７】
また、上で述べた領域特定ステップにおいて、第１の類似度と第２の類似度との重み付け加算により第３の類似度を算出するようにしてもよい。皿部分と食事部分とのいずれを重要視するのかを設定できる。
【００９８】
さらに、上で述べた領域特定ステップが、食前画像における皿領域の各々について、食後画像における各皿候補領域との距離を算出し、当該距離によって第３の類似度を補正するステップを含むようにしてもよい。食前と食後とでは皿を移動させることは多くない。例えば距離が短い場合には可能性が高くなるので第３の類似度を増加させるようにしても良い。
【００９９】
また、本情報処理方法は、食前画像における皿領域の画像エントロピーに基づく重み値を算出する重み算出ステップをさらに含むようにしても良い。例えば、画像エントロピーが高い場合には、食前から食後へ画像の変化が小さいと考えられ、画像エントロピーが低い場合には、食前から食後へ画像の変化が大きいと考えられる。そのため、画像エントロピーが高い場合には食事部分の重みを高くするような設定が好ましい。
【０１００】
さらに、本情報処理方法は、食前画像における皿領域の食事部分に対する、食後画像における皿候補領域の食事部分の面積比に応じた重み値を算出する重み算出ステップをさらに含むようにしてもよい。食前から食後へ画像の変化が小さい場合には食事部分の重みを大きくする方が良い場合もある。
【０１０１】
また、上で述べた摂取割合算出ステップが、食前画像における皿領域の各々について、当該皿領域の食事部分の二値画像の画素値と、当該皿領域について特定された、食後画像における皿候補領域の食事部分の二値画像の画素値との差の総和を、食前画像における皿領域の食事部分の二値画像の画素値の総和で除することで食事摂取割合を算出するステップを含むようにしてもよい。これによって、より正確に食事摂取割合を推定することができる。
【０１０２】
さらに、上で述べた皿部分類似度算出ステップが、食前画像から皿領域における皿部分を抽出して得られる第１の二値画像と、食後画像から皿候補領域における皿部分を抽出して得られる第２の二値画像との論理積により第１の合成二値画像を生成し、食前画像における皿領域と食後画像における皿候補領域との輝度についての差分の絶対値と第１の合成二値画像との論理積により皿部分差分画像を生成するステップを含むようにしてもよい。
【０１０３】
また、上で述べた食事部分類似度算出ステップが、食前画像の皿領域における食事部分についての第３の二値画像と、食後画像の皿候補領域における食事部分についての第４の二値画像との論理積により第２の合成二値画像を生成し、食前画像の皿領域と食後画像の皿領域との輝度についての差分と第２の合成二値画像との論理積により食事部分差分画像を生成するステップを含むようにしてもよい。
【０１０４】
さらに、上で述べた領域特定部が、食前画像における皿領域の各々について、食後画像における各皿候補領域との距離を算出し、当該距離が短いほど大きな値となるように第３の類似度を補正するようにしてもよい。
【０１０５】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１０６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０７】
（付記１）
食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部と、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度算出部と、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との第２の類似度を算出して、前記第１データ格納部に格納する食事部分類似度算出部と、
前記食前画像における皿領域の各々について、前記第１データ格納部に格納されている前記第１の類似度と前記第２の類似度とから算出される第３の類似度が最も大きい値となる前記食後画像における皿候補領域を特定する領域特定部と、
前記食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出部と、
前記食前画像における皿領域に載せられている食事のカロリー数と前記食前画像における皿領域について前記第２データ格納部に格納されている前記食事摂取割合との積を、前記食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー算出部と、
を有する情報処理装置。
【０１０８】
（付記２）
前記皿部分類似度算出部が、
前記食前画像における皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との差を表す皿部分差分画像を生成し、当該皿部分差分画像から皿部分についての第１の類似度を算出する
付記１記載の情報処理装置。
【０１０９】
（付記３）
前記食事部分類似度算出部が、
前記食前画像における皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との差を表す食事部分差分画像を生成し、当該食事部分差分画像から食事部分についての第２の類似度を算出する
付記１又は２記載の情報処理装置。
【０１１０】
（付記４）
前記領域特定部が、
前記第１の類似度と前記第２の類似度との重み付け加算により前記第３の類似度を算出する
付記１乃至３のいずれか１つ記載の情報処理装置。
【０１１１】
（付記５）
前記領域特定部が、
前記食前画像における皿領域の各々について、前記食後画像における各皿候補領域との距離を算出し、当該距離によって前記第３の類似度を補正する
付記１乃至４のいずれか１つ記載の情報処理装置。
【０１１２】
（付記６）
前記食前画像における皿領域の画像エントロピーに基づく重み値を算出する重み算出部
をさらに有する付記４記載の情報処理装置。
【０１１３】
（付記７）
前記食前画像における皿領域の食事部分に対する、前記食後画像における皿候補領域の食事部分の面積比に応じた重み値を算出する重み算出部
をさらに有する付記４記載の情報処理装置。
【０１１４】
（付記８）
前記摂取割合算出部が、
前記食前画像における皿領域の各々について、当該皿領域の食事部分の二値画像の画素値と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分の二値画像の画素値との差の総和を、前記食前画像における皿領域の食事部分の二値画像の画素値の総和で除することで食事摂取割合を算出する
付記１乃至７のいずれか１つ記載の情報処理装置。
【０１１５】
（付記９）
食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度ステップと、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との第２の類似度を算出して、前記第１データ格納部に格納する食事部分類似度算出ステップと、
前記食前画像における皿領域の各々について、前記第１データ格納部に格納されている前記第１の類似度と前記第２の類似度とから算出される第３の類似度が最も大きい値となる前記食後画像における皿候補領域を特定する領域特定ステップと、
前記食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出ステップと、
前記食前画像における皿領域に載せられている食事のカロリー数と前記食前画像における皿領域について前記第２データ格納部に格納されている前記食事摂取割合との積を、前記食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算ステップと、
を含み、コンピュータにより実行される情報処理方法。
【０１１６】
（付記１０）
前記皿部分類似度算出ステップが、
前記食前画像における皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との差を表す皿部分差分画像を生成し、当該皿部分差分画像から皿部分についての第１の類似度を算出するステップ
を含む付記９記載の情報処理方法。
【０１１７】
（付記１１）
前記食事部分類似度算出ステップが、
前記食前画像における皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との差を表す食事部分差分画像を生成し、当該食事部分差分画像から食事部分についての第２の類似度を算出するステップ
を含む付記９又は１０記載の情報処理方法。
【０１１８】
（付記１２）
前記領域特定ステップにおいて、
前記第１の類似度と前記第２の類似度との重み付け加算により前記第３の類似度を算出する
付記９乃至１１のいずれか１つ記載の情報処理方法。
【０１１９】
（付記１３）
前記領域特定ステップが、
前記食前画像における皿領域の各々について、前記食後画像における各皿候補領域との距離を算出し、当該距離によって前記第３の類似度を補正するステップ
を含む付記１０乃至１２のいずれか１つ記載の情報処理方法。
【０１２０】
（付記１４）
前記食前画像における皿領域の画像エントロピーに基づく重み値を算出する重み算出ステップ
をさらに含む付記１２記載の情報処理方法。
【０１２１】
（付記１５）
前記食前画像における皿領域の食事部分に対する、前記食後画像における皿候補領域の食事部分の面積比に応じた重み値を算出する重み算出ステップ
をさらに含む付記１２記載の情報処理方法。
【０１２２】
（付記１６）
前記摂取割合算出ステップが、
前記食前画像における皿領域の各々について、当該皿領域の食事部分の二値画像の画素値と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分の二値画像の画素値との差の総和を、前記食前画像における皿領域の食事部分の二値画像の画素値の総和で除することで食事摂取割合を算出するステップ
を含む付記９乃至１５のいずれか１つ記載の情報処理方法。
【０１２３】
（付記１７）
食事前における皿の状態を撮影した食前画像と、食後における皿の状態を撮影した食後画像とを格納する画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との第１の類似度を算出し、第１データ格納部に格納する皿部分類似度ステップと、
前記画像格納部に格納されている前記食前画像と前記食後画像とに基づき、前記食前画像における皿領域の各々について、当該皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との第２の類似度を算出して、前記第１データ格納部に格納する食事部分類似度算出ステップと、
前記食前画像における皿領域の各々について、前記第１データ格納部に格納されている前記第１の類似度と前記第２の類似度とから算出される第３の類似度が最も大きい値となる前記食後画像における皿候補領域を特定する領域特定ステップと、
前記食前画像における皿領域の各々について、当該皿領域の食事部分と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分とに基づき食事摂取割合を算出し、第２データ格納部に格納する摂取割合算出ステップと、
前記食前画像における皿領域に載せられている食事のカロリー数と前記食前画像における皿領域について前記第２データ格納部に格納されている前記食事摂取割合との積を、前記食前画像における皿領域の全てについて加算することで総摂取カロリーを算出し、第３データ格納部に格納するカロリー計算ステップと、
を、コンピュータに実行させる情報処理プログラム。
【０１２４】
（付記１８）
前記皿部分類似度算出ステップが、
前記食前画像における皿領域の皿部分と前記食後画像における各皿候補領域の皿部分との差を表す皿部分差分画像を生成し、当該皿部分差分画像から皿部分についての第１の類似度を算出するステップ
を含む付記１７記載の情報処理プログラム。
【０１２５】
（付記１９）
前記食事部分類似度算出ステップが、
前記食前画像における皿領域の食事部分と前記食後画像における各皿候補領域の食事部分との差を表す食事部分差分画像を生成し、当該食事部分差分画像から食事部分についての第２の類似度を算出するステップ
を含む付記１７又は１８記載の情報処理プログラム。
【０１２６】
（付記２０）
前記領域特定ステップにおいて、
前記第１の類似度と前記第２の類似度との重み付け加算により前記第３の類似度を算出する
付記１７乃至１９のいずれか１つ記載の情報処理プログラム。
【０１２７】
（付記２１）
前記領域特定ステップが、
前記食前画像における皿領域の各々について、前記食後画像における各皿候補領域との距離を算出し、当該距離によって前記第３の類似度を補正するステップ
を含む付記１７乃至１９のいずれか１つ記載の情報処理プログラム。
【０１２８】
（付記２２）
前記食前画像における皿領域の画像エントロピーに基づく重み値を算出する重み算出ステップ
をさらに含む付記２０記載の情報処理プログラム。
【０１２９】
（付記２３）
前記食前画像における皿領域の食事部分に対する、前記食後画像における皿候補領域の食事部分の面積比に応じた重み値を算出する重み算出ステップ
をさらに含む付記２０記載の情報処理プログラム。
【０１３０】
（付記２４）
前記摂取割合算出ステップが、
前記食前画像における皿領域の各々について、当該皿領域の食事部分の二値画像の画素値と、当該皿領域について特定された、前記食後画像における皿候補領域の食事部分の二値画像の画素値との差の総和を、前記食前画像における皿領域の食事部分の二値画像の画素値の総和で除することで食事摂取割合を算出するステップ
を含む付記１７乃至２３のいずれか１つ記載の情報処理プログラム。
【符号の説明】
【０１３１】
１００  入力部
１０１  画像データ格納部
１０２  皿領域検出部
１０３  食事認識部
１０４  食事認識結果格納部
１０５  皿領域データ格納部
１０６  皿候補領域検出部
１０７  皿候補領域データ格納部
１０８  皿部分類似度算出部
１０９  第１データ格納部
１１０  食事部分類似度算出部
１１１  統合類似度算出部
１１２  重み算出部
１１３  第２データ格納部
１１４  対応領域選択部
１１５  第３データ格納部
１１６  摂取割合算出部
１１７  第４データ格納部
１１８  カロリーＤＢ
１１９  カロリー算出部
１２０  第５データ格納部
１２１  出力部
【図１】
0005691533.tif 000010
【図２】
0005691533.tif 000011
【図３Ａ】
0005691533.tif 000012
【図３Ｂ】
0005691533.tif 000013
【図５】
0005691533.tif 000014
【図１０】
0005691533.tif 000015
【図１４】
0005691533.tif 000016
【図１７】
0005691533.tif 000017
【図１８】
0005691533.tif 000018
【図１９】
0005691533.tif 000019
【図２０】
0005691533.tif 000020
【図２１】
0005691533.tif 000021
【図２２】
0005691533.tif 000022
【図２３】
0005691533.tif 000023
【図２４】
0005691533.tif 000024
【図４】
0005691533.tif 000025
【図６Ａ】
0005691533.tif 000026
【図６Ｂ】
0005691533.tif 000027
【図７】
0005691533.tif 000028
【図８】
0005691533.tif 000029
【図９】
0005691533.tif 000030
【図１１Ａ】
0005691533.tif 000031
【図１１Ｂ】
0005691533.tif 000032
【図１２】
0005691533.tif 000033
【図１３】
0005691533.tif 000034
【図１５】
0005691533.tif 000035
【図１６】
0005691533.tif 000036