diff --git a/README.md b/README.md index 2571470..0d653b3 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ -# image-embedding-resnet50 +# Image Embedding Pipeline with Resnet50 -This is another test repo \ No newline at end of file +Authors: name or github-name(email) + +## Overview + +Introduce the functions of pipeline. + +## Interface + +The interface of pipeline.(input & output) + +## How to use + +- Requirements from requirements.txt +- Run it with Towhee + +## How it works + +- op1->op2->op3 , and intro all the op used. (auto generate graph) \ No newline at end of file diff --git a/image_embedding_resnet50.yaml b/image_embedding_resnet50.yaml new file mode 100644 index 0000000..18474e2 --- /dev/null +++ b/image_embedding_resnet50.yaml @@ -0,0 +1,94 @@ +name: 'image-embedding-resnet50' +operators: + - + name: '_start_op' + function: '_start_op' + init_args: + inputs: + - + df: '_start_df' + name: 'img_tensor' + col: 0 + outputs: + - + df: 'image' + iter_info: + type: map + - + name: 'preprocessing' + function: 'towhee/transform-image' # same as 'transform-image', default author is towhee + tag: 'main' # optional + init_args: + size: 256 + inputs: + - + df: 'image' + name: 'img_tensor' + col: 0 + outputs: + - + df: 'image_preproc' + iter_info: + type: map + - + name: 'embedding_model' + function: 'towhee/resnet50-image-embedding' # same as 'resnet50-image-embedding', default user is towhee + tag: 'main' # optional + init_args: + model_name: 'resnet50' + inputs: + - + df: 'image_preproc' + name: 'img_tensor' + col: 0 + outputs: + - + df: 'embedding' + iter_info: + type: map + - + name: '_end_op' + function: + name: '_end_op' + init_args: + inputs: + - + df: 'embedding' + name: 'cnn' + col: 0 + outputs: + - + df: '_end_df' + iter_info: + type: map +dataframes: + - + name: '_start_df' + columns: + - + name: 'img_tensor' + vtype: 'PIL.Image' + - + name: 'image' + columns: + - + name: 'img_tensor' + vtype: 'PIL.Image' + - + name: 'image_preproc' + columns: + - + name: 'img_transformed' + vtype: 'torch.Tensor' + - + name: 'embedding' + columns: + - + name: 'cnn' + vtype: 'numpy.ndarray' + - + name: '_end_df' + columns: + - + name: 'cnn' + vtype: 'numpy.ndarray' diff --git a/test_data/test.jpg b/test_data/test.jpg new file mode 100755 index 0000000..8fdc2b3 Binary files /dev/null and b/test_data/test.jpg differ diff --git a/test_image_embedding_resnet50.py b/test_image_embedding_resnet50.py new file mode 100644 index 0000000..cb90524 --- /dev/null +++ b/test_image_embedding_resnet50.py @@ -0,0 +1,18 @@ +import unittest +from towhee import pipeline +from PIL import Image + + +class TestImageEmbeddingResnet50(unittest.TestCase): + test_img = './test_data/test.jpg' + test_img = Image.open(test_img) + + def test_image_embedding_resnet50(self): + self.dimension = 1000 + embedding_pipeline = pipeline('towhee/image-embedding-resnet50') + embedding = embedding_pipeline(self.test_img) + assert (1, self.dimension) == op(img_tensor)[0].shape + + +if __name__ == '__main__': + unittest.main()