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

image-text-embedding

Russian Image-Text Retrieval Embdding with CLIP

author: David Wang


Description

This operator extracts features for image or text with CLIP which can generate embeddings for text and image by jointly training an image encoder and text encoder to maximize the cosine similarity. This is a Russian version of CLIP adopted from ai-forever/ru-clip.


Code Example

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

Read the text 'Плюшевый мишка на скейтборде на Таймс-сквер.' to generate an text embedding.

Write a pipeline with explicit inputs/outputs name specifications:

import towhee

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.ru_clip(model_name='ruclip-vit-base-patch32-224', modality='image'))
    .output('img', 'vec')
)

text_pipe = (
    pipe.input('text')
    .map('text', 'vec', ops.image_text_embedding.ru_clip(model_name='ruclip-vit-base-patch32-224', modality='text'))
    .output('text', 'vec')
)

DataCollection(img_pipe('./teddy.jpg')).show()
DataCollection(text_pipe('Плюшевый мишка на скейтборде на Таймс-сквер.')).show()
result1 result2


Factory Constructor

Create the operator via the following factory method

ru_clip(model_name, modality)

Parameters:

model_name: str

​ The model name of CLIP. Supported model names:

  • ruclip-vit-base-patch32-224
  • ruclip-vit-base-patch16-224
  • ruclip-vit-large-patch14-224
  • ruclip-vit-large-patch14-336
  • ruclip-vit-base-patch32-384
  • ruclip-vit-base-patch16-384

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

- [CLIP Object Detection: Merging AI Vision with Language Understanding - Zilliz blog](https://zilliz.com/learn/CLIP-object-detection-merge-AI-vision-with-language-understanding): CLIP Object Detection combines CLIP's text-image understanding with object detection tasks, allowing CLIP to locate and identify objects in images using texts.
Jael Gu 6a0de79276 Add more resources 7 Commits
folder-icon ruclip update the operator. 2 years ago
file-icon .gitattributes
1.1 KiB
download-icon
Initial commit 2 years ago
file-icon README.md
4.4 KiB
download-icon
Add more resources 3 months ago
file-icon __init__.py
708 B
download-icon
update the operator. 2 years ago
file-icon requirements.txt
39 B
download-icon
update the operator. 2 years ago
file-icon ru_clip.py
2.6 KiB
download-icon
update the operator. 2 years ago
file-icon tabular1.png
179 KiB
download-icon
update the operator. 2 years ago
file-icon tabular2.png
24 KiB
download-icon
update the operator. 2 years ago
file-icon vec1.png
14 KiB
download-icon
update the operator. 2 years ago
file-icon vec2.png
13 KiB
download-icon
update the operator. 2 years ago