Skip to content

VLM 그라운딩, 포인팅, 영역 캡션

참조 표현을 영역에 묶고, 포인팅은 IoU가 아니라 영역 내 적중률로 채점하며, 그라운딩 불가는 놓침이 아니라 따로 셉니다.

각 참조 표현을 그에 답하는 영역에 묶되, 그라운딩 불가를 빠진 답이 아니라 명시적인 답으로 다룹니다. 그라운딩은 네 개의 임계값에서 IoU로 채점하고, 포인팅은 영역 내 적중률로 채점합니다. 점에는 면적이 없어 점에 대한 IoU는 모두 0이기 때문입니다.

yaml
annotation_schemes:
  # grounding_eval owns the phrase-to-region binding but does not draw, so an
  # image schema sits beside it to own the canvas.
  - annotation_type: image_annotation
    name: region
    description: "Draw the region for the selected phrase."
    source_field: image
    tools: [bbox, polygon, landmark]
    labels: [{name: referent, color: "#6e56cf"}]
 
  - annotation_type: grounding_eval
    name: grounding
    description: "What does each phrase refer to?"
    region_type: box            # box | polygon | mask | point
    expressions_field: expressions

항목이 문구를 담습니다.

json
{"id": "img1", "image": "/media/img1.jpg",
 "expressions": [{"id": "e1", "text": "the man in the red shirt"}]}

문자열만 나열해도 동작하며, 그러면 ID가 위치로 물러납니다. 이것은 중요합니다. 목록 순서를 바꾸면 기존 주석이 다른 대상을 가리키게 되기 때문입니다. 안정적인 ID를 가진 데이터 원본이라면 그것을 써야 합니다.

동작하는 예시: examples/ai-assisted/grounding-eval/.

포인팅은 작은 박스로 하는 그라운딩이 아니다

Molmo 계열 모델은 박스가 아니라 점을 내놓습니다. region_type: point로 설정하면 주석자가 랜드마크를 찍습니다.

점은 다르게 채점해야 합니다. 점에는 면적이 없으므로 점에 대한 IoU는 모두 0입니다. 점을 박스처럼 채점하면 완벽하게 짚고 있는 모델이 전면적 실패로 보고됩니다. 점이 답하는 질문은 "그것이 대상 안에 있는가"이며, 그것은 적중률입니다.

mean_miss_distance빗나간 경우만 대상으로 계산합니다. 적중까지 포함해 평균을 내면, 모델이 얼마나 크게 빗나갔는지가 아니라 대상이 얼마나 큰지를 주로 재게 됩니다.

포인팅 과제에서 주석자 간 일치도 역시 계수가 아니라 정규화된 이미지 좌표에서의 거리입니다. 겹침에 기반한 측도를 점에 적용하면 포화됩니다. 같은 이미지의 반대쪽 모서리를 가리키는 두 주석자도 약 0.86이 나오고, 어떤 계수 척도에서든 강한 일치로 분류됩니다. 거리에는 포화될 천장이 없고, 거리라고 이름 붙여 두었으므로 아무도 그것을 계수처럼 등급 매기지 않습니다.

그라운딩 불가는 따로 센다

세 가지 결과를 서로 분리해 추적합니다.

  • 올바르게 사양함. 그 표현이 존재하지 않는 것을 가리키며, 주석자도 그렇게 말했습니다.
  • 위치를 환각함. 거기 없는 것에 대해 영역이 주어졌습니다.
  • 존재하는 지시 대상을 놓침. 거기 있었는데 찾아내지 못했습니다.

주석자가 한 번도 답하지 않은 표현은 놓침으로 세지 않고 제외합니다. 세어 버리면 건너뛴 문구가 많을수록 모델이 나빠 보이는데, 그것은 모델이 아니라 주석자에 관한 진술입니다.

영역 캡션

region_caption은 영역마다 자유 서술 설명을 더하며, 그 일치도는 문자열 겹침이 아니라 의미 거리를 통해 계산합니다. 같은 대상을 기술하는 두 주석자가 내용어를 공유하는 일은 드물기 때문입니다.

yaml
  - annotation_type: region_caption
    name: captions
    description: "Describe each region you drew."
    placeholder: "e.g. a red mug with a chipped handle"
    min_length: 10
    max_length: 300
    agreement_distance: token

동작하는 예시: examples/image/region-captioning/. 주석자 두 명과 일치도를 설정해 두었습니다.

모델 예측을 검토할 때

predictions_field를 설정하면 항목의 예측이 클라이언트로 전달되고 판정 컨트롤이 추가됩니다. 예측은 끝까지 예측으로 표시된 채 남고 주석자 자신의 영역에 절대 병합되지 않습니다. 주석자가 수용하지 않은 예측은 모델에 관한 증거이며, 그것을 정답 데이터에 접어 넣으면 그것이 존재하는 유일한 이유가 사라집니다.

관련 문서