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-pose训练的两个分类的模型不能由.wts转为.engine #1600

Open
gaoxinstudent opened this issue Nov 21, 2024 · 4 comments

Comments

@gaoxinstudent
Copy link

我的训练数据集格式

我的训练数据集分为两类,每一类别的数据集格式是:分类+x,y,w,h+(x1,y1)+...(x4,y4)。即一个框加四个关键点

遇到的问题

使用官方提供的yolov8n-pose.pt模型可以正常由.wts转为.engine格式,但当我使用自己训练的模型时,它出现下面的报错

image

我的尝试的解决的方法

修改yolov8/include/config.h文件中的关键点描述

image


但是它依然产生了上面展示的报错信息

求解

是否有描述关键点的参数我未修改?还是它只支持coco8-pose数据集的格式,即一个分类+xywh+3*17

@lindsayshuo
Copy link
Contributor

有一个版本卷积变了,建议用最新的python代码训练,最新的做了区分

@xiongqi123123
Copy link

有一个版本卷积变了,建议用最新的python代码训练,最新的做了区分

官方的是[17,3],我自定义的数据集是[5,2],我省略了visible这一个维度,我该怎么修改代码呢?

@lindsayshuo
Copy link
Contributor

有一个版本卷积变了,建议用最新的python代码训练,最新的做了区分

官方的是[17,3],我自定义的数据集是[5,2],我省略了visible这一个维度,我该怎么修改代码呢?

参考https://github.com/ultralytics/ultralytics/blob/f7b9009c9177621dd91e000c906d636c42bb1250/ultralytics/nn/modules/head.py#L236

这里有说明,

在 YOLO Pose 中,17*3 里的 3 代表每个关键点(Keypoint)的三个信息:x 坐标、y 坐标和 可见性(Visibility)。具体来说:

x 坐标:关键点在图像中的水平位置,通常是相对于图像宽度的归一化坐标。
y 坐标:关键点在图像中的垂直位置,通常是相对于图像高度的归一化坐标。
可见性(Visibility):一个值,用来表示该关键点是否可见或被检测到。通常是通过 sigmoid 函数处理,返回一个介于 0 和 1 之间的值,值越接近 1 表示该关键点越可见,越接近 0 表示该关键点不可见或不确定。
因此,17*3 表示网络输出的尺寸为:

17 是关键点的数量(例如,17 个 COCO 数据集定义的人体关键点,如鼻子、左肩、右膝等)。
3 是每个关键点包含的信息(x 坐标,y 坐标和 visibility)。
在 Pose 类中,kpt_shape 被定义为 (17, 3),意味着每个图像有 17 个关键点,每个关键点有 3 个值(x,y 和 visibility),所以最终输出的关键点张量的形状将是 (batch_size, 17 * 3, height * width),其中 height 和 width 是特征图的大小。

然后你可以修改cu里面的对应代码

@xiongqi123123
Copy link

有一个版本卷积变了,建议用最新的python代码训练,最新的做了区分

官方的是[17,3],我自定义的数据集是[5,2],我省略了visible这一个维度,我该怎么修改代码呢?

参考https://github.com/ultralytics/ultralytics/blob/f7b9009c9177621dd91e000c906d636c42bb1250/ultralytics/nn/modules/head.py#L236

这里有说明,

在 YOLO Pose 中,17*3 里的 3 代表每个关键点(Keypoint)的三个信息:x 坐标、y 坐标和 可见性(Visibility)。具体来说:

x 坐标:关键点在图像中的水平位置,通常是相对于图像宽度的归一化坐标。 y 坐标:关键点在图像中的垂直位置,通常是相对于图像高度的归一化坐标。 可见性(Visibility):一个值,用来表示该关键点是否可见或被检测到。通常是通过 sigmoid 函数处理,返回一个介于 0 和 1 之间的值,值越接近 1 表示该关键点越可见,越接近 0 表示该关键点不可见或不确定。 因此,17*3 表示网络输出的尺寸为:

17 是关键点的数量(例如,17 个 COCO 数据集定义的人体关键点,如鼻子、左肩、右膝等)。 3 是每个关键点包含的信息(x 坐标,y 坐标和 visibility)。 在 Pose 类中,kpt_shape 被定义为 (17, 3),意味着每个图像有 17 个关键点,每个关键点有 3 个值(x,y 和 visibility),所以最终输出的关键点张量的形状将是 (batch_size, 17 * 3, height * width),其中 height 和 width 是特征图的大小。

然后你可以修改cu里面的对应代码

太感谢了!!!!!!!

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

3 participants