이미지-텍스트 AI 모델: CLIP, BLIP, WD 1.4 (WD14라고도 함), SigLIP 2, Vision을 탑재한 ChatGPT

카테고리 AI/ML, Art, 오픈 소스 태그 , , ,
Save and Share:

이미지의 자동 태깅, 라벨링 또는 설명은 특히 머신러닝 데이터 세트 준비에 있어 많은 애플리케이션에서 중요한 작업입니다. 바로 이럴 때 이미지-텍스트 모델이 구원투수로 등장합니다. 주요 이미지-텍스트 모델로는 CLIP, BLIP, WD 1.4 (WD14 또는 Waifu Diffusion 1.4 Tagger라고도 함), SigLIP 2, Vision을 탑재한 ChatGPT 등이 있습니다.

CLIP: 혁신적인 도약

OpenAI의 Contrastive Language–Image Pretraining (CLIP) 모델은 이미지에 대한 설명을 이해하고 생성하는 혁신적인 접근 방식으로 널리 인정받고 있습니다. CLIP은 방대한 양의 인터넷 텍스트 및 이미지 데이터를 활용하여 수많은 시각적 개념을 학습하고, 이를 통해 이미지에 대한 설명적인 문장을 생성합니다.

하지만 사용자 리뷰에 따르면 CLIP의 설명 문장은 때때로 중복되거나 지나치게 장황할 수 있습니다. 흔한 비판 중 하나는 모델이 동일한 객체에 대해 유사한 설명을 반복하거나 객체의 색상과 같은 특정 속성을 지나치게 강조하는 경향이 있다는 것입니다.

BLIP: 단순함과 기능성의 조화

BLIP 모델은 CLIP에 비해 설명이 덜 자세하지만, 이미지-텍스트 처리에 더 간단하고 직접적인 접근 방식을 제공합니다. 한 리뷰어가 언급했듯이 BLIP은 “멋지긴 하지만, 꽤 기본적인 수준”입니다. 이 모델의 단순성은 간단하고 장황하지 않은 태그나 설명이 필요한 애플리케이션에 장점이 될 수 있습니다.

그럼에도 불구하고 일부 사용자는 BLIP의 출력이 WD14와 같은 모델이 제공하는 깊이와 세밀함이 부족하다고 느꼈습니다. 만족스러운 결과를 생성할 수 있지만, BLIP은 상세하고 복잡한 태그를 요구하는 애플리케이션에는 최적의 선택이 아닐 수 있습니다.

애니메이션에 특화되었음에도 불구하고 WD14는 실제 인물 사진에도 훌륭하게 작동하는 것을 발견했습니다. 저는 보통 BLIP과 함께 사용하는데, 대부분의 경우 BLIP보다 훨씬 더 많은 세부 정보를 잡아냅니다.

Toni Corvera (YouTube 댓글)

Blip은 멋지긴 하지만, 꽤 기본적인 수준입니다.

WD 1.4 (WD14) 태깅이 훨씬 더 좋습니다. 더 자세하고, 더 풍부한 태그를 제공합니다.

OrphBean (GitHub)

WD 1.4 (WD14라고도 함): 디테일의 정밀함

WD 1.4 모델 (WD14 또는 Waifu Diffusion 1.4 Tagger라고도 함)은 원래 애니메이션 이미지를 위해 설계되었지만, 사진에서도 뛰어난 성능을 보이는 놀라운 다재다능함을 입증했습니다. 사용자들은 이미지-텍스트 변환을 위한 강력한 도구로 만드는 고급 구성 옵션과 일괄 처리 기능에 대해 칭찬했습니다.

WD14를 차별화하는 것은 더 자세하고 “풍부한” 태그를 생성하여 경쟁 모델에 비해 이미지에 대한 더 심층적인 설명을 제공하는 능력입니다. 이 모델은 가짜 태그를 생성할 가능성이 적지만, 애니메이션에 중점을 둔 점은 특정 유형의 이미지에는 제한 사항이 될 수 있습니다.

Q: WD14 태거가 Automatic1111에 내장된 BLIP 또는 deepdanbooru보다 나은가요?

A: 이 확장 프로그램은 구성 및 일괄 처리 옵션을 더 잘 제공하며, deepdanbooru보다 완전히 가짜 태그를 생성할 가능성이 적다는 것을 발견했습니다.

CLIP/BLIP은 태그 목록이 아닌 설명적인 문장을 생성하기 때문에 다르지만, 후자가 일반적으로 제 요구 사항에 더 부합합니다. 그리고 내장된 CLIP interrogator는 “(설명) 사진과 (동일한 것에 대한 약간 다른 설명) 사진” 또는 “(대부분 완전한 설명)과 핑크색 머리, 핑크색 머리, 핑크색 머리 (여러 번 반복)”와 같은 것을 쏟아내는 경향이 있습니다.

애니메이션용으로 만들어졌음에도 불구하고 WD14 태거는 사진에서도 꽤 잘 작동합니다.

MorganTheDual (Reddit)

SigLIP 2: 강력한 이미지-텍스트 엔진

Google에서 개발한 무료 오픈 모델 SigLIP 2는 단순한 비전-언어 모델이 아닙니다. 이미지를 의미 있는 텍스트로 바꾸는 강력한 엔진입니다. 이미지-텍스트 검색 및 제로샷 분류와 같은 작업에서 탁월한 성능을 발휘하지만, 아키텍처와 훈련 개선 사항 덕분에 이미지-텍스트 생성 및 이해 분야에서 강력한 경쟁자가 되었습니다. SigLIP 2가 이 맥락에서 어떻게 작동하는지에 대한 분석은 다음과 같습니다.

기본 토대: Vision Transformer (ViT) 및 시그모이드 손실

  • Vision Transformer (ViT): 컨볼루션 신경망 (CNN)과 달리 SigLIP 2는 Vision Transformer (ViT) 아키텍처를 사용합니다. ViT는 이미지를 자연어 처리에서 단어가 토큰으로 처리되는 방식과 유사하게 패치 시퀀스로 취급합니다. 각 패치는 벡터 표현 (임베딩)으로 변환됩니다. 이를 통해 모델은 장거리 의존성을 포착하는 능력으로 알려진 강력한 Transformer 아키텍처를 사용하여 이미지의 서로 다른 부분 간의 관계를 이해할 수 있습니다.
  • 시그모이드 손실 (대조 학습 아님): SigLIP (및 SigLIP 2)의 주요 차별화 요소는 CLIP과 같은 모델에서 사용되는 더 일반적인 대조 학습 손실 대신 시그모이드 손실 함수를 사용한다는 것입니다. 대조 학습은 이미지를 여러 텍스트 옵션과 비교해야 합니다. 반면에 시그모이드 손실은 이미지-텍스트 매칭을 각 개별 이미지-텍스트 쌍에 대한 이진 분류 문제로 취급합니다. 이 겉보기에는 작은 변화가 큰 영향을 미칩니다. 특히 더 큰 배치 크기에서 더 안정적인 훈련과 더 나은 성능을 가능하게 합니다. 개별 이미지-텍스트 쌍 매칭에 초점을 맞춥니다.

텍스트 생성을 위한 향상된 훈련

SigLIP 2는 SigLIP의 기반을 바탕으로 이미지-텍스트 기능에 직접적인 이점을 제공하는 몇 가지 중요한 개선 사항을 추가했습니다.

  • 캡션 기반 사전 훈련: 이는 엄청난 진전입니다. SigLIP 2는 사전 훈련 과정의 일부로 캡션 생성을 통합합니다. 즉, 이미지에 대한 텍스트 설명을 생성하도록 명시적으로 훈련되었습니다. 이는 주로 생성보다는 이미지-텍스트 매칭에 대해 훈련된 원래 CLIP과 같은 모델과는 대조적입니다.
  • 자기 지도 학습에서 영감을 받음: SigLIP 2는 다음과 같은 강력한 기술을 활용합니다.
    • 자기 증류: 모델은 자체 예측에서 학습하여 시간이 지남에 따라 이해도를 개선합니다.
    • 마스크 예측: 입력의 일부 (이미지 패치 또는 텍스트 토큰)가 숨겨지고 모델은 누락된 부분을 예측하는 방법을 학습합니다. 이를 통해 모델은 양쪽 modality에 대한 더 깊은 이해를 개발하도록 강제합니다.
  • LocCa 손실 및 디코더: SigLIP 2는 교차 어텐션을 사용하는 Transformer 디코더를 추가하는 LocCa 손실을 통합합니다. 이 디코더는 이미지 캡션 생성, 지칭 표현 예측 (텍스트 기반 영역 식별) 및 접지 캡션 생성과 같은 작업에 대해 특별히 훈련되었습니다. 이는 세밀한 지역화 및 상세한 특징 추출을 향상시킵니다.

모든 것이 어떻게 통합되는가 (이미지 -> 텍스트)

  1. 이미지 입력: 이미지가 ViT 인코더에 입력됩니다.
  2. 패치 임베딩: 이미지가 패치로 나뉘고 각 패치는 임베딩 벡터로 변환됩니다.
  3. Transformer 인코딩: Transformer 레이어는 이러한 패치 임베딩을 처리하여 이미지의 서로 다른 부분 간의 관계를 포착합니다. 학습된 위치 임베딩은 각 패치의 위치에 대한 정보를 제공합니다.
  4. 어텐션 풀링: 어텐션 기반 풀링 메커니즘 (MAP 헤드)은 패치 임베딩의 정보를 단일하고 포괄적인 이미지 표현으로 집계합니다.
  5. 텍스트 디코더 (이미지-텍스트에 중요): 바로 이 부분에서 SigLIP 2의 캡션 생성 기능이 발휘됩니다. 인코더의 이미지 표현은 Transformer 디코더 (LocCa 손실에 의해 추가됨)로 입력됩니다. 디코더는 교차 어텐션을 사용하여 텍스트를 생성하는 동안 이미지 표현의 관련 부분에 집중합니다.
  6. 텍스트 출력: 디코더는 텍스트 토큰 시퀀스를 생성하여 이미지에 대한 캡션 또는 설명을 형성합니다.

다국어 능력

SigLIP 2는 영어에만 국한되지 않습니다. 다국어 데이터 세트 (WebLI)에서 훈련되어 여러 언어로 텍스트를 이해하고 생성하는 능력을 갖추고 있어 진정한 글로벌 이미지-텍스트 도구입니다.

요약

SigLIP 2는 강력한 ViT 기반 아키텍처, 시그모이드 손실, 그리고 결정적으로 캡션 생성 및 자기 증류를 사용한 디코더 기반 사전 훈련의 조합으로 이미지-텍스트 작업에 매우 효과적인 모델입니다. 단순한 이미지-텍스트 매칭을 넘어 적극적으로 설명적인 텍스트를 생성하여 자동 이미지 캡션 생성, 시각적 질의 응답 및 상세 이미지 분석과 같은 애플리케이션에 대한 가능성을 열어줍니다.

링크

Vision을 탑재한 ChatGPT

이미지 데이터 세트가 아주 크지 않다면 ChatGPT의 Image Describer 도구를 사용할 수 있습니다. 대량의 이미지에는 적합하지 않지만, 자연어로 최고의 설명을 제공하기 때문에 작은 이미지 세트에는 완벽합니다. 이 도구에서 생성된 설명은 매우 정확하고 상세합니다. 단순히 태그 나열이 아니라 이미지 속 객체 간의 관계까지 고려한 일관성 있고 유익한 텍스트입니다.

예시:

테스트 이미지 세트:

Image Describer 출력 (3개 이미지):

세 개의 이미지를 업로드하셨습니다. 각 이미지에 대한 설명은 다음과 같습니다:

  1. 첫 번째 이미지는 크고 표현력이 풍부한 눈을 가진 사랑스럽고 양식화된 만화 아기 고양이를 특징으로 합니다. 얼굴, 가슴, 발에 흰색 악센트가 있는 주황색이 주를 이룹니다. 아기 고양이는 거의 자기 몸집만큼 큰 펜을 들고 밝은 노란색 공에 웃는 얼굴을 그리고 있습니다. 미술 스타일은 매우 세련되고 일종의 광택 마감이 되어 있습니다. 배경은 다채롭고 추상적인 모양과 별이 빛나는 하늘을 암시하는 기발한 설정을 보여줍니다.
  2. 두 번째 이미지는 소셜 미디어 플랫폼의 채팅 또는 댓글 섹션의 스크린샷으로 보입니다. 다양한 사용자가 댓글을 남겼으며, 그 중 많은 댓글에는 “LMAO”와 같은 약어와 이모티콘으로 표시된 웃음이나 즐거움이 포함되어 있습니다. 개인 정보 보호를 위해 사용자 이름과 프로필 사진은 픽셀화되었으며, 픽셀화에는 다양한 색상이 표시됩니다.
  3. 세 번째 이미지는 친근한 표정을 짓고 있는 젊은 여성의 매우 상세하고 사실적인 그림입니다. 그녀는 긴 검은 머리, 흰 피부를 가지고 있으며 보라색 후드티를 입고 있습니다. 여성은 헤드셋도 착용하고 있어 비디오 게임 스트리머이거나 어떤 형태의 온라인 커뮤니케이션에 참여하고 있음을 암시합니다. 배경은 보라색 LED 조명으로 추정되는 보라색 색조로 조명된 방으로 보이며, 게임 설정임을 나타냅니다.

각 이미지는 기발한 삽화에서 디지털 상호 작용의 스크린샷, 더 사실적인 디지털 페인팅에 이르기까지 매우 다른 맥락과 시각적 스타일을 가지고 있습니다.

마무리

CLIP, BLIP, WD 1.4, SigLIP 2 및 Image Describer 중에서 선택하는 것은 프로젝트의 특정 요구 사항에 크게 좌우됩니다. 정밀성과 세부 사항이 가장 중요하다면 WD 1.4는 고급 구성 및 상세 태깅 기능으로 강력한 옵션을 제공합니다. 더 간단한 애플리케이션의 경우 BLIP의 간단한 접근 방식이 더 적합할 수 있습니다. 한편, CLIP은 장황한 경향이 있지만 세부 사항과 단순함 사이의 균형을 제공합니다.

Image Describer는 최고의 결과를 제공하지만 대량의 이미지 세트를 설명하거나 태깅하는 데는 적합하지 않습니다.

이러한 모델이 계속 발전하고 개선됨에 따라 콘텐츠 제작에서 데이터 분석에 이르기까지 광범위한 애플리케이션에 대한 유망한 잠재력을 가지고 있습니다. 차이점에도 불구하고 CLIP, BLIP, WD 1.4, SigLIP 2 및 GPT-Vision 모델은 이미지-텍스트 기술의 빠른 발전을 입증하며, 각각 이 흥미로운 분야에 고유한 강점을 기여하고 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다