PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.88k stars 2.9k forks source link

ppyoloe_r推理输出包含确定的角度方向信息吗? #8048

Closed ouyangguang0726 closed 7 months ago

ouyangguang0726 commented 1 year ago

问题确认 Search before asking

请提出你的问题 Please ask your question

我测试ppyoloe_r时,训练用的标注文件中的segmentation字段的4个顶点次序是固定的,第一个点永远是目标的左上角。 但是我发现推理输出旋转矩形的4个顶点,它的第一个点是随机的,也就是说这个矩形的方向可能会有随机的n*90度的偏差。请问一下,ppyoloe_r是不是不支持确定方向的输出?

wangxinxin08 commented 1 year ago

训练输入第一个点可以不是目标的左上角,输出第一个点也可以不是目标的左上角,只要输出四个顺序的点即可使用cv2得到确定的角度

panp4n commented 1 year ago

我测试的结果是没有方向的输出,不管输入的第一个点是否为目标左上角,输出结果第一个点都是x轴逆时针旋转最先经过的那个点。这点和opencv RotatedRect返回结果一样。

ouyangguang0726 commented 1 year ago

训练输入第一个点可以不是目标的左上角,输出第一个点也可以不是目标的左上角,只要输出四个顺序的点即可使用cv2得到确定的角度

输出4个顺序的点确实可以画出一个正确的矩形,但是这个矩形的方向是指向哪条边呢?也就是说,目标的角度如何确定呢? 输出的结果应该有4个相差90度的可能的方向,如果按长短边进行进一步区分,那么仍然有两个相差180度的方向

ouyangguang0726 commented 1 year ago

我测试的结果是没有方向的输出,不管输入的第一个点是否为目标左上角,输出结果第一个点都是x轴逆时针旋转最先经过的那个点。这点和opencv RotatedRect返回结果一样。

谢谢,请教一下,如果我想得到角度,有什么便捷的方法吗?

panp4n commented 1 year ago

我也是有项目有这个需求,测试了一些旋转框模型没办法实现。halcon里倒是有一些带方向的模板匹配,但是速度较慢。 我现在是通过多检测目标特定方位的一个特征区域,通过结果判断它在该目标的位置来计算方向的。(迫于项目压力只能想到这种方式了😂)

wangxinxin08 commented 1 year ago

我测试的结果是没有方向的输出,不管输入的第一个点是否为目标左上角,输出结果第一个点都是x轴逆时针旋转最先经过的那个点。这点和opencv RotatedRect返回结果一样。

谢谢,请教一下,如果我想得到角度,有什么便捷的方法吗?

cv2.minAreaRect大概是这个函数,可以得到一个角度,这个角度符合opencv的定义,可以看看是否满足你的需求

paddle-bot[bot] commented 7 months ago

Since this issue has not been updated for more than three months, it will be closed, if it is not solved or there is a follow-up one, please reopen it at any time and we will continue to follow up. It is recommended to pull and try the latest code first. 由于该问题超过三个月未更新,将会被关闭,若问题未解决或有后续问题,请随时重新打开(建议先拉取最新代码进行尝试),我们会继续跟进。