この記事で紹介する作業の目的は、モバイルデバイスで撮影した画像から食品や飲料の商品を自動的に認識する技術を開発することです。この技術は2つの異なるアプローチで構成されています – 最初のものは食品画像認識を行い、2つ目は食品画像セグメンテーションを行います。
手動による食事評価アプローチに関連する問題とコストのために、自動化されたソリューションは、作業を容易かつ迅速化し、その品質を向上させるために必要とされます。今日、自動化されたソリューションは、スマートフォンのカメラで画像を撮るなど、はるかに簡単な方法で人の食事摂取量を記録することができます。今回は、このような画像ベースの食事評価手法に焦点を当てます。食品画像認識問題では、近年、ディープニューラルネットワークが最先端を実現しており、この分野での研究を紹介しています。特に、まず、NutriNetと呼ばれるディープニューラルネットワークアーキテクチャを用いて、食品や飲料の画像認識方法について説明します。この方法は、ディープラーニングベースの食品画像認識の初期に行われたほとんどの研究と同様に、画像ごとに1つの出力に制限されているため、複数の食品または飲料アイテムを持つ画像には適していません。そのため、食品画像のセグメンテーションを実行するアプローチは、画像内の任意の数の食品や飲料アイテムを識別することができるため、かなり堅牢です。したがって、食品画像のセグメンテーションには、完全に畳み込みネットワーク(FCN)に基づく方法と、深い残留ネットワーク(ResNet)に基づく方法の2つも提示します。
食事評価は、個人の食事の実行可能な領域を決定する上で重要なステップです。しかし、伝統的に手動アプローチを使用して食事評価を行うことは、かなりのコストに関連しています。これらのアプローチは、多くの場合、個人による自己申告に依存しているため、エラーが発生しやすくなります。自動食事評価は、食品摂取量を定量化し、資格を得るためのより簡単な方法を提供することで、これらの問題に対処します。このようなアプローチは、食事の欠席、食品量の正確な評価ができないことなど、手動アプローチに存在するエラーの一部を軽減することもできます。したがって、異なる食品や飲料を識別し、食物摂取量を定量化するソリューションを開発することによって食事評価を自動化することには明らかな利点があります。これらのソリューションは、食品および飲料品目(今後「食品」)の栄養価の推定を可能にするためにも使用できます。その結果、栄養士がより簡単かつ正確に患者の食事を追跡し、分析することを可能にするなど、厳密に医療用途から、一般集団を対象としたウェルウェルアプリ内の使用まで、自動食事評価は複数の用途に役立ちます。
画像から食品を自動的に認識することは、コンピュータビジョンの問題です。これは、食品が一般的に変形可能な物体であり、食品の視覚情報が大量に調製中に失われる可能性があるためです。さらに、異なる食品は互いに非常に類似しているように見え、同じ食品は複数の画像2で実質的に異なっているように見える。また、認識精度は、画質、食品が別の項目によって妨害されているかどうか、画像が撮影された距離など、より多くの要因に依存します。飲料アイテムを認識することは、独自の課題のセットを提示し、主なものは、画像で利用可能な視覚情報の限られた量です。この情報は、飲料の色、飲料容器の色および構造、および、最適な画像条件下で、飲料密度2とすることができる。
画像から食品を認識するためには、各食品・飲料クラスの特徴を学ぶ必要があります。これは従来、手動で定義された機能抽出器3、4、5、6を使用して行われ、色、テクスチャ、サイズなどの特定の項目の機能や、これらの機能の組み合わせに基づいて認識を実行します。これらの機能抽出器の例としては、複数のカーネル学習4、ペアローカル機能5、バッグ オブ フィーチャー モデル6などがあります。食品画像の複雑さのために、これらのアプローチは、主に低分類精度を達成しました – 10%と40%3、4、5の間で。この理由は、手動のアプローチが十分に正確であるほど堅牢ではないためです。食品は外観が大きく異なるため、これらの差異をすべて手動で包含することは不可能です。食品クラスの数が5、または異なる画像特徴を組み合わせて6にした場合、手動で定義された特徴抽出器を使用して、より高い分類精度を達成できるため、この問題に対してより複雑な解決策が必要であることを示しています。
ディープラーニングが食品画像認識の問題に非常に効果的であることが判明したのはこのためです。ディープラーニング、またはディープニューラルネットワークは、生物学的脳に触発され、入力画像7、8のセットのトレーニングを通じて、複数の処理層で構成される計算モデルが自動的に機能を学習することを可能にします。このため、ディープラーニングは、コンピュータビジョンを用いて、その後食品画像認識を用いて、様々な研究分野7における最先端の技術を実質的に改善し、そのうちの1つである2。
特に、深畳み込みニューラルネットワーク(DCNN)は、食品画像認識に最も人気がある – これらのネットワークは、個々のニューロンが視野9の重なり合う領域に反応することによって視覚入力の理解を得ようとする動物の視覚システムに触発される。畳み込みニューラル ネットワークは、入力イメージを取得し、各ネットワーク 層で一連の操作を実行します。畳み込みレイヤーには、入力データの特定のフィーチャに応答する学習可能なフィルターが含まれていますが、完全に接続されたレイヤーは他のレイヤーからの出力データを構成して、より高いレベルの知識を得ることができます。レイヤをプールする目的は、入力データをダウンサンプリングすることです2.ディープ ラーニング モデルを使用する方法として、この記事ではディープ ラーニング アーキテクチャと呼ばれる既存のディープ ニューラル ネットワーク定義10、11、または新しいディープ ラーニング アーキテクチャ12、13を定義し、これらのいずれかのトレーニングを食品画像データセットに対して行う方法の 2 つがあります。両方のアプローチには長所と短所があります – 既存のディープラーニングアーキテクチャを使用する場合、他の問題に対してうまく機能したアーキテクチャを選択して、所望の問題に合わせて微調整できるため、時間を節約し、検証済みのアーキテクチャが確実に選択されるようにすることができます。一方、新しいディープラーニングアーキテクチャを定義することは、より時間のかかるものですが、特に問題の詳細を考慮して、理論的には、その問題に対してより良いパフォーマンスを発揮するように作られたアーキテクチャの開発を可能にします。
この記事では、両方のアプローチを紹介します。食品画像認識の問題のために、我々はNutriNet2と呼ばれる新しいDCNNアーキテクチャを開発しました。AlexNetと比較して2つの主な違いがあります:NutriNetは512×512ピクセルの画像を入力として受け入れ(AlexNetの場合は256×256ピクセルの画像とは対照的)、NutriNetはニューラルネットワークの最初に追加の畳み込みレイヤーを持っています。この 2 つの変更は、できるだけ多くの情報を認識データセット 画像から抽出するために導入されました。高解像度の画像を持つことは、画像に関するより多くの情報が存在し、より多くの畳み込み層を持つことを意味し、画像から追加の知識を抽出できることを意味しました。AlexNetの約6,000万のパラメータと比較すると、NutriNetには約3,300万個のパラメータが含まれています。これは、追加の畳み込み層2によって生じる最初の完全に接続された層における次元性の違いによる。 図 1 に NutriNet アーキテクチャの図を示します。NutriNetモデルのトレーニングに使用された食品画像は、インターネットから収集されました – 手順はプロトコルテキストに記載されています。
食品画像セグメンテーションの問題では、完全畳み込みネットワーク(FCN)15と深い残留ネットワーク(ResNet)16の2つの異なる既存のアーキテクチャを使用しました。ロングらによって導入された複数のFCNバリアントがあります:FCN-32s、FCN-16sおよびFCN-8s15.FCN-32s は FCN の最終レイヤーの予測に基づいてピクセル マップを出力しますが、FCN-16s バリアントはこれらの予測を以前のレイヤーの予測と組み合わせます。FCN-8sはさらに別の層の予測を考慮し、したがって、それが食品画像認識に適している理由である、最高級の穀物で予測を行うことができます。私たちが使用したFCN-8は、PASCALビジュアルオブジェクトクラス(PASCAL VOC)データセット17で事前に訓練され、実際の食品に視覚的に似ていることと、ピクセルレベルでの実際の食品のコメント画像の欠如のために、食品レプリカ(今後「偽の食べ物」)18の画像で訓練され、テストされました。偽の食べ物は、異なる行動研究で使用され、画像は、すべての研究参加者からのすべての料理のために撮影されています.これらの画像の食品コンテンツが既知であるため、ディープラーニングモデルのトレーニングに役立つ画像データセットを作成します。データセットの処理手順は、プロトコル テキストで説明されています。
レスネットベースのソリューションは、食品認識チャレンジ(FRC)19の範囲で開発されました。これは、ResNet-10116バックボーンを持つハイブリッド タスク カスケード (HTC)20メソッドを使用します。これは、異なる特徴抽出器、またはバックボーンを使用できる画像セグメンテーションの問題に対する最先端のアプローチです。他のバックボーンネットワーク、特にResNet-5016などの他のResNetバリアントも検討しましたが、その深さと複雑な方法で入力画像を表現する能力のために、ResNet-101が最も適していました。HTC ResNet-101 モデルのトレーニングに使用されるデータセットは、拡張画像を追加した FRC データセットでした。これらの拡張は、プロトコルテキストで示されます。
この記事は、食品画像認識とセグメンテーションの問題に対してどのディープラーニングアーキテクチャとデータ拡張ステップがうまく機能するかについての情報を探している機械学習の専門家のためのリソースとして、また、食事評価で使用するための食品画像認識を自動化するために私たちのアプローチを使用しようとしている栄養研究者のためのリソースとして意図されています。以下の段落では、食品画像認識分野のディープラーニングソリューションとデータセットを紹介しています。プロトコルテキストでは、3つのアプローチのそれぞれが、自動食事評価に使用できるディープニューラルネットワークモデルを訓練するためにどのように使用されたかを詳しく説明します。さらに、各プロトコル セクションには、トレーニングとテストに使用される食品画像データセットがどのように取得および処理されたかについて説明します。
DCNは一般的に、食品画像認識とセグメンテーションのための他の方法よりも大幅に良い結果を達成しました, この分野での最近の研究の大半は、これらのネットワークに基づいている理由です.河野らは、DCNNを使用して手動アプローチ21を補完し、UEC-FOOD100データセット22で72.26%の分類精度を達成した。クリストドゥリディスらは、自己取得データセット23で84.90%の高い精度を達成するためにそれらを独占的に使用しました。タンノらは、ディープFoodCamを開発しました – DCNN24を使用する食品画像認識のためのスマートフォンアプリ.劉らは、DCN25を使用してモノのインターネットベースの食事評価を行うシステムを提示した。Martinelら. 食品画像26の詳細を利用するDCNNベースのアプローチを導入し、Food-101データセット27で90.27%の精度を報告した。周らは、食品領域28におけるディープラーニングソリューションのレビューを作成しました。
最近、Zhaoらは、モバイルアプリケーション29における食品画像認識専用のネットワークを提案した。このアプローチでは、より大きな「教師」ネットワークから学習する、より小さな「学生」ネットワークを使用します。それにより、UEC-FOOD25630で84%の精度とFood-101データセット27で91.2%の精度を達成することができました。Hafizらは、飲料のみの画像認識溶液を開発するためにDCNNを使用し、98.51%31の非常に高い精度を報告した。下田らは、画素性注釈32を用いずに食品画像中のプレート領域を検出する新しい方法を説明した。Ciocca et al. は、11の異なる状態(固体、スライス、クリーミーペーストなど)の20種類の食品クラスの食品を含む新しいデータセットを導入し、食品クラス33に加えて、食品状態を認識できるトレーニング認識モデルのアプローチを提示した。Knezら. モバイルデバイス用の食品画像認識ソリューションを評価する。最後に、Furtadoらは、人間の視覚システムがDCNの性能と比較する方法に関する研究を行い、人間の認識は依然として80%対74.5%35の精度でDCNを上回ることを発見した。著者らは、少数の食品クラスでは、DCNは良好に機能するが、数百のクラスを持つデータセットでは、人間の認識精度が35高く、問題の複雑さを強調していると指摘した。
最先端の結果にもかかわらず、ディープラーニングには大きな欠点があり、モデルをトレーニングするには大きな入力データセットが必要です。食品画像認識の場合、大きな食品画像データセットが必要であり、このデータセットは、できるだけ多くの異なる現実世界のシナリオを包含する必要があります。実際には、個々の食品または飲料アイテムごとに、大量の画像が必要であり、データセットにできるだけ多くの異なるアイテムを存在する必要があることを意味します。データセット内の特定のアイテムに対して十分な画像がない場合、そのアイテムが正常に認識される可能性は低くなります。一方、データセットでカバーされる項目が少数の場合、ソリューションの範囲は限定され、一握りの異なる食品や飲料しか認識できません。
過去に複数のデータセットが利用可能になりました。ピッツバーグファーストフード画像データセット(PFID)3は、食品画像認識の分野でより多くの研究を奨励するために導入されました。電気通信食品100(UEC-FOOD100)22と電気通信食品256(UEC-FOOD256)30データセットには日本料理が含まれ、UEC-FOOD256データセットの場合には一部の国際料理で拡大されています。Food-101 データセットには、ウェブサイト27から入手した人気の料理が含まれています。Food-5036およびビデオ検索グループ食品172(VireoFood-172)37データセットは、中国ベースの食品画像のコレクションです。ミラノ・ビコッカ大学2016(UNIMIB2016)データセットは、イタリアの食堂38からの食品トレイの画像で構成されています。Recipe1M は、調理レシピと食品画像39の大規模なデータセットです。Food-475 データセット40は、以前に公開された 4 つの食品画像データセット27、30、36、37を 1 つに収集します。 北京技術とビジネス大学食品60(BTBUFood-60)は、食品検出のための画像のデータセットです41.最近、ISIA Food-500データセット42の雑食画像が利用可能になりました。他の一般に公開されている食品画像データセットと比較して、500の食品クラスに分けられた多数の画像を含み、マルチメディア食品認識ソリューション42の開発を進めることを意図している。
近年、ディープニューラルネットワークは、食品画像10、11、12、21、23、25、26、29、31、33を認識するための適切なソリューションとして複数回検証されています。この記事で紹介した私たちの仕事は、この1、2をさらに証明するのに役立ちます。単一出力の食品画像認識アプローチは簡単で、食品または飲料アイテムが1つだけの画像が2を期待される簡単なアプリケーションに使用できます。
食品画像セグメンテーションアプローチは、食品の数に制限を設けずに、一般的に食品画像を認識するのに特に適しているようです1.画像の個々のピクセルを分類することで機能するため、画像内の任意の数の食品を認識するだけでなく、食品の場所や大きさを指定することもできます。後者は、特に参照オブジェクトまたは固定距離カメラのいずれかで使用される場合、食品重量の推定を実行するために使用することができます。
食品画像データセット3、22、27、30、36、37、38、39、40、41、42の可用性に関するいくつかの作業が行われ、特に世界中の異なる地域から食品画像データセットを集約することになると、将来的にはさらに多くのことを行い、より堅牢なソリューションを開発できることを願っています。現在、自動食品画像認識ソリューションの精度は人間レベルの精度35に達しておらず、これはサイズと品質が不十分な食品画像データセットの使用によるものと考えられます。
今後は、実際の画像に関する開発手順を評価することが目標です。一般に、このフィールドのデータセットには、制御された環境で撮影された画像や、手動で認識用に最適化された画像が含まれていることがよくあります。そのため、個人が認識したいさまざまな食品や飲料を含む、大規模で多様な実世界の食品画像データセットを収集することが重要です。これに向けた最初のステップは、現実世界の食品画像19のデータセットを含む食品認識チャレンジによって提供されましたが、世界中の食品画像でこのアプローチを検証し、栄養士と協力して、さらなる作業を行う必要があります。
The authors have nothing to disclose.
著者らは、偽食品画像データセットを提供してくれたオーストラリアのニューカッスル大学のタマラ・ブッハーに感謝したいと考えています。この研究は、欧州連合のHorizon 2020研究およびイノベーションプログラム(助成金番号863059 – FNS-Cloud、769661 – SAAM)によって支えられ、;スロベニア研究庁(助成金番号P2-0098)を含む。欧州連合(EU)とスロベニア研究機関は、この記事の設計、分析、執筆に何の役割も持っていませんでした。
HARDWARE | |||
NVIDIA GPU | NVIDIA | N/A | An NVIDIA GPU is needed as some of the software frameworks below will not work otherwise. https://www.nvidia.com |
SOFTWARE | |||
Caffe | Berkeley AI Research | N/A | Caffe is a deep learning framework. https://caffe.berkeleyvision.org |
CLoDSA | Jónathan Heras | N/A | CLoDSA is a Python image augmentation library. https://github.com/joheras/CLoDSA |
Google API Client | N/A | Google API Client is a Python client library for Google's discovery based APIs. https://github.com/googleapis/google-api-python-client | |
JavaScript Segment Annotator | Kota Yamaguchi | N/A | JavaScript Segment Annotator is a JavaScript image annotation tool. https://github.com/kyamagu/js-segment-annotator |
MMDetection | Multimedia Laboratory, CUHK | N/A | MMDetection is an object detection toolbox based on PyTorch. https://github.com/open-mmlab/mmdetection |
NVIDIA DIGITS | NVIDIA | N/A | NVIDIA DIGITS is a wrapper for Caffe that provides a graphical web interface. https://developer.nvidia.com/digits |
OpenCV | Intel | N/A | OpenCV is a library for computer vision. https://opencv.org |
Python | Python Software Foundation | N/A | Python is a programming language. https://www.python.org |
PyTorch | Facebook AI Research | N/A | PyTorch is a machine learning framework. https://pytorch.org |
Ubuntu OS | Canonical | N/A | Ubuntu 14.04 is the OS used by the authors and offers compatibility with all of the software frameworks and tools above. https://ubuntu.com |