96SEO 2026-02-19 08:55 0
创建自定义模型来检测对象是一个迭代过程包括收集和组织图像、标注对象、训练模型、模型部署使用部署的模型进行推理。

等图像格式包含了待检测的目标。
标注文件则是包含每张图像中目标对象的类别和位置信息的文本文件。
YOLO格式的标注文件通常是一个文本文件每一行代表一个目标物体的标注信息。
标注信息通常包含类别编号、目标中心横坐标相对于图像宽度、目标中心纵坐标相对于图像高度、目标宽度相对于图像宽度和目标高度相对于图像高度具体格式如下
x和y是目标中心位置的坐标经过归一化处理即目标的真实x、y值除以图像的宽度和高度是小于1的浮点数。
width和height是目标的宽度和高度同样经过归一化处理也是小于1的浮点数。
0.4”其中“0”表示类别编号后面的数字表示目标在图像中的位置和大小信息。
Annotate是一个简单的基于网络的工具用于管理和标记用户的图像集并以YOLO的注释格式导出。
无论是否使用
标记图像都可以使用它将数据集转换为YOLO格式创建YOLOv8
Baltimore。
Roboflow对这些图像进行了标记以便进行物体检测。
图像和注释在知识共享署名许可下发布。
个类别鱼类fish、水母jellyfish、企鹅penguins、鲨鱼sharks、海雀puffins、黄貂鱼stingrays和海星starfish。
大多数图像包含多个边界框。
提供了多种下载格式主要是数据集组织和标注格式的区别。
注意要以YOLOv8
0.2841269841269841如果自己收集和标注数据集也要按照以上格式来组织数据集和标注文件。
数据集配置文件中给出了数据集的路径训练集、检验集和验证集的路径分类任务的类别数量
项目中提供了多个数据集配置文件例如“\YOLOv8\ultralytics\cfg\datasets\coco8.yaml”
dataAquarium.yaml保存到数据集的根目录内容如下。
项目仓提供了检测Detection、分类Classification、分割Segmentation、姿态估计Pose、定向边界框检测OBB等任务的预训练模型。
YOLOv8
有多个不同规模的模型从小到大依次是YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l、YOLOv8x。
这些模型与各种操作模式兼容包括推理、验证、训练和导出便于在部署和开发的不同阶段使用。
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-obb.pt本文选择
“C:\Python\PythonProjects\YOLOv8”。
命令行接口CLI方便在各种任务和版本上训练、验证或推断模型不需要定制或代码可以使用
data./datasets/Aquarium/dataAquarium.yaml
C:\Python\PythonProjects\YOLOv8conda
C:\Python\PythonProjects\YOLOv8yolo
data./datasets/Aquarium/dataAquarium.yaml
data./datasets/Aquarium/dataAquarium.yaml,
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.block.SPPF
torch.nn.modules.upsampling.Upsample
ultralytics.nn.modules.conv.Concat
ultralytics.nn.modules.block.C2f
torch.nn.modules.upsampling.Upsample
ultralytics.nn.modules.conv.Concat
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.conv.Concat
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.conv.Conv
ultralytics.nn.modules.conv.Concat
ultralytics.nn.modules.block.C2f
ultralytics.nn.modules.head.Detect
C:\Python\PythonProjects\YOLOv8\datasets\Aquarium\labels\train.cache...
C:\Python\PythonProjects\YOLOv8\datasets\Aquarium\labels\val.cache...
runs\detect\train4\labels.jpg...
runs\detect\train4\weights\last.pt,
runs\detect\train4\weights\best.pt,
runs\detect\train4\weights\best.pt...
https://docs.ultralytics.com/modes/train3.3
接口的调用方式。
它提供了加载和运行模型以及处理模型输出的函数。
该界面设计易于使用以便用户可以在他们的项目中快速实现目标检测。
YOLO(./ultralytics/cfg/models/v8/yolov8.yaml)#
加载预训练的权重文件加速训练并提升模型性能model.load(yolov8n.pt)#
用指定数据集训练模型model.train(data./datasets/Aquarium/dataAquarium.yaml,
“./ultralytics/cfg/models/v8/yolov8.yaml”
“./datasets/Aquarium/dataAquarium.yaml”。
“./runs/detect/train/weights/best.py”。
“./ultralytics/cfg/default.yaml”
yolov8n.yaml根据需要选择合适的预训练模型文件dataNone数据文件路径如
coco128.yaml选择合适的数据集配置文件epochs100训练的周期数根据数据集大小和模型复杂度调整timeNone训练时间小时如果提供将覆盖epochs参数根据实际训练时间需求设置patience50早停的周期数等待无显著改进的周期数根据模型训练动态调整batch16每个批次的图像数量根据硬件资源调整imgsz640输入图像的尺寸根据硬件和模型性能要求调整saveTrue是否保存训练检查点和预测结果通常保持默认save_period-1每x周期保存检查点如果1则禁用根据需要设置cacheFalse是否使用数据加载缓存选项True/ram,
False根据硬件资源和数据集大小决定deviceNone运行设备如
devicecpu根据可用的硬件资源设置workers8数据加载的工作线程数根据系统资源调整projectNone项目名称根据需要自定义nameNone实验名称自定义实验名以便识别exist_okFalse是否覆盖现有实验如果需要重复实验设置为TruepretrainedTrue是否使用预训练模型通常对于新的训练任务保持Trueoptimizer‘auto’优化器可选项SGD,
Adam等根据模型和数据集特性选择合适的优化器verboseFalse是否打印详细输出开发和调试时可设为Trueseed0重现性的随机种子需要重现结果时设置确定值deterministicTrue是否启用确定性模式需要确保结果一致性时设置为Truesingle_clsFalse是否将多类数据作为单类训练特定应用场景下调整rectFalse矩形训练每个批次为最小填充特定应用场景下调整cos_lrFalse是否使用余弦学习率调度器根据训练策略调整close_mosaic10关闭马赛克增强的最后周期数根据训练需求调整resumeFalse从最后检查点恢复训练需要从中断的训练继续时设置为TrueampTrue是否使用自动混合精度训练根据硬件支持选择fraction1.0训练的数据集比例如需使用数据集的子集进行训练调整此值profileFalse训练期间记录ONNX和TensorRT速度性能分析时启用freezeNone冻结训练期间的前n层或特定层特定模型调整时使用lr00.01初始学习率根据模型和数据集特性调整lrf0.01最终学习率根据训练策略调整momentum0.937SGD动量/Adam
beta1根据优化器类型调整weight_decay0.0005优化器权重衰减通常保持默认值warmup_epochs3.0热身周期数根据模型特性调整warmup_momentum0.8热身初始动量根据训练策略调整warmup_bias_lr0.1热身初始偏置学习率根据训练策略调整box7.5盒子损失增益根据模型特性和训练数据调整cls0.5类别损失增益根据分类任务的复杂性调整dfl1.5DFL损失增益根据具体应用调整pose12.0姿态损失增益仅限姿态仅在姿态检测任务中使用kobj2.0关键点目标损失增益仅限姿态仅在姿态检测任务中使用label_smoothing0.0标签平滑比例根据训练策略调整nbs64标称批量大小根据硬件资源调整overlap_maskTrue掩码在训练期间是否重叠仅限分割训练仅在分割任务中使用mask_ratio4掩码下采样比例仅限分割训练仅在分割任务中使用dropout0.0使用dropout正则化仅限分类训练仅在分类任务中使用valTrue训练期间进行验证/测试通常保持默认plotsFalse训练/验证期间保存图表和图像需要可视化训练过程时设置为True
训练日志的图表对于评估和理解模型的性能非常重要可以帮助我们分析模型的优势和弱点。
best.pt损失值最小的模型文件last.pt训练到最后的模型文件
args.yaml模型训练的配置参数confusion_matrix.png混淆矩阵,展示了分类模型的性能。
每一行代表模型预测的类别每一列代表实际的类别。
对角线上的数值表示模型正确预测的数量。
对角线上较深的颜色表示该类别预测正确的数量较多。
confusion_matrix_normalized.png标准化混淆矩阵显示每个类别的预测正确比例。
F1_curve.pngF1-置信度曲线显示了F1得分随着置信度阈值的变化。
F1得分是精确度和召回率的调和平均值曲线的峰值表示给定置信度阈值下精确度和召回率的最佳平衡点。
labels.jpg标签分布图和边界框分布图。
柱状图显示了不同类别的实例分布数量。
散点图则展示了目标检测任务中边界框的空间分布情况反映了常见的尺寸和长宽比。
labels_correlogram.jpg标签相关图
相关图提供了不同类别标签之间的关系以及它们在图像中位置的相关性。
这有助于理解模型在识别不同类别时可能出现的关联或混淆。
P_curve.png精确度-置信度曲线展示了模型预测的精确度随着置信度阈值的变化。
精确度是模型预测正确正例与预测为正例总数的比值。
PR_curve.png精确度-召回曲线展示了模型的精确度与召回率之间的关系。
理想情况下模型应在精确度和召回率之间保持良好的平衡。
R_curve.png召回-置信度曲线显示了模型的召回率随置信度阈值的变化。
召回率是模型正确预测的正例与实际正例总数的比值。
results.png
展示了模型在训练过程中的性能变化包括损失函数的变化和评估指标如精确度、召回率和mAP的变化。
C:\Users\Administrator\.conda\envs\yolo8\python.exe
C:\Python\PythonProjects\YOLOv8\YOLOv8_val1.py
C:\Python\PythonProjects\YOLOv8\datasets\Aquarium\labels\val.cache...
可以是一个或多个图片文件一个视频文件也可以是一个文件夹或视频采集设备。
YOLO(yolov8nAquarium.pt)outputs
model.predict(source./datasets/Aquarium/images/val,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback