DOI QR코드

DOI QR Code

Development of Hazardous Food Notification Application Using CNN Model

CNN 모델을 이용한 위해 식품 알림 애플리케이션의 개발

  • Yoon, Dong Eon (Dept. of Computer & Media Eng., Graduate School, Tongmyong University) ;
  • Lee, Hyo Sang (Dept. of Computer & Media Eng., Graduate School, Tongmyong University) ;
  • Oh, Am Suk (Dept. of Digital & Media Eng., Tongmyong University)
  • Received : 2022.01.10
  • Accepted : 2022.03.07
  • Published : 2022.03.31

Abstract

This research is to raise awareness of food safety by designing and supporting a hazard food information notification platform for consumers. To this end, the design was carried out by dividing the process into a data extraction process, an application screen design process, and a CNN-based food inference process. Data was collected through public data APIs and crawling, and it was sent to each activity screen designed for Android studios so that it could be output. As a result, when the platform is executed, information on hazardous food names, registration dates, food classification, manufacturing dates, recovery grades, recovery reasons, recovery methods, company names, barcode numbers, and packaging units can be intuitively and conveniently checked. In addition, CNN-based food inference processes allowed mobile cameras to infer harmful food and applied various quantization techniques such as Dynamic Range, Integer, and Float16 to compare the degree of improvement in inference performance. As a result, the group that applied basic quantization and treated device resources with GPU showed the greatest improvement in inference performance. Through this platform, it is expected that the reliability of food safety will be improved by making it more convenient for consumers to recognize food risks.

Keywords

1. 서론

최근 1인 가구의 증가, 코로나 19, 전자상거래 시장의 발전 등으로 인해 소비자들의 식품 소비 양상이 변화하고 있다. 특히 온라인 쇼핑 전체 거래액에서 음식료품과 농수축산물, 건강기능식품을 포함한 식품거래액이 차지하는 비중은 20%를 넘을 정도로 식품에 대한 소비자들의 관심이 높다[1].하지만 농식품 및 음식의 배달 수요가 커지면서 이와 관련된 식품위생법 위반 사례[2]가 2020년 이후 3배 이상 폭증하였고 이로 인해 식품안전에 대한 소비자의 불안이 커졌다.식품의약품안전처에서는 안전한 식품에 대해 HACCP(Hazard Analysis and Critical Control Point)인증을 부여하는 제도[3, 4]를 도입하고, 웹이나 모바일 애플리케이션을 통해 국내외 위해 식품 적발 사례를 투명하게 공개하는 등 식품 안전을 위해 노력하고 있으나, 검색, UI등 편의성 면에서 불편한 점이 많았다. 이에 본 논문에서는 CNN모델을 이용한 위해 식품 알림 애플리케이션을 데이터 추출 프로세스, 애플리케이션 화면 설계 프로세스, CNN(Con- volutionNeuralNetwork)기반 식품 분류 프로세스로 나누어 제안함으로써 식품안전에 대한 소비자의 불안을 해소하고 부족한 식품안전 모바일 애플리케이션을 지원하고자 한다.

본 논문은 다음과 같이 구성된다.2장의 관련 연구에서는 기존에 개발된 위해식품 알림 애플리케이션 3가지의 특징과 기능을 소개하며, 각각의 문제점을 통해 본 연구의 필요성을 설명한다.3장에서는 위해 식품 정보 알림 애플리케이션의 설계 과정을 설명한다. 먼저 애플리케이션 설계 개요에서는 데이터 추출프로세스, 애플리케이션 화면 설계 프로세스, CNN 기반 식품 분류 프로세스 순으로 전체적인 개발 과정을 서술한다. 세부 과정으로 데이터 추출 프로세스에서는 데이터를 수집한 방법과 환경에 대해 설명하고, 애플리케이션 화면 설계 프로세스에서는 화면 UI 설계에 대해 설명하며, CNN기반 식품 분류 프로세스에서는 분류를 위한 준비단계를 설명할 것이다. 그리고 4장의 애플리케이션 개발에서는 위해식품 정보 알림 애플리케이션의 개발 결과와 CNN모델 기반 이미지 분류 결과를 확인하고 성능 개선에 따른 추론 소요시간을 비교하며 개선점을 찾고 5장에서 결론을 맺으며 마무리할 것이다.

2. 관련 연구

식품위생법 위반 사례의 급증에 따른 소비자들의 피해가 커졌으며 식품의약품안전처 같은 정부 부처나 민간에서는 이러한 피해를 줄이고자 식품 관련 정보를 제공하는 다양한 애플리케이션들을 개발하였다. 대표적인 식품안전 애플리케이션으로는 식품안전나라, 엄선, 워치독 등이 있고[5], 이들이 제공하는 기능과 특징은 다음과 같다.

첫 번째로 식품의약품안전처에서 운영 중인 식품안전나라는 식품안전관련 이슈와 뉴스, 건강한 식생활을 위한 각종 콘텐츠와 레시피를 제공[6, 7]하는 기능을 가진다. 국내·외에서 회수 및 판매중지 조치된위해 식품들에 관한 정보를 확인할 수 있으며 식품 전자 민원 서비스를 제공한다. 또한, 식품 포장지의 바코드를 인식하면 해당 식품의 제조년월, 제조사, 제품번호를 알려주는 기능도 제공한다[8-10]. 하지만 식품의 기능성 정보를 찾기 위해서는 원료명, 제품명의 풀네임을 입력해야 하는 점과 시스템상의 고질적인 오류로 인해 위해식품에 대한 신고 접수나 바코드 인식이 제대로 이루어지지 않는다는 단점이 작용하여 소비자들의 평점과 이용률이 저조했다.

두 번째로 엄선은 10, 000여가지가 넘는 다양한 식품들에 들어간 식품첨가물, 영양성분 등을 분석하여 손쉽게 확인할 수 있도록 도와준다.각 식품첨가물에 따라 위험등급을 나누어 위험정보를 제공하고 있고, 빅데이터[11, 12]를 이용해 주의성분이 없는 식품을 실시간으로 추천해준다. 그러나 식품안전나라와 마찬가지로 소비자가 찾고자 하는 식품을 검색할 때 몇몇 상품의 검색 결과가 나오지 않는 불편이 존재했다. 따라서 직접 식품명을 입력하는 것뿐만 아니라 카테고리를 별도로 만들거나 식품 이미지를 클릭하면 조회할 수 있게 하는 등 모바일 UI를 개편할 필요가 있었다.

세 번째로 워치독은 식품안전나라와 엄선과 다르게 편리한 위해식품 검색 기능을 제공한다. 부분 검색이 가능하며 찾으려는 식품과 연관되는 식품 목록을 보여주고, 회수 및 판매중지 조치된 위해 식품이 새로 추가될 때마다 푸시 알림으로 알려준다. 단점으로는 검색 가능한 식품의 종류가 적어 소비자가 찾는 위해 식품이 검색되지 않을 수 있다.

이에 본 연구에서는 모바일 환경에 적합한 CNN 모델을 제작하고 애플리케이션과 결합하여 기존 연구들에서 종종 발생한 위해식품을 검색하기 불편했던 문제를 해결하고자 한다.CNN과 같이 이미지 처리에 특화되고 모바일 환경에 적합한 모델로는 구글에서 개발한 MobileNet이 있었다.MobileNet은 효율적인 연산을 위해 Depthwise Separable Convolution 을 활용하여 크기를 경량화한 네트워크[13, 14]로, 기존 이미지 분류 모델들에 비해서 정확도는 낮으나 모바일 환경에서도 오류 없이 이미지 분류를 수행한다.

3. 위해식품 알림 애플리케이션의 설계

3.1 애플리케이션 설계 개요

본 논문에서 제안하는 애플리케이션은 안드로이드 스튜디오, Visual Studio Code통합 개발 환경과파이썬 3.9버전, Tensorflow Lite 2.4.0 버전을 활용하여 설계되었으며 기존 플랫폼들의 검색 기능에 CNN모델 기반 이미지 추론 기능을 더하여 편의성을 높였다. 먼저, 데이터 추출 프로세스에서는 파이썬 언어를 이용하여 웹 크롤링을 수행함으로써 위해 식품에 관련된 이미지, 텍스트 데이터를 수집한다. 이중 불필요한 데이터는 전처리하고 남은 데이터를 CSV파일, png및 jpg형식의 데이터셋 등으로 구조화한다. 이 중 이미지 데이터셋은 텐서플로우를 이용하여 CNN모델을 설계하고 학습하는데 사용한다. 컴퓨팅 자원이 제한되는 모바일 환경에서 딥러닝을 수행하기 위해 Tensorflow Lite를 통해 모델의 크기를 감소시키는 방향으로 CNN을 변환하고 tflite 형식으로 저장한다. 이렇게 수집한 각각의 모델과 텍스트데이터는 애플리케이션 화면 설계 프로세스에서 유해 식품 관련 정보를 표시하거나 카메라에 인식된 객체가 유해식품인지 추론하는 액티비티(Activity) 로 활용된다. Fig.1은 위해식품 정보 알림 애플리케이션의 전체적인 설계 흐름도를 나타낸 것이다.

Fig. 1. The design flowchart of the Hazard food information notification platform.

3.2 데이터 추출 프로세스

본 논문은 행정안전부가 운영하는 공공데이터 중 위해 식품에 관련된 오픈 API(Application Program Interface)와 식품의약품안전처에서 운영하는 식품안전나라의 웹페이지를 크롤링하는 방식으로 데이터를 추출하였다. 효율성을 높이기 위해 메인 쓰레드 (Thread)외에 텍스트 크롤링과 이미지 크롤링을 담당할 2개의 서브 쓰레드를 생성하여 위해 식품 관련 텍스트 정보 데이터와 모델 학습용 이미지 데이터를 따로 수집하게 하였다. 수집한 텍스트 데이터에서 제품명, 등록일, 식품 분류, 제조일자, 회수등급, 회수 사유, 회수방법, 업체명, 바코드번호, 포장단위의 10개컬럼(Column)을 선택하고 입력이 누락된 결측치나 제품명이 중복된 데이터를 제거하는 방식으로 전처리한다. 이미지 데이터는 적절한 크기의 데이터셋으로 Crop및 Resize하여 텐서플로우의 CNN모델 학습에 이용한다.

3.3 실시간 이미지 추론 프로세스

유해식품 이미지를 실시간으로 분류하기 위해 Intent를 이용하여 추론 결과를 전달받는 방식이 아닌 카메라 API(adnroid.hardware.camera2)를 이용하여 이미지를 가져오고 백그라운드 스레드로 추론을 수행하였다. RealtimeClassifiActivity가 최초로 실행되면 카메라 권한 여부를 묻고 승인시, 카메라를 열고 CameraAcquisition에서 획득한 영상을 전달받는다. 전달받은 이미지는 CNN모델이 추론 하기용이 한 크기로 변환된 후 CNN Classifier 액티비티로 전달한다.해당 액티비티에서 수행한 위해식품 이미지의 추론 결과가 다시 ReatimeClassifiActivity로반환되며, ImageButton을 클릭하면 결과값을 다이얼로그(Dialogue)에 표시한다. Fig.2는 카메라 API 을 이용하여 실시간으로 얻은 이미지를 추론하는 과정을 나타낸다.

Fig. 2. The image inference process obtained through the camera API.

딥러닝 모델로 실시간 추론을 수행할 때, 입력데이터의 크기를 줄이는 것도 중요하지만, 디바이스 설정 변경, 최적화 등 다양한 방법으로 추론 소요 시간을 줄여 성능을 개선하는 것도 중요하다. 본 논문에서는 모델의 추론 성능을 개선하기 위해 텐서플로우에서 학습된 모델을 텐서플로우 라이트 모델로 변환할 때 쓰이는 학습 후 양자화 기법과 CPU(Central ProcessingUnit)스레드 사용 설정이나 GPU(Gra- phicsProcessingUnit)를 사용 설정을 적용하였을 때 추론 소요 시간의 변화 결과를 안드로이드 화면에 표시하여 실험하였다. 학습 후 양자화 기법은 학습할 때에는 기존 32bit 부동 소수점을 쓰고, 학습이 끝나면 이를 16bit 부동 소수점이나 8bit 고정 소수점까지 줄여 모델의 크기와 추론 소요시간을 단축하는 방법이다. 하지만 양자화 과정에서 모델의 크기가 줄어 인식률이 떨어지는 점 때문에 추론을 수행할 기기가 어떤 연산을 지원하는지, 대표 데이터셋이 있는지 등을 고려하여 Dynamic Range 양자화, Integer 양자화, Float16 양자화를 수행하였다.

4. 위해식품 알림 애플리케이션의 개발

4.1 위해식품 분류 기능 개발

설계가 완료된 애플리케이션은 메인 화면과 상세검색 화면, 카테고리 선택 화면, 위해식품 추론 화면, 위해 식품 상세정보 화면으로 구성된다. 어플을 실행하면 제일 먼저 메인화면이 출력되며 많이 적발된 위해 식품 Top5, 최근에 적발된 위해식품들에 대한정보를 확인할 수 있다. 메인 화면의 SearchView UI(User Interface)를 클릭하면 상세검색 화면으로 이동하며 크롤링으로 수집 및 저장되고 있는 모든 위해 식품 목록을 확인하고 검색할 수 있다.메인 화면에서 위해식품 카테고리는 건강 기능 식품, 가공식품, 농수축산물의 3가지 아이템(Item)으로 구분하고, 메인 화면에서 카테고리 아이템을 클릭 시 카테고리 선택 화면으로 해당되는 데이터를 Intent로 보내고 Grid, Layout형태로 보여준다.메인화면이나 상세검색 화면, 카테고리 선택 화면에서 위해 식품 이미지들을 클릭하면 데이터 추출 프로세스를 통해 전 처리된 10개의 컬럼 데이터(Text)와 이미지 데이터 (Image)를 확인 가능한 위해식품 상세정보 화면으로 이동한다.

본 논문에서는 기존 검색 기능의 편의성을 대폭향상시키기 위하여 실시간 이미지 추론 프로세스를 기반으로 설계된 위해 식품 추론 화면을 추가하였고 총 4단계의 동작 이벤트(Event)를 가진다.위해 식품 추론 화면에서는 자동으로 카메라가 켜지고, 객체를 비추면 이미지 추론 프로세스에 의거하여 위해 식품이면 오프셋(Offset)을 찾아 객체 주위에 파란색 박스를 실시간으로 그리는 1단계가 수행된다. 하단의위해 식품 추론 ButtonUI를 클릭하면 최상단에 이미지 추론 결과 정보를 가진 다이얼로그 메시지가 출력되는 2단계가 수행된다. 출력된 다이얼로그 메시지를 클릭하면 위해식품 상세정보 화면으로 이동하는 3단계가 수행되며, 해당 액티비티에서 추론 결과에 해당하는 위해식품 정보를 보여주며 4단계를 마무리한다. Fig.3은 위해 식품 정보 알림 애플리케이션의 구현 결과를 나타낸다.

Fig. 3. Hazard food information notification platform design result.

4.2 성능 개선 기법에 따른 추론 소요시간 비교 결과

CNN 모델의 추론 성능 개선을 확인하기 위한 지표로 추론 소요 시간(단위는 Millisecond, msec)을이용하였다. 실험 결과, 추론 소요시간이 가장 짧았던 집단은 GPU를 사용하고 양자화되지 않은 집단으로 이미지추론에 21Millisecond가 소요되었다. 반면, 추론 소요시간이 가장 길었던 집단은 CPU의 스레드를 1개 사용하고 DynamicRange양자화 기법을 적용한 집단으로 이미지 추론에 91Millisecond가 소요되었다. Dynamic Range 양자화, Integer 양자화, Float16양자화 기법을 적용한 모델과 CPU 스레드의 개수 설정, GPU사용 설정에 따른 추론 성능을 비교한 결과는 Table 1과 같다.

Table 1. Time required for inference according to device setting and quantization technique.

5. 결론

본 논문에서는 식품안전에 대한 소비자의 불안을 해소하기 위해 딥러닝 기반 위해 식품 정보 알림 애플리케이션의 설계를 제안하였다. 먼저 데이터를 수집하기 위해 오픈 API를 가져오거나(Import)파이썬내 라이브러리를 사용하여 크롤링을 진행한다. 여기서 수집된 데이터의 일부를 파싱(Parsing)하고 결측값은 삭제 및 대체하는 전처리 과정을 거쳐 텍스트데이터와 이미지 데이터를 따로 추출하였다. 추출된데이터들은 애플리케이션의 화면에 표시되어 정보전달을 목적으로 쓰이게 했는데, 실시간 이미지 추론 기능을 추가하여 모르는 위해식품이 있을 때 손쉽게 검색할 수 있도록 편의성을 높였다. 이미지 추론에 주로 쓰이는 CNN모델을 기반으로 실시간 이미지 추론 프로세스를 설계하고 디바이스 설정이나 양자화 기법을 적용했을 때 추론 성능이 얼마나 개선되는지 비교 및 확인하였다. 추론 결과, GPU를 사용하고 기본 양자화 설정된 집단에서 추론 성능이 가장 많이 개선된 것으로 나타났다. 이는 기존 기기에 32bit 부동소수점 단위의 양자화가 기본으로 적용되어 있고, GPU를 사용하면 CPU의 메인 쓰레드가 처리해야 할 작업의 양이 상당히 분산되기 때문이다. 제안한 딥러닝 기반 위해식품 정보 알림 애플리케이션을 통해 식품 안전에 대한 소비자의 신뢰성을 제고하고 부족한 모바일 플랫폼을 지원해줄 수 있을 것이라 기대한다. 아울러, 향후 가중치 클러스터링, 가지치기, Full Integer 양자화 등의 다양한 방법을 적용하여 추론성능을 향상시킬 방안에 대해서도 계속적인 연구를 하고자 한다.

References

  1. The implementation plan for the food industry in 2021, https://www.mafra.go.kr/mafra/366/subview.do?enc=Zm5jdDF8QEB8JTJGYmJzJTJGbWFmcmElMkY3MSUyRjMyNjczNSUyRmFydGNsVmlldy5kbyUzRg%3D%3D (accessed March 25, 2021).
  2. D.Ch. Sha and H.J. Jeon, "A Study on the Simple Processed Food Safety Management in FOOD SANITATION ACT," Journal of Hongik Law Review, Vol. 21, No. 2, pp. 447-472, 2020. https://doi.org/10.16960/JHLR.21.2.202006.447
  3. S.T. Lee, "Strategies Towards the Development of Agrifood Voluntary Standards," The Journal of International Trade & Commerce, Vol. 14, No. 4, pp. 339-352, 2018.
  4. M.N. Lee and A.J. Lee, "Testing the Relationship of Environmentally-Friendly Food Consumption Value on Purchase Intention and the Mediator Effect of Attitude," Food Service Industry Journal, Vol. 13, No. 2, pp. 177-187, 2017.
  5. J.E. Son, E.T. Jung, and J.K. Paik, "Analytical Study on the Design and Function of Food Safetey Application," The Journal of the Korea Contents Association, Vol. 19, No. 4, pp. 91-101, 2019. https://doi.org/10.5392/JKCA.2019.19.04.091
  6. KCA, Investigation on the Distribution of Non-Edible Ingredients and Related Foods, Safety Report, 2020.
  7. J.E. Yun, "Necessity of Providing More Detailed and Specific Information on Drugs Prohibited by the Ministry of Food and Drug Safety," Korean Journal of Health Promotion, Vol. 20, No. 4, pp. 211-213, 2020. https://doi.org/10.15384/kjhp.2020.20.4.211
  8. H.A. Kim and H.Y. Jung, "A Study of Consumer Perceptions of Food Safety and Food Buying Behavior," Culinary Science & Hospitality Research, Vol. 24, No. 3, pp. 93-103, 2018. https://doi.org/10.20878/cshr.2018.24.3.009009009
  9. S.Y. Gwon, "The Current Status of Smarter Food Safety Management," Food Science and Industry (Food Sci. Ind.), Vol. 54, No. 3, pp. 124-131, 2021. https://doi.org/10.23093/FSI.2021.54.3.124
  10. S.I. Hong, "Investment Policy and Trends of Agri-Food R&D in Major Overseas Countries," Food Science and Industry (Food Sci. Ind.), Vol. 53, No. 4, pp. 410-421, 2020. https://doi.org/10.23093/FSI.2020.53.4.410
  11. T.Y. Ha and H.J. Lee, "Analysis on the Mobile Healthcare Behavior using an Artificial Intelligence Based Pose Estimation," Journal of the Institute of Electronics Engineers of Korea, Vol. 57, No. 1, pp. 63-69, 2020.
  12. J.S. Park, D.Y. Yeo, Y. R. Choi, J.H. Lee, and C.H. Bae, "Implementation of a Deep-Learning Model for Intelligent Detection of Low-Level Leaks in Plant Piping System," Proceedings of KI IT Conference, pp. 431-435, 2021.
  13. M.H. So, CH.S. Han, and H.Y. Kim, "Defect Classification Algorithm of Fruits Using Modified MobileNet," Journal of Korean Institute of Information Technology (JKI IT), Vol. 18, No. 7, pp. 81-89, 2020. https://doi.org/10.14801/jkiit.2020.18.7.81
  14. Y.J. Lee and H.H. Park, "A Study of Lightening SRGAN Using Knowledge Distillation," Journal of Korea Multimedia Society, Vol. 24, No. 12, pp. 1598-1605, 2021. https://doi.org/10.9717/KMMS.2021.24.12.1598