From 97af2e161986f9550b2e8f63bbf02bdc1ab970ab Mon Sep 17 00:00:00 2001 From: Jael Gu Date: Tue, 7 Feb 2023 14:51:41 +0800 Subject: [PATCH] Update README Signed-off-by: Jael Gu --- README.md | 35 +++++++++++------------------------ result.png | Bin 0 -> 15304 bytes 2 files changed, 11 insertions(+), 24 deletions(-) create mode 100644 result.png diff --git a/README.md b/README.md index 24c97a1..ce748d5 100644 --- a/README.md +++ b/README.md @@ -19,35 +19,22 @@ and maps vectors with labels provided by the [Kinetics400 Dataset](https://deepm Use the pretrained SLOWFAST model ('slowfast_r50') to classify and generate a vector for the given video path './archery.mp4' ([download](https://dl.fbaipublicfiles.com/pytorchvideo/projects/archery.mp4)). - *Write the pipeline in simplified style*: +*Write a pipeline with explicit inputs/outputs name specifications:* ```python -import towhee - -( - towhee.glob('./archery.mp4') - .video_decode.ffmpeg() - .action_classification.pytorchvideo(model_name='slowfast_r50') - .show() +from towhee.dc2 import pipe, ops, DataCollection + +p = ( + pipe.input('path') + .map('path', 'frames', ops.video_decode.ffmpeg()) + .map('frames', ('labels', 'scores', 'features'), + ops.action_classification.pytorchvideo(model_name='slowfast_r50')) + .output('path', 'labels', 'scores', 'features') ) -``` - - -*Write a same pipeline with explicit inputs/outputs name specifications:* -```python -import towhee - -( - towhee.glob['path']('./archery.mp4') - .video_decode.ffmpeg['path', 'frames']() - .action_classification.pytorchvideo['frames', ('labels', 'scores', 'features')]( - model_name='slowfast_r50') - .select['path', 'labels', 'scores', 'features']() - .show(formatter={'path': 'video_path'}) -) +DataCollection(p('./archery.mp4')).show() ``` - +
diff --git a/result.png b/result.png new file mode 100644 index 0000000000000000000000000000000000000000..99c3dd646dacd24910c72bd61bc6b7c854320612 GIT binary patch literal 15304 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 literal 0 HcmV?d00001