이 연구는 멀티모달 대규모 언어 모델(MLLM)의 이미지 기반 음식량 추정 능력 한계를 극복하기 위한 새로운 방법을 제시합니다. MLLM은 다양한 음식을 인식하는 데 탁월하지만, 실제 식사 사진에서 개별 음식의 양을 정확하게 추정하는 데는 어려움을 겪습니다. 본 연구는 고정된 상용 MLLM에 기하학적 정보가 강화된 작은 네트워크(portion head)를 추가하여, MLLM의 강력한 음식 인식 능력은 유지하면서도 음식량 추정의 정확도를 획기적으로 향상시켰습니다. 이 방법은 깊이 센서 없이 단일 RGB 이미지로 작동하며, MLLM을 별도로 미세 조정할 필요가 없습니다.
1. 서론: 식사량 추정의 중요성과 MLLM의 한계 🍽️
식단 평가는 영양 연구와 공중 보건 모니터링에 필수적이지만, 기존 방식은 시간 소모적이고 편향될 위험이 큽니다. 예를 들어, 24시간 회상법은 상세하지만 응답자에게 부담을 주고 회상 편향이 발생하기 쉽죠. 음식 빈도 설문지는 간편하지만, 특정 음식과 양에 대한 자세한 정보를 얻기 어렵습니다.
이러한 문제를 해결하기 위해 이미지 기반 음식 인식 및 식사량 추정 기술이 대안으로 떠오르고 있습니다. 이 기술은 응답자 부담 없이 상세하고 객관적인 정보를 제공할 수 있습니다. 하지만 기존 방법들은 소규모의 통제된 데이터셋에서 개발되어 실제 환경에 적용하기 어렵다는 한계가 있었습니다. 특히, 식사의 총량(질량, 칼로리 등)만 보고하는 경향이 있어, 개별 음식의 종류와 양을 파악하기 어려워 건강 식단 지수(HEI)와 같은 중요한 영양 점수를 계산하는 데 부족함이 있었습니다.
최근 웹 규모의 이미지-텍스트 데이터로 훈련된 멀티모달 대규모 언어 모델(MLLM)은 통제되지 않은 실제 사진에서도 다양한 음식을 "제로샷(zero-shot)"으로 인식하는 뛰어난 능력을 보여주며, 이미 현대 영양 앱에서 이미지 기반 음식 인식 및 영양 추정에 활용되고 있습니다. 하지만 MLLM은 정교한 식사량 추정에는 약점을 보여, 에너지 및 영양소 추정에서 큰 불일치를 나타냈습니다.
이 연구는 이러한 MLLM의 한계를 극복하기 위해 전용 식사량 추정 "헤드(portion head)"를 개발하여 상용 MLLM의 능력을 강화하는 방법을 제안합니다. 이 헤드는 MLLM을 고정된 상위 탐지기로 활용하여, MLLM이 각 음식에 대한 이름, 경계 상자(bounding box), 그리고 밀도 범위를 제공하면, 헤드가 이 정보와 이미지 전체를 종합적으로 분석하여 각 음식의 질량을 추정합니다. 이 과정에서 깊이 센서가 필요 없으며, MLLM 자체를 미세 조정할 필요도 없습니다.
1.1. 주요 기여점 ✨
- 정확한 식사량 추정을 위한 기하학적 정보 강화 헤드 개발:
Image×Food Cross-attention Transformer: 탐지된 모든 음식과 이미지를 종합적으로 분석하여 음식들이 공유된 영역을 효과적으로 나누어 계산하게 합니다.Structured Softmax-Ownership Volume: 이를 통해 개별 음식의 질량을 정확하게 예측합니다. 깊이 센서나 MLLM 미세 조정 없이 MLLM 단독 대비 음식별 오차를 크게 줄였습니다.
- 대규모 식단 평가에 적합한 실제 시스템 구축:
- 실제 식사 사진에서 다양한 음식을 추출하고 개별 음식의 양을 추정하여, 정밀한 영양 정보(다량 영양소, 미량 영양소, 식단 품질 점수 등)를 얻기 위한 표준 음식 데이터베이스와 연동할 수 있도록 합니다.
2. 관련 연구: 영양 연구와 컴퓨터 비전 분야의 발전 📚
이미지 기반 음식 인식과 식사량 추정은 영양 연구 및 컴퓨터 비전 분야에서 많은 관심을 받아왔습니다.
2.1. 영양 연구 및 앱 분야 📱
지난 10년간 이미지 보조 및 이미지 기반 식단 평가 방법이 개발되었으며, 최근에는 CNN(Convolutional Neural Networks) 및 MLLM을 포함한 AI 기반 방법들이 제안되고 평가되었습니다. AI 기반 이미지가 큰 가능성을 보였지만, 여전히 크고 일관되지 않은 오류는 인구 규모 식단 평가에서 널리 채택되는 데 큰 장벽으로 남아 있습니다. MyFitnessPal 및 Noom과 같은 소비자 영양 앱도 이미지 기반 음식 추적을 채택했지만, 연구 수준의 식단 평가와는 여전히 상당한 품질 격차가 있습니다.
2.2. 컴퓨터 비전 분야 🧠
음식 이미지에서 질량이나 부피를 복구하는 것은 핵심적인 난제입니다. 2D 사진은 음식 양을 결정하는 3D 정보를 잃어버리기 때문이죠. 초기 단안(monocular) 방식은 단일 RGB 이미지에서 직접 양이나 에너지를 회귀(regress)했습니다. 깊이 정보를 복원하기 위해 Nutrition5k와 같은 데이터셋은 접시별 깊이 맵을 제공했고, DPF-Nutrition은 RGB 이미지에서 깊이를 예측하여 영양 추정에 활용했습니다.
더 최근에는 3D 음식 모델 또는 포인트 클라우드를 재구성하고 물리적 참조 또는 상황적 객체에서 스케일을 추론하여 기하학적 정보를 명시적으로 활용하는 방법들이 등장했습니다. 이러한 기하학 기반 방법들은 정확도를 높였지만, 깊이 센서, 다중 시점 캡처, 또는 불안정한 단안 3D 재구성에 의존하며, 닫힌 음식 어휘(closed food vocabulary)로 작동한다는 한계가 있습니다.
반면, 본 연구는 명시적인 깊이 정보 없이 단일 RGB 이미지를 사용합니다. MLLM이 개방형 어휘 음식 식별을 제공하는 동안, 고정된 외형 특징(appearance features)에서 구조화된 부피를 학습합니다.
3. 방법: MLLM과 기하학적 정보 강화 헤드의 결합 🛠️
우리의 시스템은 고정된 상업용 MLLM과 작고 훈련 가능한 기하학적 정보 강화 헤드를 결합합니다. MLLM은 각 음식의 이름, 경계 상자, 밀도 범위와 같은 개방형 어휘 의미 정보를 제공하고, 헤드는 MLLM에 부족한 기하학적 정보를 보완하여 외형 특징을 보정된 음식별 양 추정치로 변환합니다.
아래 그림 1은 시스템의 전체 데이터 흐름을 보여줍니다.
<br>
그림 1: 기하학적 정보 강화 MLLM 아키텍처. 고정된 MLLM(Gemini-3.5-Flash)은 RGB 이미지에서 음식별 이름, 경계 상자 및 밀도 범위를 추출하고, 고정된 DINOv2 ViT-S/14는 패치 토큰을 제공합니다. Image×Food 인코더와 Image-only 인코더는 구조화된 헤드를 통해 배타적인 패치별 소유권 분할, MLLM 범위에 고정된 음식별 밀도, 패치별 높이 필드를 생성합니다. 음식 n의 부피 추정치 vn은 모든 패치 p에 대한 합산이며, 음식별 질량 추정치 mn은 vn ⋅ ρn입니다.
3.1. 멀티모달 LLM 및 비전 백본 🏗️
MLLM은 미세 조정 없이 고정된 API로 쿼리됩니다. 우리는 5가지 주요 멀티모달 모델을 벤치마킹하여 Gemini-3.5-Flash를 채택했습니다. 이 모델은 강력한 인식 능력과 함께 벤치마킹된 모델 중 가장 우수한 직접적인 식사량 정확도를 보였습니다. MLLM은 탐지된 N개의 각 음식에 대해 이름, 해당 음식의 모든 조각을 감싸는 경계 상자, 그리고 밀도 범위 *[ρmin, ρmax]*를 반환합니다. 이름은 CLIP 텍스트 인코더로 임베딩되어 주요 의미 신호로 작용하며, 경계 상자와 밀도 범위는 기하학적 및 물리적 사전 정보 역할을 합니다.
비전 백본은 고정된 DINOv2 ViT-S/14입니다. 모든 이미지의 크기를 336x336 픽셀로 고정하여 24x24=576개의 패치 토큰 그리드를 얻습니다. 이 패치 토큰들은 속도 향상을 위해 캐싱됩니다. MLLM과 비전 백본 모두 업데이트되지 않습니다.
3.2. Image×Food 인코더 🔍
이 인코더는 탐지된 모든 음식에 대해 문맥화된 음식 임베딩을 생성하고, 패치별 메모리와 함께 소유권(ownership) 및 밀도 헤드가 사용하는 증거를 제공합니다. 각 레이어는 트랜스포머 디코더 스타일 블록으로, 음식 토큰에 대한 셀프-어텐션, 패치 메모리에 대한 크로스-어텐션, 그리고 피드포워드 서브레이어로 구성됩니다. 음식은 순서가 없는 집합을 형성하므로 인과적 마스킹은 사용하지 않습니다.
<br>
그림 2: Image×Food 인코더 블록. L=4개의 각 레이어는 트랜스포머 디코더 스타일 블록입니다. 음식 쿼리 토큰에 대한 멀티헤드 셀프-어텐션, 음식에서 음식별 기하학적 정보를 인식하는 패치 메모리 memn,p로의 멀티헤드 크로스-어텐션, 그리고 피드포워드 서브레이어가 있습니다. 각 서브레이어는 잔차 연결(residual connection)과 레이어 정규화(layer normalization)로 감싸져 있습니다. 스택은 문맥화된 음식별 토큰 Zn을 출력합니다. 밀도 헤드는 Zn만 읽고, 소유권 헤드는 (memn,p, Zn) 쌍의 점수를 매겨 소유권 로짓을 생성합니다.
-
입력:
- N개의 음식 쿼리 토큰: 각 음식의 경계 상자 특징, 밀도 특징, CLIP 이름 임베딩을 모델 너비 d로 투영하여 생성됩니다.
- 음식별 기하학적 정보를 인식하는 메모리: 음식 n과 패치 p에 대해, memn,p 항목은 고정된 DINOv2 패치 토큰 xp와 패치 p가 음식 n의 경계 상자에 대해 어디에 위치하는지를 설명하는 기하학적 특징을 연결하여 d 너비로 투영합니다.
-
레이어 구조: 4개의 스택된 레이어를 통해 쿼리가 전달됩니다. 각 레이어는 세 개의 서브레이어를 적용합니다:
Food↔Food Self-attention: 음식 토큰들이 서로 조율하여 공유된 영역을 중복 계산하지 않고 나눌 수 있도록 합니다.Food→Patch Cross-attention: 음식 토큰이 자신의 메모리 슬라이스 memn,·에 어텐션을 가합니다. 기하학적 정보는 어텐션 값에 배치되어 모델이 이를 콘텐츠로 읽고 추론할 수 있도록 합니다.Position-wise Feed-forward Network: 각 음식 토큰에 적용됩니다.
-
출력: 문맥화된 음식별 토큰 Zn. 밀도 헤드는 Zn을 직접 읽고, 소유권 헤드는 (memn,p, Zn) 쌍의 점수를 매겨 소유권 로짓을 생성합니다.
3.3. Image-only 인코더 📏
이 인코더는 이미지에서 어떤 음식이 존재하든 관계없이 외형 정보만으로 패치당 하나의 양수 스칼라, 즉 "쌓인 높이(pile-height)" 필드 0ptp를 예측합니다.
- 구조: DINOv2 패치 토큰은 선형적으로 d 너비로 투영된 후 얕은 패치 셀프-어텐션 인코더를 통과합니다. 이를 통해 각 패치는 주변 공간 정보를 활용할 수 있습니다(예: 높이 쌓인 부분의 중간 패치 vs. 얇은 가장자리 패치). 이후 패치별 MLP가 각 토큰을 하나의 스칼라로 매핑하고,
softplus활성화 함수를 사용하여 0ptp > 0이 되도록 높이를 출력합니다. - 입력/출력: 입력은 고정된 패치 토큰뿐이며, 출력은 24x24 패치 그리드에 대한 필드 {0ptp}*입니다. 이 높이 필드는 음식 세트에 의존하지 않으므로, 부피를 통합할 때 모든 음식이 공유하는, 접시 표면으로부터 얼마나 올라와 있는지를 재사용 가능한 추정치입니다.
- 0ptp는 잠재적인 높이이며, 예측된 깊이가 아닙니다.
- 0ptp는 깊이 기반 식사량 추정 방법에서 깊이 맵의 역할을 하지만, 의도적으로 깊이를 예측하는 것이 아닙니다. 훈련 과정에서 깊이에 대한 감독이나 손실 함수가 없으며, 0ptp는 하류 질량 목표를 통해 종단 간(end-to-end) 학습됩니다. 이는 0ptp가 통합된 부피에 밀도를 곱했을 때 측정된 질량과 일치하도록 만드는 역할을 합니다. 따라서 이는 보정된 측정 표면이 아닌 단위 없는 잠재적인 패치별 가중치이며, 조밀한 픽셀 수준이 아닌 24x24의 거친 패치 해상도로 정의됩니다. 이는 설계상의 선택이며, 명시적인 단일 시점 깊이 추정(센서 깊이, 의사 깊이, 깊이 감독 높이 헤드 등)이 우리의 설정에서 부정적인 결과를 보인 반면, 질량 감독 하에 학습된 잠재적인 높이는 모델을 깊이 없이 유지하면서도 누락된 수직 차원을 복구할 수 있기 때문입니다.
3.4. 구조화된 예측 헤드 📊
이 헤드는 인코더로부터 세 가지 입력을 받습니다:
-
Image×Food인코더에서 얻은 문맥화된 음식별 토큰 Zn 및 음식별 패치별 메모리 memn,p. -
Image-only인코더에서 얻은 패치별 높이 0ptp. 이 정보들을 사용하여 음식별 부피, 밀도, 그리고 질량을 추정합니다. -
소유권(Ownership): 각 패치에 대해 "이 패치의 어떤 부분이 각 음식에 속하는가?"에 답합니다.
- 각 음식-패치 쌍에 대한 클레임 로짓(claim logit) zn,p와 각 패치에 대한 배경 로짓 zbg,p를 생성합니다. zn,p는 음식 n이 패치 p를 얼마나 강하게 주장하는지 나타내고, zbg,p는 패치 p가 접시 또는 비어 있는 공간인지를 나타냅니다.
- N개의 음식과 배경에 대한 소프트맥스를 적용하여 각 패치에 대해 경쟁하게 만듭니다. 결과적으로 on,p ∈ [0,1]는 패치 p가 음식 n에 할당되는 비율이 됩니다.
- 이 배타적이고 부드러운 분할(exclusive, soft partition)은 하류 부피가 잘 작동하게 합니다. 패치의 영역이 두 번 계산될 수 없기 때문에, 겹치는 음식들은 공유된 영역을 분할해야 합니다. 큰 음식은 더 많은 패치를 차지하고, 배경은 어떤 음식의 부피도 부풀리지 않고 접시 영역을 흡수합니다.
-
밀도(Density): 각 음식 토큰 Zn에서 음식별 로그 밀도가 예측되며, MLLM의 범위 *[ρmin, ρmax]*에 고정됩니다. 이를 통해 ρn은 물리적으로 타당한 범위 내에 유지되면서도 모델이 범위 내에서 보정됩니다.
-
부피와 질량: 음식 n의 부피 vn은 소유한 패치들의 공유된 높이 필드를 통합하여 계산되고, 질량 mn은 밀도 ρn으로부터 추론됩니다:
- vn = Σp on,p 0ptp
- mn = vn ⋅ ρn
- 접시 총량 Mdish = Σn mn
- 접시 총량은 단순히 음식별 질량의 합입니다. 우리는 학습된 접시 총량 잔차 헤드를 의도적으로 생략했습니다. 이는 접시 총량 정확도에는 도움이 되지만, 음식별 목표에 과적합(overfit)될 수 있기 때문입니다.
3.5. 훈련 🏋️♀️
쿼리는 MLLM 탐지 결과이며, 지면 진실(ground-truth) 음식 목록이 제공되지 않습니다. 지면 진실 음식별 질량이 유일한 감독 목표입니다.
-
매치-앤-마스크 감독(Match-and-mask supervision):
- 탐지 결과가 지면 진실 재료와 일치할 필요는 없으므로, 탐지 결과를 지면 진실 음식과 일대일로 정렬합니다. Nutrition5k에서는 퍼지 이름 매칭(fuzzy name matching)을 사용하고, 지면 진실 경계 상자가 있는 FPB, NV-Real에서는 토큰 및 설명자 기반 이름 매칭과 IoU(Intersection over Union)를 함께 사용합니다.
- 결과적으로 매치-앤-마스크 방식이 됩니다. 이는 DETR과 같은 집합 예측 모델의 매칭 기반 감독과 유사하지만, 매치되지 않은 쿼리는 손실 계산에서 마스킹되어 "객체 없음" 목표로 밀어붙이지 않습니다.
- 구체적으로, 음식별 질량 손실은 매치된 탐지에만 적용되며, 밀도 힌지는 모든 탐지(매치 여부와 관계없이)를 타당한 밀도에 고정합니다. 매치되지 않은 탐지는 손실이 없는 쿼리로 남아 추론 시에는 외형 기반 질량이 합산됩니다.
- 백본은 고정된 상태로 유지되며, AdamW 옵티마이저로 최적화됩니다. 구조화된 부피 모델은 더 단순한 직접 스칼라-부피 모델(구조화된 소유권 제거 어블레이션과 동일)에서 웜스타트됩니다. 이는 구조화된 부피를 처음부터 훈련하는 것이 덜 안정적이기 때문입니다.
-
손실(Loss): 음식별 질량 목표는 두 개의 Smooth-L1 항과 밀도 힌지를 합산합니다:
L = Σn∈matched [SmoothL1(log mn, log gn) + α SmoothL1(mn, gn)] + λρ Σn hinge(ρn, [ρmin,n, ρmax,n])- 여기서 gn은 지면 진실 질량, mn은 예측된 질량, α는 선형-그램 가중치, λρ는 밀도-힌지 가중치입니다.
- 로그 공간 항은 스케일 불변합니다. 즉, 상대적 오차에 벌칙을 부과하므로, 몇 그램의 고명과 많은 양의 쌀이 두 자릿수 질량 차이에도 불구하고 유사한 기울기를 기여하여 넓은 질량 범위에서 최적화를 안정적으로 유지합니다. 그러나 스케일 불변성은 큰 음식의 절대적 오차에 대한 벌칙을 덜 부여한다는 의미도 있습니다.
- 선형-그램 항은 그램 단위로 직접 측정된 벌칙을 추가하여, 로그 항만으로는 용인되는 많은 양의 음식에 대한 과소 예측에 압력을 가합니다. α는 작게 유지하여 큰 오차를 수정할 만큼의 선형 신호를 제공하지만, 시끄러운 무거운 음식 꼬리(heavy-portion tail)가 지배하여 작고 중간 크기의 음식에 해를 끼치지 않도록 합니다.
4. 실험: 실제 데이터셋에서의 성능 검증 🧪
우리는 고정된 상업용 MLLM에 경량 기하학 헤드를 추가하는 것이 MLLM 자체의 그램 추정치보다 음식별 식사량 정확도를 상당히 개선한다는 것을 보여줍니다. 우리는 식단 평가에 필요한 음식별 정확도, 즉 식별된 질량에 중점을 둡니다.
세 가지 실제 데이터셋에서 평가를 진행했습니다: Nutrition5k, FPB (Food Portion Benchmark), NutritionVerse-Real (NV-Real).
4.1. 데이터셋 📊
- Nutrition5k: 약 5,000개의 식당 음식으로 구성된 통제된 벤치마크입니다. 각 재료의 질량이 연속적으로 측정되었고, 약 3,500개의 음식은 고정된 RGB-D 장비로 오버헤드 캡처되었습니다. 우리는 이 서브셋을 사용하여 502개의 음식으로 구성된 홀드아웃 테스트 세트에서 평가합니다.
- FPB (Food Portion Benchmark): 중앙아시아 요리의 138개 음식 클래스에 걸쳐 14,083장의 사진을 포함하는 대규모 데이터셋입니다. 각 접시는 여러 시점(위에서 본 모습과 4개의 측면 각도)에서 촬영되었습니다. 우리는 단일 고정 시점이 아닌 다양한 캡처 기하학과 낯선 요리에 대한 일반화 능력을 시험하기 위해 이 혼합 각도 이미지 풀에서 훈련하고 테스트했습니다. 2,197장의 이미지 테스트 분할에서 평가했습니다.
- NutritionVerse-Real (NV-Real): 889장의 실제 소비자 스마트폰 이미지로 구성된 데이터셋입니다. 251개의 음식에 걸쳐 있으며, 모든 재료는 개별적으로 무게가 측정되었습니다. 이미지는 고정된 카메라-음식 거리 없이 자유로운 각도에서 촬영되었으므로, 배포된 식단 도구가 처리해야 할 현실적이고 통제되지 않은 스마트폰 캡처 설정을 반영합니다. 265장의 이미지 테스트 분할에서 평가했습니다.
프로토콜: 각 데이터셋에서 동일한 아키텍처, 손실 함수, 하이퍼파라미터를 가진 헤드를 해당 데이터셋의 훈련 분할에 대해 훈련하고 홀드아웃 테스트 분할에서 평가했습니다. 모든 데이터셋에서 인식은 완전히 개방형 어휘(open-vocabulary)로 진행됩니다. MLLM은 음식을 자유롭게 명명하며, 훈련이나 테스트에서 클래스 메뉴나 음식별 목록을 전혀 보지 않습니다.
4.2. 주요 결과: MLLM 대비 식사량 추정치 📈
우리는 음식별 MAE(Mean Absolute Error)와 PMAE(Percentage MAE)를 사용하여 음식별 식사량 정확도를 비교했습니다. 통계적 안정성을 위해 모델을 세 번 실행하고 평균을 보고했습니다.
| 모델/지표 | Nutrition5k (g / %) | FPB (g / %) | NV-Real (g / %) |
|---|---|---|---|
| MLLM 단독 (Gemini) | 28.5 / 23.3 | 33.4 / 21.0 | 28.6 / 16.5 |
| 우리의 모델 | 16.7 / 13.6 | 21.8 / 13.7 | 19.3 / 11.2 |
| 개선율 | -41% / -41% | -35% / -35% | -33% / -33% |
표 1: 음식별 MAE/PMAE: 우리 모델 vs. MLLM 단독. (낮을수록 좋습니다.)
결과를 보면, 기하학 헤드가 MLLM 단독 대비 음식별 식사량 오차를 33~41% 감소시켰습니다. 이러한 개선은 통제된 데이터(Nutrition5k, -41%)와 통제되지 않은 실제 데이터(FPB, -35%; NV-Real, -33%) 모두에서 일관되게 나타났습니다. 😮
4.3. 원본 논문 대비 식사량 추정치 🏆
세 가지 데이터셋의 원본 논문들은 서로 다른 세분화된 정확도를 보고하므로, 각 논문이 보고한 지표에 대해 우리 모델과 비교했습니다. 모든 비교는 깊이 정보 없는 이미지 전용 설정에서 이루어졌습니다.
| 데이터셋 | 지표 | 원본 논문 | 우리 모델 |
|---|---|---|---|
| Nutrition5k | 접시 총량 MAE (g) | 32.2 (InceptionV2) | 26.9 |
| NV-Real | 접시 총량 MAE (g) | 34.6 (Inception) | 24.1 |
| FPB | 음식별 MAE (g) | 26.5 (YOLOv12) | 21.8 |
표 2: 원본 논문 대비 식사량 추정치 (이미지 전용, 깊이 없음). (낮을수록 좋습니다.)
우리 모델은 Nutrition5k와 NV-Real에서 원본 논문들이 보고한 접시 총량 MAE를 능가했으며, FPB에서도 음식별 MAE에서 더 나은 성능을 보였습니다. 특히 Nutrition5k 논문은 깊이/부피 모델이 29.4g을 달성했다고 보고했지만, 이는 깊이 정보를 사용한 결과였습니다. 우리는 깊이 정보 없이도 이보다 더 낮은 오차를 달성한 것입니다!
참고로, Nutrition5k 논문은 소수의 음식에 대해 사람의 식사량 추정 오차를 보고했는데, 비전문가는 평균 53%, 훈련된 영양사는 평균 41%의 이미지별 백분율 오차를 보였습니다. 🧐
4.4. 어블레이션 연구 ✂️
우리는 Nutrition5k 데이터셋에서 전체 모델에서 각 구성 요소를 하나씩 제거하며 음식별 MAE를 측정했습니다.
| 제거된 구성 요소 | 단일 음식 (g) | 다중 음식 (g) | 전체 (g) | 전체 대비 변화 (g) |
|---|---|---|---|---|
| 전체 모델 | 11.2 | 18.0 | 16.7 | - |
| MLLM 문맥 없음 | 25.4 | 37.8 | 34.4 | +17.7 (+106%) |
| 구조화된 소유권 없음 | 11.8 | 19.8 | 18.3 | +1.6 (+10%) |
| 이미지 전용 높이 없음 | 11.7 | 19.3 | 17.9 | +1.2 (+7%) |
표 3: Nutrition5k 어블레이션 연구. (낮을수록 좋습니다.)
- MLLM 문맥 없음: 음식별 이름, 밀도, 경계 상자 기하학 정보를 제거했을 때, 음식별 오차가 무려 두 배 이상 증가했습니다 (16.7g → 34.4g, +106%). 이는 MLLM이 제공하는 사전 정보의 중요성을 명확히 보여줍니다. 특히 여러 음식이 있는 접시에서 오차가 크게 증가했습니다.
- 구조화된 소유권 없음: 독점적인 패치 분할(exclusive patch partition)을 직접 질량 회귀로 대체했을 때, 오차가 1.6g 증가했습니다 (+10%).
- 이미지 전용 높이 없음: 패치별 높이를 1로 설정하여 부피를 발자국 영역(footprint area)으로 축소했을 때, 오차가 1.2g 증가했습니다 (+7%).
MLLM의 음식별 문맥 정보가 가장 중요한 구성 요소이며, 구조화된 소유권 분할과 학습된 이미지 전용 높이 필드도 꾸준히 성능 향상에 기여한다는 것을 알 수 있습니다.
4.5. MLLM 플래그십 모델 비교 🆚
우리는 다섯 가지 주요 MLLM을 직접적인 식사량 추정기로 벤치마킹했습니다. 각 모델은 음식 인식을 수행하고, 동일한 분해 프롬프트(decomposition prompt)와 매처(matcher)를 사용하여 개방형 어휘로 음식별 그램을 추정했습니다. 이 평가는 Nutrition5k 테스트 세트에서 100개의 다중 음식(≥2개 유의미한 음식) 접시에 대해 수행되었습니다.
| 모델 | 질량 커버리지 (%) | 음식별 MAE (g) |
|---|---|---|
| Claude-Fable-5 | 71.6 | 36.6 |
| GPT-5.5 | 69.3 | 26.7 |
| Gemini-3.5-Flash | 66.8 | 24.1 |
| Gemini-Pro | 63.8 | 25.7 |
| Claude-Fable-5.1 | 61.1 | 36.3 |
| 우리의 모델 | 66.8 | 16.5 |
표 4: 직접 식사량 추정기로서의 플래그십 MLLM. (질량 커버리지는 높을수록, 음식별 MAE는 낮을수록 좋습니다.)
세 가지 주요 관찰 결과는 다음과 같습니다:
- 인식 능력은 전반적으로 유사합니다. 어려운 사례에서 질량 가중 커버리지는 모든 5개 모델에서 61-72% 범위에 집중되었으며, Claude-Fable-5가 71.6%로 가장 높았습니다.
- 식사량 추정에서 차이가 발생합니다. Gemini 모델과 GPT-5.5는 24.1g–26.7g 범위에 있었지만, 두 Claude 모델은 36g에 가까웠습니다. Claude 모델들은 많은 양을 과소평가하는 경향이 덜했지만, 일반적인 양에서 더 큰 오차를 보였습니다.
- 작은 훈련된 헤드가 모든 플래그십 모델을 능가합니다! Gemini-3.5-Flash의 인식 결과를 입력받은 우리 모델은 동일한 100개 접시에서 음식별 MAE 16.5g을 달성했습니다. 이는 최고의 플래그십 직접 추정치보다 32% 더 낮은 수치입니다. 🚀
5. 한계점 🤔
현재 시스템의 네 가지 주요 한계점은 다음과 같습니다 (영향도 순으로):
- 단일 시점 식사량 추정의 근본적인 모호성: 발자국(footprint)만으로는 음식의 쌓인 높이를 결정할 수 없기 때문에, 많은 양의 음식은 체계적으로 과소평가되는 경향이 있습니다. 이는 헤드의 특성이라기보다 입력 이미지 자체의 한계이며, 모든 데이터셋에서 일관되게 관찰됩니다.
- 보이지 않는 음식 인식 불가: 조리유, 설탕, 소스 등 시각적으로 흔적이 거의 남지 않는 재료는 이미지 기반 인식기로는 감지되지 않습니다. 하지만 이들은 실제 질량과 영양 연구에서 중요한 영양소의 불균형한 비중을 차지합니다.
- 데이터셋별 훈련: 동일한 아키텍처, 손실 함수, 하이퍼파라미터를 사용하더라도 각 벤치마크는 자체 가중치를 사용하여 훈련됩니다. 단일 범용 측정기(weigher)의 교차 데이터셋 전송은 아직 입증되지 않았습니다.
- 영양소가 아닌 질량 검증: 음식별 질량은 하류 영양소 변환을 위해 설계되었지만, 해당 변환 자체는 이 연구에서 평가되지 않았습니다.
6. 결론 및 향후 연구 방향 💡
이제 음식 인식은 상당 부분 MLLM의 능력이 되었지만, 음식 무게 추정은 그렇지 않습니다. 우리가 테스트한 모든 플래그십 MLLM은 식사량 추정에서 성능이 저조했으며, 더 큰 추론 모델도 이 격차를 해소하지 못했습니다. 우리의 결과는 이러한 격차가 규모가 아닌, 작고 특정 작업에 특화된 기하학적 헤드를 통해 해소될 수 있음을 보여줍니다.
이 헤드는 MLLM의 구조화된 출력과 고정된 DINOv2 특징만 사용하여, MLLM 단독 대비 음식별 식사량 오차를 33–41% 감소시키고, 모든 플래그십 모델의 직접 추정치를 능가하며, 각 벤치마크의 원래 발표된 이미지 전용 모델을 뛰어넘는 성능을 보였습니다. 이 모든 것은 완전히 개방형 어휘(open-vocabulary), 깊이 정보 없음(depth-free) 환경에서, 그리고 MLLM을 건드리지 않고 이루어졌습니다. 따라서 인식과 무게 추정은 명확하게 분리될 수 있습니다: MLLM은 식별과 사전 정보를 제공하고, 헤드는 기하학적 정보를 제공합니다. 🤝
최종 목표는 더 나은 접시 추정기가 아니라, 영양 연구에서 실제로 사용되는 24시간 식단 회상법을 대체하는 것입니다. 이 목표를 기준으로 향후 연구 방향을 구체화하면 다음과 같은 과제들이 명확해집니다:
- 제공된 양에서 섭취량으로: 회상법은 섭취된 양을 측정하지만, 이미지는 제공된 양을 측정합니다. 이 차이를 해소하려면 섭취 전후 촬영(또는 짧은 비디오)과 남은 음식량 차감을 통한 "잔여량 차감(leftover subtraction)"이 필요합니다. 이는 음식별 무게 측정기의 자연스러운 확장입니다.
- 보이는 음식에서 완전한 섭취량으로: 회상 인터뷰어는 조리유, 커피 설탕, 섞인 소스, 캐서롤의 구성 등 보이지 않는 재료에 대해 질문합니다. 어떤 이미지 모델도 이것들을 볼 수 없습니다. MLLM의 식단 지식을 대화식으로(간단한 추가 질문, 음식 식별을 통한 레시피 추론) 활용하여 이러한 보이지 않는 재료 한계를 유한하고 쿼리 가능한 문제로 전환할 수 있습니다.
- 접시에서 일상식으로: 회상법은 모든 식사 기회를 포함합니다. 배포된 시스템은 하루 종일 누락된 캡처, 간식, 음료를 단일 범용 측정기로 처리하고, 이미지가 없을 때도 적절하게 성능을 저하시키는 방법을 다루어야 합니다. (우리의 동일한 아키텍처와 하이퍼파라미터가 이미 세 가지 다양한 데이터셋에서 작동한다는 사실은 하나의 훈련 가능한 모델이 가능함을 시사합니다.)
- 벤치마크 일치에서 임상적 유효성으로: 궁극적으로 회상법을 대체하려면 회상법 자체가 검증되었던 방식으로 검증되어야 합니다: 생체 지표(biomarkers)와 통제된 식이 섭취량(controlled-feeding ground truth)에 대한 비교, 그램이 아닌 영양소 섭취량에 대한 평가, 그리고 다양한 요리에 대한 평가(현재 MLLM의 커버리지 결과는 소외된 음식에 대한 서비스가 여전히 부족함을 보여줍니다). 우리는 여기서 입증된 정확도의 음식별 질량 추정 기술이 이러한 목표를 현실적으로 만드는 핵심 구성 요소라고 믿습니다. 💪
