DOI QR코드

DOI QR Code

Image Recognition-Based Filtering System for Food Menu Recommendation

음식 메뉴 추천을 위한 이미지 인식 기반 필터링 시스템

  • 김진하 (국민대학교 AI빅데이터융합경영학과 ) ;
  • 박종혁 (국민대학교 AI빅데이터융합경영학과)
  • Received : 2025.05.13
  • Accepted : 2025.08.28
  • Published : 2025.09.30

Abstract

This study proposes a personalized food filtering system based on image recognition. The system analyzes food images uploaded by users to identify their nutritional content, and based on this information, it suggests a list of meals that either supplement the lacking nutrients or adjust excess nutrients. The proposed food object detection model, which uses YOLO and ResNet, achieved an outstanding performance with a Mean Average Precision (mAP) of 0.99 and an accuracy of 0.94. Using the nutritional information of the detected food, an initial filtering was performed based on the balance score and risk score, and a secondary filtering is performed using ChatGPT to provide practical and personalized meal recommendations tailored to the user's preferences and dietary goals. A user satisfaction survey was conducted with 30 participants to evaluate the system, and User evaluations showed an average satisfaction score of 4.45, demonstrating the effectiveness of the system in offering a balanced, personalized, and nutritionally sound meal filtering system.

Keywords

Ⅰ. 서론

1.1 연구 배경

오늘날 많은 사람들이 음식 선택의 어려움으로 인해 스트레스를 겪고 있다. 특히 학생과 직장인을 포함한 현대인들은 빠르게 변화하는 생활 패턴 속에서 한정된 시간 내에 매일 무엇을 먹을지 결정하는 데 어려움을 느낀다. 너무 많은 선택지는 오히려 결정 장애를 유발할 수 있다.

또한 현대인들은 체중 감량, 특정 음식 알레르기, 탄수화물 제한 식이 등 개별적인 식이 습관 및 건강 목표를 가지고 있는 경우가 많으며, 개별적인 식이 목표는 빠르게 변화하는 식이 트렌드에 따라 더욱 다양해지고 디테일해지고 있다. 이는 <그림1> 과 같이 ‘무설탕’ 등으로 대표되는 F&B 시장의 규모가 증가하는 것으로도 확인할 수 있다[1].

DGTSA8_2025_v21n3_83_2_f0001.png 이미지

<그림 1> 무설탕 F&B 시장 성장 예측 동향[2]

1.2 연구 필요성

이처럼 식이 트렌드는 빠르게 변하고, 트렌드가 반영된 식이에 대한 관심은 더욱 증가하고 있으며, 다양한 식이 트렌드 및 개인 요구사항을 반영하는 식사 메뉴 추천 시스템의 필요성이 절실히 대두되고 있다. 그러나 기존의 음식 추천 서비스들은 성별, 나이, 평소 생활 패턴 등만을 고려하여 식단을 추천할 뿐 그램(Gram) 단위의 영양소 세부 섭취 목표량 등 개별 사용자의 세부적인 영양 요구나 건강 목표를 충분히 반영하지 못한다[3,4]. 또한 대부분의 서비스들이 하루 혹은 일정 기간 단위로 식단 계획을 제공하기 때문에, 이를 제대로 이행하지 못했을 경우 좌절감을 느끼는 등 실제 실행하는 데 어려움을 겪는 경우가 많다.

1.3 연구 목적

따라서 수많은 음식 선택지들로부터 영양소 균형과 개인별 세부사항을 고려한 음식 필터링 시스템 (Food-filtering system)이 필요하며, 이는 이전 끼니에 섭취한 음식, 개인 맞춤형 요소, 실생활 적용 가능성 등을 종합적으로 고려하여 보다 정확하고 개인화된 음식 추천을 제공할 수 있어야 한다.

이에 본 연구는 딥러닝 이미지 및 자연어 처리 기술을 활용하여, 사용자가 섭취한 이전 끼니의 음식 이미지를 인식하여 영양 균형 상태를 분석한 뒤 이를 바탕으로 영양소 균형과 개인별 세부사항을 고려한 다음 끼니 음식 리스트를 제공하는 새로운 방식의 음식 필터링 시스템을 제시하고자 한다. 웹 UI (Web User Interface)를 활용한 제안 시스템의 구현 예시는 <그림 2> 와 같다.

DGTSA8_2025_v21n3_83_2_f0002.png 이미지

<그림 2> UI를 활용한 제안 시스템 구현 예시

본 논문의 구성은 다음과 같다. 제2장에서는 연구에 활용된 딥러닝 모델들인 YOLO(You Only Look Once, 이하 YOLO)[5], ResNet[6], Chat GPT[7]와 관련 선행 연구들에 대하여 설명한다. 제3장에서는 연구에 사용된 데이터셋과, 음식 이미지를 분류하는 제안 모델, 제안 모델을 통해 영양소 균형과 개인별 세부사항을 반영한 음식 필터링을 수행하는 새로운 방식의 음식 필터링 시스템을 제시한다. 4장에서는 연구내 실험과정과 결과에 대해 설명하며, 제5장에서는 연구의 결론과 한계, 향후 연구 방향 및 실제 응용 가능성에 대해 논의한다.

Ⅱ. 선행 연구

2.1 사용된 딥러닝 모델 관련

2.1.1 YOLO

YOLO는 실시간 객체 탐지 분야에서 뛰어난 성능을 보이는 딥러닝 모델로, 이미지 전체를 하나의 신경망으로 처리하여 기존의 객체 탐지 모델들에 비해 빠른 처리 속도와 높은 정확도가 특징이다. 기존의 객체 탐지 모델들은 이미지를 여러 번의 연산을 통해 객체를 탐지하는 방식인 반면, YOLO는 이미지를 그리드(Grid)로 분할하고, 각 그리드에서 객체를 예측하는 방식을 채택함으로써 속도와 정확도를 동시에 개선할 수 있다. YOLO는 경계 상자(Bounding box)와 클래스(Class) 확률을 동시에 예측하여, 객체의 위치와 종류를 빠르고 정확하게 추론할 수 있는데, 이러한 특성으로 YOLO는 다양한 객체 탐지 및 분류 문제에서 널리 사용되어 왔다. 특히, 음식 인식과 같은 실시간 처리(Real-time detection)가 중요한 분야에서도 탁월한 성능을 보인다. 탐지 원리를 그림으로 확인하면 <그림 3> 와 같다.

DGTSA8_2025_v21n3_83_3_f0001.png 이미지

<그림 3> YOLO의 객체 탐지 원리[5]

속도 대비 탁월한 성능에도 불구하고, YOLO는 음식 객체 탐지에서 일부 한계를 보일 수 있다. 이는 YOLO 모델이 주변 객체나 배경 패턴의 영향을 받을 수 있기 때문이다. 예를 들어, <그림 4>와 같이 숟가락이나 화려한 패턴 같은 배경 요소가 존재할 경우, 해당 물체들이 음식 객체 탐지에 부정적인 영향을 미칠 수 있다.

DGTSA8_2025_v21n3_83_3_f0002.png 이미지

<그림 4> YOLO의 객체 탐지 한계

이러한 배경의 복잡성은 YOLO 모델이 음식 객체를 정확히 탐지하는 데 어려움을 겪게 만들며, 이러한 문제는 여러 연구에서도 확인되었다. 특히 YOLO는 <그림 4>와 같이 배경이 복잡하거나 다른 물체가 포함된 경우 객체 탐지 정확도가 떨어질 수 있음이 언급되기도 하였으며[5], 배경 잡음이 객체 탐지 성능에 영향을 미치기 때문에 복잡한 배경 패턴이 모델 성능 저하를 유발할 수 있음이 확인되기도 하였다[8].

본 연구에서는 이러한 배경 잡음 문제를 해결하기 위해 다양한 배경 패턴과 숟가락 이미지를 포함한 데이터셋을 사용하여 YOLO 모델을 미세조정(Fine-tuning)하였다. 이를 통해 음식 객체 주변 물체나 배경의 패턴 등 배경의 방해 요소가 존재하더라도 음식 객체를 정확하게 탐지할 수 있도록 개선하였다.

2.1.2 ResNet

Residual Networks(ResNet)은 딥러닝 모델에서 네트워크 깊이가 깊어짐에 따라 발생하는 기울기 소실(Vanishing gradient) 문제를 해결하기 위해 제안된 네트워크 구조이다. ResNet은 잔차 연결(Residual-Connection)개념을 도입하여 각 층에서 학습된 정보가 네트워크를 통해 손실 없이 전달될 수 있도록 하여 매우 깊은 네트워크에서도 학습이 가능하게 만든다. 이 특성 덕분에, ResNet은 특히 이미지 분류와 같은 고차원적이고 복잡한 작업에서 뛰어난 성능을 발휘한다. 이러한 특성은 본 연구와 같은 다중 클래스 분류 문제를 다룰 때 특히 유리하다. ResNet 모델의 핵심 구조인 Residual Block은 다음 <그림 5>과 같다.

DGTSA8_2025_v21n3_83_4_f0001.png 이미지

<그림 5> ResNet의 Residual Block[6]

본 연구에서는 756종의 음식 이미지로 구성된 데이터셋을 분류하는 작업에 ResNet-50을 미세 조정하여 사용하는 방식으로 현 딥러닝 음식 이미지 인식 모델들이 인식 가능한 음식 종류가 제한적이라는 점을 극복하고자 하였다. ResNet-50 모델은 다수의 클래스를 구분할 수 있도록 최적화되어 있으며, 이미지 인식에서 높은 정확도를 제공한다.

2.1.3 Chat GPT

Chat GPT는 OpenAI[9]가 개발한 대규모 자연어 처리 모델로, GPT 아키텍처(Architecture)를 기반으로 한다. 이 모델은 방대한 텍스트 데이터를 사전 훈련하여, 인간과 유사한 방식으로 자연어를 이해하고 생성하는 능력을 지닌다. 사전 학습된 모델을 활용하여, 사용자가 입력한 텍스트에 대해 적절한 답변을 생성하고, 문맥을 고려한 자연스러운 대화를 이어나갈 수 있다. ChatGPT는 텍스트 생성, 번역, 질문 응답, 프롬프트 엔지니어링을 통한 맞춤형 콘텐츠 생성 등 다양한 분야에 적용될 수 있다. 본 연구에서는 GPT모델의 API (Application Programming Interface)를 활용한 프롬프트 엔지니어링(Prompt Engineering)을 통하여 사용자 맞춤형 음식 추천 시스템을 구축하며, 이를 통해 개인의 선호도와 건강 상태를 반영한 음식 리스트를 제공하고자 한다. GPT를 활용한 음식 추천 예시는 아래 <그림 6>과 같다.

DGTSA8_2025_v21n3_83_4_f0002.png 이미지

<그림 6> ChaGPT를 활용한 음식 추천 예시[7]

2.2 기존 연구와의 비교

2.2.1 음식 메뉴 추천 시스템

대부분의 음식 메뉴 추천 시스템들은 사용자의 세부적인 요구사항을 반영한 추천을 제공하지 못하고 있다. 예를 들어, ‘Unimeal[3]’ 및 ‘삼성헬스[4]’와 같은 건강 관리 앱(App)은 사용자가 섭취한 음식의 영양 정보를 기록하고 메뉴 추천을 제공하지만, 키와 체중, 평소 사용자의 식습관 및 생활 패턴을 반영할 뿐 특정 영양성분의 목표 섭취량 등의 더욱 세부적인 사용자의 요구사항을 반영한 맞춤형 추천을 제공하기에는 부족함이 있다.

단백질 식단, 칼로리 식단, 지중해식 식단 등 다양한 선택지로 식단 추천을 제공하는 그리팅(Greeting)[10]의 경우도, ‘건강’에 치우친 메뉴들이 주를 이룰 뿐 음식 트렌드나 사용자의 다양한 요구 사항을 반영한다고 보기는 어렵다.

또한 전통적인 추천 시스템은 개인의 선호도를 반영하는 사용자- 아이템 행렬(User-Item Matrix)기반 방식으로 구현된다. User-Item Matrix기반의 추천 시스템들은 협업 필터링(Collaborative filtering) 방식에 있어 추천을 제공하기 위한 개인화 데이터의 부족 문제인 콜드 스타트 문제(Cold-start problem)를 극복하기 어렵다는 평가가 존재한다[11].

더불어, 내용 기반 방식(Content-based method)에 있어서도 불편함이 존재한다. 기존의 연구들은 식단표, 식단 일기 등의 텍스트 데이터(Text data)상의 음식 영양소를 가지고 식단 추천 결과를 만들어내었다. 영양사가 작성한 급식 식단표나[12], 텍스트 형태의 식단 데이터를 통해 식단 분석 및 평가를 수행하는 경우가 많았다[13]. ‘MyFitnessPal[14]과 같은 시스템 역시 사용자가 음식의 칼로리와 영양 정보를 수동으로 입력해야 한다. 그러나 위와 같은 방식들은 사용자가 먹은 음식과 정확히 일치하지 않을 가능성이 높고, 사용자가 식단을 일일이 기록해야 한다는 불편함이 있다.

기존의 수동 입력 방식의 한계를 지적하는 연구[15] 및 이미지 기반 식단 기록 방식의 가능성을 탐구하는 등 음식이미지를 통한 음식의 탐지와 분류를 시도한 여러 사례도 존재하지만, 여전히 인식 가능한 종류의 수는 제한적이다[16,17].

최근 떠오르는 Chat GPT(Generative Pre-trained Transformer)[7]를 사용한 식단 이미지 분석 역시 시각적 인식의 한계로 인해 어려운 것으로 입증되었다. 강력한 자연어 및 이미지 처리 기능에도 불구하고, Chat GPT는 시각적으로 복잡하고 다양한 데이터 세트를 처리할 때 세부적인 식품 분류에 필요한 전문 지식이 부족하다. 실제 실험 결과, GPT 모델은 오른쪽 <그림 7> 과 같이 ‘광어회’를 ‘생선회’로, ‘가자미구이’를 ‘구운 생선’으로, ‘나주 곰탕’을 ‘파국’으로 잘못 분류하여 음식 이미지의 미세한 차이를 인식하는 측면에서 단점을 보여주었다.

DGTSA8_2025_v21n3_83_5_f0001.png 이미지

<그림 7> ChatGPT의 이미지 인식 한계 [7]

2.2.2 딥러닝 기반 음식 객체 탐지 연구

음식 이미지를 활용한 딥러닝 기반 분류 및 탐지 연구가 활발히 이루어지고 있으며, 다양한 모델을 적용한 성능 평가가 진행되었다. 예를 들어, ‘딥러닝을 이용한 음식 이미지 분류 기술 개발’연구에서는 AI-Hub에서 제공하는 음식 이미지 데이터를 기반으로 딥러닝 모델을 학습하여 약 92%의 분류 정확도(Top-1 Accuracy)를 달성하였다[16]. 또한,‘음식 이미지 분류를 위한 CNN 모델 일반화 방법 적용 및 분석’연구에서도 동일한 데이터셋을 활용하여 Top-1 Accuracy 기준 90.39% 의 높은 성능을 보고한 바 있다[19]. GitHub 공개 프로젝트인 ‘AIFOODIE_PROJECT’에서도 본 연구와 동일한 AI-Hub 한국 음식 이미지 데이터셋을 기반으로 CNN 구조를 설계하였으며, 이 연구에서는 Top-5 Accuracy 기준 85%의 성능을 기록한 바 있다[20]. 이처럼 기존 선행 연구들에서는 보통 Top-1 기준 90% 내외, Top-5 기준 85% 이상의 높은 분류 성능을 보이는 특징이 있다.

2.2.3 YOLO, Resnet, GPT 응용 연구

음식 객체를 비롯한 다양한 객체를 탐지하는 기존의 연구들은 YOLO를 활용하여 이루어지는 경우가 많다. YOLO를 활용하여 음식 객체를 탐지하여 칼로리를 추정한 연구[21] 및 자율주행 시스템에 YOLO를 사용한 연구[22]등, YOLO는 음식객체를 비롯한 여러 객체 탐지 과업(Task)에 다양하게 활용되고 있다. 그러나 YOLO는 속도 대비 성능이 높은 성능으로 실시간 객체 탐지를 수행하지만 분류 정확도에 있어서 분류 전용 모델들 보다는 정확도(Accuracy)가 미흡하다는 한계가 있다.

ResNet을 응용한 연구들은 이미지 분류 Task를 수행하기 위한 연구들이다. 그러나 ResNet-50을 백본(Backbone)으로 사용한 알고리즘이 객체의 위치를 정확하게 탐지하는 데 한계가 있다는 연구결과가 있다. 특히, 객체의 위치를 평가하는 AP75 지표에서 낮은 성능을 보였으며, 이는 ResNet-50이 객체의 정확한 위치를 파악하는 데 어려움이 있음을 시사한다[23]. 이에 본 연구에서는 ResNet의 단점을 극복하기 위해 YOLO로 객체의 영역을 정확히 탐지한 뒤 분류를 수행하도록 조정하였다.

GPT를 응용한 사례는 매우 다양하며, 그 활용 가능성은 지속적으로 확장되고 있다. 예를 들어, GPT-4o를 활용해 재무 문서 내 표와 같은 시각적 요소를 정확하게 분석하는 멀티모달 RAG(Retrieval-Agent Generation) 시스템을 개발한 연구[24], GPT-3.5 및 GPT-4를 이용해 알츠하이머병 관련 질문에 대해 전문의보다 높은 평가를 받은 응답을 생성한 연구는 GPT가 문서 기반 에이전트(Agent)로 효과적으로 활용될 수 있음을 잘 보여준다[25].

이에 본 연구에서는 1차 필터링 된 음식 리스트를 기반으로, Chat GPT를 사용자의 건강 상태 및 선호 등 세부정보를 반영하여 추가 필터링을 수행하는 에이전트로 활용하고자 한다. 이를 통해 보다 개인화된 식단 추천 시스템의 핵심 구성 요소로 Chat GPT를 적용한다.

2.2.4 기존 연구와의 차별점

본 연구에서 제안하는 시스템은 기존 연구들과 명확한 차별성을 가진다. 기존 객체 탐지 연구들은 YOLO, SSD 등의 객체 탐지(Object detection) 전용의 단일 모델을 활용하여 분류 정확도가 다소 정확도가 떨어진다는 단점이 있었으나, 본 연구는 YOLO와 ResNet의 장점을 극대화하는 방식으로 두 모델을 결합한 새로운 방식으로 음식 객체를 탐지한다. 또한, 기존의 추천 시스템은 주로 사용자 행동 데이터(예: 구매 이력, 클릭 패턴 등)를 기반으로 아이템 간 유사도를 계산하거나, 협업 필터링(Collaborative- filtering)을 적용하여 추천을 수행하였다[26]. 이러한 방식은 과거 데이터를 기반으로 하므로, 개인 선호도 데이터셋 부재 시 콜드 스타트 문제가 발생하며, 사용자들 간의 관계를 중심으로 추천을 수행하여 건강학적 기준의 부재라는 한계를 지닌다.

이에 본 연구는 사용자가 섭취한 ‘이전 끼니’의 영양소를 바탕으로, WHO(World Health Organization ,이하 WHO) 기준 권장 섭취량과 비교하여 부족하거나 과잉된 영양소를 평가한다. 이후, 고안된 필터링 로직에 기반한 1차 필터링을 통해 객관적이고 영양학적인 기준에 따른 음식 후보를 선정한다. 필터링 로직 내부에서도 탄수화물, 단백질, 지방과 같은 필수 영양소에 대해 ‘목표 섭취량’을 사용자 입력값으로 받음으로써 시스템의 개인화 기능을 강화하고, 과잉 섭취 시 건강 위험이 높은 영양소(나트륨, 콜레스테롤, 총포화지방산)에 대한 ‘위험 점수’ 를 별도로 평가함으로써 영양학적 균형을 맞추고자 하였다. 1차 필터링 된 음식 리스트를 대상으로, LLM(Large Language Model, 이하 LLM) 프롬프트 엔지니어링을 통하여 사용자 개인화 요소(음식 선호도, 기피 성분 등)를 반영한 2차 필터링을 수행한다. 이를 통해 영양학적 균형뿐만 아니라 세부적인 개인 맞춤형 요소를 반영한 필터링을 실현한다. 요약하자면, 본 연구의 시스템은 사용자의 ‘이전 끼니’ 섭취 정보를 기반으로 ‘다음 끼니’를 추천하여 실생활에 적용하기가 매우 용이하며, 영양 균형을 고려하는 동시에 사용자 맞춤형 개인화가 가능하다는 점에서 기존 추천 방식과 구별된다.

III. 방법론

3.1 시스템의 전체 흐름

본 연구는 딥러닝 이미지 처리 분야에서 우수성을 인정받고 있는 YOLO와 ResNet을 활용하여, 사용자가 업로드한 식단 이미지를 기반으로, 756종의 음식 영양성분 정보가 담긴 데이터를 통해 음식의 종류와 영양성분을 분석하는 모델을 제안한다. 더하여 본 연구에서 고안된 음식 필터링 로직을 활용해 영양소 균형을 중점으로 1차 필터링된 음식 리스트에서 GPT API를 이용하여 개인별 세부사항을 반영하는 2차 필터링 기능이 포함된 '음식 리스트 필터링 시스템'을 제안함으로써, 영양소 균형과 함께 사용자 개인의 선호도와 요구를 반영한 음식 리스트를 제공해주는 실용적인 시스템을 구축하고자 한다.

시스템의 전체 흐름도는 <그림 8>와 같다.

DGTSA8_2025_v21n3_83_7_f0001.png 이미지

<그림 8> 전체 시스템 흐름도

3.2 음식 객체 탐지기

정교한 음식 객체 탐지와 분류를 위해, 객체의 경계상자를 예측하는 회귀기(Regressor)로 YOLO를, 탐지된 음식 객체를 분류하기 위한 분류기(Classifier)로 ResNet을 선정하여 동일한 데이터셋으로 각각 미세조정 한 뒤 연결하였다. YOLO 훈련 시 class id를 0으로 고정하여, 분류는 수행하지 않고 경계 상자를 예측하기 위한 회귀기 용으로만 미세조정 하였다. 또한, YOLO는 객체의 위치 탐지에 집중하고, 각 바운딩 박스 영역은 별도의 고성능 이미지 분류기를 통해 분류하게 함으로써, 비슷한 시각적 특성을 가진 클래스 간의 세밀한 구분이 가능해지도록 하였다. 이와 같은 2-stage 방식은 YOLO 단일 모델의 한계를 극복하고, 정확한 탐지 및 분류를 동시에 달성할 수 있는 효과적인 방법임을 실험을 통해 확인하였다. 회귀기에서 예측된 경계상자의 좌표는 이후 크로핑(Cropping)되어 분류기로 전달된다. 이후 좌표를 전달받은 분류기가 객체가 존재하는 정확한 영역을 바탕으로 이미지 분류를 수행하도록 하여, ResNet의 장점인 높은 정확도를 활용하고자 하였다. 위와 같은 2단계 방식으로 음식 객체 탐지를 수행하여 756종의 음식 분류 정확도를 높이고자 하였다. 각 모델은 손실함수(Loss function)가 수렴할 때까지 학습이 진행되어, 검증 세트를 기준으로 객체 탐지 모델은 mAP(Mean Average Precision, 이하 mAP)0.99, 분류 모델은 정확도 0.94를 달성하였다. 제안모델의 아키텍처는 다음 <그림 9>과 같다.

DGTSA8_2025_v21n3_83_8_f0001.png 이미지

<그림 9> 제안 모델 아키텍처

제안 모델은 미세조정을 통하여 배경 복잡성에 의해 부정적인 영향을 받으며 다중 클래스에서 분류 정확도가 낮아졌던 YOLO 모델의 한계점을 극복하고, 756종의 음식 이미지를 0.94의 정확도로 분류한다. 제안 모델의 분류 결과는 이후 음식 리스트 필터링 단계에 활용된다. 제안된 모델이 실제 음식 객체를 탐지하는 모습은 <그림 10>과 같다.

DGTSA8_2025_v21n3_83_8_f0002.png 이미지

<그림 10> 제안 모델 음식 객체 탐지 예시

3.3 음식 목록 필터링 시스템

본 연구에서는 사용자의 영양 균형을 고려한 맞춤형 음식 추천 시스템을 제안한다. 이를 위해, 사용자가 섭취한 음식의(사용자의 직전 끼니)영양소를 분석하고 WHO 기준 한 끼 권장 섭취량과 비교하여 부족하거나 과잉된영양소를 평가하는 방식을 적용하였다[27]. 이 평가 결과를 기반으로 음식별 점수를 부여하고, 건강상의 위험 요소를 고려하여 사용자의 다음 끼니를 위한 최적의 음식 목록을 필터링하는 단계적 접근 방식을 도입하였다. 또한, 개인별 세부사항을 반영하기 위해 GPT API를 활용한 프롬프트 엔지니어링을 통해 개인화된 사용자 맞춤형 음식 리스트 제공 기능을 강화하여 영양 균형과 개인화를 동시에 반영한 보다 효과적인 식단 필터링 리스트 제공이 가능하도록 하였다. 이에 대한 세부적인 내용은 다음 절에서 구체적으로 다룬다.

3.3.1 균형 점수

본 연구에서는 탐지된 음식(사용자가 섭취한 직전 끼니)의 영양소(탄수화물, 단백질, 지방)를 분석하고, WHO에서 제시한 한 끼 기준 나이 및 성별별 권장 섭취량과 비교하여 부족하거나 과잉된 영양소를 평가하였다. 이를 기반으로, 사용자가 직전 끼니에서 부족하게 섭취한 영양소는 다음 끼니에 더 많이 포함되도록 점수를 부여하고, 과잉 섭취한 영양소는 줄어들도록 패널티(Penalty)를 적용하는 방식으로 ‘균형 점수’를 계산하였다. 균형 점수는 각 음식의 영양소 함량과 목표 값의 차이를 반영하여 부여되며, 아래 수식 (1)과 같이 정의된다.

\(\begin{align}S_{i}=\sum_{j=1}^{N} s_{i j}\end{align}\)       (1)

여기서 Si는 음식 i의 총 균형점수, N은 고려하는 영양소의 개수, sij는 음식 i에 포함된 영양소 j의 점수이다. 각 영양소 점수 sij는 아래 수식 (2)와 같다.

\(\begin{align}\left\{\begin{array}{l}s_{i j}=1-\frac{\left|x_{i j}-t_{j}\right|}{T_{j}} \text { if } x_{i j}<t_{j} \\ s_{i j}=-\frac{\left|x_{i j}-t_{j}\right|}{T_{j}} \quad \text { otherwise }\end{array}\right.\end{align}\)       (2)

여기서 xij는 음식 i의 영양소 j의 함량, tj는 영양소 j의 목표섭취량, Tj는 영양소 j의 권장 섭취량이다. 즉, 특정 영양소의 섭취량이 권장량보다 부족한 경우 점수가 양수로 부여되며, 부족한 영양소를 더 포함한 음식을 추천하는 방향으로 작용한다. 반대로 특정 영양소가 과잉 섭취된 경우, 점수가 음수가 되어 해당 영양소를 줄이는 방향으로 조정된다. WHO 기준 권장량 변수인 T에 더하여, 개별적인 영양 요구를 가진 사용자의 목표 영양소 섭취값을 t로 설정하고 입력값으로 받아 이를 고려하는 방식으로 개인 맞춤형 시스템으로서의 기능을 강화하고자 하였다. 예를 들어 다이어트 중인 사용자의 경우 탄수화물 목표량을 줄여서 입력하거나, 운동을 많이 하는 사용자의 경우 단백질 목표량을 늘려서 시스템에 입력할 수 있다. 이렇게 계산된 균형 점수를 기준으로 음식 목록을 내림차순 정렬한 후, 상위20종의 음식을 필터링하여 추천 후보군을 선정하였다.

3.3.2 위험 점수

본 연구에서는 특정 영양소의 과잉 섭취가 건강에 미치는 영향을 고려하여 나트륨, 콜레스테롤, 총 포화지방산을 '위험 영양소'로 정의하고 이에 대해 ‘위험 점수’를 부여하였다. 위험 점수는 WHO 권장량을 기준으로 설정되며, 각 위험 영양소의 섭취량이 권장량 대비 어느 정도 초과되었는지에 따라 위험도를 평가하였다. 각 위험 영양소의 기준은 위험 영양소 섭취량이 WHO 권장량의 50%인 이하인 경우 '안전', 50% 이상 100% 이하인 경우 '경고', WHO 권장량을 초과하는 경우 '위험'으로 정의하였다. 탐지된 음식이 '위험' 수준에 해당하는 경우에만 리스크 점수를 부여하며, 이는 추천 과정에서 고려되어, 필터링 리스트에 있는 음식이라도 리스크 점수가 높은 음식은 최종 리스트에서 제외된다. 리스크 점수는 아래 수식 (3)과 같이 계산된다.

\(\begin{align}\text {risskcore}_{i}=\sum_{j=1}^{k} \frac{R_{i j}}{L j}\end{align}\)       (3)

여기서 k는 고려하는 위험 영양소의 개수, Rij는 음식 i의 위험 영양소 j의 함량, Lij는 영양소 j의 안전 한계값이다.

균형 점수와 리스크 점수를 기반으로 1차 필터링 된 20종의 음식 리스트는 ‘filtered food list’라는 변수에 데이터 프레임 (Data frame) 형태로 저장되며, 이후 LLM을 활용한 2차 필터링을 위해 말뭉치 데이터(Corpus data) 형태로 변환되어 ‘nutrition_db_text'라는 변수에 저장된다. 이후 ’nutrition_db_text‘ 변수에 저장된 1차 필터링 리스트를 대상으로, 사용자의 세부적인 요구사항을 반영하기 위한 2차 필터링이 수행된다.

3.4 프롬프트 엔지니어링

본 연구에서는 영양소 기반으로 1차 필터링 된 음식 리스트를 개인별 세부사항을 반영하여 더욱 정밀하게 필터링 하기 위해 GPT API를 활용한 프롬프트 엔지니어링을 진행하여, LLM을 통한 채팅 형식으로 사용자의 세부적인 요구사항을 입력받아 개인 맞춤형 기능을 구현하고자 하였다.

프롬프트는 LLM 에서 답변을 이끌어 내기 위한 텍스트 입력 전체를 의미한다. 어떤 식으로 프롬프트를 작성하는가에 따라 답변의 정확도가 바뀔 수 있으며, 보다 정확한 답변을 얻기 위해 프롬프트를 설계하는 것을 프롬프트 엔지니어링이라고 한다[28]. 프롬프트는 지시(Instruction), 질문(Question), 문맥(Context), 입력(Input), 예제(Examples), 답변 (Answer) 등과 같은 요소로 이루어진다.

본 연구의 프롬프트는 ‘추천 음식 10개를 필터링하라’ 라는 지시를 바탕으로, ‘다음 식사는 어떤 음식이 좋을까?’라는 질문에 대한 답변을 수행한다. 영양 균형 기반 1차 필터링의 결과물이 담긴 변수인 ‘nutrition_db_text’를 문맥으로 제공받고, 개인 맞춤화를 위한 ‘사용자의 세부 정보’를 입력으로 받는 형태로 설계되었다. 이는 접두 프롬프트(Prefix Prompt)의 형식에 해당하며, 예제 없이도 추론이 가능한 Zero-shot Instruction Prompting으로 분류할 수 있다[29]. 이러한 구조를 통해 언어모델의 생성 범위를 특정 범위 내로 제약하여 영양 균형과 개인화가 동시에 이루어지도록 설계되었다. 프롬프트 설계 예시는 다음 페이지의 <그림 11>과 같다.

DGTSA8_2025_v21n3_83_10_f0001.png 이미지

<그림 11> 프롬프트 설계 예시

본 연구에서는 총 5개의 필터링 시스템을 구축하였는데, 그 중 총 4개의 필터링 시스템을 구축하는 과정에 프롬프트 엔지니어링이 활용되었다. Version1에서는 고안된 필터링 로직을 통해 영양 균형이 이루어진 1차 필터링 리스트가 제공되며, 이는 프롬프트 엔지니어링이 미반영된 시스템이다. Version2부터는 프롬프트 엔지니어링이 진행된다. 필터링 과정에서 고려될 사용자의 세부사항을 달리하여, 총 4종류의 시스템에 프롬프트 엔지니어링을 진행하였다. Version2에는 세부사항으로 ‘사용자의 음식 선호도’를 입력받도록 하였다.

Version3에는 사용자의 ‘나이/성별/건강상태’를 입력받도록 하였다. Version4에는 사용자가 피하고자 하는 성분인 ‘위험 요소’를 입력받도록 하였으며, 마지막으로 Version5에는 Version2,3,4에 입력된 사항이 종합적으로 반영되도록 하였다. 각 시스템은 사용자별 세부 사항을 반영하여, 10종류의 음식으로 구성된 최종 필터링 리스트를 산출한다. 이후 위 5개의 시스템은 본 논문에서 v1, v2, v3, v4, v5로 언급되며, 각 시스템별 필터링 결과는 제 4장에서 자세히 설명한다. 각 시스템의 프롬프트 설계 사항을 정리하면 <표 1>과 같다.

<표 1> 각 버전별 프롬프트 설계 사항

DGTSA8_2025_v21n3_83_10_t0001.png 이미지

IV. 실험

4.1 데이터셋

본 논문의 모델을 미세 조정하는 과정에서 AI Hub의 ‘음식이미지 및 정보소개 텍스트 데이터’를 활용했다. AI Hub는 AI 기술 및 제품, 서비스 개발에 필요한 AI 인프라를 지원하는 플랫폼이다[30]. 데이터는 특수외식메뉴, 일반외식 및 배달메뉴, 끼니대체메뉴, 빵, 떡, 죽 및 스프류, 음료 및 차류 등 총 800종의 메뉴로 구성되어 있으며 각각의 이미지와 그에 해당하는 2D-annotation, nutrition 등이 json파일 형태로 제공된다. 총 800종의 클래스 중 용량 문제로 인해 44개의 클래스를 삭제 후 756개의 클래스를 사용하였으며, 총 7580개의 데이터를 9:1분할하여 6784장의 이미지를 훈련 데이터셋으로, 796장의 이미지를 검증 데이터셋으로 사용하였다. 데이터셋 예시는 <그림 12>와 같다.

DGTSA8_2025_v21n3_83_11_f0002.png 이미지

<그림 12> 사용 데이터셋 샘플

4.2 이미지 분류기 선정 실험

YOLO 모델을 단일 모델로 사용하여 1-stage로 756개 클래스의 음식 객체 탐지를 수행하도록 미세조정 하는 경우, mAP가 0.1 미만으로 <그림 13>과 같이 음식 객체에 대한 경계 상자 예측은 정확하지만, 다양한 음식들의 비슷한 형태로 인하여 분류 정확도가 매우 낮게 나타났다.

DGTSA8_2025_v21n3_83_11_f0001.png 이미지

<그림 13> YOLO 의 분류 성능 문제

이와 같은 성능 저하의 주요 원인은, 700개 이상의 음식 클래스가 외형적으로 유사하며 클래스 간 시각적 차이가 미세한 반면, 클래스 당 이미지 수는 적기 때문이다. 이로 인해 YOLO 모델은 객체의 위치는 정확히 예측하지만, 클래스 분류 성능이 크게 떨어지는 문제가 발생하였다. 객체 탐지 성능 평가지표인 mAP는 다음 식 (4)는 와 같이 정의된다.

\(\begin{align}m A P=\frac{1}{N} \sum_{i=1}^{N} A P_{i}\end{align}\)       (4)

YOLO가 클래스 예측에 실패할 경우, 정밀도(Precision)와 재현율(Recall)이 모두 낮아지게 되며 이는 각 클래스의 평균 정밀도(Average Precision)를 저하시켜 전체 mAP를 감소시키는 결과를 초래한다.

이에 본 연구에서는 이러한 문제점을 보완하기 위해 2-stage 모델을 제안한다. 구체적으로 YOLO 모델은 모든 클래스를 단일 클래스인 ‘음식(class id = 0)’으로 통합하여 학습하였으며, 이로 인해 클래스 수 N이 1로 줄어들게 된다. 이는 mAP 계산식의 분모를 감소시킬 뿐만 아니라 각 클래스에 대한 샘플 수가 증가함으로써 모델의 일반화 성능과 학습 안정성이 향상된다.

준비된 객체 탐지기에 연결할 최적의 분류 모델을 선정하기 위해, 현존하는 대표 이미지 분류기들을 대상으로 이미지 분류 실험을 진행하였다. 그 결과, ResNet-50이 가장 높은 성능인 정확도 0.94를 기록하여 이미지 분류를 위한 최종 모델로 채택되었다. 실험은 총 6784개의 훈련 데이터와 796개의 검증 데이터를 사용하여 각 분류기를 미세조정 하는 방식으로 진행되었으며, 모든 분류기는 동일한 데이터셋에 대해, 동일한 전처리(224x224 resize, normalization), 동일한 데이터 증강 전략(Random Horizontal Flip, Random Crop 등)을 적용하였고, 동일한 학습 조건(batch size=32, optimizer=Adam, learning rate=0.0001, weight decay=1e-4) 하에 20 epoch 동안 미세조정 하였다.

각 분류기는 ImageNet pretrained-weight를 기반으로 하며, 전체 layer를 미세 조정하여 학습하였다. 실험은 Google Colab[31]의 A100 GPU 환경에서 수행되었으며, 분류기 실험 결과는 <표 2> 과 같다. mAP는 YOLO v5의 class id를 0으로 고정하여 미세 조정한 결과이며 Acuuracy는 20 Epoch중 가장 뛰어난 성능을 보인 Best Epoch의 결과이다.

<표2> 분류기 실험 결과

DGTSA8_2025_v21n3_83_12_t0001.png 이미지

학습에 사용되지 않은 다른 음식 이미지 데이터를 통해 객체 탐지를 수행해 본 경우, 오른쪽 <그림 14>와 같이 여러 객체 중 음식 객체를 매우 잘 탐지하며, 음식을 잘 분류하는 모습을 통해 모델의 일반화 가능성 역시 확인할 수 있다.

DGTSA8_2025_v21n3_83_12_f0001.png 이미지

<그림 14> 외부 이미지 데이터를 통한 제안 모델 적용 예시

4.3 사용자 만족도 실험

4.3.1 필터링 결과 예시

본 연구의 필터링 시스템은 사용자의 이전 끼니의 영양 균형 상태와 사용자의 세부 사항을 바탕으로 다음 끼니를 추천한다. 예를 들어, 이전 끼니에서 '차돌된장찌개' 를 섭취한 사용자의 경우, '차돌된장찌개'의 영양성분은 <표 3>과 같다.

<표 3> '차돌된장찌개'의 영양성분

DGTSA8_2025_v21n3_83_12_t0002.png 이미지

WHO 한 끼 권장량 기준, '차돌된장찌개'는 탄수화물, 단백질, 지방을 포함한 영양소 측면에서, 탄수화물 약 45g 및 300kcal의 영양성분이 포함된 흰쌀밥을 함께 섭취했을 것을 고려했을 때 단백질은 약 6g 정도 과잉된 상태이며 지방은 적정 수준이다. 나트륨, 콜레스테롤, 총 포화지방을 포함하는 ‘위험 영양소’ 측면에서는 나트륨이 약 220mg 과잉되어 '위험' 단계이다. 이 경우에는 단백질 함량이 WHO 권장량을 하회하며 나트륨을 제한하는 필터링 리스트가 제공될 것으로 기대된다. 이에 더하여 사용자로부터 입력받은 영양소 목표값 또한 필터링 과정에서 고려된다.

다이어트라는 식이목표를 가지고 지방 섭취를 제한하고자 하는 25세 여성 사용자가 지방 10g을 목표값으로 입력하여 필터링 시스템을 사용한 경우 v1의 필터링 결과 예시는 <그림 15>와 같다.

DGTSA8_2025_v21n3_83_13_f0001.png 이미지

<그림 15> 시스템 V1의 필터링 리스트

제공된 리스트의 단백질 함량 평균은 17g, 지방의 최댓값은 약 9g, 나트륨 함량은 평균 324mg으로, 나트륨과 단백질 조절이 필요했던 이전끼니의 영양 균형 상태를 보완하면서 지방 제한이라는 사용자의 식이 목표에 부합하는 필터링 리스트가 적절히 제공되었다.

사용자 선호도(좋아하는 음식: 해산물, 싫어하는 음식: 육류)가 반영된 v2의 필터링 리스트는 '광어회', '연어회덮밥', '참소라초밥', '우럭초밥', '대구뽈찜', '김치참 치컵밥', '꽁치구이'로 구성되었다. 이것으로 보아 사용자가 좋아하는 음식인 해산물이 반영된 필터링이 이루어졌음을 볼 수 있다. v1의 필터링 리스트 20종 중 사용자가 싫어하는 음식인 육류에 포함되는 '육회초밥', '훈제양념 치킨'외 치킨류, 육류가 포함되어 있는 '납작만두'등은 필터링 과정에서 제외되었음을 확인할 수 있다.

사용자의 나이(25)/성별(여)/건강상태(비만)을 반영한 v3의 필터링 리스트는 음식의 칼로리(e) 최댓값이 408kcal, 지방 함량의 최댓값은 약 6g으로, 비만인 사용자가 섭취하기에 적절한 필터링 리스트가 제공되었다. 사용자가 피해야 할 성분(나트륨)을 반영한 v4의 필터링 리스트의 평균 나트륨 함량은 245mg으로, WHO기준 한 끼 권장량인 687mg의 약 1/3수준에 해당하는 낮은 수치로 구성된 음식 리스트가 제공되었다.

마지막으로 v5는 선호도, 건강 상태, 위험 요소 등을 종합적으로 반영한 필터링이 이루어진 음식 리스트인 ' 광어회', '참소라초밥', '우럭초밥', '김치참치컵밥','꽁치구이' 라는 결과를 제공하였다. 이는 이전 끼니에 '차돌된장찌개'를 섭취한, 비만인 25세 여성 사용자가 다이어트라는 식이 목표를 갖고 지방을 제한하며 육류를 싫어하고 해산물을 좋아할 때 나트륨을 제한한 결과이다. 필터링 과정에서 여러 요소를 고려하며 제공되는 음식 종류의 수가 감소하였지만 영양 균형과 사용자 선호도를 모두 반영한 필터링이 잘 이루어졌음을 확인할 수 있다.

비교를 위한 Chat GPT의 추천 결과는 이전 끼니로 ‘차돌된장찌개’를 섭취했다는 정보 이외의 사항이 전혀 반영되지 않은 결과가 제공된다. 실제로 '렌틸콩과 채소가 들어간 수프', '계란 흰자 오믈렛' 등 한국인 사용자에게는 다소 생소한 인상을 주는 음식 리스트가 제공되었다.

이와 같이 프롬프트 엔지니어링이 진행된 총 4개의 시스템에서는 사용자의 선호도와 건강 상태가 반영된 맞춤형 필터링 리스트가 제공된다.

4.3.2 시스템 평가

본 연구에서 구축한 5개의 시스템별 만족도 평가 진행을 위해, 비교를 위한 Chat GPT를 포함하여 총 6개 시스템의 추천 결과를 대상으로 사용자 만족도 평가를 진행하였다. GPT 추천은 사용자의 이전끼니를 바탕으로 한 GPT의 추천을 제공하며, 프롬프트에 이전 끼니 이미지 이외의 다른 정보를 포함하지 않은 결과이다. 평가 대상인 시스템의 특징을 정리하면 <표 4> 와 같다.

<표 4> 평가 대상 시스템 특징 정리

DGTSA8_2025_v21n3_83_14_t0001.png 이미지

위 6개의 시스템의 필터링 결과에 대해, 사용자 30명을 대상으로 각 시스템에 대하여 설문조사를 진행하였다. 연구 목적에 적합한 사람을 직접 골라내는 방식인 ‘유의 표집’방식으로 응답자를 표집 하였으며, 영양사, 개발자, 대학생, 각종 질환자 등 다양한 시각에서 시스템을 평가받을 수 있도록 응답자를 선정 하였다. 응답자 평균 연령은 38.1세 이며 위장 장애, 소화 불량 등을 비롯한 소화기 질환자 7명, 신장 질환자 2명이 포함된다. 설문조사는 사용자가 섭취한 이전 끼니와 사용자 정보를 사용하였으며, 설문 문항은 리커트(Likert) 5점 척도를 통해 시스템의 개인화 정도, 실용성, 다양성을 파악하도록 임의로 구성되었다. 본 설문지는 연구 목적에 부합하도록 연구자가 직접 설계한 자의적 (Self-developed) 문항으로 구성되었다. 설문 문항은 대상자의 특성, 연구 목적에 따른 세부 요구사항, 및 실제 적용 가능성(실용성)을 반영하여 설계되었으며, 전문가 자문을 바탕으로 내용 타당성(Content validity)을 확보하고자 하였다. 프롬프트 엔지니어링 실험은 Session state 초기화를 통해 각 시스템들에 대해 독립적으로 수행되었으며, 구체적인 설문 문항은 다음페이지의 <표 5>, 설문 결과는 <표 6>, 실험 설계 모형은 <그림 16>과 같다.

<표5> 만족도 평가 설문지

DGTSA8_2025_v21n3_83_15_t0002.png 이미지

<표 6> 시스템 설문 결과

DGTSA8_2025_v21n3_83_15_t0001.png 이미지

DGTSA8_2025_v21n3_83_15_f0001.png 이미지

<그림 16> 사용자 평가 설문 설계 모형

전체 만족도 측면에서 GPT추천과 v2,v3,v4,v5의 평균 만족도는 차례로 2.45와 4.45를 기록하며 약 2배의 만족도 차이를 보였다. 이는 고안된 필터링 로직과 프롬프트 엔지니어링이 결합된 형태의 시스템이 사용자들에게 만족스러운 추천 결과를 제공했음을 의미한다.

개인화 측면에서는 이는 v3의 필터링 리스트와 v4의 필터링 리스트에서도 확인할 수 있듯이 v3과 v4의 필터링이 차례로 ‘비만’과 ‘나트륨 제외’라는 개별 사용자의 특성과 요구사항을 잘 반영하여 이루어졌음을 보여준다.

실용성 측면에서도 v1이 4.87로 높은 점수를 기록하였으며, 이는 GPT추천의 2.45보다 2배 이상 높은 결과이다. 이러한 결과는 한국인이 섭취하는 음식 이미지 데이터셋을 기반으로 구축한 영양성분 데이터에서 필터링된 리스트가 사용자로 하여금 친숙한 음식이라는 생각이 들도록 하고, 나아가 본 시스템이 실용적이라는 인식을 이끌어 냈기 때문으로 보인다. 특히, 개인화와 실용성이 종합적으로 반영된 v5는 4.79라는 높은 점수를 얻었다. 이는 사용자에게 실제로 유용하고 적용 가능한 추천을 제공하는 시스템으로서의 강점을 보여준다.

다양성 측면은 다른 평가 항목에 비해 상대적으로 큰 차이를 보이지 않았다. v5의 경우 3.93으로 가장 낮은 다양성 점수를 보여주었는데, 여러 사항을 고려하여 필터링하는 과정에서 제공할 수 있는 음식의 수가 줄어들며 필터링 리스트의 다양성이 제한되었기 때문이라고 해석된다.

결론적으로 우리 시스템은 사용자 평가에서 Chat GPT의 2배 가량의 만족도를 달성하였으며, 특히 v3과 v4의 경우 실용성과 개인화 측면에서 두각을 나타내는 시스템이라고 평가되었다. 이는 우리 시스템이 한국 사용자들의 취향과 요구에 잘 맞는 음식 필터링 리스트를 제공했으며, 사용자 맞춤형 필터링을 제공하면서도 실제적인 사용 가능성이 높은 시스템이라고 해석된다.

V. 결론

본 연구에서는 인공지능을 활용한 음식 객체 검출 및 분류 모델을 제안하고, 이를 기반으로 한 개인화된 음식 필터링 시스템을 개발 및 평가하였다. 실험 결과, YOLO와 ResNet-50 기반으로 구성된 제안 모델은 mAP 0.99와 0.94의 정확도를 달성하며 높은 성능을 보였다. 이는 제안된 모델이 756종의 다양한 음식 이미지를 정확히 인식하고 분류할 수 있음을 시사한다. 제안 시스템은 사용자가 업로드한 이전 끼니의 음식 사진을 분석하여, 영양 정보를 기반으로 사용자가 선택할 수 있는 음식 리스트를 제공하는 기능을 수행하였다. 개발된 필터링 시스템은 총 5가지 버전으로 구현되었으며, 사용자 만족도 평가 결과 평균만족도, 개인화, 실용성 측면에서 긍정적인 평가를 얻었다. 그러나 다양한 음식을 추천하는 기능은 필터링 과정의 특성상 상대적으로 낮은 점수인 3.93을 기록하였다. 평균만족도는 4.45로, 한국 사용자의 식습관과 요구를 반영한 맞춤형 필터링이 가능함을 시사한다.

본 연구는 인공지능 기반의 이미지 인식 기술을 활용하여 사용자가 섭취한 다양한 종류의 식사의 영양 정보를 편리하게 분석할 수 있음을 보여주며, 기존 음식 추천 시스템의 한계로 지적되었던 개인화 데이터 부재 문제를 해결할 수 있는 가능성을 확인하였다.

또한, 본 연구는 프롬프트 엔지니어링을 통해 개인화된 음식 추천 시스템을 구축할 수 있었음을 확인하였다. 프롬프트 엔지니어링을 통한 사용자 맞춤형 필터링을 통해 ‘탄수화물 제한 식단’, ‘저속 노화 식단’등 다양한 식이 목표가 생겨나고 사라지는 현대의 흐름에 맞추어 시스템의 개선 및 실용적인 활용이 더욱 가능해질 것임을 보여준다. 즉, 본 연구는 인공지능을 활용한 개인 맞춤형 음식 추천 시스템의 가능성을 제시하며 향후 영양 불균형으로 인한 질병 예방 및 건강 관리에도 기여할 것으로 기대된다.

본 연구에서 제안된 모델은 사용자가 업로드한 음식 사진을 분석하여 음식을 추천하는 방식에 중점을 두었으나, 모든 음식을 1인분으로 가정하고 있기 때문에 추후 연구에서는 사용자가 섭취한 음식의 양을 추정할 수 있는 기능을 추가하여 보다 정밀한 맞춤형 추천을 제공할 수 있을 것이다. 또한, 최근 주목받고 있는 RAG(문서 기반의 정보 생성)[32]와 Langchain[33]기술을 활용하여, 식이목표, 건강 상태 등을 담은 개인의 식단 정보를 문서화하고 이를 바탕으로 사용자 맞춤형 음식 추천 시스템을 더욱 고도화할 수 있으며, 향후에는 외부 API 서비스에 대한 의존성 문제를 최소화하기 위해 소형 언어모델을 로컬 서버에 구축하여 외부 API 장애 발생 시에도 지속적인 서비스 제공이 가능하도록 대비할 수 있다.

본 연구는 이러한 보완 및 발전을 통해 추천 시스템의 신뢰성과 서비스 지속 가능성을 강화하고, 다양한 사용 환경에서도 안정적으로 개인화된 식단 추천을 제공하는 어플리케이션으로써의 발전할 수 있을 것으로 기대된다.

References

  1. 배경호, "멈추지 않는 글로벌 '저당.무설탕' 식품 시장," 식품음료신문, 2025.02.11.
  2. 모도 인텔리전스, "무설탕 식품 및 음료 시장 규모 및 점유율 분석 - 성장 동향 및 예측 (2025-2030)," https://www.mordorintelligence.kr, 2025.
  3. Unimeal, "체중 감량 관리 앱," https://www,unimeal.com/ko
  4. 삼성헬스, "피트니스&헬스 트래커 앱," https://www.samsung.com/sec/apps/samsung-health
  5. J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, "You Only Look Once: Unified, Real-Time Object Detection," CVPR, June 2016, pp. 779-788.
  6. K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual Learning for Image Recognition," CVPR , June 2016, pp. 770-778.
  7. OpenAI, "Introduncing ChatGPT," https://openai.com/index/chatgpt
  8. Lin, T.Y., Goyal, P., Girshick, R., He, K., and Dollar, P., "Focal Loss for Dense Object Detection," ICCV, Oct. 2017, pp. 2980-2988.
  9. OpenAI, https://openai.com/
  10. 현대그린푸드, "건강마켓-맛있는 건강밥상의 시작," https://www.greating.co.kr/
  11. 정영윤․박민규․김건우․김석환․박경신 "개인 맞춤형 음식 추천 알고리즘에 대한 비교 평가 연구," 한국정보통신학회논문지, 제27권, 제3호, 2023, pp. 318-327. https://doi.org/10.6109/jkiice.2023.27.3.318
  12. 임효빈․이서하․이호진․정라나․이민아, "계층적 분석 과정을 적용한 학교급식 식단 구성의 중요도 분석," Journal of Nutrition and Health, 제57권, 제3호, 2024, pp. 349-364. https://doi.org/10.4163/jnh.2024.57.3.349
  13. Kim S, Jeong HN, Choi-Kwon S. "The blood pressure control effect of the sodium-restricted dietary approaches to stop hypertension diet: a systematic review," The British journal of nutrition, vol. 132, no. 2, Jul. 2024, pp. 141-150. https://doi.org/10.1017/S000711452400103X
  14. MyFitnessPal, MyFitnessPal, https://www.myfitnesspal.com/ko
  15. Boushey C.J., Spoden M, Zhu F.M., Delp E.J., Kerr D.A., "New mobile methods for dietary assessment: review of image-assisted and image-based dietary assessment methods," Proceedings of the Nutrition Society, Vol. 76, No. 3, Aug. 2017, pp. 283-294. https://doi.org/10.1017/S0029665116002913
  16. 이가경․임세연․양진이․유민정․김선옥, "딥러닝을 이용한 음식 이미지 분류 기술 개발," 한국빅데이터학회 학회지, 제8권, 제2호, 2023, pp. 133-140.
  17. W. Zhang, D. Zhao, W. Gong, Z. Li, Q. Lu, S. Yang, "Food Image Recognition with Convolutional Neural Networks," 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Autonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Computing and Communications and Its Associated Workshops, 2015, pp. 690-693.
  18. 이원일.강수연.낭종호, "음식 이미지 분류를 위한 CNN 모델 일반화 방법 적용 및 분석," 한국정보과학회 학술발표논문집, 2022. pp. 722-724.
  19. Github, "음식 이미지 인식, 분류 연구 및 MLOps 퍼블리싱 프로젝트 (AIFOODIE)," https://github.com/Development-On-Saturday/AIFOODIE_PROJECT, 2022.
  20. S. Patil, S. Patil, V. Kale, M.Bonde, "Food Item Calorie Estimation Using YOLOv4 and Image Processing," International Journal of Computer Trends and Technology, vol. 69, no. 5, 2021, pp. 69-76, https://doi.org/10.14445/22312803/IJCTT-V69I5P110
  21. Woo J., Baek J-H., Jo S-H., Kim S.Y, Jeong J-H., "A Study on Object Detection Performance of YOLOv4 for Autonomous Driving of Tram, Sensors," vol. 22, no. 22, 2022. https://doi.org/10.3390/s22229026
  22. J. Tian, Q. Jin, Y. Wang, J. Yang, S. Zhang, D. Sun, "Performance analysis of deep learning-based object detection algorithms on COCO benchmark: a comparative study," Journal of Engineering and Applied Science, vol. 71, no. 76, 2024. https://doi.org/10.1186/s44147-024-00411-z
  23. OpenAI Community, "Multimodal RAG with GPT-4o and Pathway: Accurate Table Data Analysis from Financial Documents," https://github.com/pathwaycom/llm-app/tree/main/examples/pipelines/gpt_4o_multimodal_rag, 2024.
  24. J. Zeng, X. Zou, S. Li, Y. Tang, S. Teng, H. Li, C. Wang, Y. Wu, L. Zhang, Y. Zhong, J. Liu, and S. Liu, "Assessing the role of the generative pretrained transformer (GPT) in Alzheimer's disease management: comparative study of neurologist- and artificial intelligence–generated responses," Journal of Medical Internet Research, vol. 26, 2024. https://doi.org/10.2196/51095
  25. 이학림․박철용, "딥러닝 기반 추천시스템 성능 비교 연구," 한국데이터정보과학회지, 제35권, 제1호, 2024, pp. 1-13. https://doi.org/10.7465/jkdi.2024.35.1.1
  26. World Health Organization, https://www.who.int
  27. Reynolds, L., McDonell, K., "Prompt programming for large language models: Beyond the few-shot paradigm," Extended Abstracts of the 2021 CHI Conference on Human Factors in Computing Systems, ACM, May 2021, pp. 1–7.
  28. P. Liu, W. Yuan, J. Fu, Z. Jiang, H. Hayashi, G. Neubig, "Pre-train, prompt, and predict: A systematic survey of prompting methods in natural language processing," ACM Computing Surveys, vol. 55, no. 9, 2023, pp. 1–35. https://doi.org/10.1145/3560815
  29. AI-Hub, https://www.aihub.or.kr.
  30. Google, https://colab.google.com
  31. Lewis, M., Oguz, B., Goyal, N., Powell, R., Singer, A., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", ICML, 2021, pp. 9380-9392.
  32. Harrison Chase, https://langchain.com.