AI가 사진에서 음식 양을 추정하는 방법: 기술적 심층 분석

AI가 단일 사진에서 음식 양을 추정하기 위해 깊이 추정, 기준 객체, 부피 모델링을 어떻게 활용하는지에 대한 자세한 분석입니다.

Medically reviewed by Dr. Emily Torres, Registered Dietitian Nutritionist (RDN)

AI 기반 칼로리 추적의 도전 과제는 음식이 무엇인지 인식하는 것만으로 끝나지 않습니다. 더 큰 도전은 음식의 양을 정확히 파악하는 것입니다. 파스타 한 접시의 칼로리는 200칼로리일 수도, 800칼로리일 수도 있습니다. 이 추정치를 정확히 맞추는 것이 유용한 영양 추적 도구와 단순한 장난감을 구분짓는 요소입니다.

이 글에서는 AI 시스템이 사진에서 음식 양을 추정하는 방법에 대해 깊이 있는 기술적 분석을 제공합니다. 깊이 추정, 기준 객체 스케일링, 부피 모델링, 그리고 이러한 추정치를 더욱 정확하게 만들기 위해 연구자와 엔지니어들이 직면한 지속적인 도전 과제를 다룹니다.

음식 인식보다 양 추정이 더 어려운 이유

음식 인식은 본질적으로 분류 문제입니다. 시스템은 한정된 음식 카테고리 중에서 선택해야 합니다. 반면, 양 추정은 회귀 문제입니다. 시스템은 시각 정보만으로 연속적인 값을 예측해야 합니다(그램 또는 밀리리터).

여러 요인이 이를 특히 어렵게 만듭니다:

  • 2D-3D 문제: 사진은 3차원 현실을 2차원 이미지로 압축합니다. 깊이 정보가 사라져 얇게 펼쳐진 음식과 두껍게 쌓인 음식을 구별하기 어렵습니다.
  • 밀도 변동: 잎채소 한 컵과 그래놀라 한 컵은 같은 부피지만 무게와 칼로리 함량은 크게 다릅니다. 시스템은 부피와 밀도를 모두 추정해야 합니다.
  • 원근 왜곡: 사진이 촬영된 각도에 따라 음식의 크기가 다르게 보입니다. 정면에서 촬영한 접시는 45도 각도로 촬영한 것과 다르게 보입니다.
  • 모호한 스케일링: 사진에 기준 객체가 없으면 절대 크기를 판단할 수 없습니다. 작은 쿠키의 클로즈업 사진은 멀리서 촬영한 큰 피자와 동일하게 보일 수 있습니다.

단일 이미지에서의 깊이 추정

사진에서 양 추정을 가능하게 하는 주요 혁신 중 하나는 단안 깊이 추정입니다. 이는 스테레오 카메라나 특수 하드웨어 없이 단일 이미지에서 깊이 정보를 유추하는 능력입니다.

단안 깊이 추정의 작동 원리

인간의 시각 시스템은 여러 단서를 통해 깊이를 유추합니다: 객체의 겹침(가까운 객체가 먼 객체를 가림), 상대 크기(작은 객체는 보통 더 멀리 있음), 질감 기울기(거리가 멀어질수록 질감이 미세해짐), 대기 원근법(먼 객체는 흐릿하게 보임) 등이 있습니다.

딥러닝 모델은 깊이 맵과 쌍을 이룬 대량의 이미지 데이터셋에서 이러한 단서를 학습할 수 있습니다. 음식 사진에 적용할 경우, 이러한 모델은 음식의 어느 부분이 카메라에 더 가까운지, 어느 부분이 더 먼지를 추정하여 평면 이미지에서 음식의 3차원 형태를 효과적으로 재구성할 수 있습니다.

깊이 맵과 음식 부피

깊이 맵은 이미지의 각 픽셀에 거리 값을 할당합니다. 음식 추정의 경우, 시스템은 수프 그릇의 중심이 하나의 깊이에 있고, 그릇의 가장자리는 다른 깊이에 있다는 것을 파악할 수 있습니다. 이러한 깊이 차이와 음식의 경계가 결합되어 시스템은 부피를 추정할 수 있습니다.

최신 아이폰 프로 및 아이패드 프로 모델에 탑재된 LiDAR 센서를 갖춘 스마트폰 카메라는 색상 이미지와 함께 실제 깊이 데이터를 캡처할 수 있어 알고리즘적 추정만으로는 얻을 수 없는 훨씬 더 정확한 깊이 정보를 제공합니다. 음식 추적 앱은 이러한 하드웨어를 활용할 수 있으며, 깊이 센서가 없는 기기에서는 단안 추정으로 돌아갑니다.

기준 객체 스케일링

알려진 기준점이 없으면 사진 속 객체의 절대 크기는 모호해집니다. 기준 객체 스케일링은 알려진 치수를 가진 객체를 사용하여 전체 이미지의 크기 스케일을 설정함으로써 이 문제를 해결합니다.

일반적인 기준 객체

기준 객체 알려진 치수 정확도 이점
표준 저녁 접시 25-27 cm 지름 식사의 전체 스케일을 설정
포크 또는 숟가락 ~19 cm 길이 클로즈업 샷에서도 스케일 제공
신용 카드 8.56 x 5.4 cm 정확하고 보편적으로 표준화됨
스마트폰 모델에 따라 다르지만 알려짐 알고리즘적으로 감지 및 측정 가능
다양하지만 인구 통계에서 추정 가능 다른 기준이 없을 때 대략적인 스케일링 제공

자동 기준 감지

사용자가 음식 옆에 기준 카드를 놓도록 요구하는 대신(이는 불편함을 초래하고 사용을 저해함), 현대 시스템은 일반적인 기준 객체를 자동으로 감지하려고 합니다. 접시, 그릇, 식기 및 테이블은 음식 사진에서 자주 등장하며, 시스템이 이를 식별할 수 있다면 크기 기준으로 활용할 수 있습니다.

Nutrola의 양 추정 시스템은 프레임 내에서 접시, 그릇, 식기를 자동으로 탐색하여 스케일을 설정합니다. 이러한 객체가 감지되면 시스템은 이들의 일반적인 치수를 사용하여 음식 항목의 크기를 보정합니다. 기준 객체가 발견되지 않으면 시스템은 일반적인 음식 양에 대한 학습된 정보를 바탕으로 추정하고 사용자에게 확인을 요청할 수 있습니다.

접시 기반 보정

특히 효과적인 접근 방식 중 하나는 접시 기반 보정입니다. 대부분의 국가에서 표준 저녁 접시는 좁은 크기 범위(지름 25~27 cm)에 해당합니다. 이미지에서 접시의 타원형 윤곽을 감지하고 표준 크기를 가정함으로써 시스템은 접시 위의 모든 것에 대한 신뢰할 수 있는 스케일을 설정할 수 있습니다.

이 접근 방식은 접시가 식사 사진에 거의 항상 존재하고, 타원형 형태가 카메라 각도에 관계없이 쉽게 감지되며, 타원의 원근 왜곡이 카메라 각도에 대한 정보를 인코딩하여 음식에 대한 원근 효과를 보정하는 데 도움을 주기 때문에 잘 작동합니다.

부피 추정 기술

시스템이 음식을 식별하고, 깊이를 추정하며, 스케일을 설정한 후에는 이 정보를 결합하여 각 음식 항목의 부피를 추정해야 합니다.

기하학적 원시체

한 가지 접근 방식은 음식 항목을 간단한 기하학적 형태의 조합으로 근사하는 것입니다:

  • 원기둥: 음료, 쌓인 팬케이크, 또는 층이 있는 케이크와 같은 높은 음식
  • 반구: 밥 한 스쿱, 으깬 감자의 더미, 또는 아이스크림의 한 덩어리와 같은 둥근 음식
  • 직육면체: 슬라이스된 빵, 치즈 블록, 또는 바와 같은 음식
  • 잘린 원뿔: 수프나 시리얼 그릇(그릇 모양이 부피를 정의하는 데 도움을 줌)
  • 불규칙한 다면체: 닭다리나 전체 과일과 같은 복잡한 형태의 음식

시스템은 감지된 음식 영역에 이러한 원시체 중 하나 이상을 맞추고, 맞춘 형태와 설정된 스케일을 기반으로 부피를 계산합니다.

복셀 기반 재구성

보다 정교한 접근 방식은 복셀 기반 재구성입니다. 여기서 음식 항목은 작은 큐브(복셀)로 구성된 3차원 그리드로 모델링됩니다. 각 복셀은 깊이 맵과 세분화 마스크를 기반으로 음식이 포함되어 있는지 비어 있는지 분류됩니다. 총 부피는 음식이 포함된 복셀의 합계입니다.

이 방법은 기하학적 원시체보다 불규칙한 형태를 더 잘 처리하지만 더 많은 계산 자원을 필요로 합니다. 이는 찢어진 빵 조각이나 불규칙하게 썰린 과일 조각과 같이 간단한 형태에 맞지 않는 음식에 특히 유용합니다.

신경망 기반 부피 추정

가장 최근의 접근 방식은 명시적인 기하학적 모델링을 완전히 건너뜁니다. 대신, 신경망이 이미지에서 직접 음식 부피를 예측하도록 끝에서 끝까지 훈련됩니다. 이러한 모델은 실제 중량 측정과 쌍을 이룬 대량의 음식 이미지 데이터셋에서 음식 기하학의 암묵적 표현을 학습합니다.

이 접근 방식은 부피와 상관관계가 있는 미세한 시각적 단서를 포착할 수 있기 때문에 유망한 결과를 보여주고 있습니다. 예를 들어, 액체의 표면에서 빛이 반사되는 방식이나 음식 더미에 의해 드리워진 그림자 패턴 등이 있습니다. 또한 깊이 추정, 세분화 및 기하학적 맞춤이 별도의 단계로 수행될 때 발생할 수 있는 오류 누적을 피할 수 있습니다.

부피에서 무게로, 칼로리로

부피를 추정하는 것이 최종 단계가 아닙니다. 칼로리를 계산하기 위해 시스템은 부피를 무게로 변환해야 합니다(음식 밀도를 사용하여) 그리고 무게를 칼로리로 변환해야 합니다(영양 성분 데이터를 사용하여).

음식 밀도 데이터베이스

음식마다 밀도가 매우 다릅니다. 기름 한 컵은 약 220그램, 밀가루 한 컵은 약 120그램, 팝콘 한 컵은 약 8그램입니다. 정확한 밀도 데이터는 부피 추정치를 무게 추정치로 변환하는 데 필수적입니다.

생산 시스템은 조리 방법(익힌 것 vs. 생 것, 잘게 썬 것 vs. 통째로) 및 일반적인 서빙 스타일에 따른 변동을 고려하여 음식 항목과 그 밀도를 매핑하는 데이터베이스를 유지합니다.

음식 항목 밀도 (g/mL) 1컵 무게 (g) 1컵 칼로리
1.00 237 0
전유 1.03 244 149
익힌 백미 0.74 175 205
생 시금치 0.13 30 7
땅콩버터 1.09 258 1517
올리브유 0.92 218 1909

영양 성분

시스템이 그램 단위의 무게 추정치를 확보하면 포괄적인 음식 데이터베이스에서 그램당 영양 성분을 조회합니다. 이러한 데이터베이스는 일반적으로 USDA FoodData Central과 같은 권위 있는 출처에서 파생되며, 식품 제조업체 및 지역 영양 데이터베이스의 데이터를 보완합니다.

Nutrola의 데이터베이스는 130만 개 이상의 음식 항목을 포함하며, 브랜드 제품, 레스토랑 메뉴 항목 및 전체 매크로 및 미량 영양소 프로필을 가진 일반 음식 항목을 포함합니다. 이러한 포괄적인 범위는 음식 항목과 양이 식별되면 영양 계산이 정확하게 이루어지도록 보장합니다.

정확도 도전과제 및 해결 방법

이러한 기술의 정교함에도 불구하고 사진에서의 양 추정은 여전히 불완전한 과학입니다. 오류의 원인을 이해하는 것은 현실적인 기대치를 설정하고 이 분야의 지속적인 개선을 강조하는 데 도움이 됩니다.

알려진 오류 원인

카메라 각도 변동: 동일한 양도 사진이 위에서 촬영되었는지, 45도 각도에서 촬영되었는지, 테이블 수준에서 촬영되었는지에 따라 다르게 보입니다. 위에서 촬영한 사진이 일반적으로 가장 정확한 추정치를 제공하는데, 이는 원근 왜곡을 최소화하기 때문입니다. 그러나 많은 사용자가 자연스럽게 스마트폰을 각도에 맞춰 들고 촬영합니다.

가려진 음식: 소스, 치즈 또는 기타 토핑 아래에 숨겨진 음식은 시각적으로 직접 측정할 수 없습니다. 시스템은 가시적인 접시 유형과 일반적인 조리를 기반으로 숨겨진 양을 추론해야 합니다.

불규칙한 용기: 비표준 그릇, 머그컵 및 용기는 접시 기반 스케일링의 신뢰성을 떨어뜨립니다. 큰 그릇에 작은 양이 담긴 경우와 작은 그릇에 큰 양이 담긴 경우는 음식 면적이 비슷해 보일지라도 다르게 보입니다.

개인 조리 차이: 두 사람이 "오트밀 한 그릇"을 만들 때 사용하는 귀리와 물의 양이 크게 다를 수 있으며, 이는 같은 양의 부피를 만들어도 칼로리 함량은 다르게 됩니다.

정확도 개선 전략

다각도 촬영: 일부 시스템은 사용자가 여러 각도에서 사진을 찍도록 요청하여 스테레오 재구성과 더 정확한 부피 추정을 가능하게 합니다. 이는 정확도를 크게 향상시키지만, 기록 과정에 불편함을 추가합니다.

사용자 피드백 루프: 사용자가 음식을 무게로 측정하고 추정된 양을 확인하거나 수정할 때, 이는 시간이 지남에 따라 모델을 개선하는 훈련 데이터가 됩니다. Nutrola는 사용자가 주기적으로 주방 저울로 양을 확인하여 AI와 사용자의 양 인식을 보정하도록 권장합니다.

맥락적 사전 정보: 시스템은 맥락 정보를 사용하여 추정치를 개선할 수 있습니다. 사용자가 특정 레스토랑 체인에 있을 경우, 시스템은 알려진 서빙 크기를 사용할 수 있습니다. 사용자가 특정 아침 식사를 정기적으로 기록할 경우, 시스템은 그들의 일반적인 양을 학습할 수 있습니다.

신뢰도 인식 추정치: 단일 숫자를 제시하는 대신, 정교한 시스템은 신뢰도 범위를 제공합니다. 시스템이 양에 대해 불확실할 경우, 추정치를 범위로 제시할 수 있습니다(예: 300~450칼로리) 그리고 사용자에게 추가 정보를 제공하도록 요청할 수 있습니다.

현재 정확도 기준

국제 이미지 분석 및 처리 회의의 연구에 따르면, 최첨단 음식 부피 추정 시스템은 평균 절대 백분율 오차가 15%에서 25% 사이에 이릅니다. 참고로, 연구에 따르면 훈련된 영양사가 사진에서 양을 추정할 때의 오차는 약 10%에서 15% 사이이며, 훈련받지 않은 개인은 평균 30%에서 50% 사이의 오차를 보입니다.

이는 AI 양 추정이 이미 대부분의 사람들이 도움 없이 할 수 있는 것보다 훨씬 더 나은 성능을 보이며, 훈련된 전문가의 정확도에 근접하고 있음을 의미합니다. 속도와 편리함의 이점을 더하면, AI 지원 추적은 대부분의 사용자에게 수동 기록보다 상당한 개선을 제공합니다.

사용자 보정의 역할

AI 양 추정에서 간과되는 측면 중 하나는 시간이 지남에 따라 사용자 보정의 역할입니다. 사용자가 식사를 기록하고 가끔 수정을 제공함에 따라 시스템은 그들의 일반적인 양과 음식 선호도를 프로파일링합니다.

정기적인 사용자의 경우, 시스템은 점점 더 정확해집니다. 예를 들어, 사용자가 평균보다 더 많은 양의 쌀을 담는 경향이 있다면, 시스템은 쌀 추정치를 상향 조정하는 법을 배웁니다. 사용자가 일반 레시피보다 적은 양의 기름을 사용하는 경우, 시스템은 이를 고려할 수 있습니다.

Nutrola는 이러한 개인화를 활용하여 사용자가 앱을 사용할수록 점점 더 맞춤화된 양 추정치를 제공합니다. 새로운 사용자는 인구 수준의 평균을 기반으로 혜택을 받는 반면, 경험이 많은 사용자는 특정 습관에 맞춰 보정된 개인화된 추정치를 받습니다.

더 정확한 양 추정을 위한 실용적인 팁

AI가 대부분의 작업을 처리하지만, 사용자가 몇 가지 간단한 지침을 따르면 정확도를 높일 수 있습니다:

  1. 가능한 경우 위에서 촬영하세요. 위에서 촬영한 사진은 음식 표면적에 대한 정보를 가장 많이 제공하며 원근 왜곡을 최소화합니다.
  2. 전체 접시를 프레임에 포함하세요. 접시의 가장자리는 스케일링을 위한 중요한 기준 객체 역할을 합니다.
  3. 극단적인 클로즈업은 피하세요. 시스템은 크기를 판단하기 위해 맥락이 필요합니다. 주변 객체 없이 음식만 보여주는 사진은 스케일 기준을 제공하지 않습니다.
  4. 섞기 전에 촬영하세요. 재료가 분리된 샐러드는 함께 섞인 것보다 분석하기 더 쉽습니다.
  5. 좋은 조명을 사용하세요. 그림자와 낮은 조명은 음식 경계와 깊이 단서를 가릴 수 있습니다.
  6. 가끔 확인하거나 수정하세요. 주 1회 주방 저울을 사용하여 AI 추정치를 확인하면 시스템과 자신의 직관을 모두 보정하는 데 도움이 됩니다.

FAQ

AI 양 추정의 정확도는 음식 저울을 사용하는 것과 비교했을 때 얼마나 되나요?

음식 저울은 1~2그램 내에서의 정확도를 제공하며, 이는 어떤 시각적 추정 방법보다 훨씬 정밀합니다. AI 사진에서의 양 추정은 일반적으로 실제 무게의 15%에서 25% 이내의 정확도를 달성합니다. 그러나 AI 추정의 편리함(2초 소요 대 저울로는 30초 이상 소요)은 더 많은 사람들이 일관되게 추적할 수 있도록 하며, 이는 장기적인 결과에 있어 완벽한 정밀도보다 더 중요할 수 있습니다.

카메라 각도가 양 추정의 정확도에 영향을 미치나요?

네, 상당히 영향을 미칩니다. 위에서 촬영한 사진(접시를 정면에서 바라보는 경우)은 음식의 전체 표면적을 보여주며 원근 왜곡을 최소화하기 때문에 가장 정확한 추정을 제공합니다. 45도 각도에서 촬영한 사진이 가장 일반적이며 여전히 좋은 추정을 제공합니다. 매우 낮은 각도(테이블 수준 근처)는 가장 정확도가 떨어지며, 접시의 앞쪽 가장자리에 의해 대부분의 음식이 가려지기 때문입니다.

AI가 수프나 스무디와 같은 액체의 양을 추정할 수 있나요?

액체는 그 자체의 형태가 아니라 용기에 의해 부피가 결정되기 때문에 독특한 도전 과제를 제공합니다. AI 시스템은 용기 유형과 채워진 수준을 식별하여 액체 양을 추정합니다. 가득 찬 수프 그릇은 반 정도 채워진 것과 다른 부피를 가집니다. 표준 형태의 용기일 때 정확도가 일반적으로 좋지만, 비정상적인 용기에서는 신뢰성이 떨어질 수 있습니다.

AI가 내 양을 과대 또는 과소 추정하는 이유는 무엇인가요?

과대 추정의 일반적인 이유는 밀도가 높은 음식이 실제보다 더 크게 보이는 경우, 시각적으로 부피를 추가하는 장식, 그리고 시스템이 더 많은 음식이 있다고 가정하게 만드는 큰 접시 사용 등이 있습니다. 과소 추정의 일반적인 이유는 다른 음식 아래에 숨겨진 음식, 작아 보이는 고칼로리 음식, 그리고 비정상적인 서빙 스타일입니다. 추정치가 잘못되었을 때 피드백을 제공하면 시스템이 개선되는 데 도움이 됩니다.

정확한 양 추적을 위해 LiDAR 센서가 장착된 전화가 필요하나요?

아니요. LiDAR가 장착된 전화가 더 정확한 깊이 정보를 제공할 수 있지만, 현대 AI 모델은 표준 카메라 이미지에서 깊이를 상당히 잘 추정할 수 있습니다. LiDAR가 장착된 전화와 표준 전화 간의 정확도 차이는 소프트웨어 기반 깊이 추정이 개선되면서 좁혀졌습니다. Nutrola는 모든 현대 스마트폰에서 정확하게 작동합니다.

시스템은 쌓이거나 겹쳐진 음식은 어떻게 처리하나요?

팬케이크나 층이 있는 샌드위치와 같은 명백히 쌓인 음식의 경우, 시스템은 측면 프로필에서 층을 계산하고 두께를 추정할 수 있습니다. 라자냐나 부리토와 같이 숨겨진 층이 있는 음식의 경우, 시스템은 가시적인 외부와 접시 유형을 기반으로 일반적인 구성 모델을 사용하여 내부 구조를 추정합니다.

영양 추적을 혁신할 준비가 되셨나요?

Nutrola로 건강 여정을 바꾼 수천 명에 합류하세요!