검색
검색
공개 노트 검색
회원가입로그인

마이크로소프트의 Florence-2 Vision - 오픈소스 비전 모델

마이크로소프트에서 공개한 오픈소스 비전 및 언어 모델이다. 작지만 이미지 캡션, 객체 인식 등 이미지 관련하여 다양한 일들을 수행할 수 있다.

Florence 2 Vision

Florence-2 Vision은 Microsoft가 개발한 컴퓨터 비전 및 비전-언어 모델로, 다양한 비전 및 비전-언어 작업을 통합적으로 처리할 수 있는 고유의 프롬프트 기반 접근 방식을 특징으로 합니다. Florence-2는 이미지 캡셔닝 (이미지 설명), 객체 탐지, 세그멘테이션 등 여러 작업을 수행할 수 있는 강력한 성능을 자랑합니다.

마이크로소프트의 Florence-2 Vision - 오픈소스 비전 모델 image 1

개요

플로렌스-2 개요

Florence-2는 간단한 텍스트 프롬프트를 사용하여 다양한 비전 및 비전-언어 작업을 신속하고 정확하게 수행하는 모델입니다. 이 모델은 Microsoft가 2024년 6월에 오픈 소스로 공개했으며, FLD-5B 데이터셋을 활용하여 학습되었습니다. 이 데이터셋에는 1억 2천 6백만 개의 이미지와 54억 개의 주석이 포함되어 있습니다.

모델 아키텍처

Florence-2의 통합 아키텍처

Florence-2는 시퀀스-투-시퀀스(sequence-to-sequence) 학습 패러다임을 사용하여 텍스트와 이미지 모두를 시퀀스로 처리합니다. 이 통합 아키텍처는 다양한 비전 및 비전-언어 작업을 일관된 프레임워크 내에서 처리할 수 있게 합니다.

  1. 이미지 인코더: 이미지 인코더는 CNN을 통해 입력 이미지를 처리하고, 이미지의 내용, 형태, 엣지, 색상 등의 시각적 특징을 추출합니다. 이 결과는 숫자 표현으로 변환됩니다.

  2. 텍스트 인코더: 특정 작업을 설명하는 텍스트 프롬프트는 별도의 인코더로 전달되어, 언어의 의미를 포착하는 숫자 표현으로 변환됩니다.

  3. 멀티모달 융합: 인코딩된 이미지와 텍스트 표현은 주의 메커니즘과 같은 기법을 사용하여 결합됩니다. 이를 통해 모델은 텍스트 프롬프트에 지정된 작업이나 개념과 시각적 정보가 어떻게 연관되는지 이해할 수 있습니다.

  4. 디코더: 디코더는 융합된 표현을 받아 작업 및 프롬프트에 기반한 텍스트 출력을 생성합니다.

데이터 엔진

FLD-5B 데이터셋

FLD-5B 데이터셋은 Florence-2 모델 학습을 위해 사용된 방대한 데이터셋으로, 1억 2천 6백만개의 이미지와 다양한 주석(사물의 경계상자, 마스크, 텍스트 주석 등)들을 포함하고 있습니다. 이러한 주석들은 이미지에 대한 상세하고 정확한 설명을 생성하고, 이미지 내 객체를 식별하고 위치를 지정하며, 세분화하는 데 도움을 줍니다.

주요 기능

이미지 캡셔닝 (이미지 설명)

Florence-2는 이미지에 대한 상세하고 문맥적으로 정확한 설명을 생성할 수 있는 고급 알고리즘을 갖추고 있습니다. 이 기능은 시각 장애인을 위한 정보 제공 및 소셜 미디어 플랫폼에서 유용하게 사용될 수 있습니다.

객체 탐지

Florence-2는 이미지 내 객체를 정확하게 식별하고 위치를 지정하는 기능이 뛰어나며, 이는 자율 주행 및 소매업 등 여러 산업 분야에서 중요한 역할을 합니다.

세그멘테이션

이미지에서 객체를 정밀하게 구분하는 Florence-2의 능력은 그래픽 디자인 및 의료 영상 처리와 같은 응용 분야에서 매우 중요합니다.

단순한 지시로 작업 수행

Florence-2는 단순한 텍스트 지시를 사용하여 다양한 작업을 수행할 수 있는 유연성과 접근성을 가지고 있습니다. 이는 AI를 일상 생활에서 보다 쉽게 활용할 수 있게 합니다.

사용

다음은 Florence-2 모델을 사용하여 다양한 비전 언어 작업을 수행하는 예제입니다.

이미지 캡셔닝 예제

from transformers import AutoProcessor, AutoModelForCausalLM
from PIL import Image
import requests

model_id = 'microsoft/Florence-2-large'
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True).eval()
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)

url = "https://www.looper.com/img/gallery/the-ending-of-harry-potter-explained/intro.jpg?download=true"
image = Image.open(requests.get(url, stream=True).raw)
task_prompt = '<caption>'
inputs = processor(text=task_prompt, images=image, return_tensors="pt")
generated_ids = model.generate(input_ids=inputs["input_ids"], pixel_values=inputs["pixel_values"], max_new_tokens=1024, num_beams=3)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]
parsed_answer = processor.post_process_generation(generated_text, task=task_prompt, image_size=(image.width, image.height))
print(parsed_answer)

오픈소스 모델

모델은 0.23B 및 0.77B 매개변수의 두 가지 크기로 제공되며, 상업적 사용을 위해 MIT 라이선스 하에 Hugging Face에서 이용 가능함.

결론

Florence-2는 FLD-5B 데이터 엔진에 기초하여 공간적 계층 및 의미적 세분성 모두를 이해하며, 일관된 접근 방식을 통해 정확하고 정보성 있는 이미지 설명을 생성하고, 객체 탐지 및 세그멘테이션을 수행하며 시각적 질문에 대한 응답을 효과적으로 제공합니다. 이는 시각 정보와 인간 언어 이해를 연결하는 강력하고 다재다능한 비전-언어 모델로의 중요한 진전을 나타냅니다.

참고문헌

  1. Florence-2 GitHub 페이지

  2. Microsoft Florence-2 발표자료

  3. arXiv 논문 - Florence-2

조회수 : 151
heart
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
T
페이지 기반 대답
AI Chat