Skip to main content

[Tech Team Insight #7] 산넘고 물건너 가는 먹거리 프로젝트 - 7기 정윤호, 김유림

 


제목: 산넘고 물건너 가는 먹거리 프로젝트

작성자: 7 정윤호, 김유림

 

이번 4 테크 인사이트에서는 조금 말랑말랑한 주제를 다뤄 보려 합니다. 아직 진행 중인 프로젝트이긴 하지만, SDP 테크팀이 먹거리 프로젝트를 진행하며 겪었던 여러 기술적인 한계들과 이를 해결한 방법들에 대한 이야기를 들려 드리고자 합니다.

직관적인 작명에서 있듯 먹거리 프로젝트는 우리가 매일매일 소비하는 먹거리에 대한 정보를 제공합니다. 이미 영양정보, 건강정보, 가격정보를 제공하는 서비스는 많이 있습니다. 저희가 제공하고자 정보는 바로 먹거리의 환경영향정보인데, 이러한 정보를 제공함으로써 현대 식량 시스템이 야기하는 환경 문제에 대한 인식을 제고하고, 해결책을 제안하는 것을 목표로 하고 있습니다.

전세계적으로 식량 시스템에서 생산, 유통, 소비 모든 단계에서 환경에 미치는 영향들이 커지고 있고, 각국 정부와 시민, 기업들이 다 함께 해결책을 강구하고 있는 상황입니다. 이에 따라 국가, 기업 차원뿐만 아니라, 개인이 환경 문제 해결에 기여할 있는 방안 하나인 가치 소비가 확산되고 있습니다.

가치 소비는 제품을 구매할 가격이나 기능성이 아닌 친환경지속가능성 사회적 영향을 고려하는 것은 물론전형적인 미의 기준에서 벗어나 자신만의 개성을 추구하며 소비를 하는 행위를 의미합니다.

환경 분야에서도 가치 소비가 확산되고 있는 가운데, 이에 대한 정보는 개인이 일일이 고려할 없을 정도로 방대할 아니라 때로는 신뢰도가 낮다는 문제가 있습니다. 저희는 문제점에서 출발해 식품을 구성하는 원재료들에 대한 다각도에서의 환경 영향, 나아가 우리의 신체에 미치게 영향력에 대한 정보를 수집, 검증하여 제공하고자 했습니다.

초기에 구상한 먹거리 프로젝트의 (원대한) 청사진은 모바일 어플리케이션을 제작해 유저가 오프라인 환경에서 상품 이미지를 찍었을 , 해당 상품을 구성하는 원재료명과 그에 대응하는 환경 정보를 제공받을 있도록 하는 것이었습니다.

하지만 가지 이유로 인해 개발에 앞서 크롬 익스텐션을 제작하기로 결정했습니다. 번째 이유는 크롬 익스텐션을 사용한다면 현재 코로나로 온라인 식품 구매가 증가하는 추세에다가 가치 소비에 관심이 많고 모바일 환경에 익숙한 MZ세대들을 겨냥하여 솔루션을 제공하고 피드백을 받을 있을 것이라 판단했기 때문입니다. 번째로 중요한 이유는, 많은 테크팀원들이 개발보다는 개발에 익숙하기 때문에 구현 가능성의 측면에서 비교적 쉽다는 점 때문이었습니다. 수집한 정보를 제공할 있는 방안들을 빠르게 구현하고 테스트하는 과정으로 사용될 있는 셈입니다. 과정은 DB 설계, API 구축, OCR 성능 테스트 등 개발 사전에 필요한 작업을 포함하고 있었습니다.

초기에 구상했던 익스텐션은 다음의 단계들을 거쳐 사용자에게 정보를 전달합니다. 1) 익스텐션 활성화 2) 웹페이지의 식품 원재료명 이미지 캡쳐, 3) OCR 기능 활용, 추출된 이미지에서 원재료명을 텍스트로 변환 4) DB 저장된 환경영향물질과 매칭 5) 익스텐션의 팝업 화면에서 정보 제공 5 단계로 구성되었습니다.


그러나 개발이 진행됨에 따라 프로젝트는 기술적 한계를 하나씩 마주치며, 처음의 그림에서 멀어지기 시작했습니다.

 

#난관 1. 데이터 확보

번째로 맞닥뜨린 문제는 데이터 확보의 문제였습니다. 우리 일상에서 가장 중요한 하나인 음식, 음식에 대한 규격화된 데이터가 생각보다 적었던 것입니다. 이마트의 SSG, 마켓컬리, 11번가, 쿠팡 다양한 식료품 이커머스 쇼핑몰을 둘러봤으나 대부분의 식품 데이터는 규격화된 텍스트 데이터가 아니라 라벨지 이미지의 형태로 제공되고 있었습니다.

 

그림 1. 라벨지 형태의 식품성분정보


그래서 팀원들은 사이트, 마켓컬리를 타겟으로 삼아 식품라벨지를 컴퓨터로 인식해 환경/성분정보를 제공하기로 방법을 변경했습니다. 사람이 직접 글자나 이미지 속에 있는 문자를 스캔으로 얻은 다음, 이를 컴퓨터가 인식할 있도록 디지털화하는 OCR(광학문자인식) 이용하는 것입니다. 구글에 OCR 기능 구현을 검색해보면 나오는 블로그 포스팅들을 보니 인식률이 대단히 높아 보여 더욱 용기를 얻었습니다.

 

#난관 2. OCR 텍스트 인식기능

OCR 이용해 라벨지를 인식하기로 결정하고 UI 등을 신나게 구성하던 또다른 난관에 부딪혔습니다. OCR 문자인식기능이 생각보다 너무 떨어졌던 것입니다. OCR 제대로 작동하지 않으면 다른 모든 부분이 의미가 없기 때문에, 프로젝트에 참여하는 개발 인원들이 모두 하던 것을 멈추고 OCR 기능테스트와 개선에 달려들었습니다. 가장 많이 사용한다는 테서렉트부터 카카오, 구글에서 배포하는 API까지 다양한 OCR 테스트하고 기능을 개선하려는 노력을 해봤지만 녹록치 않았습니다


 

그림 2. 기능개선을 위한 노력의 흔적

 

 

OCR 이용하려는 시도가 실패하면서 프로젝트는 가장 방향 전환을 맞았습니다. 결국엔드 개발 팀원들이 필요한 성분데이터를 손수 구축하기로 것입니다. 물론 모든 상품에 대한 성분데이터를 일일이 입력하기는 현실적으로 어려우므로 개의 대표 상품을 골라 성분데이터를 데이터베이스에 입력하고, 나머지 상품들에 대해서는 더미데이터를 채워 넣기로 결정했습니다.

 

이렇게 원시적인 방법을 써서라도 익스텐션을 완성하기로 것은 크게 가지 의미가 있기 때문입니다. 먼저 현재는 기술적 한계로 데이터베이스를 수동으로 구축했지만, 추후에 앱개발 프로젝트가 끝난 또는 개발 과정 중에 OCR 기능을 개선하게 된다면 해당 부분만 바꾸면 것이기에 틀을 잡았다는 의미가 있습니다.

번째는 우리끼리 동작할 있는 서비스를 구축해보는 경험을 얻는 것이 다음 프로젝트로 넘어갈 때에 중요한 경험이 것이기 때문입니다. 유저가 프로그램을 설치하는 것에서부터 상품을 선택하고, 원하는 정보를 열람하는 과정을 바퀴 돌아봄으로써 다음 프로젝트 설계를 어떻게 해야할 감을 잡는 데에 도움을 얻을 있을 것이라 생각했습니다.

 

#난관 3. 익스텐션 팝업화면

기술적 고민은 여기에서 끝나지 않았습니다. 크롬 익스텐션에서 제공하는 자체 UI만으로 정보를 제공할 있는 방법은 크게 2가지, 뱃지(Badge) 아이콘 클릭 나오는 팝업 화면 방식이 있는데, 저희는 팝업 방식의 익스텐션을 구현하고 싶었습니다.

 

 

그림3. 크롬 익스텐션의 뱃지

 

그림4. 크롬 익스텐션의 팝업 화면

 

그림 5. 익스텐션 디자인

 

그림처럼 초기 기획은 상품에 아이콘을 띄우고, 해당 아이콘을 클릭했을 , 팝업 화면이 나오는 것으로 구상했습니다.

이를 위해서 크롬 익스텐션이 활성화되었을 , 상품 목록 웹사이트에 방문하면 자동적으로 저희가 작성한 스크립트가 실행되도록 했습니다. 위처럼 이미지를 찾고, 이미지 아래에 아이콘이 추가됩니다.

팝업 화면 UI 제작한 이후, 사용자가 아이콘을 클릭했을 , 오른쪽 상단의 팝업 화면에 원재료명에 대한 환경 영향 정보를 제공하도록 연결되도록 코드를 작성하고 있었습니다. 그러던 , 브라우저의 아이콘을 클릭해도 익스텐션의 팝업 화면이 팝업될 없다는 것을 알게 되었습니다. 구글 크롬 디자이너들이 programmatically 팝업 화면이 띄워질 없도록 설계했기 때문이었습니다.

이를 해결하기 위해, 새로운 DOM element 만들어 해당 탭의 html 문서에 삽입하는 방식을 사용하기로 결정했습니다. 해당 html 문서에 이미 삽입한 javascript파일에서 원하는 스타일과 구조의 DOM element 만들어, 특정 위치로 삽입했습니다. 그리고 z-index 가장 높게 하여 어떤 페이지에서 팝업이 되더라도 저희가 만든 DOM element 최상단에 올라올 있도록 구성했습니다. 방식을 사용함에 따라 추가적으로 팝업 화면을 드래그해서 움직이게 있거나, 최소화 버튼을 사용하여 익스텐션이 실행되고 있음을 시각적으로 부각시킬 있는 부가적인 장점을 얻을 있었습니다.

 

비록 처음에 의도한 모습과는 달랐지만, 익스텐션 개발을 하다 보니 기술적으로 보완해야 점을 많이 발견했다는 의미가 있었습니다. 먼저 데이터베이스의 경우, 예상했던 것과 다른 모습의 식품 성분 데이터들을 발견하고 추후에 이러한 데이터를 어떻게 처리해야 할지 고민해볼 있게 되었습니다.

또한, 데이터베이스를 구축/관리하는 인원들이 데이터베이스를 다뤄본 경험이 적어 처음에는 데이터베이스 개에 모든 데이터를 무식하게 집어넣으려 했지만, 조금 데이터를 효과적으로 관리하기 위해 다음 프로젝트로 넘어갈 때에는 관계형 데이터베이스를 설계하기로 결정할 있었습니다.

 

UI 디자인하고 아키텍쳐를 설계하며, 사용자가 어떻게 사용하면 편리하게 서비스를 이용할 있을지 고민해보는 시간도 값진 경험이었습니다. 비록 웹과 어플리케이션은 조금 다른 유저를 타겟으로 하고 구동방식에도 차이가 있지만, 익스텐션을 제작하면서 얻은 지식들이 개발에도 도움이 되겠죠.

 

지금은 슬프게도 OCR 적용할 없지만, 앱을 제작하면서 결국 구현해야 하는 기능입니다. OCR기능 구현을 추후 프로젝트로 미루고 뼈대를 세우는 것에 집중하기로 이유는 OCR 성능 향상 연구가 다음 프로젝트인 앱개발 타임라인에까지 영향을 주는 것을 우려했기 때문입니다. 이번에 시도한 이미지 전처리는 bitwise grayscale 변환하는 것이었지만, 이외에도 텍스트의 경계를 구분지어 인식하는 보더링, 이미지가 깨지지 않고 인식되도록 하는 리사이징 등의 다양한 전처리 기법이 있습니다. 이러한 전처리 기법을 이용해 원하는 수준까지 성능을 끌어올릴 있을 것입니다.

 

이번 테크 인사이트에선 먹거리 프로젝트를 진행하며 겪었던 기술적 이슈들을 다뤄보았습니다. 이 글이 저희와 유사한 프로젝트 또는 비슷한 베이스에서 협업 프로젝트를 진행하는 분들께 유의미한 인사이트를 제공할 수 있었으면 합니다.


Comments

Popular Posts

[Research Team Insight #1] The A to Z of SDP Research Team

[10월호, 2020년] 세계시민의식과 SDGs에 대해 묻다: 강동렬 UN SDSN Youth Korea 총괄 인터뷰 - 4기 유재희, 이소정

 "개인의 움직임은 과연 얼마나 중요할까?" 위의 질문에서부터 본 인터뷰는 시작된다. SDP는 현재 지속가능발전 글로벌 리더가 되고자 거시적인 시각에서 에너지와 인프라에 관심을 가지고 활동하고 있다. 우리는 다양한 외부 기관으로부터 지지를 받으며 유의미한 성과를 내고 있지만, 혹 멀리서 커다란 모습에만 집중한 나머지 개개인이 일상에서 지속가능함을 위해 노력하는 미시적인 움직임을 놓치고 있는 것은 아닐까. 세계시민의식을 가지고 살아간다는 것은 어떠한 의미인지, 우리가 생활에서 실천할 수 있는 방법은 무엇일지 고민하게 되었다. 강동렬님은 세계시민교육가이자 지속가능발전활동가로, UN SDSN Youth Initiative 한국 총괄로 계시며 SDP의 활동에도 언제나 많은 도움을 아끼지 않으신다. SDP는 지난 8월, 재생에너지와 시민의식을 주제로 동렬님을 모시고 공개 세미나를 추진하였으나 코로나19 상황 악화로 인해 잠정 연기한 일이 있다. 우리의 질문과 맞닿아 있는 세미나를 기다리며, 동렬님이 중요하게 생각하시는 가치와 활동은 무엇인지 SDP가 작은 인터뷰를 통해 들어보고자 하였다. 4기 유재희, 이소정

[3월호, 2021년] #32 딥 페이크(Deep Fake)와 디지털 포렌식(Digital Forensic) - 7기 진희주

  딥 페이크(Deep Fake)와 디지털 포렌식(Digital Forensic) 7기 진희주 아래 사진 중 무엇이 실제 오바마의 사진일까 ? 네 장 모두 딥 페이크 기술을 통해 인공지능이 만든 오바마의 사진이다 . 딥 페이크 (Deep Fake) 는 Deep Learning 과 Fake 의 합성어이다 . 딥 페이크는 AI 를 이용해 특정인의 얼굴이나 목소리를 합성한 사진 , 영상 , 음성 편집물 및 그 기술을 통칭하는 단어이다 . 딥 페이크 기술은 새로운 유형의 신경망 ( 머신러닝 알고리즘 ) 발전으로 가능해졌다 .   딥 페이크 기술을 활용하면 유명인의 얼굴을 대역에 합성해 손쉽게 영상을 만들거나 세상에서 사라진 멸종 위기 종이나 과거의 사람들을 생생하게 재현할 수도 있게 된다 . 여러 사람의 얼굴을 통해 가상의 얼굴을 제작하여 사용하거나 스타일 트랜스퍼 (Style transfer) [1] 를 활용해 겨울을 여름으로 , 또는 화창한 날을 비 오는 날로 묘사하는 등 이미지의 환경적 맥락을 바꿀 수 있는 등 딥페이크 기술의 영상 • 사진 산업 분야의 활용도와 가치는 무궁무진하다 .   하지만 딥 페이크는 엄청난 힘에 걸맞게 악용 가능성이 높아 그 위험성에 대한 논란이 최근 활발하게 이뤄지고 있다 . 대표적인 악용사례는 유명 연예인을 합성한 불법 포르노 , 전•현직 대통령의 얼굴을 합성한 가짜뉴스 영상 등으로 사회를 큰 혼란에 빠뜨릴 수 있음을 보여준다 . 딥 페이크 범죄의 대상은 유명인을 넘어 점차 일반인에게까지 확장되고 있다 . 헤어진 연인 , 또는 지인의 얼굴을 다른 나체 사진이나 성인물 동영상과 합성하여 만든 딥 페이크 제작물을 온라인 상에서 유통하거나 이를 통해 협박하는 등 딥 페이크 영상은 점차 심각한 사회적 문제로 대두되고 있다 . 2019 년 4 월 국내에서 큰 논란이 되었던 텔레그램 N 번방 사건에서도 딥페이크를 악용한 사진이 거래 , 유포된 정황이 확인되어 그 심각성이 전면으로 드러나게 되었다 .   딥 페이크 기

[11월호, 2020년] Countermeasures against urbanization: Air pollution in Seoul - 5기 함이수

Countermeasures against urbanization: Air pollution in Seoul 55% of the world population resides in urban areas as of 2018, according to a UN report. The overly populated urban population has given rise to problems that people were not aware of in the past. Especially, the impacts of urbanization on the environment are slow to be seen thus has been accumulating, invisible to the human eye. What has been done to address these problems? Furthermore, how should we approach these issues henceforward?

[Research Team Insight #2] Project MaPPPing and the role of Research Team - 5기 권경민, 6기 김예빈

1.       What is Project MaPPPing   SDP is constituted of students who have great interest in sustainable development, and we refer to the SDG goals articulated by the UN as the global standard for sustainable development. This year, we have specifically focused on goal number 9 and 11 that emphasizes the role of infrastructure in sustainable development [1] . We believe that sustainable and resilient infrastructure is at the heart of sustainable growth, so we have launched a project called Project MaPPPing in December 2019.