brunch

You can make anything
by writing

C.S.Lewis

by 카카오 Sep 27. 2018

벚꽃과 살구꽃, 구분할 수 있나요?

Image classification : 비슷한 꽃을 구분하는 인공지능



여러분들은 벚꽃과 살구꽃을 구분할 수 있으신가요? 나팔꽃과 고구마꽃은요? 


한적한 오솔길을 걷다가, 혹은 도심 속 화단에서, 시골길 담장 곁에서 예쁜 꽃을 볼 때면 마음의 안식을 얻곤 합니다. 그러다 이내 궁금해지곤 하죠. 


저 꽃 이름이 뭘까?


꽃에 대해 약간의 지식이 있는 사람도 벚꽃과 살구꽃, 나팔꽃과 고구마꽃을 헷갈려하곤 합니다. 하물며 혼자인 상황에 관련 지식이 거의 없다면 궁금증은 어물쩍 뒤로 묻어둘 수밖에 없었죠. 하지만 2016년 5월, Daum이 꽃검색 서비스를 정식으로 시작하면서 이런 일들은 옛이야기가 됐습니다. 

당시 국내에서 주로 피는 400여 종의 꽃을 대상으로 시작해 2018년 9월 현재 1,083종의 꽃을 구분할 수 있게 됐습니다. 이 정도 식별력이면 대한민국 어디서나 대부분의 꽃들을 구분할 수 있다고 합니다.


Daum 앱이 지원하고 있는 '꽃검색' 기능. (출처 : 다음앱 공지사항 http://kko.to/eHyNQghTH)



수많은 학습을 통해

가장 높은 확률값을 찾아내는 딥러닝


그렇다면, 그 속에 어떤 메커니즘이 숨겨져 있을까요?

핵심은 CNN(Convolutional Neural Networks)으로 대표되는 딥러닝(Deep Learning) 기술. 수십여 개의 레이어(Layer)를 거쳐 1,083개 꽃들의 확률값을 각각 계산하고 가장 높은 확률의 꽃을 찾아내는 방식입니다. 작업이 거듭될수록 학습 분량이 늘어나고 정확도 또한 높아지게 되죠.


유사한 꽃들은 확률값의 높낮이에 따라 답변으로 제시될지 여부가 결정됩니다. 이용자가 촬영 버튼을 눌러 답변이 제시되기까지 연산에 소요되는 시간은 단 0.1초. 1,083종에 대한 식별 정확도는 93%에 달합니다.


널리 알려지고 주위에 흔한 꽃들은 웹상에 많은 사진 데이터가 존재합니다. 하지만 희귀한 꽃 품종은 사진 데이터의 수집이 어렵습니다. 이로 인해 발생하는 데이터 불균형 문제를 해결하기 위해 데이터를 변형하고(Data Augmentation), 균형 있게 선택하는(Oversampling)등 많은 노력이 뒷단에 숨어 있습니다.


Kakao i Fine-grained image Classification 소개 영상


딥러닝 네트워크 구조가 지속 발전하고 있고 여러 이용자가 꽃검색을 거듭해주시는 만큼 세계 곳곳의 모든 꽃을 단 한 번의 촬영으로 식별해 낼 날이 가까워지는 것 같습니다.


조금 더 자세한 기술적 설명을 원하신다면 이곳을 참조해주세요 
kakao i 멀티미디어 처리 기술에 관한 글은 아래와 같은 순서로 발행됩니다.

(발행한 글)
- 라이언의 코, 어떻게 내 코를 따라다닌거지? (Face Alignment 기술)

(이번 글)
- 벚꽃과 살구꽃, 구분할 수 있나요? (Convolutional Neural Networks 기술을 활용한 꽃검색)

(이어서 발행할 글들)
- 유명해야만 '얼굴이 명함'일까요? (얼굴 인식 기술)
- “그 옷 어디서 샀어?”라는 질문, 사라질 수도 있다 (유사이미지 검색 기술)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari