ML 실습: 이미지 분류

Google이 어떻게 최첨단 이미지 분류 모델을 개발하여 Google 포토의 검색 기능을 강화했는지 알아보세요. 컨볼루션 신경망에 관한 단기집중과정을 이수하고, 고양이 사진과 강아지 사진을 구분하는 나만의 이미지 분류기를 만들어 보세요.

필수사항

  • 머신러닝 단기집중과정 또는 이에 준하는 머신러닝 관련 기본 지식

  • 프로그래밍 기본사항 숙지 및 Python을 이용한 코딩 경험

소개

Google에서는 이미지에 나타난 개체를 기반으로 사용자가 자신의 라이브러리에서 사진을 검색할 수 있도록 2013년 5월에 개인 사진 검색 기능을 출시했습니다.

샴 고양이 검색결과를 보여주는 Google 포토 스크린샷 그림 1. 샴 고양이 검색결과를 보여주는 Google 포토 스크린샷

이 기능은 2015년에 Google 포토와 통합되어 컴퓨터 비전 소프트웨어도 인간의 기준에 맞게 이미지를 분류할 수 있음을 보여주면서 획기적이라는 평가를 받으며 다음과 같이 여러 가지 방식으로 가치를 더했습니다.

  • 사용자가 이미지 콘텐츠를 분류할 때 '바닷가'와 같은 라벨을 사용해 사진에 태그를 추가하지 않아도 되기 때문에 수백, 수천 장에 달하는 이미지 세트를 관리할 때 일일이 태그를 다는 수고를 덜 수 있게 되었습니다.
  • 사용자는 이제 새로운 방식으로 개인 사진을 탐색할 수 있습니다. 즉, 태그를 단 적이 없는 개체를 검색해 사진을 확인할 수 있습니다. 예를 들어 '야자수'를 검색하면 배경에 야자수가 있는 휴가 사진이 전부 검색됩니다.
  • 소프트웨어는 최종 사용자가 인식할 수 없는 분류학적 구분(예: 샴 고양이와 아바니시안 고양이 구분)을 '인식'할 수 있으며, 이를 통해 사용자의 영역 지식을 효과적으로 강화할 수 있습니다.

이미지 분류의 원리

이미지 분류는 지도 학습 문제입니다. 즉, 대상이 되는 클래스 집합(이미지에서 식별할 개체)을 정의하고 라벨이 달린 예시 사진을 사용하여 모델이 이러한 대상을 인식하도록 학습시킵니다. 초기 컴퓨터 비전 모델은 원시 픽셀 데이터를 모델에 대한 입력으로 사용했습니다. 하지만 그림 2에서 볼 수 있는 것과 같이 원시 픽셀 데이터만 사용해서는 이미지에서 확인할 수 있는 것과 같이 한 개체의 무수한 변형을 모두 포괄하기에 충분하지 않았습니다. 개체의 위치, 개체 뒤의 배경, 주변 조명, 카메라 각도, 카메라 초점 등의 모든 요인이 원시 픽셀 데이터에 변동을 일으킬 수 있으며, 이러한 차이는 픽셀 RGB 값의 가중 평균치를 취하는 것만으로는 보정할 수 없을 정도로 현저합니다.

다양한 조건의 배경 및 조건 하에서 다양한 자세를 취하고 있는 고양이 사진 콜라주와 이 이미지들을 평균화한 픽셀 데이터 Figure 2. 왼쪽: 사진에 찍힌 고양이들은 다양한 자세를 취하고 있으며 배경이나 조명도 모두 다릅니다. 오른쪽: 이러한 다양함을 감안해 픽셀 데이터를 평균화해도 유의미한 정보가 산출되지 않습니다.

이전의 컴퓨터 비전 모델에서는 개체를 보다 유연하게 모델링하기 위해 색상 히스토그램, 질감, 모양 등 픽셀 데이터에서 파생된 새로운 특성을 추가했습니다. 하지만 이러한 접근방식에서는 조정해야 할 입력값이 너무 많았기 때문에 특성 추출이 큰 부담으로 작용했습니다. 고양이 분류기에는 어떤 색상을 사용하는 것이 가장 적합할까요? 모양의 정의를 얼마나 유연하게 적용해야 하는 걸까요? 특성을 매우 정밀하게 조정해야 했기 때문에 성능이 우수한 모델을 개발하기가 상당히 어려웠고 정확도도 떨어졌습니다.