Integrating Visual and Textual Inputs for Searching Large-Scale Map Collections with CLIP
<|reference_start|>Integrating Visual and Textual Inputs for Searching Large-Scale Map Collections with CLIP: Despite the prevalence and historical importance of maps in digital collections, current methods of navigating and exploring map collections are largely restricted to catalog records and structured metadata. In this paper, we explore the potential for interactively searching large-scale map collections using natural language inputs ("maps with sea monsters"), visual inputs (i.e., reverse image search), and multimodal inputs (an example map + "more grayscale"). As a case study, we adopt 562,842 images of maps publicly accessible via the Library of Congress's API. To accomplish this, we use the mulitmodal Contrastive Language-Image Pre-training (CLIP) machine learning model to generate embeddings for these maps, and we develop code to implement exploratory search capabilities with these input strategies. We present results for example searches created in consultation with staff in the Library of Congress's Geography and Map Division and describe the strengths, weaknesses, and possibilities for these search queries. Moreover, we introduce a fine-tuning dataset of 10,504 map-caption pairs, along with an architecture for fine-tuning a CLIP model on this dataset. To facilitate re-use, we provide all of our code in documented, interactive Jupyter notebooks and place all code into the public domain. Lastly, we discuss the opportunities and challenges for applying these approaches across both digitized and born-digital collections held by galleries, libraries, archives, and museums.<|reference_end|>
@article{mahowald2024integrating,
    title={Integrating Visual and Textual Inputs for Searching Large-Scale Map
  Collections with CLIP},
    author={Jamie Mahowald and Benjamin Charles Germain Lee},
    journal={arXiv preprint arXiv:2410.01190},
    year={2024},
    archivePrefix={arXiv},
    eprint={2410.01190},
    primaryClass={cs.IR cs.DL}
}