Skip to content
Showcase/TextVQA: Reading Text in Images for VQA
intermediateimage

TextVQA: Reading Text in Images for VQA

TextVQA is a visual question answering dataset where reading scene text in the image is needed to answer. This Potato config reproduces the task: show an image and question, then collect a free-text answer.

About this dataset

TextVQA was introduced by Singh et al. in "Towards VQA Models That Can Read" at CVPR 2019. The authors at Facebook AI Research built it to test whether VQA models can read text in a scene, a skill standard VQA datasets largely ignored even though visually impaired users often ask questions that hinge on reading signs, labels, and packaging.

The dataset has 45,336 questions over 28,408 images. Images are sampled from OpenImages, favoring categories likely to contain text such as billboards, traffic signs, and consumer goods. Each question carries 10 human answers, and accuracy is scored by soft voting against those 10 references.

Answering a question requires reading scene text with OCR and then reasoning about it together with the question and the rest of the image. The paper pairs the dataset with the LoRRA (Look, Read, Reason & Answer) model, which can copy answer strings detected in the image. The benchmark is widely used to evaluate text-reading VQA and multimodal OCR models.

The Potato config below reproduces the annotation task: it presents an image with its question, collects a free-text answer, and adds a radio control for whether reading text in the image was necessary, mirroring how TextVQA examples are gathered and verified.

Questions
45,336
Images
28,408
Image source
OpenImages
Answers per question
10
Venue
CVPR 2019
Metric
Soft-voting VQA accuracy
Labels:outdoornatureurbanpeopleanimal+

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# TextVQA - Reading Text in Images
# Based on Singh et al., CVPR 2019
# Paper: https://arxiv.org/abs/1904.08920
# Dataset: https://textvqa.org/
#
# Visual question answering task requiring reading and reasoning about
# text present in natural images (signs, labels, book covers, menus, etc.).
# Annotators provide a text answer to each question and indicate answerability.
#
# Annotation Guidelines:
# 1. Examine the image carefully, paying attention to any visible text
# 2. Read the question and determine what text information is being asked about
# 3. Type your answer in the text field -- answers should be concise
# 4. Indicate whether the question is answerable from the image
# 5. If text in the image is too blurry or occluded, mark as Unanswerable

annotation_task_name: "TextVQA - Reading Text in Images"
task_dir: "."

data_files:
  - sample-data.json

item_properties:
  id_key: "id"
  text_key: "text"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

port: 8000
server_name: localhost

annotation_schemes:
  # Step 1: Provide the answer
  - annotation_type: text
    name: answer
    description: "Type the answer to the question based on text visible in the image."
    textarea: false
    required: true
    placeholder: "Type your answer here..."

  # Step 2: Answerability judgment
  - annotation_type: radio
    name: answerability
    description: "Can this question be answered from the text visible in the image?"
    labels:
      - "Answerable"
      - "Unanswerable"
      - "Ambiguous"
    keyboard_shortcuts:
      "Answerable": "1"
      "Unanswerable": "2"
      "Ambiguous": "3"
    tooltips:
      "Answerable": "The question can be clearly answered using text visible in the image"
      "Unanswerable": "The required text is not visible, too blurry, or not present in the image"
      "Ambiguous": "The answer is unclear due to partial occlusion, multiple possible readings, or vague question"

annotation_instructions: |
  You will be shown an image along with a question that requires reading text in the image.

  For each item:
  1. Look at the image and identify any text (signs, labels, logos, numbers, etc.).
  2. Read the question carefully.
  3. Type a concise answer based on the text you can read in the image.
  4. Indicate whether the question is answerable, unanswerable, or ambiguous.

  Tips:
  - Answers should be short and precise (usually 1-3 words).
  - If the text is partially visible, provide your best reading.
  - Mark as "Unanswerable" if the relevant text is not in the image at all.

html_layout: |
  <div style="padding: 15px; max-width: 800px; margin: auto;">
    <div style="text-align: center; margin-bottom: 16px; background: #1a1a1a; padding: 12px; border-radius: 8px;">
      <img src="{{image_url}}" style="max-width: 100%; max-height: 500px; border-radius: 4px;" alt="Image for TextVQA" />
      <p style="color: #999; font-size: 12px; margin-top: 8px;">{{image_description}}</p>
    </div>
    <div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
      <strong style="color: #0369a1;">Question:</strong>
      <p style="font-size: 18px; line-height: 1.7; margin: 8px 0 0 0;">{{text}}</p>
    </div>
  </div>

allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "textvqa_001",
    "text": "What is the name of the street shown on the green street sign?",
    "image_url": "https://example.com/textvqa/street_sign_001.jpg",
    "image_description": "A green street sign at an intersection in a suburban neighborhood"
  },
  {
    "id": "textvqa_002",
    "text": "What time does the store close according to the hours posted on the door?",
    "image_url": "https://example.com/textvqa/store_hours_002.jpg",
    "image_description": "Glass door of a retail store with posted business hours"
  }
]

// ... and 8 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/image/visual-qa/textvqa-reading-in-images
potato start config.yaml

Dataset & paper

Singh et al., CVPR 2019

Citation (BibTeX)

bibtex
@inproceedings{singh2019textvqa,
    title = "Towards {VQA} Models That Can Read",
    author = "Singh, Amanpreet and Natarajan, Vivek and Shah, Meet and Jiang, Yu and Chen, Xinlei and Batra, Dhruv and Parikh, Devi and Rohrbach, Marcus",
    booktitle = "Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)",
    year = "2019",
    url = "https://arxiv.org/abs/1904.08920"
}

Details

Annotation Types

textradio

Domain

Computer VisionNLP

Use Cases

Visual Question AnsweringScene Text UnderstandingOCR

Tags

textvqavqaocrscene-textreadingcvpr2019multimodal

Found an issue or want to improve this design?

Open an Issue