社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,INFORMATION AND COMMUNICATION ENGINEERS

信学技報
TECHNICAL REPORT OF IEICE.

単一の畳み込みネットワークによる料理検出とカロリー量推定のマルチタスク学習會下 拓実†

柳井 啓司†† 電気通信大学大学院情報理工学研究科〒 182–8585 東京都調布市調布ヶ丘 1–5–1
E-mail: †ege-t@mm.inf.uec.ac.jp, ††yanai@cs.uec.ac.jp
あらまし

近年, 食に関する健康志向の高まりにより画像認識技術を用いた食事記録支援アプリケーションが数多く登場している. そうしたアプリは料理写真から料理名の候補を自動で提案することが可能である. しかし今のところ複数料理画像に対応したものは少なく, また, 料理画像からの全自動カロリー量推定が可能なものは存在しない. 一方,画像認識分野では Convolutional Neural Network (以下 CNN) の登場により, クラス分類や物体検出を高精度に行うことが可能となっており, 既にこのような画像認識技術を用いたアプリケーションは数多く存在する. そこで本研究では CNN を用い, 複数料理画像からのカロリー量推定を行う. 単一の CNN での料理検出とカロリー量推定のマルチタスク学習を行うことで, 複数料理画像から各単品料理を検出すると同時に各単品料理のカロリー量の推定を行う. 単一ネットワークでの同時推定による高速化と省メモリ化が期待できる. 現状, 物体検出のためのバウンディングボックスとカロリー量が各単品料理に付与された複数料理画像のデータセットは存在しないため, 本研究では, バウンディングボックスが付与された複数料理画像とカロリー量が付与された単品料理画像を用いて CNN の学習を行う.
キーワード カロリー量推定, 物体検出, 同時学習

1. は じ め に
近年, 食に関する健康志向が高まる中で, 日々の食事管理を目的としてカロリー量を記録することができるアプリケーションが登場している. しかしこれらのアプリケーションのカロリー量の推定には, ユーザー入力による情報が必要であったり, 栄養士を雇ったりと, 人手のかかるものとなっている. 最近では画像認識により料理画像から料理名の候補を自動で提案するものも存在するが, 単品料理の画像にのみ対応している場合が多く,
図 1 のように複数の料理が並ぶ場合, ユーザーは 1 品ずつ写真

図 1 複数料理画像の例を撮るか, 画像から手作業で単品料理の画像を切り出す必要があり, 手間がかかるものとなっている.
一方, 画像認識分野では CNN を用いた手法により, 画像のクラス分類や物体検出を高精度に行うことが可能となっている. これを料理画像に用いることで, 料理カテゴリ分類や複数料理画像からの単品料理の検出が可能であり, 一部のアプリケーションでは実用化されている.
そこで本研究では CNN を用い, 複数料理画像からのカロリー量推定を行う. 単一の CNN での料理検出とカロリー量推定のマルチタスク学習を行うことで, 複数料理画像から各単品料理を検出すると同時に各単品料理のカロリー量の推定を行う.
會下ら [2] は CNN での回帰学習により, 料理画像からカロリー量を直接推定するネットワークを構築した. また, カロリー量情報付き料理画像データセット [2] を作成し, これを用いてネットワークを学習することで, 料理画像からのカロリー量推定を実現した. この手法では食材や調理手順の違いによる見た目の違いを考慮したカロリー量推定が行われることが期待でき,例えば同一カテゴリの料理だとしても食材の違いによる見た目の違いに応じて異なるカロリー量が出力される. ただし, このネットワークの入力は単品料理の画像にのみ対応しており, 複数料理画像から個々の料理のカロリー量を推定することはできない. したがって本研究では, 物体検出技術を用いることで複数料理画像からのカロリー量推定を実現する. 物体検出により単品料理を検出すると同時にカロリー量推定も行う. なお, 本研究のネットワークが出力するカロリー量の値は, 會下ら [2] と同様に１人分のカロリー量の値となっている. したがって画像中の料理の量が何人前であっても, その料理の１人分の量に対応するカロリー量を出力する.

—1—

物体検出は画像に含まれる各対象物体の矩形領域とカテゴリを推定する技術である. したがって物体検出を使用することで,複数料理画像中の個々の単品料理のカテゴリとバウンディングボックスを推定することが可能である. これは同一カテゴリの物体を個々に検出することができるため, 例えば, 画像中に同じ料理が 2 皿写っている場合であっても個々に検出される. この物体検出に関しても, CNN を用いた手法により高精度かつ高速な検出が可能となっており, 本研究では CNN に基づく物体検出手法を用い, 複数料理画像からの単品料理の検出を行う. また, 単品料理を検出すると同時にカロリー量を推定するような

図 2 YOLOv2 [7] のネットワークの概略図.

ネットワークを構築する. 一般的な物体検出を用いて複数料理画像から単品料理を検出する場合, 画像に含まれる各単品料理法 [10] を提案している. この手法では CNN を用いて得られるの矩形領域とカテゴリが推定されるが, 本研究ではこれに加えサリエンシーマップにより候補領域が直接生成する. 次に各候て各単品料理のカロリー量を推定することで, 料理検出とカロ補領域のクラス分類を行い, 最後に NMS により重複しているリー量推定を同時に行う.

候補領域を統合し, 料理を検出している.

まとめると, 本研究では複数料理画像からのカロリー量推定

Dehais ら [1] は料理領域の領域分割の手法を提案している.

を行う. 単一 CNN での料理検出とカロリー量推定のマルチタ

彼らはまず, CNN を用いて, おおまかな料理領域の境界線を表スク学習を行うことで, 複数料理画像からのカロリー量を推定す Border Map を生成する. そして region growing/mergingを実現する. 現状, 物体検出のためのバウンディングボックス

algorithm を用いて Border Map の境界線を洗練することで料とカロリー量が各単品料理に付与された複数料理画像のデータ理領域を推定する. 本研究では CNN に基づく物体検出手法をセットは存在しないため, 本研究では, バウンディングボックス用い, 複数料理画像からの単品料理の検出を行う.

が付与された複数料理画像とカロリー量が付与された単品料理画像を CNN の学習に用いる.

2. 関 連 研 究

料理画像からのカロリー量推定を行った研究の一つに Myers
らの Im2Calories [5] がある. 彼らはカロリー量を推定するために, 料理写真に含まれる食材の種類やその領域などを推定し, これらの情報から推定された体積と, 推定された料理カテゴリに現在では様々な自動カロリー量推定システムが提案されて対応するカロリー密度から最終的なカロリー量を計算している.

いる. 宮崎ら [4] は料理画像からカロリー量を直接推定していただしこの研究の実験では, カロリー量がアノテーションされる. 色ヒストグラムや SURF などの低レベル特徴量に基づいたデータセットが不足し, 十分な性能評価が行われていない.て, データベース上の類似画像を検索し, 特徴量ごとに類似度の高い上位 n 枚のカロリー量の平均値を計算し, それらの値から最終的にカロリー量を推定している. データセットには Webサービスである FoodLog に投稿された料理画像 6512 枚を使用

3. 手法

ここではまず本研究で提案する, 料理検出とカロリー量推定を同時に行うネットワークについて説明する.

している. このデータセットには複数料理画像も含まれており,3. 1 料理検出とカロリー量推定のマルチタスク学習

各料理画像には 1 人分のカロリー量がアノテーションされてい本研究では単一 CNN での料理検出とカロリー量推定のマルる. したがってこの手法では料理の量に応じたカロリー量を推チタスク学習を行い, 料理検出とカロリー量推定を同時に行う

定することはできない. 本研究のカロリー量もこれと同様で料ネットワークを構築する. すなわち, 複数料理画像中の各単品理画像からカロリー量を直接推定するものである.

料理の矩形領域とカテゴリ, カロリー量の同時推定を行う. 本

CNN を用い複数料理画像から料理を検出した研究の一つに手法ではカロリー量推定手法として, 會下らの CNN での回帰下田らの研究 [9] がある. 下田らはまず, selective search によ学習による料理画像からのカロリー量の直接推定手法 [2] を用り大量に候補領域を生成し, 次に, CNN を用いて得られる各候い, 物体検出手法として, Redmon らが提案した CNN に基づく補領域のサリエンシーマップに基づき, 料理領域の領域分割を物体検出手法である YOLOv2 [7] を使用する. YOLOv2 は以行っている. 最後に non- maximum suppression(NMS) により前に提案された YOLO [6] を改善することで, 高速かつ高精度重複している候補領域を統合し, 単品料理を検出している. こな物体検出を可能としている.のようにこの手法は料理領域の領域分割を行っている. 領域分

図 2 に YOLOv2 のネットワークを示す. YOLOv2 は画像を割はピクセル単位のカテゴリ分類であるため, ピクセル単位の入力として, 出力は特徴マップであり, 全層が畳み込み層で構成領域を矩形領域で表すことで物体検出と同じになる. これに加されているため出力まで位置情報が保持されている. そのため

え下田らは, はじめの候補領域の生成にも CNN を使用する手

出力特徴マップの各ピクセルは入力画像上のある領域に対応し—2—

図 4 UEC FOOD-100 [3] に含まれる複数料理画像の例.

料理の量に関係なく１人分の量に対応するカロリー量を出力す
図 3 擬似的なバウンディングが付与された料理画像の例. 赤枠が正る. 本手法のネットワークは複数料理画像にも対応しているが,解値として擬似的に付与されたバウンディングである. (左上:

出力されるカロリー量の値は [2] と同様に１人分の量に対応す

ピラフ 375kcal, 右上: 肉じゃが 262kcal, 左下: スパゲッティる値である. また, 本手法では [2] に従い, カロリー量の学習に391kcal, 右下: ハンバーグ 440kcal)

使用する損失関数として式 (1) を使用する.
回帰問題においては, 一般的に損失関数として 2 乗和誤差がており, 出力特徴マップの幅と高さを S とすると, 入力画像上用いられるが, [2] では次のような損失関数 Lcal を使用していの S × S のグリッド毎に対象物体の矩形領域とカテゴリが推定る. 絶対誤差を Lab , 相対誤差を Lre とすると, カロリー量推定される. 矩形領域とカテゴリの推定時には, 矩形領域を表す中タスクの損失関数 Lcal は下のように定義される.

心座標と幅・高さと, グリッド内に対象物体が存在する確率, そして各カテゴリに対応するクラス確率が出力される. したがってグリッド毎に B 個の物体を検出するとして, カテゴリ数を Cとすると, 出力特徴マップのチャネル数は B × (5 + C) となる.
本研究では料理検出とカロリー量推定のマルチタスク学習を行うネットワークを提案する. 基本構造は YOLOv2 に従い, これを改良することで料理検出に加えて, カロリー量推定の学習

Lcal = λre Lre + λab Lab(1)

ただし λ は各損失にかかる重みである. 絶対誤差は推定値と正解値の差の絶対値であり, 相対誤差は絶対誤差と正解値の比である. ある画像 x を入力したときの推定値を y, y に対する正解値を g とすると, 絶対誤差 Lab と相対誤差 Lre は下のように定義される.

も同時に行う. 本手法では出力特徴マップにカロリー量の出力に対応するチャネルを追加することで, 矩形領域とカテゴリにLab = |y − g|加えてカロリー量の推定を行う. したがって, 本手法の出力特徴マップのチャネル数は B × (1 + 5 + C) となる.

Lre =(2)|y − g|(3)g

このようにグリッド毎に推定を行うためには, 正解値として付与されたバウンディングボックスに応じて正解グリッドを設4. データセット定し, その正解グリッドに関して物体検出とカロリー量推定が現状, 物体検出のためのバウンディングボックスとカロリー適切に行われるように学習する必要がある. しかし, 本実験に量が各単品料理に付与された複数料理画像のデータセットは存

おいてカロリー量推定の学習に使用するカロリー量付き料理画

在しないため, 本研究では, バウンディングボックスが付与され像データセット [2] にはバウンディングボックスが付与されてた複数料理画像と, カロリー量が付与された単品料理画像を用いない. そこで本研究では, 次の手順により図 3 のように擬似いて CNN の学習を行う. バウンディングボックスが付与され的にバンディングボックスを付与することで YOLOv2 の学習

た複数料理画像として UEC Food-100 [3] を使用し, カロリー量を行う. まず, カロリー量付き料理画像をランダムな位置に埋が付与された単品料理画像として [2] で用いられたデータセッめ込み, 埋め込んだ画像領域を正解バウンディングボックスとトを使用し, 単一のネットワークの学習を行う.

する. さらに背景との境界線を目立たなくするために, 埋め込

4. 1 UEC Food-100

んだ画像と同じものを反転させながら背景部分に埋め込む.

UEC FOOD-100 [3] は料理 100 カテゴリに関する料理画像

3. 2 料理画像からのカロリー量推定データセットであり, 複数料理画像も含まれている. 単品料理本研究では CNN での回帰学習による料理画像からのカロ画像は各料理カテゴリ 100 枚以上あり, 合計 11566 枚ある. そ

リー量の直接推定手法 [2] を用い, 料理検出と同時にカロリー量れに加え, 複数料理画像は 1174 枚ある. 合わせて 12740 枚のす推定を行う. 會下ら [2] が提案したネットワークでは, 入力は単べての画像にバウンディングボックスが付与されている. 図 4品料理画像に限られており, 出力のカロリー量は料理画像中のに UEC FOOD-100 に含まれる複数料理画像の例を示す.

—3—

<= 誤差 40%(%)<= 誤差 20%(%)

絶対誤差 (kcal)

相対誤差 (%)

表 1 単品料理画像 [2] に対するカロリー量推定の結果

VGG16 でのカロリー量推定 ( [2])30.2 105.7 43 76

料理検出+カロリー量推定 (本手法)36.1 121.7 34 64

図 5 カロリー量付き料理画像 [2] の例.
図 6 単品料理画像 [2] に対する料理検出とカロリー量推定の例. 青枠が推定されたバウンディングである.

4. 2 カロリー量付き料理画像
本研究で使用するカロリー量付き料理画像 [2] は Web 上のカロリー量情報を提供するレシピ情報サイトから収集されたものであり, 単品の料理画像に 1 人分のカロリー量が付与されている. 図 5 に示す料理 15 種類に関するデータセットとなっている.

5. 実

験

本実験ではバウンディングボックスが付与された複数料理画像として UEC Food-100 [3] を使用し, カロリー量が付与された単品料理画像として [2] で用いられたデータセットを使用し,単一のネットワークの学習を行う. 学習時にはバッチ単位で使用するデータセットを切り替えることで, 料理検出タスクの学習とカロリー量推定タスクの学習を交互に行う. 料理検出タスクの学習には UEC Food-100 [3] を使用し, 損失関数として料図 7 複数料理画像に対する料理検出とカロリー量推定の例. 青枠が推理検出タスクに関連する損失項のみを用いる. カロリー量推定

定されたバウンディングである. (ES: 推定値, GT: 正解値)

タスクの学習にはカロリー量付き料理画像 [2] を使用し, 損失関数としてカロリー量推定タスクに関連する損失項のみを用いる.

VGG16 [11] を用いてカロリー量推定のみを行った手法 [2] と5. 1 単品料理画像からのカロリー量推定比較すると, 本手法の精度は全ての評価指標に関して下回った.

本実験の評価にはカロリー量が付与された単品料理画像デー

原因として, 使用したネットワークの違いや, 擬似的なアノテータセット [2] のテスト用画像を使用する. 會下ら [2] に基づき,ションを行ったことなどが考えられる. 図 6 に料理検出とカロ評価指標としてカロリー量推定の評価指標として相対誤差, 絶リー量推定の例を示す.

対誤差, 相対誤差 20% 以内の推定値の割合, 相対誤差 40%以内

また, 複数料理画像に対する料理検出とカロリー量推定の例の推定値の割合を用いる. 絶対誤差は推定値と正解値の差の絶を図 7 に示す. テスト画像として「実物大・そのまんま料理カー対値であり, 相対誤差は正解値に対する絶対誤差の割合である.

ド 食事バランスガイド編（注 1）」の料理カードを用いる. この「実最適化手法として SGD を使用し, momentum 値を 0.9 する.

物大・そのまんま料理カード 食事バランスガイド編」は実物大

また, バッチサイズを 8 として学習率 10−6反復し, その後, 学習率 10−5において 40,000 回において 20,000 回反復する.

本実験で使用するテスト画像は単品料理画像であるため, 検出されたバウンディングボックスのうちグリッド内に対象物体の料理カード 131 ピースを有し, 各料理カードには材料や作り方, カロリー量の値などの関連情報が付いている. カロリー量については実物大の料理の量を考慮した値がアノテーションされている.

が存在する確率が最も高いバウンディングボックスを最終出力とする. 表 1 にカロリー量推定の結果を示す.
（注 1）：http://www.gun-yosha.com/book/balanceguide.html—4—6. お わ り に本研究では単一の CNN での料理検出とカロリー量推定のマルチタスク学習を行うことで, 複数料理画像からのカロリー量の推定を行った. 現状, 物体検出のためのバウンディングボック
スとカロリー量が各単品料理に付与された複数料理画像のデータセットは存在しないため, 本実験ではバウンディングボック
スが付与された複数料理画像として UEC Food-100 [3] を使用し, カロリー量が付与された単品料理画像として [2] で用いられたデータセットを使用し, 単一のネットワークの学習を行った.
今後の課題としてカロリー量付き複数料理画像データセッ
トの作成がある. バウンディングボックス付き料理画像とカロリー量付き料理画像を使用し, CNN を学習することで, 新たに生成することなどを考えている.
謝辞: 本研究は科研費 (17H01745) の助成を受けたものである．
文

献[1] J. Dehais, M. Anthimopoulos, and S. Mougiakakou. Food
image segmentation for dietary assessment. In Proc. of
ACM MM Workshop on Multimedia Assisted Dietary Management, 2016.
[2] T. Ege and K. Yanai. Simultaneous estimation of foodcategories and calories with multi-task cnn. In Proc. ofIAPR International Conference on Machine Vision Applications(MVA), 2017.
[3] Y. Matsuda, H. Hajime, and K. Yanai. Recognition ofmultiple-food images by detecting candidate regions. InProc. of IEEE International Conference on Multimedia andExpo, pages 25–30, 2012.
[4] T. Miyazaki, G. Chaminda, D. Silva, and K. Aizawa. Image‐ based calorie content estimation for dietary assessment.
In Proc. of IEEE ISM Workshop on Multimedia for Cooking
and Eating Activities, pages 363–368, 2011.
[5] A. Myers, N. Johnston, V. Rathod, A. Korattikara,
A. Gorban, N. Silberman, S. Guadarrama, G. Papandreou,
J. Huang, and P. K. Murphy. Im2calories: towards an automated mobile vision food diary. In Proc. of IEEE International Conference on Computer Vision, pages 1233–1241,
2015.
[6] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi. You
Only Look Once: Unified, real-time object detection. InProc. of IEEE Computer Vision and Pattern Recognition,2016.
[7] J. Redmon and A. Farhadi. YOLO9000: Better, faster,stronger. In Proc. of IEEE Computer Vision and PatternRecognition, 2017.
[8] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In Advances in Neural Information Processing Systems, 2015.
[9] W. Shimoda and K. Yanai. CNN-based food image segmentation without pixel-wise annotation. In Proc. of IAPR
International Conference on Image Analysis and Processing, 2015.
[10] W. Shimoda and K. Yanai. Foodness proposal for multiple
food detection by training of single food images. In Proc. ofACM MM Workshop on Multimedia Assisted Dietary Management, 2016.
[11] K. Simonyan and A. Zisserman. Very deep convolutional
networks for large-scale image recognition. In arXiv preprint
arXiv:1409.1556, 2014.

—5—