리빙 포인트

EyeEm 사용기

blueshirt 2018. 5. 2. 15:38

최근에 EyeEm이라는 서비스를 알게 되었다.


EyeEm 사이트 : https://www.eyeem.com

사진찍기가 취미이거나 사진작가인 사람이 쓰기에 좋은 플랫폼인 듯 하다. 검색해보니 2011년에 서비스를 시작한 것으로 나오는데, 이제야 알게된 것이 아쉽다.

like도 있고, follow도 있어서 인스타그램이랑 비슷한 느낌이 있지만, 서비스의 목적은 완전히 다르다. 일단 사진 비율에 제한이 없고, 원칙적으로는 자신이 찍은 사진만을 올리게 되어 있다. 업로더가 원하면 자신의 사진을 팔 수 있는 마켓이 있고, 사진을 앱 내에서 보정해서 올리면, 보정된 사진과 보정 이력이 같이 업로드된다. 덕분에 유명 사진작가들의 사진은 어떻게 보정되어 올라오는지 확인할 수 있고, 보정 효과들을 그대로 내 사진에도 적용하여 올릴 수 있다.

이 플랫폼이 재밌는 것은 이미지를 올리면, 자동으로 이미지를 분석하여 관련 키워드를 태그해주고, 분류해준다는 점이다. 사실 여기까지는 이제 종종 쉽게 볼 수 있는 기술인데, 이 플랫폼이 더욱 재밌는 것은 이미지의 Aesthetic score(아름다움 점수...?)를 평가한다는 것이다.(여윽시 머신-러닝)  플랫폼은 이 점수와 태그를 기반으로 이미지의 상품성을 판단해서 마켓에 올릴 수 있는 이미지들을 걸러낸다. 즉 업로더가 원한다고 해서 모든 사진을 팔 수 있는 것은 아닌 셈. 일정 수준 이상의 사진이 되어야 팔 수 있다. 신기하게도 제 동작을 하는 듯 마켓에 들어가면 정말 멋있는 사진들만 있다.


EyeEm Vision API 사용해보기


EyeEm vision API 사이트 : https://eyeem.3scale.net

혹시나 해서 찾아봤더니 역시나 자사 vision 처리를 API 형태로 이용할 수 있도록 기술 서비스를 운영하고 있었다. starter pack이 있길래, 회사 이름에다 학교 이름을 넣고 가입해봤다. 

가입하면 위 사진처럼 Client ID와 Client Secret이 생긴다. Documentation & Sandbox에 들어가면 위 계정을 가지고 테스트를 해볼 수 있다. 기본적으로 Client ID와 Client Secret 으로 Token을 생성하고, vision 처리 요청을 보낼때 생성한 Token을 기반으로 사용자 인증을 한다.

Sandbox에 있는 간단한 튜토리얼을 따라가봤는데, json 구조체에 base64로 인코딩된 이미지(혹은 이미지의 웹 URL)와 요청할 vision처리의 type들을 담아 HTTP POST method로 보내면, vision 처리의 결과 값들을 보내준다. Sandbox옆에 나와있는 작은 설명들만 보고 따라하기에는 무리가 있다. EyeEm Vision API Document를 참고해야 튜토리얼을 따라갈 수 있었다. 급한 개발에 이미지 분류 혹은 Aesthetic score가 필요할 때, 유용히 쓸 수 있을 것 같다. 


+ 아래는 사용하면서 헷갈렸던 것들.

 헷갈렸던 것 중 첫 번재는 authorization field 였다. 가령 authtoken이 AAAAA라면 예제로 Bearer 'authtoken'이라 되어 있고, Data type가 String으로 되어 있어서
 1. Bearer 'AAAAA'
 2. "Bearer AAAAA"
 3. "Bearer 'AAAAA'"
 4. Bearer AAAAA 
중 뭐인지 모르겠던 것이다. 답은 4번이었다. 4번을 시도하기 까지 Malformed authorization header 라는 에러를 띄워서 답답했다.
두 번째로 헷갈렸던 것은 body 였다. 위 에러를 해결하니 나오는 것이 Malformed Json body 였다. Model Schema대로 넣어주었는데도, 동작하지 않아서 도대체 무엇일까 했는데, API 문서를 보니

{"requests":[{
  "image" : {},
  "tasks" :[ ] 
}]} 

이런 식으로 넣어주었어야 했다. 제대로 읽고 시작해볼 걸..