Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

没有yolov8.cpp #5487

Open
WangShuai771216 opened this issue Jun 4, 2024 · 5 comments
Open

没有yolov8.cpp #5487

WangShuai771216 opened this issue Jun 4, 2024 · 5 comments

Comments

@WangShuai771216
Copy link

ncnn量化后的yolov8模型模型文件,example目录下没有推理代码yolov8.cpp

@cillayue
Copy link

cillayue commented Jun 4, 2024

wait for

@whyb
Copy link
Contributor

whyb commented Jun 12, 2024

I just submitted a pull request for yolov8 example #5506
I hope it can be helpful to you.

@Deephome
Copy link

I just submitted a pull request for yolov8 example #5506 I hope it can be helpful to you.

Hi, I tested the yolov8.cpp example in your PR, but the results are unreasonable. Specifically, I got yolov8n.bin and yolov8n.param following your guide in yolov8.cpp, and your yolov8n example returns many detections with same confidence of 0.5. The result:
image

@whyb
Copy link
Contributor

whyb commented Jun 19, 2024

I just submitted a pull request for yolov8 example #5506 I hope it can be helpful to you.

Hi, I tested the yolov8.cpp example in your PR, but the results are unreasonable. Specifically, I got yolov8n.bin and yolov8n.param following your guide in yolov8.cpp, and your yolov8n example returns many detections with same confidence of 0.5. The result: image

我知道这个问题,这个原因不是因为我这边的原因,而是您导出的yolov8.ncnn.* 模型是仅固定支持[1,3,640,640]的模型,并不支持动态shape输入造成的。

这个错误的模型会导致输入进去的数据为了保持图像原比例缩放,并不符合模型要求的[1,3,640,640],实际上有可能是[1,3,640,540],所以模型内部会错位读取图像,对结果造成严重偏差。

只是要尝试效果的话,您可以直接把输入的图片用画图工具或者cv::resize() 修改成640x640的尺寸。

pnnx本身是支持动态shape输入的,您可以去参考 https://github.com/pnnx/pnnx?tab=readme-ov-file#------detailed-options

导出正确的支持动态shape输入的模型,期待您的好消息~🤣

@Deephome
Copy link

I just submitted a pull request for yolov8 example #5506 I hope it can be helpful to you.

Hi, I tested the yolov8.cpp example in your PR, but the results are unreasonable. Specifically, I got yolov8n.bin and yolov8n.param following your guide in yolov8.cpp, and your yolov8n example returns many detections with same confidence of 0.5. The result: image

我知道这个问题,这个原因不是因为我这边的原因,而是您导出的yolov8.ncnn.* 模型是仅固定支持[1,3,640,640]的模型,并不支持动态shape输入造成的。

这个错误的模型会导致输入进去的数据为了保持图像原比例缩放,并不符合模型要求的[1,3,640,640],实际上有可能是[1,3,640,540],所以模型内部会错位读取图像,对结果造成严重偏差。

只是要尝试效果的话,您可以直接把输入的图片用画图工具或者cv::resize() 修改成640x640的尺寸。

pnnx本身是支持动态shape输入的,您可以去参考 https://github.com/pnnx/pnnx?tab=readme-ov-file#------detailed-options

导出正确的支持动态shape输入的模型,期待您的好消息~🤣

Well, I find out that the problem originates from a bug in your yolov8.cpp
the following lines:

    int wpad = (w + MAX_STRIDE - 1) / MAX_STRIDE * MAX_STRIDE - w;
    int hpad = (h + MAX_STRIDE - 1) / MAX_STRIDE * MAX_STRIDE - h;

should be modified as:

    int wpad = (target_size + MAX_STRIDE - 1) / MAX_STRIDE * MAX_STRIDE - w;
    int hpad = (target_size + MAX_STRIDE - 1) / MAX_STRIDE * MAX_STRIDE - h;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants