인테리어에 대한 추천으로 큰 방향을 잡고, 최종적으로 조명을 주제로 선택하게 되었다.
조명 추천의 첫 시도로, 사용자와 유사한 인테리어에 사용된 조명들을 찾아 추천하는 방식을 시도했다. 그러나 인테리어 이미지는 단순히 픽셀 데이터를 비교해 유사도를 측정하기가 쉽지 않았다. 사람의 입장에서는 책상, 의자, 소품 등 작은 요소가 바뀌어도 공간의 인상이 달라지는 것을 쉽게 느낄 수 있지만, 컴퓨터는 단순한 데이터 비교로 이런 미묘한 차이를 파악하기 어렵다.
그렇다면, 이러한 문제를 어떻게 해결할 수 있을까? 이를 확인하기 위해, 현재 대표적인 인테리어 플랫폼인 ‘오늘의 집’은 어떤 방식을 사용하고 있는지 조사해보기로 했다.
1. Feature Extraction
다행히 오늘의 집에서 기술 관련 블로그를 운영하고 있어서 실제 서비스에서 유사도를 비교하기 위해 어떤 방식으로 접근하는지 자세히 살펴볼 수 있었다( 링크 ). 방식을 간단하게 요약하자면, 이미지에서 특징을 담은 다차원의 벡터를 추출하고 해당 벡터들 간의 유사도를 구하는 것이다.
위 사진은 이러한 과정을 간략하게 나타낸 것이다. 모델을 활용해 이미지에서 특징들을 벡터 형태로 embedding하고, 이렇게 추출된 벡터들 간의 유사도를 측정하는 방식이다. 예를 들어, 추출한 벡터가 3차원이라고 가정해보자. 두 이미지에 대해 벡터를 각각 추출한 뒤, 유사도를 계산하는 과정은 결국 두 벡터 사이의 거리를 구하는 것과 같다. 여기서 이미지를 3차원 공간으로 변환해 표현하는 과정을 embedding이라고 한다.
이 방식에서 가장 중요한 요소는 벡터를 어떻게 추출하느냐이다. 추출된 벡터가 인테리어 이미지의 다양한 특징을 잘 담고 있어야, 유사도를 계산할 때 의미 있는 결과를 얻을 수 있기 때문이다. 오늘의 집에서는 classification 모델을 활용하여 이미지를 분석하고, 해당 이미지의 특징을 담은 벡터를 추출하는 방식을 사용하였다.
2. Classification
여기서 classification 모델을 사용해 벡터를 추출하는 방식에 대해 의문이 생길 수도 있다. 단순히 “이미지를 넣으면 어떤 카테고리인지 구분해주는 모델 아닌가?“라는 생각이 떠오를 수 있기 때문이다.
하지만 이미지 classification 문제에 주로 사용하는 구조인 Convolutional Neural Network(CNN)의 핵심은 단순히 결과를 출력하는 것에 그치지 않는다. CNN은 이미지의 중요한 특징(feature)들을 효과적으로 추출해 벡터 형태로 표현할 수 있도록 설계되어 있다. 이러한 특징 벡터는 이미지 유사도를 계산하거나, 다른 이미지 처리 문제를 해결하는 데 유용하게 활용될 수 있다.
256×256 해상도의 이미지를 넣으면, 확률 형태로 고양이인지 아닌지를 구분해주는 모델이 있다고 가정해보자. 해당 classification 모델은 256×256차원의 벡터(이미지 데이터)를 입력받아, 최종 출력으로 1차원 벡터(확률 값)를 생성한다. 이 과정에서 모델은 단순히 입력 데이터를 최종 결과로 변환하는 것이 아니라, 이미지의 중요한 특징들을 단계적으로 추출하며, 고차원 데이터를 저차원으로 점차 압축해 나간다.
보통 유사도 비교에는 최종 출력 바로 이전 차원에 있는 벡터를 사용한다. 해당 단계에서의 벡터가 이미지의 복잡한 특성을 일반화하고 다양한 이미지 간 유사도를 계산하기에 적합한 정보를 담고 있기 때문이다. 물론 task에 따라서 다른 단계의 벡터를 추가적으로 활용하는 경우도 있다. 특정 단계의 벡터가 문제에 더 적합한 특징을 담고 있는 경우, 이를 병합하거나 선택적으로 사용하는 접근도 가능하다.
3. 문제점 ?
해당 방식을 인테리어에 적용하기 위해서는 먼저 다양한 인테리어 스타일을 명확히 구분할 수 있어야 한다. 오늘의 집에서는 아래와 같이 스타일을 정의하고, 이러한 기준에 따라 이미지를 분류할 작업자들을 준비했다. 작업자들은 사전 교육을 통해 정의된 스타일에 대한 이해를 높였으며, 이후 작업 결과를 검수하는 과정을 거쳐 데이터셋의 정확도를 보장했다.
그러나 인테리어 이미지의 특성상, 명확하게 구분한다는 것은 거의 불가능에 가까운 문제다. 인테리어 스타일을 표현하는 단어는 너무나도 다양하며, 이를 일관되게 정의하고 정리하는 것조차 쉬운 문제가 아니다.
예를 들어, 우리가 모던한 인테리어를 위 이미지와 같은 기준으로 정의한다고 가정해보자. 그런데 실제 인테리어 이미지 중에는 전반적으로 해당 특징을 가지고 있으면서도, 가구 하나가 포인트로 색상이 튄다거나, 앤틱한 장식이 포함된 경우가 있을 수 있다. 이런 경우, 해당 인테리어를 모던으로 분류할지 말지에 대한 판단은 애매해질 수밖에 없다.
해당 문제가 아니더라도, 프로젝트 진행 기간동안 이미지에 대한 정의를 내리고 분류 작업까지 수행할 인력과 시간이 절대적으로 부족했던 상황이었다. 결국 classification 모델을 사용하여 벡터를 추출하는 방식은 선택하지 않게 되었다.
Reference
유사 이미지 추천 개발 #1 비슷한 공간 - 오늘의집 블로그
콘텐츠 추천을 위한 이미지 유사도 모델 개발 과정
www.bucketplace.com
'고려대 지능정보 SW 아카데미 5기 > 프로젝트' 카테고리의 다른 글
배치추천 #3 (StyleGAN 관련연구, HIGAN) (0) | 2025.03.25 |
---|---|
배치 추천 #2 (StyleGAN) (0) | 2025.03.02 |
배치 추천 #1 (GAN) (0) | 2025.02.11 |
이미지 유사도 비교 #3 (Color Scheme) (0) | 2025.01.31 |
이미지 유사도 비교 #2 (Color Scheme) (0) | 2025.01.16 |