[Model] Yolov5/v5lite/v6/v7/v7end2end: CUDA preprocessing (#370)

* add yolo cuda preprocessing

* cmake build cuda src

* yolov5 support cuda preprocessing

* yolov5 cuda preprocessing configurable

* yolov5 update get mat data api

* yolov5 check cuda preprocess args

* refactor cuda function name

* yolo cuda preprocess padding value configurable

* yolov5 release cuda memory

* cuda preprocess pybind api update

* move use_cuda_preprocessing option to yolov5 model

* yolov5lite cuda preprocessing

* yolov6 cuda preprocessing

* yolov7 cuda preprocessing

* yolov7_e2e cuda preprocessing

* remove cuda preprocessing in runtime option

* refine log and cmake variable name

* fix model runtime ptr type

Co-authored-by: Jason <jiangjiajun@baidu.com>
This commit is contained in:
Wang Xinyu
2022-10-19 16:04:58 +08:00
committed by GitHub
parent 4b3e93223f
commit c8d6c8244e
26 changed files with 752 additions and 24 deletions

View File

@@ -37,6 +37,9 @@ class YOLOv5(FastDeployModel):
return self._model.predict(input_image, conf_threshold,
nms_iou_threshold)
def use_cuda_preprocessing(self, max_image_size=3840 * 2160):
return self._model.use_cuda_preprocessing(max_image_size)
@staticmethod
def preprocess(input_image,
size=[640, 640],

View File

@@ -37,6 +37,9 @@ class YOLOv5Lite(FastDeployModel):
return self._model.predict(input_image, conf_threshold,
nms_iou_threshold)
def use_cuda_preprocessing(self, max_image_size=3840 * 2160):
return self._model.use_cuda_preprocessing(max_image_size)
# 一些跟YOLOv5Lite模型有关的属性封装
# 多数是预处理相关可通过修改如model.size = [1280, 1280]改变预处理时resize的大小前提是模型支持
@property

View File

@@ -37,6 +37,9 @@ class YOLOv6(FastDeployModel):
return self._model.predict(input_image, conf_threshold,
nms_iou_threshold)
def use_cuda_preprocessing(self, max_image_size=3840 * 2160):
return self._model.use_cuda_preprocessing(max_image_size)
# 一些跟YOLOv6模型有关的属性封装
# 多数是预处理相关可通过修改如model.size = [1280, 1280]改变预处理时resize的大小前提是模型支持
@property

View File

@@ -37,6 +37,9 @@ class YOLOv7(FastDeployModel):
return self._model.predict(input_image, conf_threshold,
nms_iou_threshold)
def use_cuda_preprocessing(self, max_image_size=3840 * 2160):
return self._model.use_cuda_preprocessing(max_image_size)
# 一些跟YOLOv7模型有关的属性封装
# 多数是预处理相关可通过修改如model.size = [1280, 1280]改变预处理时resize的大小前提是模型支持
@property

View File

@@ -36,6 +36,9 @@ class YOLOv7End2EndTRT(FastDeployModel):
def predict(self, input_image, conf_threshold=0.25):
return self._model.predict(input_image, conf_threshold)
def use_cuda_preprocessing(self, max_image_size=3840 * 2160):
return self._model.use_cuda_preprocessing(max_image_size)
# 一些跟模型有关的属性封装
# 多数是预处理相关可通过修改如model.size = [1280, 1280]改变预处理时resize的大小前提是模型支持
@property