yolo在验证获得检测结果的txt时出现Segmentation fault(core dumped)的解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31511955/article/details/86646149

最近项目上要用到yolo检测,需要获取map数值,则需要检测结果的txt文档。因此需要调用yolo中的valid命令。但是在运行过程中会出现Segmentation fault(core dumped)的问题,如下图
在这里插入图片描述
在网上查找了很多原因,说是内存指向了空地址什么的,也看不太懂。最后经过多方验证才发现了问题的所在。
原因确实是指向了空的地址,是因为在训练的过程中,没有修网络配置文件中的最后一层的检测filters的个数,导致最后结果的输出比实际验证中的类别要多,导致在读取的时候读到了空的地址,但是这个没有修改的模型最终测试效果展示图效果也还行。说明可以起到检测作用。
最终本人的解决办法是修改了filters 的个数 和自己类别一样按照((5+numclass)*3)的公式进行修改,训练完成后就可以愉快的得到检测结果的txt文档了。
总结一下:若在yolo检测中出现这个问题,不要怀疑自己的机器或者darknet本身出现问题,先从自身考虑看自己在训练过程中出现了什么问题,最终会发现自己可能犯了一个低级错误,改过来从新训练网络就可以了。

猜你喜欢

转载自blog.csdn.net/qq_31511955/article/details/86646149