Este repositorio contiene la implementación de MagicLens. El código aquí usa Jax y Flax. Tenga en cuenta que la implementación actual aún no admite la capacitación. Consulte el sitio web para ver ejemplos de conjuntos de datos.
Presentamos MagicLens, una serie de modelos de recuperación de imágenes autosupervisados que admiten instrucciones abiertas. La tesis central de MagicLens es que las instrucciones de texto pueden permitir recuperar imágenes con relaciones más ricas más allá de la similitud visual. MagicLens se basa en una idea novedosa clave: los pares de imágenes que ocurren naturalmente en las mismas páginas web contienen una amplia gama de relaciones implícitas (por ejemplo, vista interna de), y podemos hacer explícitas esas relaciones implícitas sintetizando instrucciones a través de grandes modelos multimodales ( LMM) y modelos de lenguaje grande (LLM). Entrenado en tripletes de 36,7 millones (imagen de consulta, instrucción, imagen de destino) con ricas relaciones semánticas extraídas de la web, MagicLens logra resultados comparables o mejores en ocho puntos de referencia de diversas tareas de recuperación de imágenes que los métodos de última generación (SOTA) anteriores. . Sorprendentemente, supera al SOTA anterior pero con un tamaño de modelo 50 veces más pequeño en múltiples puntos de referencia. Análisis humanos adicionales en un corpus no visto de 1,4 millones de imágenes demuestran aún más la diversidad de intenciones de búsqueda admitidas por MagicLens.
conda create --name magic_lens python=3.9
conda activate magic_lens
git clone https://github.com/google-research/scenic.git
cd scenic
pip install .
pip install -r scenic/projects/baselines/clip/requirements.txt
# you may need to install corresponding GPU version of jax following https://jax.readthedocs.io/en/latest/installation.html
# e.g.,
# # CUDA 12 installation
# Note: wheels only available on linux.
# pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
# # CUDA 11 installation
# Note: wheels only available on linux.
# pip install --upgrade "jax[cuda11_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Descargar modelo a través de:
cd .. # in main folder `magiclens`
# you may need to use `gcloud auth login` for access, any gmail account should work.
gsutil cp -R gs://gresearch/magiclens/models ./
O a través de Google Drive
Siga la carpeta de cada conjunto de datos en ./data
. Actualmente hemos probado con éxito FIQ, CIRCO y DTIN:
python inference.py
--model_size large
--model_path ./models/magic_lens_clip_large.pkl
--dataset circo
Debido a la conversión de peso, el rendimiento puede ser ligeramente diferente:
En CIRCO
Modelo | mapa@5 | mapa@10 | mapa@25 | mapa@50 |
---|---|---|---|---|
SOTA anterior | 26,8 | 27,6 | 30.0 | 31.0 |
Base (original) | 23.1 | 23.8 | 25,8 | 26,7 |
Base (convertida) | 22.3 | 23.2 | 25.0 | 26.0 |
Grande (original) | 29.6 | 30,8 | 33.4 | 34.4 |
Grande (convertido) | 29,5 | 30,8 | 33.2 | 34.3 |
Agregue aquí los detalles de la cita, generalmente un fragmento de BibTeX que se puede pegar:
@inproceedings{zhang2024magiclens,
title = {{M}agic{L}ens: Self-Supervised Image Retrieval with Open-Ended Instructions},
author = {Zhang, Kai and Luan, Yi and Hu, Hexiang and Lee, Kenton and Qiao, Siyuan and Chen, Wenhu and Su, Yu and Chang, Ming-Wei},
booktitle = {Proceedings of the 41st International Conference on Machine Learning},
pages = {59403--59420},
year = {2024},
editor = {Salakhutdinov, Ruslan and Kolter, Zico and Heller, Katherine and Weller, Adrian and Oliver, Nuria and Scarlett, Jonathan and Berkenkamp, Felix},
volume = {235},
series = {Proceedings of Machine Learning Research},
month = {21--27 Jul},
publisher = {PMLR},
url = {https://proceedings.mlr.press/v235/zhang24an.html}
}
Copyright 2024 DeepMind Technologies Limited
Todo el software tiene la licencia Apache, versión 2.0 (Apache 2.0); no puede utilizar este archivo excepto de conformidad con la licencia Apache 2.0. Puede obtener una copia de la licencia Apache 2.0 en: https://www.apache.org/licenses/LICENSE-2.0
Todos los demás materiales tienen la licencia Creative Commons Attribution 4.0 International License (CC-BY). Puede obtener una copia de la licencia CC-BY en: https://creativecommons.org/licenses/by/4.0/legalcode
A menos que lo exija la ley aplicable o se acuerde por escrito, todo el software y los materiales distribuidos aquí bajo las licencias Apache 2.0 o CC-BY se distribuyen "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte las licencias para conocer el idioma específico que rige los permisos y limitaciones de dichas licencias.
Este no es un producto oficial de Google.