darknet_io.cpp:896: error: (-215:Assertion failed) [BUG]很重要!!!!!

文章讲述了作者在使用Yolov3-tiny模型进行预测时遇到的OpenCV错误,原因是配置文件yolov3-tiny.cfg中的anchors数量与weights文件不匹配。解决方法是调整yolov3-tiny.cfg中的anchors数以适应实际的权重文件。
摘要由CSDN通过智能技术生成

出现问题:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\Python\Events\testdetection.py", line 5, in <module>
    net = cv2.dnn.readNet("yolov3-tinyfox_final.weights", "yolov3-tinyfox.cfg")
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\darknet\darknet_io.cpp:896: error: (-215:Assertion failed) classes > 0 && num_of_anchors > 0 && (num_of_anchors * 2) == anchors_vec.size() in function 'cv::dnn::darknet::ReadDarknetFromCfgStream'

出错部分代码处:

net = cv2.dnn.readNet("yolov3-tinyfox_final.weights", "yolov3-tinyfox.cfg")
classes = []
with open('obj1.names', 'r') as f:
    classes = f.read().splitlines()

原来喜欢yolov3去训练自己的数据集,使用的便是yolov3.cfg配置文件,很顺利地将训练自己的anchors,去修改yolov3.cfg文件,将训练后的权重文件自动保存在一个文件夹backup中。在我们测试时,调用backup文件夹中的最后一个权重文件XXX_final.weights。来预测我们的实际效果。

问题所在之处在于:yolov3.cfg与yolov3-tiny.cfg中的anchors数量不同。yolov3.cfg里面的anchors,num=9;而yolov3-tiny.cfg里面的anchors,num=6。

当我们使用的anchors,num=9时,在yolov3.cfg使用,是很顺利的。而在yolov3-tiny.cfg使用时,会报上述错误!!!由于你在yolov3-tiny.cfg里面使用的anchors数量9时,那文件里面的num=6修改为num=9不就好了。

修改后的yolov3-tiny.cfg:

一句话,多研究研究!!!实践实践实践实践......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值