[CVCUDA] Vision Processor Python API and Tutorial (#1394)

* bind success

* bind success fix

* FDMat pybind, ResizeByShort pybind

* FDMat pybind, ResizeByShort pybind, remove initialized_

* override BindProcessorManager::Run in python is available

* PyProcessorManager done

* vision_pybind fix

* manager.py fix

* add tutorials

* remove Apply() bind

* remove Apply() bind and fix

* fix reviewed problem

* fix reviewed problem

* fix reviewed problem readme

* fix reviewed problem readme etc

* apply return outputs

* nits

* update readme

* fix FDMatbatch

* add op pybind: CenterCrop, Pad

* add op overload for pass FDMatBatch

---------

Co-authored-by: Wang Xinyu <shaywxy@gmail.com>
This commit is contained in:
guxukai
2023-03-10 14:42:32 +08:00
committed by GitHub
parent cb7c8a07d4
commit c6480de736
22 changed files with 530 additions and 34 deletions

View File

@@ -14,3 +14,4 @@
from __future__ import absolute_import
from .manager import ProcessorManager
from .manager import PyProcessorManager

View File

@@ -13,6 +13,8 @@
# limitations under the License.
from __future__ import absolute_import
from abc import ABC, abstractmethod
from ... import c_lib_wrap as C
class ProcessorManager:
@@ -34,3 +36,34 @@ class ProcessorManager:
:param: gpu_id: GPU device id
"""
return self._manager.use_cuda(enable_cv_cuda, gpu_id)
class PyProcessorManager(ABC):
"""
PyProcessorManager is used to define a customized processor in python
"""
def __init__(self):
self._manager = C.vision.processors.ProcessorManager()
def use_cuda(self, enable_cv_cuda=False, gpu_id=-1):
"""Use CUDA processors
:param: enable_cv_cuda: Ture: use CV-CUDA, False: use CUDA only
:param: gpu_id: GPU device id
"""
return self._manager.use_cuda(enable_cv_cuda, gpu_id)
def __call__(self, images):
image_batch = C.vision.FDMatBatch()
image_batch.from_mats(images)
self._manager.pre_apply(image_batch)
outputs = self.apply(image_batch)
self._manager.post_apply()
return outputs
@abstractmethod
def apply(self, image_batch):
print("This function has to be implemented.")
return []