geekzhu001 / Yolo-Fastest-MNN

18 stars 5 forks source link

如何根据网络的输出修改后处理代码? #1

Open GeneralJing opened 3 years ago

GeneralJing commented 3 years ago

我用自己的数据训练了YOLO fastest模型,使用作者提供的测试脚本进行测试,得到的效果还不错,转为mnn后,需要对结果进行后处理,我的是两个列表的小目标检测,默认使用你的后处理代码是没有检测输出的,调试看在获取输出的地方,也就是sigmoid函数输出的值都很小,不知道什么原因。 for(int s = 0;s < 3;s++){ float scores = sigmod( output[fpn]->host()[ c channel + s fmsize + 4 ] ); cout<<"scores:"<<scores<<endl; 这个位置。想问下你的后处理逻辑跟yolofastest Git上处理一致吗?你写的时候是怎么个思路写的呢?它那块的代码还没仔细研究。

geekzhu001 commented 3 years ago

你好,后处理修改需要对结果的tensor shape比较了解。我这是写的VOC,如果你是COCO,需要改成80类,否则结果不正确,如果还是不正常,可以加我球球 979423896 交流下

------------------ 原始邮件 ------------------ 发件人: "geekzhu001/Yolo-Fastest-MNN" <notifications@github.com>; 发送时间: 2021年3月10日(星期三) 下午3:52 收件人: "geekzhu001/Yolo-Fastest-MNN"<Yolo-Fastest-MNN@noreply.github.com>; 抄送: "Subscribed"<subscribed@noreply.github.com>; 主题: [geekzhu001/Yolo-Fastest-MNN] 如何根据网络的输出修改后处理代码? (#1)

我用自己的数据训练了YOLO fastest模型,使用作者提供的测试脚本进行测试,得到的效果还不错,转为mnn后,需要对结果进行后处理,我的是两个列表的小目标检测,默认使用你的后处理代码是没有检测输出的,调试看在获取输出的地方,也就是sigmoid函数输出的值都很小,不知道什么原因。 for(int s = 0;s < 3;s++){ float scores = sigmod( output[fpn]->host()[ c channel + s fmsize + 4 ] ); cout<<"scores:"<<scores<<endl; 这个位置。想问下你的后处理逻辑跟yolofastest Git上处理一致吗?你写的时候是怎么个思路写的呢?它那块的代码还没仔细研究。

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

GeneralJing commented 3 years ago

嗯 好的 我加你QQ吧