哼º 2023-05-23 00:55 采纳率: 78.6%
浏览 26
已结题

oks的计算值大于1是怎么回事

做了一个关键点检测的模型
要求训练时添加oks作为评价标准
找了一个oks的计算程序,但是不知道为什么运行时oks升高的很快,而且随着batchsize的增大,起始oks值会变小,但是殊途同归的会大于1
batchsize为32时:

img

batchsize为64时:

img

这种情况是oks的代码有问题,还是说这种计算就是需要很大的batchsize呢?不太知道问题出在哪……
还有就是想顺便问下,一般其他关键点检测网络的oks是多少啊,虽然是越靠近1越好,但是想知道一般oks是多少就够用了,或者说常见的网络oks都是多少呢?

  • 写回答

1条回答 默认 最新

  • IT论之程序员 2023-05-28 15:19
    关注

    首先,Oks(Object Keypoint Similarity)得分大于1通常表示有问题。一般来说,Oks得分应该趋近于1,表示预测的关键点位置和ground truth位置高度符合。
    导致Oks得分大于1的原因可能有:

    1. Oks计算公式有问题。Oks计算涉及预测框和ground truth框的交并比,如果计算有误可能会导致得分过高。你可以检查一下Oks的计算代码,确认INTERSECT/UNION的计算是否正确。
    2. 批大小过大。当批大小变大时,网络的预测变化可能较大,导致Oks得分起伏不定。你可以试试降低批大小,看Oks得分是否可以稳定在1附近。
    3. 网络结构或损失函数的问题。网络结构或损失函数设计不当,无法很好地预测关键点位置,导致Oks得分不稳定。你可以检查网络结构和损失函数,确保关键点预测任务得到很好的训练。
      关于其他网络的Oks得分,这里有一些参考值:
    • COCO keypoint detection challenge 2017的获胜模型Hourglass的Oks为0.90
    • OpenPose模型的Oks为0.85左右
    • AlphaPose模型的Oks为0.80左右
      这些都是比较主流和高效的人体关键点检测模型,Oks得分0.8-0.9左右已经可以达到很不错的效果。你的模型如果能达到0.8左右的Oks,基本上就可以算是比较成功的了。
      总之,我的建议是:
    1. 检查Oks计算公式,确认没有问题
    2. 适当降低批大小,使Oks得分稳定
    3. 检查网络结构和损失函数,确保关键点预测效果好
    4. 参考其他高效模型的Oks得分,设置一个目标数值,比如0.8左右
      希望这些可以帮助你解决Oks得分过高的问题,让模型的关键点预测效果更加稳定和准确。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 已采纳回答 6月14日
  • 创建了问题 5月23日

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退