YOLO5的数据增强和权重设置hyp.scratch-med.yaml文件解读,degrees角度旋转和水平、垂直翻转解释

在新的YOLO5代码中,其中的超参数设置文件已经变成了5个,如下:放在data文件夹下得hyps文件夹中。

 作者对于这些文件的解释如下:

这是什么意思呢?可以翻译为中文看看:

这样是不是就比较清楚了。

这个文件的调用命令在train.py里面,如下:

 

那么我们接下来看看这个 hyp.scratch-med.yaml超参数设置文件里面都有些什么内容吧。

#YOLOv5 🚀 by Ultralytics, GPL-3.0 许可证
#用于从头开始进行中等增强 COCO 训练的超参数
# python train.py --batch 32 --cfg yolov5m6.yaml --weights '' --data coco.yaml --img 1280 --epochs 300
#请参阅超参数演变 https://github.com/ultralytics/yolov5#tutorials 教程

lr0: 0.01 # 初始学习率 (SGD=1E-2, Adam=1E-3)
lrf: 0.1 # 最终 OneCycleLR 学习率 (lr0 * lrf)
momentum: 0.937 # SGD 动量/亚当贝塔1
weight_decay:0.0005#优化器重量衰减5e-4
warmup_epochs: 3.0 # 预热纪元 (分数确定)
warmup_momentum: 0.8 # 预热初始动量
warmup_bias_lr: 0.1 # 预热初始偏差 lr
box: 0.05 # 箱体损耗增益
cls: 0.3 # cls 损失增益
cls_pw: 1.0 # cls BCELoss positive_weight
obj: 0.7 # obj 损耗增益(带像素的比例)
obj_pw: 1.0 # obj BCELoss positive_weight
iou_t:0.20 # IoU 训练阈值
anchor_t: 4.0 # 锚点多重阈值
# anchors:每个输出层 3 个锚点(0 个忽略)
fl_gamma:0.0 # 焦散伽玛(有效检测默认伽玛=1.5)
hsv_h: 0.015 # 图像 HSV 色调增强 (分数)
hsv_s: 0.7 # 图像 HSV-饱和度增强 (分数)
hsv_v: 0.4 # 图像 HSV-值增强(分数)
degrees: 0.0 # 图像旋转 (+/- 度)
translate:0.1 # 图像翻译(+/- 分数)
scale:0.9 # 图像比例(+/- 增益)
shear: 0.0 # 图像切变 (+/- 度)
perspective:0.0 # 图像透视(+/- 分数),范围 0-0.001
flipud: 0.0 # 图像上下翻转(概率)
fliplr: 0.5 # 图像左右翻转 (概率)
mosaic: 1.0 # 图像马赛克 (概率)
mixup:0.1 # 图像混淆(概率)
copy_paste:0.0 # 段复制粘贴(概率)

文件的前面为学习率和模型上的一些参数设置:

lr0: 0.01 # 初始学习率 (SGD=1E-2, Adam=1E-3)
lrf: 0.1 # 最终 OneCycleLR 学习率 (lr0 * lrf)
momentum: 0.937 # SGD 动量/亚当贝塔1
weight_decay:0.0005#优化器重量衰减5e-4
warmup_epochs: 3.0 # 预热纪元 (分数确定)
warmup_momentum: 0.8 # 预热初始动量
warmup_bias_lr: 0.1 # 预热初始偏差 lr

中间是一些损失权重的定义:

box: 0.05 # 箱体损耗增益
cls: 0.3 # cls 损失增益
cls_pw: 1.0 # cls BCELoss positive_weight
obj: 0.7 # obj 损耗增益(带像素的比例)
obj_pw: 1.0 # obj BCELoss positive_weight
iou_t:0.20 # IoU 训练阈值
anchor_t: 4.0 # 锚点多重阈值

最后面是一些数据增强的语句,如旋转,翻转等等,常用的就是修改后面的数据增强的数值,前面的基本不用修改。

# anchors:每个输出层 3 个锚点(0 个忽略)
fl_gamma:0.0 # 焦散伽玛(有效检测默认伽玛=1.5)
hsv_h: 0.015 # 图像 HSV 色调增强 (分数)
hsv_s: 0.7 # 图像 HSV-饱和度增强 (分数)
hsv_v: 0.4 # 图像 HSV-值增强(分数)
degrees: 0.0 # 图像旋转 (+/- 度)
translate:0.1 # 图像翻译(+/- 分数)
scale:0.9 # 图像比例(+/- 增益)
shear: 0.0 # 图像切变 (+/- 度)
perspective:0.0 # 图像透视(+/- 分数),范围 0-0.001
flipud: 0.0 # 图像上下翻转(概率)
fliplr: 0.5 # 图像左右翻转 (概率)
mosaic: 1.0 # 图像马赛克 (概率)
mixup:0.1 # 图像混淆(概率)
copy_paste:0.0 # 段复制粘贴(概率)

后面是概率的这种设置的数值在0-1之间,表示启用这个增强方式的概率。在有的时候可能会遇到需要修改旋转角度的问题,即degrees这个参数,这个的设置范围在0-180之内,0表示不启用,180表示随机旋转,0-180之间的则表示旋转多少度,应该是安装顺时针旋转那样来旋转角度的。

船舶KT模型辨识是指利用MATLAB软件对船舶动力学参数中的KT模型进行识别和估计。KT模型是描述船舶推力与螺旋桨转速之间关系的数学模型,也是评估船舶性能和设计优化的重要指标之一。 在MATLAB中进行船舶KT模型辨识可以通过以下步骤实现: 1. 数据采集:首先需要获取船舶在不同螺旋桨转速下的推力数据。可以通过实际船舶试验或者数值仿真的方式获取数据。 2. 数据预处理:对采集到的数据进行预处理,包括去除异常值、滤波和数据对齐等,确保数据的准确性和一致性。 3. 模型建立:根据船舶KT模型的定义和理论,构建适当的数学模型。这可能涉及到多个变量和参数,例如船舶速度、重量、螺旋桨直径等。 4. 参数估计:利用MATLAB中的数学工具,例如最小二乘法等,对建立的模型进行参数估计。通过拟合实测数据和模型输出结果,得到最优的模型参数。这一步骤可能需要多次迭代和调整,以达到较好的拟合效果。 5. 模型验证:对得到的KT模型进行验证,使用剩余数据或者新的实际测试数据进行验证。通过比较实测推力和模型预测推力的差异,评估模型的准确性和可靠性。 6. 模型应用:基于得到的KT模型,可以进行船舶性能优化、参数调整、控制策略设计等应用。利用MATLAB的优化和控制工具箱,可以进一步分析和优化船舶的推力性能。 通过以上步骤,利用MATLAB软件对船舶KT模型进行辨识和估计,可以帮助船舶设计师和工程师更好地了解和优化船舶的推力性能,提高航行效率和安全性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值