您的位置:首页 > 汽车 > 新车 > 投票网站定制_莱芜今日最新消息_baidu百度网盘_客户营销

投票网站定制_莱芜今日最新消息_baidu百度网盘_客户营销

2025/6/5 17:42:01 来源:https://blog.csdn.net/qq_44886601/article/details/144670956  浏览:    关键词:投票网站定制_莱芜今日最新消息_baidu百度网盘_客户营销
投票网站定制_莱芜今日最新消息_baidu百度网盘_客户营销

目录

1. 前言

2. MobileNet v2实现的茶叶病害分类

2.1 数据集

2.2 训练

2.3 训练结果

2.4 推理

3. 下载


1. 前言

MobileNet v2是一种卷积神经网络架构,专为高效的移动和嵌入式视觉应用而设计。它是MobileNet v1的升级版本,广泛用于图像分类、对象检测和语义分割等任务。

MobileNet v2的主要目标是在保持模型的效率和小尺寸的同时提供更好的准确性。它通过各种架构改进来实现这一点。一个关键的改进是使用瓶颈残差块,它由1x1和3x3深度可分离卷积的组合组成。这些块降低了计算成本,同时保留了模型的表示能力。

另一个改进是添加了线性瓶颈,它将线性激活函数应用于瓶颈层,而不是传统的非线性激活。这减少了模型中的参数数量,同时仍然保持了良好的性能。

MobileNet v2还引入了一种称为反向残差的功能,该功能使用残差连接来提高模型的表示能力。此功能允许更好的信息流,并增强了模型学习复杂特征的能力。

总体而言,MobileNet v2在准确性和效率之间提供了良好的权衡,使其非常适合智能手机和嵌入式系统等资源受限的设备。它已被广泛应用于各种应用中,并已被证明在现实世界中是有效的。

MobileNet V1不足:residual 残差模块的使用对网络的梯度更新很有帮助,可以加速网络的训练,以至于residual模块几乎成为了深度网络的标配。

因此,基于残差模块的优点,MobileNet V1 的第一个缺点就是没有引入residual block

其次很重要的是,经过实验证明,大部分训练出来的MobileNet V1里面的depthwise模块权重为零。这样不仅仅浪费了部分的资源,并且MobileNet V1本身参数量就很少, 权重为大部分为零对网络本身的性能也有影响。

并且,ReLU函数小于零的抑制性也会减少网络的参数。关于这部分的相关解释,因为depthwise深度卷积是单个2维的卷积核对单个channel进行卷积,所以可能忽略了空间尺度(channel)的信息。因为正常的卷积是3维的,这样包括了channel的信息,这样就类似于线性网络分类图像忽略了像素点的空间信息一样

关于MobileNet v2论文详细介绍:

MobileNet V2 图像分类_mobilenetv2 cifar10-CSDN博客

其中,MobileNet v2 网络结构如下:

2. MobileNet v2实现的茶叶病害分类

MobileNet  v2实现的model部分代码如下面所示,这里如果采用官方预训练权重的话,会自动导入官方提供的最新版本的权重

mobilenet_v2(weights=m.MobileNet_V2_Weights.DEFAULT if weights else False,progress=True)

2.1 数据集

数据集文件如下:

标签如下:代码会自动生成

{"0": "Anthracnose","1": "algal leaf","2": "bird eye spot","3": "brown blight","4": "gray light","5": "healthy","6": "red leaf spot","7": "white spot"
}

其中,训练集的总数为623,验证集的总数为262

2.2 训练

训练的参数如下:

    parser.add_argument("--model", default='mobileNet v2', type=str, help='mobileNet v2')parser.add_argument("--pretrained", default=True, type=bool)       # 采用官方权重parser.add_argument("--freeze_layers", default=True, type=bool)    # 冻结权重parser.add_argument("--batch-size", default=32, type=int)parser.add_argument("--epochs", default=100, type=int)parser.add_argument("--optim", default='SGD', type=str,help='SGD,Adam,AdamW')         # 优化器选择parser.add_argument('--lr', default=0.01, type=float)parser.add_argument('--lrf',default=0.001,type=float)                  # 最终学习率 = lr * lrfparser.add_argument('--save_ret', default='runs', type=str)             # 保存结果parser.add_argument('--data_train',default='./data/train',type=str)           # 训练集路径parser.add_argument('--data_val',default='./data/val',type=str)               # 测试集路径

网络分类的个数不需要指定,摆放好数据集后,代码会根据数据集自动生成!

2.3 训练结果

所有的结果都保存在 save_ret 目录下,这里是 runs 

weights 下有最好和最后的权重,在训练完成后控制台会打印最好的epoch

这里只展示部分结果:

训练日志:

    "epoch:99": {"train info": {"accuracy": 0.8876404494239544,"Anthracnose": {"Precision": 0.8772,"Recall": 0.7143,"Specificity": 0.9873,"F1 score": 0.7874},"algal leaf": {"Precision": 0.9306,"Recall": 0.8375,"Specificity": 0.9908,"F1 score": 0.8816},"bird eye spot": {"Precision": 0.7174,"Recall": 0.9429,"Specificity": 0.953,"F1 score": 0.8148},"brown blight": {"Precision": 0.9079,"Recall": 0.8625,"Specificity": 0.9871,"F1 score": 0.8846},"gray light": {"Precision": 0.9032,"Recall": 0.8,"Specificity": 0.9892,"F1 score": 0.8485},"healthy": {"Precision": 1.0,"Recall": 1.0,"Specificity": 1.0,"F1 score": 1.0},"red leaf spot": {"Precision": 0.9902,"Recall": 1.0,"Specificity": 0.9981,"F1 score": 0.9951},"white spot": {"Precision": 0.8364,"Recall": 0.92,"Specificity": 0.9656,"F1 score": 0.8762},"mean precision": 0.8953625,"mean recall": 0.8846499999999999,"mean specificity": 0.9838875,"mean f1 score": 0.8860250000000001},"valid info": {"accuracy": 0.8053435114196433,"Anthracnose": {"Precision": 0.8889,"Recall": 0.5333,"Specificity": 0.9914,"F1 score": 0.6666},"algal leaf": {"Precision": 0.9231,"Recall": 0.7273,"Specificity": 0.9913,"F1 score": 0.8136},"bird eye spot": {"Precision": 0.7222,"Recall": 0.8667,"Specificity": 0.9569,"F1 score": 0.7879},"brown blight": {"Precision": 0.7742,"Recall": 0.7273,"Specificity": 0.9694,"F1 score": 0.75},"gray light": {"Precision": 0.6389,"Recall": 0.7667,"Specificity": 0.944,"F1 score": 0.697},"healthy": {"Precision": 1.0,"Recall": 0.9545,"Specificity": 1.0,"F1 score": 0.9767},"red leaf spot": {"Precision": 0.9762,"Recall": 0.9762,"Specificity": 0.9955,"F1 score": 0.9762},"white spot": {"Precision": 0.6923,"Recall": 0.8571,"Specificity": 0.9273,"F1 score": 0.7659},"mean precision": 0.8269750000000001,"mean recall": 0.8011375,"mean specificity": 0.9719749999999999,"mean f1 score": 0.8042374999999999}}

训练集和测试集的混淆矩阵:

2.4 推理

推理是指没有标签,只有图片数据的情况下对数据的预测,这里直接运行predict脚本即可

需要把待推理的数据放在 inference/img 

3. 下载

关于本项目代码和数据集、训练结果的下载:

MobileNetV2网络实现的计算机视觉大项目:8种常见茶叶病害种类识别资源-CSDN文库

关于图像分类网络的改进可以参考:

改进系列_Ai 医学图像分割的博客-CSDN博客

图像分类网络改进_Ai 医学图像分割的博客-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com