brunch

You can make anything
by writing

C.S.Lewis

by 배울장 Apr 10. 2019

머신러닝이 바꿔놓은 것

이미지처리씬의 전통 영상처리부터 세이지메이커까지

바야흐로 개인서버 없이 머신러닝을 하는 시기가 왔다. 머신러닝이 뭐냐고? 그렇다면 머신러닝이 유행하기 전에는 어땠는지 알면 이해하기 쉽다.


머신러닝이 유행하기 전, 이미지를 인식하기 위해서는 이미지를 여러 방법으로 가공해서 특징을 뽑아냈다. 대표적인 알고리즘은 이미지에 미분연산을 수행해서 변화를 알아내거나, 이진화를 통해 이미지를 극단적으로 만들기도 했다. 그렇게 단순화를 통해서 사람이 생각해낼 수 있는 알고리즘을 적용하는 것이다. 예를들어 숫자를 인식할 때 숫자와 배경을 구분하는 엣지를 추출하고 그 엣지의 모습과 가장 가까운 숫자로 인식하는 방법이다. 비교할 대표적인 엣지를 사람이 만들어줘야 했다. 그 경계를 정하는 것이 인식률에 상당한 영향을 미쳤고 노다가를 통해 얻을 수 있었다. 여기까지는 전통적인(?) 이야기다.


머신러닝이 유행하고 뭐가 바뀌었느냐. 엣지를 추출할지, 미분연산을 할지 그런 방법론을 사람이 생각하지 않고 머신이 스스로 해보고 아님말고 식으로 최대한 정답에 가까운 연산을 찾아가는 것이다. 사람이 해야할 일은 그저 인식하고 싶은 이미지를 준비하고 대표 이미지 여러장을 분류해놓고 머신에게 맡기는 것이다. 획기적이지 않은가?


조금 어려운 말을 섞으면 이미지 인식에는 대부분 CNN이라고 하는 구조를 사용하는데 이미지에 작은 필터를 여려겹으로 겹쳐 적용하면서 특징을 추출해가는 방식이다. 그리고 유행이 막 시작할 때 쯤 나도 그 흐름에 올라타 CNN을 이용하여 이미지 인식을 해봤다. 내가 먹은 음식들 사진을 찍는 김에 뭘 먹었는지 분류하는 서비스를 만들고자 치킨과 김치, 피자 등을 분류하는 모델을 만들었다. 여기서 모델은 어떤 것을 분류하기 위해 알고리즘을 얼추 찾은, 즉, 학습이 진행되어 분류가 가능한 것을 말한다.


이미지 인식 모델을 만드는 과정은 다음과 같다.


먼저 당신이 인식하고 싶은 이미지가 있다면 그것을 모아야한다. 나는 구글에서 모았다.

구글에서 모은 음식사진

이미지 크롤링이 생소하신 분들이 있을텐데, 이미지 우클릭, 다른 이름으로 저장을 무한 반복하는 것이다.

그리고 사진들을 폴더별로 정리한다. 그리고 사용하고 싶은 구조에 따라 조금씩 달라진다. 구조는 다른 글에서 이야기하도록 하고, 여기서는 당시 굉장히 핫한 모델인 인셉션v3 구조를 사용했다. 그 결과는 아래에 있는 사진처럼 치킨을 잘 인식하는 것을 볼 수 있었다.


치킨 90%!!

이 작업은 2년전에 한 것으로 지금은 훠어어얼씬 좋아졌다. 이때 사용한 컴퓨터는 베트맨 아캄나이트라는 게임을 하기 위해 구입한 그래픽카드 GTX 1060으로 트레이닝을 했다.

머신러닝은 좋은 컴퓨터가 없으면 할 수 없었다. 하지만 지금은 다르다.


비자가 붙은 신용카드만 있다면 아마존웹서비스의 서비스를 이용해 몇천원으로 상당한 고가의 그래픽카드를 이용해서 학습을 시킬 수 있다. 물론 여기서 사용하는 것은 그래픽카드는 아니고 TPU라고 하는 따끈따끈한 연산장치이다.


아마존웹서비스의 대표적인 머신러닝 서비스는 세이지메이커이다. 간단하게 사용법을 정리해놓은 튜토리얼이 여기에 있다. 세이지메이커를 이용해 사양이 좋지 않은 컴퓨터에서도 매우 훌륭하고 빠른 학습을 할 수 있다. 그리고 구조의 선택 폭도 매우 넓다.


이제 전통적인 영상처리 기법없이 훨씬 뛰어난 인식이 가능하다. 물론 학습을 거쳐야하지만 전통적인 방식도 노가다를 해야하니 퉁치기로 하자.


세이지메이커는 학습한 모델을 서비스로 만들어주기도 한다. 물론 모두 아마존웹서비스에서 돌아간다. 머신러닝 서비스를 생각하시는 분들은 직접 서버를 구비하지 않고 아마존웹서비스를 사용하심이 몸과 마음에 안정을 가져다줄 것으로 예상한다.


아 물론 구글 클라우드 플랫폼과 마이크로소프트 애저에서도 가능하다. 그냥 이번에 해본 것이 아마존웹서비스의 서비스라서 언급이 많을 뿐 편하신 것으로 선택하시면 된다.

작가의 이전글 바이바이 에버노트 웰컴 노션
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari