mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-05 16:48:03 +08:00
[Model] Add is_mini_pad and stride for YOLOv5 python (#949)
* add onnx_ort_runtime demo * rm in requirements * support batch eval * fixed MattingResults bug * move assignment for DetectionResult * integrated x2paddle * add model convert readme * update readme * re-lint * add processor api * Add MattingResult Free * change valid_cpu_backends order * add ppocr benchmark * mv bs from 64 to 32 * fixed quantize.md * fixed quantize bugs * Add Monitor for benchmark * update mem monitor * Set trt_max_batch_size default 1 * fixed ocr benchmark bug * support yolov5 in serving * Fixed yolov5 serving * Fixed postprocess * update yolov5 to 7.0 * add poros runtime demos * update readme * Support poros abi=1 * rm useless note * deal with comments * support pp_trt for ppseg * fixed symlink problem * Add is_mini_pad and stride for yolov5 Co-authored-by: Jason <jiangjiajun@baidu.com>
This commit is contained in:
@@ -61,6 +61,23 @@ class FASTDEPLOY_DECL YOLOv5Preprocessor {
|
|||||||
/// Get is_scale_up, default true
|
/// Get is_scale_up, default true
|
||||||
bool GetScaleUp() const { return is_scale_up_; }
|
bool GetScaleUp() const { return is_scale_up_; }
|
||||||
|
|
||||||
|
/// Set is_mini_pad, pad to the minimum rectange
|
||||||
|
/// which height and width is times of stride
|
||||||
|
void SetMiniPad(bool is_mini_pad) {
|
||||||
|
is_mini_pad_ = is_mini_pad;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get is_mini_pad, default false
|
||||||
|
bool GetMiniPad() const { return is_mini_pad_; }
|
||||||
|
|
||||||
|
/// Set padding stride, only for mini_pad mode
|
||||||
|
void SetStride(int stride) {
|
||||||
|
stride_ = stride;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get padding stride, default 32
|
||||||
|
bool GetStride() const { return stride_; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool Preprocess(FDMat* mat, FDTensor* output,
|
bool Preprocess(FDMat* mat, FDTensor* output,
|
||||||
std::map<std::string, std::array<float, 2>>* im_info);
|
std::map<std::string, std::array<float, 2>>* im_info);
|
||||||
|
@@ -36,7 +36,9 @@ void BindYOLOv5(pybind11::module& m) {
|
|||||||
})
|
})
|
||||||
.def_property("size", &vision::detection::YOLOv5Preprocessor::GetSize, &vision::detection::YOLOv5Preprocessor::SetSize)
|
.def_property("size", &vision::detection::YOLOv5Preprocessor::GetSize, &vision::detection::YOLOv5Preprocessor::SetSize)
|
||||||
.def_property("padding_value", &vision::detection::YOLOv5Preprocessor::GetPaddingValue, &vision::detection::YOLOv5Preprocessor::SetPaddingValue)
|
.def_property("padding_value", &vision::detection::YOLOv5Preprocessor::GetPaddingValue, &vision::detection::YOLOv5Preprocessor::SetPaddingValue)
|
||||||
.def_property("is_scale_up", &vision::detection::YOLOv5Preprocessor::GetScaleUp, &vision::detection::YOLOv5Preprocessor::SetScaleUp);
|
.def_property("is_scale_up", &vision::detection::YOLOv5Preprocessor::GetScaleUp, &vision::detection::YOLOv5Preprocessor::SetScaleUp)
|
||||||
|
.def_property("is_mini_pad", &vision::detection::YOLOv5Preprocessor::GetMiniPad, &vision::detection::YOLOv5Preprocessor::SetMiniPad)
|
||||||
|
.def_property("stride", &vision::detection::YOLOv5Preprocessor::GetStride, &vision::detection::YOLOv5Preprocessor::SetStride);
|
||||||
|
|
||||||
pybind11::class_<vision::detection::YOLOv5Postprocessor>(
|
pybind11::class_<vision::detection::YOLOv5Postprocessor>(
|
||||||
m, "YOLOv5Postprocessor")
|
m, "YOLOv5Postprocessor")
|
||||||
|
27
python/fastdeploy/vision/detection/contrib/yolov5.py
Normal file → Executable file
27
python/fastdeploy/vision/detection/contrib/yolov5.py
Normal file → Executable file
@@ -54,6 +54,20 @@ class YOLOv5Preprocessor:
|
|||||||
"""
|
"""
|
||||||
return self._preprocessor.is_scale_up
|
return self._preprocessor.is_scale_up
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_mini_pad(self):
|
||||||
|
"""
|
||||||
|
is_mini_pad for preprocessing, pad to the minimum rectange which height and width is times of stride, default false
|
||||||
|
"""
|
||||||
|
return self._preprocessor.is_mini_pad
|
||||||
|
|
||||||
|
@property
|
||||||
|
def stride(self):
|
||||||
|
"""
|
||||||
|
stride for preprocessing, only for mini_pad mode, default 32
|
||||||
|
"""
|
||||||
|
return self._preprocessor.stride
|
||||||
|
|
||||||
@size.setter
|
@size.setter
|
||||||
def size(self, wh):
|
def size(self, wh):
|
||||||
assert isinstance(wh, (list, tuple)),\
|
assert isinstance(wh, (list, tuple)),\
|
||||||
@@ -77,6 +91,19 @@ class YOLOv5Preprocessor:
|
|||||||
bool), "The value to set `is_scale_up` must be type of bool."
|
bool), "The value to set `is_scale_up` must be type of bool."
|
||||||
self._preprocessor.is_scale_up = value
|
self._preprocessor.is_scale_up = value
|
||||||
|
|
||||||
|
@is_mini_pad.setter
|
||||||
|
def is_mini_pad(self, value):
|
||||||
|
assert isinstance(
|
||||||
|
value,
|
||||||
|
bool), "The value to set `is_mini_pad` must be type of bool."
|
||||||
|
self._preprocessor.is_mini_pad = value
|
||||||
|
|
||||||
|
@stride.setter
|
||||||
|
def stride(self, value):
|
||||||
|
assert isinstance(
|
||||||
|
stride, int), "The value to set `stride` must be type of int."
|
||||||
|
self._preprocessor.stride = value
|
||||||
|
|
||||||
|
|
||||||
class YOLOv5Postprocessor:
|
class YOLOv5Postprocessor:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
Reference in New Issue
Block a user