Este repositório contém a implementação do MagicLens. O código aqui usa Jax e Flax. Observe que a implementação atual ainda não oferece suporte ao treinamento. Consulte o site para obter exemplos de conjuntos de dados.
Apresentamos MagicLens, uma série de modelos de recuperação de imagens auto-supervisionados que suportam instruções abertas. A tese central do MagicLens é que as instruções de texto podem permitir a recuperação de imagens com relações mais ricas além da similaridade visual. MagicLens é construído com base em um novo insight importante: pares de imagens que ocorrem naturalmente nas mesmas páginas da web contêm uma ampla gama de relações implícitas (por exemplo, visão interna de), e podemos tornar essas relações implícitas explícitas sintetizando instruções por meio de grandes modelos multimodais ( LMMs) e modelos de linguagem grandes (LLMs). Treinado em trigêmeos de 36,7 milhões (imagem de consulta, instrução, imagem de destino) com ricas relações semânticas extraídas da web, o MagicLens alcança resultados comparáveis ou melhores em oito benchmarks de várias tarefas de recuperação de imagens do que os métodos de última geração (SOTA) anteriores . Notavelmente, ele supera o SOTA anterior, mas com um tamanho de modelo 50x menor em vários benchmarks. Análises humanas adicionais em um corpus invisível de 1,4 milhão de imagens demonstram ainda mais a diversidade de intenções de pesquisa suportadas pelo 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
Baixe o modelo atravé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 ./
OU pelo Google Drive
Siga cada pasta do conjunto de dados em ./data
. Atualmente testamos com sucesso FIQ, CIRCO e DTIN:
python inference.py
--model_size large
--model_path ./models/magic_lens_clip_large.pkl
--dataset circo
Devido à conversão de peso, o desempenho pode ser ligeiramente diferente:
No 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 |
Adicione detalhes da citação aqui, geralmente um snippet BibTeX colável:
@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}
}
Direitos autorais 2024 DeepMind Technologies Limited
Todo o software é licenciado sob a Licença Apache, Versão 2.0 (Apache 2.0); você não pode usar este arquivo, exceto em conformidade com a licença Apache 2.0. Você pode obter uma cópia da licença Apache 2.0 em: https://www.apache.org/licenses/LICENSE-2.0
Todos os outros materiais estão licenciados sob a Licença Internacional Creative Commons Attribution 4.0 (CC-BY). Você pode obter uma cópia da licença CC-BY em: https://creativecommons.org/licenses/by/4.0/legalcode
A menos que exigido pela lei aplicável ou acordado por escrito, todos os softwares e materiais distribuídos aqui sob as licenças Apache 2.0 ou CC-BY são distribuídos "COMO ESTÃO", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte as licenças para o idioma específico que rege as permissões e limitações dessas licenças.
Este não é um produto oficial do Google.