出现问题:
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:
一句话,多研究研究!!!实践实践实践实践......