logo
Browse Source

Update README

Signed-off-by: shiyu22 <shiyu.chen@zilliz.com>
main
shiyu22 3 years ago
parent
commit
aa188560a1
  1. 30
      README.md

30
README.md

@ -1,28 +1,26 @@
# Image Embedding Pipeline with Resnet50
# Pipeline: Image Embedding using Resnet50
Authors: derekdqc, shiyu22 Authors: derekdqc, shiyu22
## Overview ## Overview
This pipeline is used to **extract the feature vector of a given image**.
The pipeline performs two major steps. First, normalize the image, and then use resnet50 model to generate the vector.
The pipeline is used to **extract the feature vector of a given image**. It first normalizes the image and then uses Resnet50 model to generate the vector.
## Interface ## Interface
**Pipeline Input Arguments:**
- img(`PIL.Image`):
**Input Arguments:**
The image to be encoded. `PIL.Image` is the currently supported image type.
- image:
- the input image to be encoded
- supported types: `PIL.Image`
**Pipeline Returns:**
**Pipeline Output:**
- (`Tuple[('cnn', numpy.ndarray)]`)
The pipeline returns a tuple `Tuple[('feature_vector', numpy.ndarray)]` containing following fields:
The pipeline returns a tuple.
- The `feature_vector` field contains the embedding of the image.
- feature_vector:
- the embedding of input image
- data type: `numpy.ndarray`
## How to use ## How to use
@ -40,13 +38,15 @@ $ pip3 install towhee
>>> from towhee import pipeline >>> from towhee import pipeline
>>> from PIL import Image >>> from PIL import Image
>>> img = Image.open('path/to/your/image') # for example, './test_data/test.jpg'
>>> img = Image.open('path/to/your/image') # for example, './test.jpg'
>>> embedding_pipeline = pipeline('towhee/image-embedding-resnet50') >>> embedding_pipeline = pipeline('towhee/image-embedding-resnet50')
>>> embedding = embedding_pipeline(img) >>> embedding = embedding_pipeline(img)
``` ```
## How it works ## How it works
This pipeline includes two main operators: transform image (implemented as [towhee/transform-image](https://hub.towhee.io/towhee/transform-image)) and image embedding (implemented as [towhee/resnet50-image-embedding](https://hub.towhee.io/towhee/resnet50-image-embedding)). The transform image operator will first convert the original image into a normalized format, such as with 512x512 resolutions. Then, the normalized image will be encoded via image embedding operator, and finally we get a feature vector of the given image. (The basic concepts of pipeline and operator are introduced in [Towhee architecture](https://github.com/towhee-io/towhee#towhee-architecture).)
This pipeline includes two main operators: [transform image](https://hub.towhee.io/towhee/transform-image-operator-class) (implemented as [towhee/transform-image](https://hub.towhee.io/towhee/transform-image)) and [image embedding](https://hub.towhee.io/towhee/image-embedding-operator-class) (implemented as [towhee/resnet50-image-embedding](https://hub.towhee.io/towhee/resnet50-image-embedding)). The transform image op will first convert the original image into a normalized format, such as with 512x512 resolutions. Then, the normalized image will be encoded via image embedding op, and finally we get a feature vector of the given image.
> Refer [Towhee architecture](https://github.com/towhee-io/towhee#towhee-architecture) for basic concepts in Towhee: pipeline, operator, dataframe.
![img](./readme_res/pipeline.png) ![img](./readme_res/pipeline.png)

Loading…
Cancel
Save