黄冈网站建设费用,专业建网站设计公司,可以用于制作网页的软件,上海高端设计公司前言#xff1a; 在使用yolov5之前#xff0c;尝试过到百度飞桨平台#xff08;小白不建议#xff09;、AutoDL平台#xff08;这个比较友好#xff0c;经济实惠#xff09;训练模型。但还是没有本地训练模型来的舒服。因此远程了一台学校电脑来搭建自己的检测模型。配置…前言 在使用yolov5之前尝试过到百度飞桨平台小白不建议、AutoDL平台这个比较友好经济实惠训练模型。但还是没有本地训练模型来的舒服。因此远程了一台学校电脑来搭建自己的检测模型。配置嘛勉强过的去。毕竟训练的模型也不是很大。本来想着也想搞一些nb轰轰的模型但想想还是算了一是经济云平台只想白嫖二是时间准备那些数据集就非常浪费时间自己昨天制作的那150关于猫的label就标了三四个小时还标错了导致训练时全部返工真的烦三是学校电脑配置还是不咋行训练完估计模型精度也就那样子。想想嘛还是根据喜好训练一个模型吧
使用yolov5进行本地部署的原因
推荐使用YOLOv5训练检测模型有以下几个原因 1. 高性能YOLOv5在检测任务上具有出色的性能。相比于之前的版本YOLOv5采用了更深的网络结构和更多的特征层可以提供更准确的检测结果并且在速度上也有所提升。 2. 简单易用YOLOv5提供了一个简单的训练和测试框架使得用户可以轻松地进行模型的训练和评估。用户只需要准备好训练数据并进行简单的配置就可以开始训练模型。 3. 多平台支持YOLOv5支持多种平台包括CPU、GPU和TPU等。这使得用户可以根据自己的需求选择合适的硬件平台来进行训练和推理。 4. 开源社区支持YOLOv5是一个开源项目有一个庞大的开源社区支持。这意味着用户可以从社区中获取到丰富的资源、教程和解决方案以帮助他们更好地使用和优化YOLOv5模型。 综上所述YOLOv5是一个性能优秀、简单易用、多平台支持且有开源社区支持的检测模型因此推荐使用它进行训练和应用。
数据预处理
xml文件转txt文件
在使用yolov5训练模型之前需要将label目录下的xml文件转为txt文件。 转换代码如下
import os
import xml.etree.ElementTree as ETimport os
import xml.etree.ElementTree as ETdef convert_xml_to_yolov5_label(xml_file, txt_file):tree ET.parse(xml_file)root tree.getroot()with open(txt_file, w) as f:for obj in root.findall(outputs/object/item):class_name obj.find(name).textbbox obj.find(bndbox)x_min float(bbox.find(xmin).text)y_min float(bbox.find(ymin).text)x_max float(bbox.find(xmax).text)y_max float(bbox.find(ymax).text)width x_max - x_minheight y_max - y_minx_center x_min width / 2y_center y_min height / 2# 将坐标归一化到0-1之间width / float(root.find(size/width).text)height / float(root.find(size/height).text)x_center / float(root.find(size/width).text)y_center / float(root.find(size/height).text)f.write(f{class_name} {x_center} {y_center} {width} {height}\n)def batch_convert_xml_to_yolov5_label(xml_folder, txt_folder):if not os.path.exists(txt_folder):os.makedirs(txt_folder)for file in os.listdir(xml_folder):if file.endswith(.xml):xml_file os.path.join(xml_folder, file)txt_file os.path.join(txt_folder, file.replace(.xml, .txt))convert_xml_to_yolov5_label(xml_file, txt_file)# 示例用法
xml_folder rC:\Users\1\Desktop\images\labelsxml
txt_folder rC:\Users\1\Desktop\images\labels
batch_convert_xml_to_yolov5_label(xml_folder, txt_folder)划分训练集和验证集
因为数据集比较少所以验证集部分直接使用训练集来做验证。
数据目录结构如下 编写data目录yaml文件索引文件加载数据的访问路径以及检测类别
# 数据集根路径
path: C:\Users\1\Desktop\catmaoxunlian\catdata
#训练集
train: images/train
#验证集
val: images/valnc: 1
# Classes
names: [cat]
示例编辑如下 编写models目录下的yum文件 模型训练
找到yolov5目录下的train.py,加载数据集yaml文件和models云文件以及预训练模型
详细教程请找我的另一篇博客懒得再写一遍基于yolov5的NEU-NET产品缺陷目标检测_map50_挽风起苍岚的博客-CSDN博客 基本上检测出来了不过精度不是很高精度不高的原因主要时数据集太少猫的类别很多训练次数不是很够。 模型推理
python detect.py --weights yolov5s.pt --source 0 # webcamimg.jpg # imagevid.mp4 # videoscreen # screenshotpath/ # directorylist.txt # list of imageslist.streams # list of streamspath/*.jpg # globhttps://youtu.be/LNwODJXcvt4 # YouTubertsp://example.com/media.mp4 # RTSP, RTMP, HTTP stream
测试图片如下 模型推理后的结果 额模型精度有待加强不过先这样吧勉勉强强哈哈。。。
后续内容
训练一个猫12分类的模型
部署到云平台开放一个接口调用模型API
然后结合猫目标检测模型制作一个C#小程序。
增加一个GPT功能等等吧
....