saguar1

YANAI Lab.

電気通信大学 総合情報学科/大学院 総合情報学専攻 メディア情報学コース 柳井研究室
電気通信大学 > 情報工学科 > コンピュータ学講座 > 柳井研究室 > 研究紹介  

Multi-task CNNによる食事画像からのカロリー量推定

1310024 會下 拓実

Date: 平成29年2月7日


1 はじめに

近年, 健康志向の高まりにより様々な健康管理アプリケーションがリリースされ, 栄養学の知識がない一般の人がカロリー量を記録することが可能となっている. しかしそれらは複数の操作をユーザに要求し, リアルタイム性に欠けるものが多いため, より簡単な食事記録の方法が求められている. そうした中で画像認識技術による食事画像からの自動認識が盛んに行われるようになっている. 一方, 画像認識分野においてはDeep Convolutional Neural Network(CNN)の登場以来, 画像認識の精度が飛躍的に向上している. CNNによる食事画像の認識に関する研究も盛んに行われており実際にアプリケーションに利用された例も多いが, カロリー量の全自動推定が可能なアプリケーションはまだ存在しない. そこで本研究ではCNNを用いて食事画像からのカロリー量推定を行う.

3 手法の概要

本研究ではCNNを用いて食事画像からのカロリー量推定を行う. CNNの学習には国産のDeep Learning用フレームワークであるChainer2を使用する. 学習する食事画像は一種類の食品を写したシングルラベル画像に限定し, 写真中の料理の一人分の量に対応するカロリー量を推定する. カロリー量の推定は食事画像を入力としてカロリー量を直接出力するため, 回帰問題として扱われる. さらに本研究ではMulti-task CNNによりカロリー量に加えて食事カテゴリや食材, 調理法の情報を同時に学習する. 食事カテゴリを推定する問題はマルチクラス分類問題として扱われる. 食材情報に関しては, 認識対象とする食材の選定や, 表記ゆれを統一する処理が困難であったため, Word2Vecにより食材情報を分散ベクトル表現に変換し, その分散ベクトルを食材情報として学習する. 調理法に関しても食材情報と同様にして調理手順テキストを分散ベクトル表現に変換し, その分散ベクトルを調理法情報として学習する.

5 実験

本実験では Web上のカロリー量情報付きレシピサイトからカロリー量情報つき食事画像を収集する.そして食事画像を入力としてカロリー量を出力するCNNを学習し, その評価を行う. また, Multi-task CNNによる食事カテゴリや食材, 調理手順情報などの同時学習の効果を見る.

1 カロリー量情報付き食事画像データセットの構築

現時点ではカロリー量情報を含む大規模な食事画像データセットは公開されておらず, 手作業での収集やクラウドソーシングの使用はコストがかかるため, 本研究ではWeb上のカロリー量情報付きレシピサイトからカロリー量情報付き食事画像を収集する. 本実験では6つのウェブサイトから食事画像とカロリー量の情報などを収集した.

2 カロリー量情報付き食事画像データセットのテストデータによる評価

シングルタスクとマルチタスクとを比較すると, どの評価指標もマルチタスクにより性能が向上したことを示している. 特に食事カテゴリと調理手順情報を同時に学習した場合では, シングルタスクに比べて相対誤差が-1.937%, 絶対誤差が-12.685kcal, 相関係数が+0.042となり, 食事カテゴリ分類においては正解分類率が+5.151%となり, 大幅な改善が見られた.

Figure: カロリー量推定成功例
\includegraphics[clip,height=8cm,width=8cm]{eps/suc_example.eps}

Figure: カロリー量推定失敗例
\includegraphics[clip,height=8cm,width=8cm]{eps/fal_example.eps}