임베딩 모델을 사용하여 이미지 내 텍스트 검색하기
Embedding model can be used to search text inside image
핵심 요약
임베딩 모델을 활용해 이미지 속 텍스트와 의미를 검색하는 실험적 연구 결과입니다.
- 임베딩 모델 성능 — 330MB 크기의 모델로도 이미지 내 텍스트 검색이 충분히 가능함
- 텍스트 우선순위 — 시각적 특징보다 텍스트 정보가 코사인 유사도에 더 큰 영향을 미침
- 희귀 단어 효과 — 데이터셋 내 희귀 단어가 검색 결과의 유사도 차이를 극명하게 벌려줌
- OCR 대체 가능성 — 대규모 데이터셋에서 OCR 없이도 효율적인 검색 도구로 활용 가능함
Embedding Gemma 2 나오고 나서 몇 주 동안 테스트해 본 건데, Q8 기준으로 330MB 정도 하더라. 이거 '리소스' 태그 달아도 되는 건지 모르겠네...
이미지는 텍스트 쿼리(텍스트 임베딩 벡터)를 계속 다듬으면서 코사인 유사도가 어떻게 변하는지 보여주는 거야. 얼마나 잘 작동하는지, 그리고 어떤 괴상한 특징이 있는지 동시에 보여줌.
지금 새벽 3시 반이라 일단 요약본만 남길게.
관심 있는 사람 있으면 테스트 더 해보고 위처럼 예시 쿼리 이미지 만들어 올릴게. 아직 영어/한국어/일본어 섞인 스크린샷 22448장짜리 세트 7개 더 남아있는데, 더 이상 테스트할 아이디어가 안 떠오름.
===
이건 과학적인 테스트가 아니라 그냥 몇 개 세트로만 돌려본 거니까 재미로만 봐.
EmbeddingGemma2 요약:
-
크기랑 임베딩 차원(330MB Q8 / 768 차원) 생각하면 실사용 충분히 가능함.
-
단어 의미를 언어 간에 어느 정도 이해는 하는데, 유사도가 좀 낮게 나옴(이것도 아마 크기 때문인 듯).
| query | cos sim. | delta to next candidate |
|---|---|---|
| image with sentence 삼각건이 머리에 얹어졌다 | 0.71156 | +0.00810 (38.jpg) |
| image with sentence triangular cloth hat was place on top of head | 0.62414 | +0.00015 (38.jpg) |
-
단어 선택을 신중하게 해야 함 (예: blond vs blonde) - SLM 한계인지 임베딩 차원 한계인지 모르겠음.
-
(적어도 영어랑 한국어는) 텍스트가 시각적 특징보다 코사인 유사도를 압도적으로 지배함.
-
sometimes adding visual trait HARM (refer chair above) the similarity
-
not sure if it's due to text being more informationally dense (aka more 'surprising')
-
or just model being small and not recognizing such visual traits, idk
-
regardless, visual traits are less useful in this test set since like 90% of 3003 imgs would have blonde girl in it.
-

