New Advanced PDF + OCR Interface for Document AI

Visual Question Answering

Create a dataset with answered questions about images using this visual question answering template. In response to an image, annotators can provide free-text answers to a question and also label components of a question with relevant aspects.

Interactive Template Preview

Labeling Configuration

<View>
  <Image name="image" value="$image"/>
  <Labels name="aspect" toName="q1">
    <Label value="attribute identification" background="#F39C12"/>
    <Label value="counting" background="#E74C3C"/>
    <Label value="comparison" background="#3498DB"/>
    <Label value="multiple attention" background="#2ECC71"/>
    <Label value="logical operations" background="#8E44AD"/>
  </Labels>
  <Header value="Please answer these questions:"/>
  <View style="display: grid; grid-template-columns: 1fr 10fr 1fr 3fr; column-gap: 1em">
      <Header value="Q1:"/>
      <Text name="q1" value="$q1"/>
      <Header value="A1:"/>
      <TextArea name="answer1" toName="q1" rows="1" maxSubmissions="1"/>
  </View>
  <View style="display: grid; grid-template-columns: 1fr 10fr 1fr 3fr; column-gap: 1em">
    <Header value="Q2:"/>
    <Text name="q2" value="$q2"/>
    <Header value="A2:"/>
    <TextArea name="answer2" toName="q2" rows="1" maxSubmissions="1"/>
  </View>
  <View style="display: grid; grid-template-columns: 1fr 10fr 1fr 3fr; column-gap: 1em">
    <Header value="Q3:"/>
    <Text name="q3" value="$q3"/>
    <Header value="A3:"/>
    <TextArea name="answer3" toName="q3" rows="1" maxSubmissions="1"/>
    </View>
  <View style="display: grid; grid-template-columns: 1fr 10fr 1fr 3fr; column-gap: 1em">
    <Header value="Q4:"/>
    <Text name="q4" value="$q4"/>
    <Header value="A4:"/>
    <TextArea name="answer4" toName="q4" rows="1" maxSubmissions="1"/>
    </View>
</View>

About the labeling configuration

All labeling configurations elements must be wrapped in View tags.

Use the Image object tag to display an image:

<Image name="image" value="$image"/>

This image is stored in a Label Studio JSON-formatted file as a URL with the key β€œimage”.

Use the Labels control tag to apply specific labels to the first question about the image, to classify specific parts of the question being asked about the image:

<Labels name="aspect" toName="q1">
  <Label value="attribute identification" background="#F39C12"/>
  <Label value="counting" background="#E74C3C"/>
  <Label value="comparison" background="#3498DB"/>
  <Label value="multiple attention" background="#2ECC71"/>
  <Label value="logical operations" background="#8E44AD"/>
</Labels>

The toName="q1" argument is what makes these labels apply only to the text of the first question.

You can add a header to provide instructions to the annotator:

<Header value="Please answer these questions:"/>

Add styling to the View tag to control the appearance of the question and answer blocks:

<View style="display: grid; grid-template-columns: 1fr 10fr 1fr 3fr; column-gap: 1em">

Use the Header tag to provide context about the text sample to annotators:

<Header value="Q1:"/>

Use the Text object tag to display a question. This

<Text name="q1" value="$q1"/>

This text sample is stored in a Label Studio JSON-formatted file with the key β€œq1”.

Use the Header tag to provide context about the text sample to annotators:

<Header value="A1:"/>

Use the TextArea control tag to provide annotators a spot to answer question 1:

<TextArea name="answer1" toName="q1" rows="1" maxSubmissions="1"/>

The text entered as part of this text box submission is stored in the exported Label Studio JSON under the name β€œanswer1”, and is associated with question 1 with the toName field. The text box only allows 1 submission, and is only 1 row long when displayed on the labeling interface.

At the end of the question and answer block, close the View tag:

</View>

An entire section of question and answer prompts looks like the following:

<View style="display: grid; grid-template-columns: 1fr 10fr 1fr 3fr; column-gap: 1em">
  <Header value="Q2:"/>
<Text name="q2" value="$q2"/>
 <Header value="A2:"/>
  <TextArea name="answer2" toName="q2" rows="1" maxSubmissions="1"/>
</View>