본문 바로가기
← 메인으로
검색

이미지 검색

게시 2024-08-07

이미지 검색 프로세스를 나타낸 흐름도. 사전 색인 단계(이미지 DB, 이미지 인코더, 벡터 저장)가 상단에 위치하고, 텍스트 기반 이미지 검색(텍스트 질의 → 텍스트 인코더 BERT/CLIP → 텍스트 벡터 → 이미지 벡터 DB → 유사 이미지 결과)과 이미지 기반 이미지 검색(이미지 입력 → 이미지 인코더 ResNet/CLIP → 이미지 벡터 → 이미지 벡터 DB → 유사 이미지 결과) 두 방식이 병렬로 구성됨. 벡터 검색 엔진으로 FAISS/Qdrant/Weaviate가 활용되는 구조.

  • 텍스트가 아닌 이미지를 중심으로 검색이 이루어지는 방식. 입력과 출력 모두 이미지가 될 수 있음
  • 크게 텍스트 기반 이미지 검색과 이미지 기반 이미지 검색으로 나뉨
  • 두 방식 모두 이미지를 벡터로 변환한 뒤 유사도를 계산하는 구조가 핵심
  • 프로세스는 사전 색인(이미지 → 벡터 저장) → 질의 입력 → 벡터 유사도 검색 → 유사 이미지 결과 반환 순으로 이어짐

텍스트 기반 이미지 검색(Text-to-Image Retrieval) : 사용자가 "슬림 노트북 가방"처럼 텍스트를 입력하면 관련 이미지를 결과로 반환. 텍스트는 BERT/CLIP 텍스트 인코더로 벡터화하고, 이미지도 별도 인코더로 벡터화. 두 벡터를 같은 공간에서 비교해 가장 가까운 이미지를 찾아냄. CLIP은 이미지-텍스트 쌍을 함께 학습한 모델이라 텍스트 의미와 이미지 느낌을 연결하는 데 강점

이미지 기반 이미지 검색(Image-to-Image Retrieval) : 사용자가 이미지 파일을 업로드하면 시각적으로 유사한 이미지/상품을 반환. 콘텐츠 기반 이미지 검색(CBIR)이라고도 불림. 업로드된 이미지를 동일한 임베딩 모델로 벡터화해 저장된 이미지 벡터들과 비교. ResNet/EfficientNet 같은 CNN 기반 모델은 정형화된 상품 이미지 비교에 적합하고, CLIP/DINOv2 같은 Transformer 계열은 의미 기반 매칭이나 복잡한 시각 맥락 반영에 적합

벡터 저장 및 검색 : 이미지 벡터는 FAISS/Qdrant/Weaviate 같은 벡터 검색 엔진에 저장. HNSW/IVF 색인 구조와 코사인 유사도/내적 방식으로 실시간 유사도 계산. 검색 대상 이미지가 많아질수록 GPU 환경과 효율적인 색인 구조가 중요해짐