Image Captioning
이미지 캡셔닝은 비전-언어 모델을 사용해 이미지의 자연어 설명을 작성합니다. 활용 사례와 한계, YOLO를 활용한 캡션 그라운딩을 다룹니다.
이미지 캡셔닝은 이미지의 자연어 설명을 자동으로 생성하는 AI 작업입니다. 예를 들어 거리 사진을 입력하면 시스템은 “교차로에서 보행자 옆을 지나가는 시내버스”라는 설명을 생성할 수 있습니다. 이 작업은 시각적 인식과 언어 생성을 결합하므로, 모델은 중요한 콘텐츠를 식별하고 객체 간 관계를 파악한 다음 해당 정보를 명확하게 표현해야 합니다.
캡셔닝은 일반적으로 시각 데이터와 텍스트 데이터를 함께 처리하는 비전-언어 모델을 사용합니다. 사람이 직접 작성한 사진 캡션과 달리 AI 생성 캡션은 이미지-텍스트 쌍을 통해 학습한 패턴을 바탕으로 한 예측입니다.
이미지 캡셔닝 작동 방식#
이미지 캡셔닝 시스템은 일반적으로 연결된 두 단계로 구성됩니다.
- 비전 인코더는 픽셀을 객체, 텍스처, 위치 및 더 넓은 장면 정보를 설명하는 특성 표현으로 변환합니다.
- 언어 디코더는 이러한 시각 특성을 단어 시퀀스로 변환합니다.
많은 시스템은 Transformer 디코더를 사용합니다. 디코더는 시작 토큰에서 출발해 다음 토큰을 예측하고, 이를 시퀀스에 추가한 다음, 종료 토큰을 생성하거나 길이 제한에 도달할 때까지 반복합니다. 이러한 토큰 단위 처리 과정을 자기회귀 생성이라고 합니다.
전체 인코더-디코더 루프는 다음과 같습니다:
어텐션 메커니즘은 디코더가 각 단어를 선택할 때 관련 이미지 영역에 집중하도록 돕습니다. “버스”를 생성할 때는 차량을 강조하고, “거리”를 생성할 때는 주변 도로에 주의를 기울일 수 있습니다. 완전한 이미지 캡셔닝 모델은 이미지 피처, 토큰화, 교차 어텐션, 텍스트 디코더를 결합합니다.
학습에는 일반적으로 하나 이상의 사람이 작성한 캡션과 짝을 이룬 이미지가 필요합니다. 같은 이미지를 “개와 놀고 있는 아이”와 “반려동물에게 공을 던지는 어린이”처럼 여러 방식으로 올바르게 설명할 수 있으므로, 여러 캡션을 사용하는 것이 유용합니다.
관련 비전 작업과의 차이#
이미지 캡셔닝은 여러 AI 작업과 관련이 있지만, 서로 다른 출력을 생성합니다.
- 이미지 분류는 “해변”과 같이 이미지 전체에 하나 이상의 레이블을 할당합니다. 캡셔닝은 객체, 동작, 속성, 맥락을 설명할 수 있는 문장을 생성합니다.
- 객체 탐지는 바운딩 박스를 사용해 미리 정의된 객체를 식별하고 위치를 찾습니다. 캡셔닝은 이러한 객체를 언급할 수 있을 뿐 아니라 “자동차 옆에서 자전거를 타는 두 사람”과 같이 객체 간의 관계도 설명합니다.
- 광학 문자 인식은 표지판, 문서 또는 패키지에 보이는 글자를 추출합니다. 캡션은 모든 텍스트를 옮겨 적는 대신 장면을 요약합니다.
- 시각적 질의응답은 이미지에 관한 특정 질문에 답합니다. 캡셔닝은 질문이 없어도 일반적인 설명을 생성합니다.
- 대체 텍스트는 특정 맥락에서 이미지의 목적을 전달합니다. 자동 생성 캡션은 초안으로 제공할 수 있지만, 장식용, 기능적, 복잡한 이미지는 W3C 이미지 튜토리얼에 따라 서로 다른 처리가 필요하므로 자동으로 적합한 대체 텍스트가 되는 것은 아닙니다.
실제 적용 사례#
-
접근성 있는 웹 콘텐츠: 게시 플랫폼은 새로 업로드된 사진에 대한 설명 초안을 생성할 수 있습니다. 뉴스 이미지의 경우, 편집자가 정확성과 관련성을 확인하기 전에 캡션이 주요 인물, 배경 및 행동을 식별할 수 있습니다. 복잡한 다이어그램에는 일반적인 시각적 요약이 아니라 구조화된 장문 설명이 필요합니다.
-
검색 가능한 미디어 라이브러리: 소매업체나 미디어 회사는 대규모 이미지 컬렉션에 캡션을 생성하고 생성된 텍스트를 색인화할 수 있습니다. 그러면 사용자는 파일에 수동 태그가 없더라도 “텐트 옆의 빨간 배낭”과 같은 문구를 검색할 수 있습니다. 캡션은 시각 임베딩 및 메타데이터를 보완하여 대규모 카탈로그의 검색성을 높일 수 있습니다.
Ultralytics YOLO를 활용한 실용적인 그라운딩#
캡션 생성기는 특히 복잡하거나 익숙하지 않은 장면에서 근거가 없는 세부 사항을 만들어 낼 수 있습니다. 실용적인 설계 방법 중 하나는 Ultralytics YOLO26의 구조화된 관찰 결과로 생성을 그라운딩하는 것입니다. 다음의 문서화된 YOLO 예측 워크플로는 후속 언어 구성 요소가 시각적 맥락으로 사용할 수 있는 탐지된 객체 이름을 추출합니다.
from ultralytics import YOLO
# 후속 캡션 생성기의 근거로 사용할 객체 탐지
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# 탐지 결과를 간결한 텍스트 맥락으로 변환
detections = result.summary()
object_names = sorted({item["name"] for item in detections})
visual_context = ", ".join(object_names)
print(visual_context)이 워크플로는 최종 캡션을 생성하지 않습니다. 대신 언어 모델의 출력을 제한할 수 있는 검증 가능한 객체 레이블을 제공합니다. 사용자 지정 도메인에서는 Ultralytics Platform이 캡셔닝 파이프라인의 인식 구성 요소를 위한 클라우드 데이터셋 어노테이션, 학습, 배포 및 모니터링을 지원합니다.
한계와 평가#
캡션은 중요한 객체를 빠뜨리거나 관계를 혼동하고, 데이터셋 편향을 재현하거나, 보이지 않는 세부 사항을 환각할 수 있습니다. 이미지 설명 API가 반환하는 신뢰도 점수는 후보 설명의 순위를 매기는 데 도움이 될 수 있지만, 유창한 문장이 반드시 사실에 부합하는 것은 아닙니다.
따라서 평가는 객체 포함 범위, 사실적 근거, 가독성, 편향 및 대상 독자에게 제공하는 유용성을 살펴봐야 합니다. 여러 캡션이 모두 올바를 수 있으므로, 팀은 생성형 AI 평가와 더 폭넓은 NIST AI 위험 관리 프레임워크 등의 관행에 따라 자동 측정과 사람의 검토를 함께 수행해야 합니다. 접근성, 의료, 안전이 중요한 콘텐츠 또는 대외 공개 콘텐츠에서는 사람의 승인이 특히 중요합니다.










