hand_static_pipeline.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright 2021-2022 The Alibaba Fundamental Vision Team Authors. All rights reserved.
  2. from typing import Any, Dict
  3. import numpy as np
  4. from modelscope.metainfo import Pipelines
  5. from modelscope.models.cv.hand_static import hand_model
  6. from modelscope.outputs import OutputKeys
  7. from modelscope.pipelines.base import Input, Pipeline
  8. from modelscope.pipelines.builder import PIPELINES
  9. from modelscope.preprocessors import LoadImage
  10. from modelscope.utils.constant import Tasks
  11. from modelscope.utils.logger import get_logger
  12. logger = get_logger()
  13. @PIPELINES.register_module(
  14. Tasks.hand_static, module_name=Pipelines.hand_static)
  15. class HandStaticPipeline(Pipeline):
  16. def __init__(self, model: str, **kwargs):
  17. """
  18. use `model` to create hand static pipeline for prediction
  19. Args:
  20. model: model id on modelscope hub.
  21. """
  22. super().__init__(model=model, **kwargs)
  23. logger.info('load model done')
  24. def preprocess(self, input: Input) -> Dict[str, Any]:
  25. img = LoadImage.convert_to_ndarray(input)
  26. return img
  27. def forward(self, input: Dict[str, Any]) -> Dict[str, Any]:
  28. result = hand_model.infer(input, self.model, self.device)
  29. return {OutputKeys.OUTPUT: result}
  30. def postprocess(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
  31. return inputs