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 2 months ago

image-text-embedding

Image-Text Retrieval Embdding with SLIP

author: David Wang


Description

This operator extracts features for image or text with SLIP, a multi-task learning framework for combining self-supervised learning and CLIP pre-training. This is an adaptation from facebookresearch/SLIP.


Code Example

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

Read the text 'moon in the night.' to generate a text embedding.

Write a pipeline with explicit inputs/outputs name specifications:

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.slip(model_name='slip_vit_small', modality='image'))
    .output('img', 'vec')
)

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

DataCollection(img_pipe('./moon.jpg')).show()
DataCollection(text_pipe('moon in the night.')).show()

result1 result2


Factory Constructor

Create the operator via the following factory method

slip(model_name, modality)

Parameters:

model_name: str

​ The model name of SLIP. Supported model names:

  • slip_vit_small
  • slip_vit_base
  • slip_vit_large

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.

More Resources

Jael Gu 236615cdad Add more resources 7 Commits
file-icon .gitattributes
1.1 KiB
download-icon
Initial commit 2 years ago
file-icon README.md
4.2 KiB
download-icon
Add more resources 2 months ago
file-icon __init__.py
698 B
download-icon
slip operator update. 2 years ago
file-icon bpe_simple_vocab_16e6.txt.gz
1.3 MiB
download-icon
slip operator update. 2 years ago
file-icon models.py
11 KiB
download-icon
slip operator update. 2 years ago
file-icon requirements.txt
54 B
download-icon
init the operator. 2 years ago
file-icon slip.py
4.9 KiB
download-icon
slip operator update. 2 years ago
file-icon tabular1.png
120 KiB
download-icon
update the readme. 2 years ago
file-icon tabular2.png
16 KiB
download-icon
update the readme. 2 years ago
file-icon tokenizer.py
5.4 KiB
download-icon
init the operator. 2 years ago
file-icon vec1.png
10 KiB
download-icon
update the readme. 2 years ago
file-icon vec2.png
10 KiB
download-icon
update the readme. 2 years ago