Visual Sketchpad: Sketching as a Visual Chain of Thought for Multimodal Language Models
<|reference_start|>Visual Sketchpad: Sketching as a Visual Chain of Thought for Multimodal Language Models: Humans draw to facilitate reasoning: we draw auxiliary lines when solving geometry problems; we mark and circle when reasoning on maps; we use sketches to amplify our ideas and relieve our limited-capacity working memory. However, such actions are missing in current multimodal language models (LMs). Current chain-of-thought and tool-use paradigms only use text as intermediate reasoning steps. In this work, we introduce Sketchpad, a framework that gives multimodal LMs a visual sketchpad and tools to draw on the sketchpad. The LM conducts planning and reasoning according to the visual artifacts it has drawn. Different from prior work, which uses text-to-image models to enable LMs to draw, Sketchpad enables LMs to draw with lines, boxes, marks, etc., which is closer to human sketching and better facilitates reasoning. Sketchpad can also use specialist vision models during the sketching process (e.g., draw bounding boxes with object detection models, draw masks with segmentation models), to further enhance visual perception and reasoning. We experiment with a wide range of math tasks (including geometry, functions, graphs, and chess) and complex visual reasoning tasks. Sketchpad substantially improves performance on all tasks over strong base models with no sketching, yielding an average gain of 12.7% on math tasks, and 8.6% on vision tasks. GPT-4o with Sketchpad sets a new state of the art on all tasks, including V*Bench (80.3%), BLINK spatial reasoning (83.9%), and visual correspondence (80.8%). All codes and data are in https://visualsketchpad.github.io/.<|reference_end|>
@article{hu2024visual,
    title={Visual Sketchpad: Sketching as a Visual Chain of Thought for Multimodal
  Language Models},
    author={Yushi Hu, Weijia Shi, Xingyu Fu, Dan Roth, Mari Ostendorf, Luke
  Zettlemoyer, Noah A Smith, Ranjay Krishna},
    journal={arXiv preprint arXiv:2406.09403},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.09403},
    primaryClass={cs.CV cs.CL}
}