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
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# 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
[
{
"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 itemsGet This Design
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)
@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
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Visual Question Answering
Answer questions about images for VQA dataset creation.
CUB-200-2011: Fine-Grained Bird Species Dataset
CUB-200-2011 is a fine-grained bird image dataset of 11,788 photos across 200 species, each labeled with parts, attributes, and a bounding box (Wah et al., 2011). This Potato config reproduces the labeling task.
EPIC-KITCHENS Egocentric Action Annotation
Annotate fine-grained actions in egocentric kitchen videos with verb-noun pairs. Identify cooking actions from a first-person perspective.