UNeedCryDear / yolov8-opencv-onnxruntime-cpp

yolov8 hub,cpp with onnxruntime and opencv
Apache License 2.0
341 stars 60 forks source link

批处理 分割 调用时候报错 #64

Open WYQ-Github opened 3 months ago

WYQ-Github commented 3 months ago

使用批处理 分割时候 调用函数 出现分割的box全为0的情况。

然后我分开处理 发现没有报错 正常运行 屏幕截图 2024-08-29 155437

UNeedCryDear commented 3 months ago

确认下你的onnx文件是否为dynamic格式

WYQ-Github commented 3 months ago

确认下你的onnx文件是否为dynamic格式

导出的是dynamic格式, 检测批处理我这边测试是没问题的 屏幕截图 2024-08-29 162056

UNeedCryDear commented 3 months ago

能否提供一下模型和图片数据?或者用官方模式和图片复现一下这个情况

WYQ-Github commented 3 months ago

能否提供一下模型和图片数据?或者用官方模式和图片复现一下这个情况

代码水平有限大概知道问题原因了但不知道怎么修改 就是 我这个处理逻辑是从本地拿大图定位,定位之后裁剪分割。 如果我把裁剪后的小图先保存下来 再进行批处理分割时就不会有问题。 之前出问题的原因是拿到裁剪后的Mat 直接扔到分割队列里,没对裁剪后的图像进行保存 就直接进入分割任务。 具体怎么解决还请大佬指点

UNeedCryDear commented 3 months ago

没对裁剪后的图像进行保存 就直接进入分割任务。

不是很明白这个是什么意思,保存是保存到本地吗?在我看来你不是建立一个数组存这些分割好的数据,然后这个数组传入批量推理不就行行了吗

WYQ-Github commented 3 months ago

没对裁剪后的图像进行保存 就直接进入分割任务。

不是很明白这个是什么意思,保存是保存到本地吗?在我看来你不是建立一个数组存这些分割好的数据,然后这个数组传入批量推理不就行行了吗

是的 我把裁裁剪好的一组图片保存在本地了大概如下图所示,这样批处理是没出错的。

1724994910767
UNeedCryDear commented 3 months ago

确认下不保存图片的话,你的extractedMats里面的图片数据对不对。 如果不行的话,你提供一个demo,如果你有现在的模型代码和图片是最好的。如果模型和图片不方便提供的话,你看下模型和图片换成官方模型,剩下按照你的做法会不会出现,会出现的话把你截图的这个文件给我,我看下代码什么问题

WYQ-Github commented 3 months ago

确认下不保存图片的话,你的extractedMats里面的图片数据对不对。 如果不行的话,你提供一个demo,如果你有现在的模型代码和图片是最好的。如果模型和图片不方便提供的话,你看下模型和图片换成官方模型,剩下按照你的做法会不会出现,会出现的话把你截图的这个文件给我,我看下代码什么问题

好的 我有时间提供下demo给您

WYQ-Github commented 2 months ago

确认下不保存图片的话,你的extractedMats里面的图片数据对不对。 如果不行的话,你提供一个demo,如果你有现在的模型代码和图片是最好的。如果模型和图片不方便提供的话,你看下模型和图片换成官方模型,剩下按照你的做法会不会出现,会出现的话把你截图的这个文件给我,我看下代码什么问题

您好 现有模型和代码的demo整理好了,您提供下邮箱我发您

UNeedCryDear commented 2 months ago

找个网盘放就行

WYQ-Github commented 2 months ago

找个网盘放就行

链接: https://pan.baidu.com/s/159mTe7FMywnLbhmehz2z7A?pwd=1234 提取码: 1234

UNeedCryDear commented 2 months ago

image 你的问题在这里,每次检测的时候没有清空singleSegResult,导致这个数组保累加了前面的检测结果。 另外更新下代码,我修了一些问题