8.3K Views
•
13:19 min
•
March 13th, 2021
DOI :
March 13th, 2021
•0:00
Introduction
0:44
Food Image Recognition with NutriNet
5:08
Food Image Segmentation with FCNs
7:22
Food Image Segmentation with HTC ResNet
11:24
Representative Results
12:22
Conclusion
Transcript
수동 식이 평가 접근 방식과 관련된 문제와 비용으로 인해 작업을 용이하게하고 가속화하고 품질을 높이기 위해 자동화 된 솔루션이 필요합니다. 오늘날 자동화된 솔루션은 스마트폰 카메라로 이미지를 촬영하는 것과 같이 사람의 식이 섭취량을 훨씬 더 간단한 방식으로 기록할 수 있습니다. 이 기사에서는 현장에서 예술의 상태를 나타내는 심층 신경망을 사용하여 식이 평가에 대한 이러한 이미지 기반 접근 방식에 초점을 맞출 것입니다.
특히 식품 이미지 인식용, 식품 복제본 이미지 세분화 또는 가짜 식품, 실제 식품의 이미지 세분화를 위한 세 가지 솔루션을 제시합니다. 식품 이미지 인식 모델의 출력이 될 다양한 음식과 음료 목록을 수집합니다. TXT 또는 CSV와 같은 텍스트 파일에 식음료 목록을 저장합니다.
이 문서의 저자가 사용하는 텍스트 파일은 TXT 점 식품 의 보충 파일에서 찾을 수 있으며 520 슬로베니아 음식 항목의 목록을 포함 합니다. Google 사용자 지정 검색 API를 사용하여 목록에서 각 음식 항목의 이미지를 다운로드하고 각 음식 항목에 대한 별도의 폴더에 저장하는 Python 스크립트를 작성하거나 다운로드합니다. 이 문서의 작성자에서 사용하는 Python 스크립트는 다운로드 이미지 도트 파이아래의 보충 파일에서 찾을 수 있습니다.
이 스크립트를 사용하는 경우 파이썬 스크립트 코드에서 개발자 키 변수 개발자 키 라인 8과 파이썬 스크립트 코드의 사용자 지정 검색 엔진 ID 변수 CX 라인 28을 사용 중인 Google 계정과 관련된 값으로 교체해야 합니다. 1.1.3 단계에서 파이썬 스크립트를 실행합니다. CLoDSA 라이브러리를 사용하여 90도 회전하여 음식 이미지 데이터 집합에서 각 이미지의 새 버전을 만듭니다.
이 문서의 작성자에서 사용하는 모든 CLoDSA 명령을 포함하는 파이썬 스크립트는 NutriNet 의 추가 파일에 포함된 파일에서 찾을 수 있습니다. CLoDSA 라이브러리를 사용하여 180도 회전하여 음식 이미지 데이터 집합에서 각 이미지의 새 버전을 만듭니다. CLoDSA 라이브러리를 사용하여 270도 회전하여 음식 이미지 데이터 집합의 각 이미지의 새 버전을 만듭니다.
CLoDSA 라이브러리를 사용하여 음식 이미지 데이터 집합에서 각 이미지의 새 버전을 수평으로 뒤집어 만듭니다. CLoDSA 라이브러리를 사용하여 임의의 색상 노이즈를 추가하여 식품 이미지 데이터 집합에서 각 이미지의 새 버전을 만듭니다. CLoDSA 라이브러리를 사용하여 25%까지 확대하여 음식 이미지 데이터 집합에서 각 이미지의 새 버전을 만듭니다.
이미지를 1.3.1에서 1.3.6단계로 저장하고 원본 이미지를 새 음식 이미지 데이터 세트로 저장합니다. 식품 이미지당 총 7가지 변형. 1.3.7 단계에서 NVIDI 자리 환경으로 음식 이미지 데이터 세트를 가져와 데이터 집합을 교육, 유효성 검사 및 테스트 하위 집합으로 나눕니다.
NutriNet 아키텍처의 정의 텍스트를 복사하여 NVIDIA 수에 붙여 넣습니다. NutriNet 아키텍처 정의는 NutriNet 도트 프로토 TXT 의 보조 파일에서 찾을 수 있습니다. 선택적으로 NVIDIA 숫자에서 교육 하이퍼 매개 변수를 정의하거나 기본 값을 사용합니다.
이 문서의 저자가 사용하는 하이퍼 매개 변수는 NutriNet의 보충 파일에 포함된 파일에서 찾을 수 있으며 하이퍼 파라미터점 인테스토 TXT를 강조합니다. NutriNet 모델의 교육을 실행합니다. 교육이 완료되면 최상의 성능의 NutriNet 모델 반복을 수행합니다.
그런 다음 이 모델은 이 방법의 성능을 테스트하는 데 사용됩니다. 최상의 성능의 모델 반복을 결정하는 방법에는 여러 가지가 있습니다. 자세한 내용은 문서 텍스트를 참조하십시오.
가짜 음식 이미지의 데이터 세트를 가져옵니다. 이 문서의 저자는 실험실 환경에서 수집 된 가짜 음식의 이미지를 받았다. 픽셀 레벨의 모든 음식 이미지에 수동으로 인가합니다.
이미지의 각 픽셀에는 속한 음식 클래스에 대한 정보가 포함되어야 합니다. 이를 달성하기 위한 많은 도구가 있습니다. 이 문서의 작성자는 자바스크립트 세그먼트 별표기 사용.
이 단계의 결과는 각 픽셀이 음식 클래스 중 하나를 나타내는 식품 이미지 데이터 집합의 각 이미지에 대한 하나의 음표 이미지입니다. 섹션 1.3과 동일한 단계를 수행하지만 음식 이미지 데이터 세트의 학습 하위 집합의 이미지에서만 수행합니다. 1.3.5 단계를 제외하고 는 해당 음표 이미지에서도 모든 데이터 확대 단계를 수행해야 합니다.
1.4.2 단계를 제외하고 1.4절과 동일한 단계를 수행합니다. 그 단계 대신 2.3.2 및 2.3.3 단계를 수행합니다. 이 문서의 작성자에서 사용하는 교육 하이퍼 매개 변수는 FCN-8S의 보충 파일에 포함된 파일에서 하이퍼 파라미터 점 프로토 TXT를 강조합니다.
FCN-8S 아키텍처의 정의 텍스트를 복사하여 NVIDIA 수수에 붙여 넣습니다. 미리 학습된 FCN-8S 모델 가중치를 NVIDIA 수수에 입력합니다. 이러한 모델 가중치는 파스칼 비주얼 개체 클래스 데이터 집합에서 미리 학습되었으며 인터넷에서 찾을 수 있습니다.
식품 인식 챌린지 웹사이트에서 음식 이미지 데이터 세트를 다운로드하세요. 1.3.1 ~ 1.3.4 단계를 수행합니다. 이 문서의 작성자에서 사용하는 모든 CLoDSA 명령을 포함하는 파이썬 스크립트는 FRC 의 추가 파일에 포함된 파일에서 확대 점 파이를 강조 표시할 수 있습니다.
CLoDSA 라이브러리를 사용하여 가제 비울을 추가하여 식품 이미지 데이터 집합에서 각 이미지의 새 버전을 만듭니다. CLoDSA 라이브러리를 사용하여 식품 이미지 데이터 집합의 각 이미지의 새 버전을 만듭니다. CLoDSA 라이브러리를 사용하여 감마 보정을 적용하여 각 이미지 데이터 집합에서 각 이미지의 새 버전을 만듭니다.
원본 이미지와 함께 3.2.1단계에서 3.2.4단계로 이미지를 새 음식 이미지 데이터 세트로 저장합니다. 식품 이미지당 총 8가지 변형. 이미지를 3.2.2에서 3.2.4단계로 저장하고 원본 이미지와 함께 새로운 식품 이미지 데이터 세트로 저장합니다.
식품 이미지당 총 4가지 변형. MM 감지 라이브러리에서 기존 HTC ResNet 101 아키텍처 정의를 수정하여 3.1.1, 3.2.5 및 3.2.6 단계에서 음식 이미지 데이터 세트를 수락합니다. 선택적으로 3.3.1 단계에서 HTC ResNet 101 아키텍처 정의를 수정하여 하이퍼 파라미터 교육을 정의하거나 기본 값을 사용합니다.
수정된 HTC ResNet 101 아키텍처 정의는 HTC 밑줄 ResNet 101 도트 파이의 보조 파일에서 찾을 수 있습니다. MM 검출 라이브러리를 사용하여 3.1.1 단계에서 식품 이미지 데이터 세트에서 HTC ResNet 101 모델의 교육을 실행합니다. 3.3.3 단계에서 의 교육이 완료된 후, 최고의 성능의 HTC ResNet 101 모델 반복을 수행하고 3.2.5 단계에서 음식 이미지 데이터 세트에 대한 교육의 다음 단계를 실행하여 미세 조정합니다.
최상의 성능의 모델 반복을 결정하는 방법에는 여러 가지가 있습니다. 자세한 내용은 문서 텍스트를 참조하십시오. 이는 다음 단계와도 관련이 있습니다.
3.3.4 단계에서 의 교육이 완료된 후, 최고의 성능의 HTC ResNet 101 모델 반복을 수행하고 3.2.6 단계에서 음식 이미지 데이터 세트에 대한 교육의 다음 단계를 실행하여 미세 조정합니다. 3.3.5 단계에서 교육이 완료된 후, 최고의 성능의 HTC ResNet 101 모델 반복을 수행하고 3.2.5 단계에서 음식 이미지 데이터 세트에 대한 다음 단계의 교육을 다시 실행하여 미세 조정하십시오. 3.3.6 단계의 교육이 완료되면 최고의 성능의 HTC ResNet 101 모델 반복을 수행하십시오.
그런 다음 이 모델은 이 방법의 성능을 테스트하는 데 사용됩니다. 3.3.3에서 3.3.7 단계는 이 문서의 저자가 정의한 목적에 대해 최상의 결과를 산출했습니다. 각 데이터 집합에 대한 실험이 필요하며 최적의 교육 및 데이터 확대 단계를 찾아야 합니다.
트렌드 모델을 테스트한 후 NutriNet은 당시 인기 있는 딥 신경망 아키텍처였던 GoogLeNet보다 약 2% 높고 약간 높은 인식 데이터 세트에서 86.72%의 분류 정확도를 달성했습니다. FCN-8S 가짜 식품 이미지 세분화 모델의 정확도를 측정하기 위해 픽셀 정확도 측정이 사용되었습니다. 숙련된 FCN-8S 모델의 정확도는 식품 이미지 세분화를 위한 ResNet 기반 솔루션이 식품 인식 챌린지에 정의된 정밀 측정을 사용하여 평가하였다.
이 측정값을 사용하여 열차 모델은 식품 인식 챌린지에서 2위를 차지한 59.2%의 평균 정밀도를 달성했습니다. 최근 몇 년 동안 심층 신경망은 식품 이미지를 인식하기에 적합한 솔루션으로 여러 번 검증되었습니다. 이 문서에 제시된 우리의 작품은 이를 더욱 증명하는 역할을 합니다.
단일 출력 식품 이미지 인식 접근 방식은 간단하며 간단한 응용 분야에 사용할 수 있습니다. 식품 이미지 세분화 접근 방식은 추가 이미지 준비에 더 많은 작업이 필요하지만 실제 이미지에 훨씬 더 적용 가능합니다. 미래에 우리의 목표는 실제 이미지에 대한 개발 된 절차를 더 평가하는 것입니다.
실제 검증을 향한 첫 번째 단계는 실제 음식 이미지의 데이터 세트를 포함하는 식품 인식 챌린지에 의해 제공되었습니다. 그러나 전 세계의 음식 이미지에 대한 이러한 접근 방식을 검증하고 영양사들과 협력하여 추가 작업을 수행해야 합니다.
이 문서에서 제시된 작업의 목표는 모바일 장치에서 촬영한 이미지에서 식음료 품목을 자동 인식하기 위한 기술을 개발하는 것입니다. 이 기술은 두 가지 접근 법으로 구성됩니다 - 첫 번째 접근 방식은 식품 이미지 인식을 수행하는 반면 두 번째 접근법은 식품 이미지 세분화를 수행합니다.
Explore More Videos
ABOUT JoVE
Copyright © 2024 MyJoVE Corporation. All rights reserved