Traceback (most recent call last):
File "C:\Users\Gary\Desktop\yolov5-5.0\yolov5-5.0\train.py", line 543, in <module>
train(hyp, opt, device, tb_writer)
File "C:\Users\Gary\Desktop\yolov5-5.0\yolov5-5.0\train.py", line 88, in train
model = Model(opt.cfg or ckpt['model'].yaml, ch=3, nc=nc, anchors=hyp.get('anchors')).to(device) # create
File "C:\Users\Gary\Desktop\yolov5-5.0\yolov5-5.0\models\yolo.py", line 75, in __init__
self.yaml_file = Path(cfg).name
NameError: name 'Path' is not defined
训练yolo5遇到如下问题,求大家们指点
原detect代码里面有保存结果的参数,即save_txt以及save_conf等,将这两个参数设置为True后,能在预测的文件里面找到中心坐标以及置信度了,比如:
保存的地方就是yolov5-master\runs\detect\exp系列的文件里面。
如果要单独提取结果,就需要对源代码进行部分修改,首先我们在detect.py里面找到:
其中xywh就是框坐标的内容,即中心xy以及宽高。conf就是置信度。但要注意,原代码是建立在save_txt=True的基础上,也就意味着每次调用detect代码,都会在runs\detect里面新建exp文件,随着时间增加就会越建越多,需要清理。所以在不需要将结果保存到文件夹里面时,最好的办法就是将:
代码放在if前面,同时nosave=True即可。我的做法是添加代码:
xywh_result = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist() # normalized xywh
xywh_result.append(conf.item())
即:
最后可以在代码末端加入return xywh_result就能直接返回结果了。(上传的yoloV5分流文件中已经做好了修改)