记录半年前的工作。
由于想使用yolov5进行目标检测,输出相应的坐标,Linux系统不熟悉,服务器用的不方便,于是配置win10系统下的yolov5虚拟环境,利用pycharm来检测图片
下载YOLOv5mirrors / ultralytics / yolov5 · GitCode
或者(18条消息) YOLOv5源码包YOLOv5_master-图像识别文档类资源-CSDN文库
环境搭建参考
(29条消息) window系统下利用Anaconda安装pytorch+cuda搭建深度学习环境_暂未成功人士!的博客-CSDN博客
(29条消息) 【目标检测】Anaconda3+PyCharm+Python3.8+PyTorch1.10+Cuda10.2的YOLOv5复现教程_KayViolet的博客-CSDN博客_yolov5代码复现
训练参考
(29条消息) window系统下利用Anaconda安装pytorch+cuda搭建深度学习环境_暂未成功人士!的博客-CSDN博客(29条消息) 深度学习目标检测---使用yolov5训练自己的数据集模型(Windows系统)_暂未成功人士!的博客-CSDN博客_数据集模型
注意事项:所有的路径不能有中文,不然有可能出现奇奇怪怪的问题。
检测
我需要输出框图的上下左右值,于是将detect.py中代码进行更改
需要改两个地方,注释掉的是原来的
第一个地方,190行左右
#txt_path = str(save_dir / 'labels' / p.stem) + ('' if dataset.mode == 'image' else f'_{frame}') # img.txt
txt_path = str(save_dir / 'labels' / p.stem)
第二个地方,200-220行左右。lin是我输出的上下左右
for *xyxy, conf, cls in reversed(det):
#if save_txt: # Write to file
#xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist() # normalized xywh
#line = (cls, *xywh, conf) if save_conf else (cls, *xywh) # label format
#with open(txt_path + '.txt', 'a') as f:
#f.write(('%g ' * len(line)).rstrip() % line + '\n')
if save_txt: #重写成mot17格式的输出
xywh = xyxy2xywh(torch.tensor(xyxy).view(1, 4))
#line = (frame,-1, xyxy[0],xyxy[1],xywh[:,2],xywh[:,3],conf,-1,-1,-1)
line = (frame,-1, xyxy[0],xyxy[1],xywh[:,2],xywh[:,3],conf,-1,-1,-1)
lin=(xyxy[0],xyxy[1],xywh[:,2],xywh[:,3])
with open(txt_path + '.txt', 'a') as f:
f.write(('%g ' *(len(lin)-1)+'%g').rstrip() % lin + '\n')
如果想要检测结果取消标签,参考了这(25条消息) YOLOv5 检测结果取消显示标签(只显示边界框bbox)_wangchen1801的博客-CSDN博客