logo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Readme
Files and versions

Updated 1 year ago

image-text-embedding

Image-Text Retrieval Embdding with ALBEF

author: David Wang


Description

This operator extracts features for image or text with ALBEF which can generate embeddings for text and image by jointly training an image encoder and text encoder to maximize the cosine similarity. This research introduced a contrastive loss to ALign the image and text representations BEfore Fusing (ALBEF) them through cross-modal attention, which enables more grounded vision and language representation learning. This repo is an adaptation from salesforce / ALBEF


Code Example

Load an image from path './teddy.jpg' to generate an image embedding.

Read the text 'A teddybear on a skateboard in Times Square.' to generate an text embedding.

Write the pipeline in simplified style:


from towhee import pipe, ops, DataCollection

img_pipe = (
    pipe.input('url')
    .map('url', 'img', ops.image_decode.cv2_rgb())
    .map('img', 'vec', ops.image_text_embedding.albef(model_name='albef_4m', modality='image')) 
    .output('img', 'vec')
)

text_pipe = (
    pipe.input('text')
    .map('text', 'vec', ops.image_text_embedding.albef(model_name='albef_4m', modality='text')) 
    .output('text', 'vec')
)

DataCollection(img_pipe('./teddy.jpg')).show()
DataCollection(text_pipe('A teddybear on a skateboard in Times Square.')).show()
result1 result2


Factory Constructor

Create the operator via the following factory method

albef(model_name, modality)

Parameters:

model_name: str

​ The model name of ALBEF. Supported model names:

  • albef_4m
  • albef_14m

modality: str

​ Which modality(image or text) is used to generate the embedding.


Interface

An image-text embedding operator takes a towhee image or string as input and generate an embedding in ndarray.

Parameters:

data: towhee.types.Image (a sub-class of numpy.ndarray) or str

​ The data (image or text based on specified modality) to generate embedding.

Returns: numpy.ndarray

​ The data embedding extracted by model.

wxywb 13f15de3a8 remove dc2 7 Commits
folder-icon configs update the operator. 2 years ago
folder-icon models update the operator. 2 years ago
file-icon .gitattributes
1.1 KiB
download-icon
Initial commit 2 years ago
file-icon README.md
2.3 KiB
download-icon
remove dc2 1 year ago
file-icon __init__.py
701 B
download-icon
init the operator. 2 years ago
file-icon albef.py
6.0 KiB
download-icon
update the operator. 2 years ago
file-icon requirements.txt
42 B
download-icon
replace original images. 2 years ago
file-icon tabular1.png
448 KiB
download-icon
replace original images. 2 years ago
file-icon tabular2.png
64 KiB
download-icon
replace original images. 2 years ago
file-icon vec1.png
31 KiB
download-icon
replace original images. 2 years ago
file-icon vec2.png
32 KiB
download-icon
replace original images. 2 years ago