UNeedCryDear / yolov8-opencv-onnxruntime-cpp

yolov8 hub,cpp with onnxruntime and opencv
Apache License 2.0
319 stars 56 forks source link

是否可以batch预测 #15

Closed panbo-bridge closed 1 year ago

panbo-bridge commented 1 year ago

您好,支持batch批量预测吗?

UNeedCryDear commented 1 year ago

onnxruntime可以支持动态推理,包括动态batch和WH。

在pt导出到onnx的时候,加上 --dynamic这个参数即可导出动态的onnx(或者像下面图片这样加个default参数),然后在头文件中设置好你的batch和W,H参数,这样后续每个batch图片都已这个WH参数推理。 image

opencv可以支持多batch,但是目前不建议用opencv进行多batch推理,因为他的batch和WH是写死的,导出之后无法进行修改。

panbo-bridge commented 1 year ago

好的,谢谢!有测试过yolov8s-seg分别使用opencv::dnn和onnruntime加载的推理时间吗?我使用opencv::dnn处理一张需要1300ms,不知道是不是正常的?

UNeedCryDear commented 1 year ago

没有很仔细测试。不过计算时间一般不会算加载模型的时间,比较大多数情况下模型只会加载一次。如果只有推理时间,cpu推理1.3s,你这个速度都有点慢了,我不知道你怎么弄的还是你的cpu不行,我cpu推理差不多在200-300ms之间,上gpu,640x640可以达到15~30ms左右,如果onnxruntime的话,还会快一些,如果想要追求极致速度,还是得tensorRT。