时间:2025-08-09 08:09:49
本项目针对岩相分析的痛点,采用PP-LCNet模型对岩石薄片进行分类。数据集包含图片,分为岩石,并按例划分训练和验证集。通过数据增强策略,在epochs后精度达到了约。此外,该模型还能够提升数据处理效率与一致性,显著提高了分析结果的准确性与可靠性。
在沉积和成岩研究中,通过岩石薄片的微观描述与分类,进行岩相分析是一项重要的技术。这项工作对于油气勘探开发工程实践具有基础性指导地位。通过对矿物比例、分布、质地、孔隙空间以及胶结成分等参数的详细考察,为后续的油气田开发方案设计提供了更加有效和精准的方法。在实际应用中,多数岩相分析依赖于地质学家使用显微镜进行目视检查。然而,这种操作方式面临着时间和精力的双重挑战,因为不同专家的操作可能因标准规范的不同而产生差异。此外,分布在全球各地的油田具有不同的地质特征和发展机理,因此需要充分考虑跨源识别这一重要因素。除此之外,现有自动化识别方法虽然可以对岩相进行某些类型和特定区域的分析,但它们的主要局限在于覆盖范围有限且缺乏迁移能力。这意味着,这些方法在应用到更多样化的情况时可能会失效。为了解决上述痛点,飞桨AI达人特训营特别针对岩石薄片分类开展了图像分类任务。通过这种方式,利用深度学习技术对岩相进行自动化识别和分析,可以有效减少人工操作的重复性劳动、提高效率,并且能够跨区域识别和迁移,从而实现更加精准和高效的研究。这种基于AI的技术不仅能够提供准确的信息支持,还能减轻人工繁重的工作负担,使得地质学家能够在更长时间内专注于研究和创新方面的工作。通过飞桨AI技术的应用,岩相分析的精度、效率以及灵活性都得到了显著提升,从而为油气勘探开发提供了更加有力的保障。
在南京大学地球科学与工程学院的近历史中,薄片始终扮演着不可或缺的角色。这些教学用薄片经历了从消耗、流失到增加和更新的过程,并包含不同的沉积岩、火成岩和变质岩。南京大学的这组薄片覆盖了以上的常见岩石类型,涵盖了地质专业教学大纲要求的以上的常见矿物和岩石结构。为了适应当前的教学需求,这些数据集进行了些许处理,使其符合PaddleX对数据集的要求。训练集占,验证集占,共计图片,包含类别(火成岩、沉积岩和变质岩)的薄片照片。
南京大学岩石学教学用岩石显微照片数据集:https://aistudio.baidu.com/aistudio/datasetdetail/150040
处理后的数据集:https://aistudio.baidu.com/aistudio/datasetdetail/153329
铝土矿
部分沉积岩图片
大理岩
部分变质岩图片
二辉橄榄岩
部分火成岩图片
本项目使用的的 PP-LCNet 模型,来自2021年的PP-LCNet: A Lightweight CPU Convolutional Neural Network。
原文地址:https://arxiv.org/abs/2109.15099
本文指出,尽管当前在启用Intel MKLDNN的CPU上,主流轻量级模型的推理效率未能最大化提升,但提出了一种新的架构PP-LCNet,采用MKLDNN技术进行优化,从而能够有效加速CPU卷积神经网络的运行速度。
作者深入探讨了以下三大关键议题: 提升网络学习表现:如何无需显著增加延迟,增强网络教学的优势展现? 优化轻量级模型性能:在CPU上实现高质量的轻量级模型需要哪些要素? 融合策略设计:怎样将多种策略有效结合,在CPU上构建高效且可靠的轻量级模型?
PP-LCNet 模型,与其他主流模型的对比如图所示:
PP-LCNet 的网络结构:
新颖方法:深度分离卷积在小型网络中的优化基于 MobileNet V的 DepthSepConv 模块作为基础单元,并发现,在较小模型中,使用 additional、concat 等操作反而会降低准确率并增加推理时间。DepthSepConv 模块已被优化以加快速度,比 Inverted-Block 和 ShuffleNet-Block 更快。作者基于 DepthSepConv 堆叠形成了 BaseNet,这是一种新的网络架构,相比传统的 MobileNet V提升了准确性的同时保持了较低的推理时间和资源消耗。为了进一步提升性能并保留高效的计算框架,作者引入了 H-Swish 作为激活函数,实验结果表明使用 ReLU 获得了与 Swish 相当甚至更好的准确度,同时不会增加推理时间。SE 模块的有效性通常在某些硬件平台上受到限制,尤其是 CPU 上。为此,作者建议将 SE 模块的位置安排在网络的末端,这样既可以在不影响其性能的情况下减小对推理时间的影响,又可以确保最佳的模型表现。为了解决更大的卷积核带来的增加推理时间的问题,作者采用与 SE 模块类似的策略,在网络尾部使用 卷积替代原来的 卷积,从而达到接近的效果。这一方法在近似地保持性能的同时显著减少了推理时间和资源需求。最后,为了增强模型的拟合能力并减少存储空间的需求,作者在经过 GAP 后增加了一个拥有 维 卷积层(相当于 FC 层)。这样的设计不仅允许模型进行更多的存储,同时不影响推理时间。
图像分类任务的对比:
目标检测任务对比:
语义分割任务对比:
消融实验:
SE 模块在不同位置的影响:
大卷积核在不同位置的影响:
不同技术的影响:
总结:PP-LCNet在轻量级Intel CPU上展现了更高的准确性和速度平衡,并且显著减少了NAS搜索的空间,为实现更快速的NAS轻量级模型访问提供了可能性。
参考资料: PP-LCNet: A Lightweight CPU Convolutional Neural Network 冬日and暖阳的博客 超越MobileNetV3!这个轻量级网络PP-LCNet在CPU上快到起飞!
解压处理后的数据集。 安装 PaddleX,项目中使用的版本是 2.1.0。 导入相关库。 In []
# 解压数据集!ls /home/aistudio/data !unzip /home/aistudio/data/data153329/D0001.zip -d /home/aistudio/data/data153329/Pic登录后复制 In []
# 安装PaddleX!pip install paddlex # 安装完后请重启内核登录后复制 In [11]
# 添加PaddleX安装路径,并导入相关库import sys sys.path.append('/home/aistudio/work/paddlex')import paddlex as pdxfrom paddlex import transforms as T登录后复制
设定训练集与验证集的数据增强方案。 进入数据集路径。 定义训练集与验证集。 In []
# 训练集数据增强train_transforms = T.Compose([ T.ResizeByShort(), T.CenterCrop(crop_size=224), T.RandomHorizontalFlip(), T.RandomVerticalFlip(), T.RandomBlur(prob=0.1), T.Normalize() ])# 验证集数据增强eval_transforms = T.Compose([ T.ResizeByShort(), T.CenterCrop(crop_size=224), T.RandomHorizontalFlip(), T.RandomVerticalFlip(), T.RandomBlur(prob=0.1), T.Normalize() ])登录后复制 In []
# 进入数据集路径(数据集划分的时候没写好,得到数据集目录下才能进行训练)%cd /home/aistudio/data/data153329/Pic/D0001/登录后复制 In []
# 定义训练集train_dataset = pdx.datasets.ImageNet( data_dir='', file_list='train_list.txt', label_list='labels.txt', transforms=train_transforms, shuffle=True)# 定义验证集 eval_dataset = pdx.datasets.ImageNet( data_dir='', file_list='val_list.txt', label_list='labels.txt', transforms=eval_transforms)登录后复制
本项目采用PPLCNet作为网络结构,发现大约在epoch时就能达到理想的精度(约)。由于数据集中每张图片会有不同的变形,故batch_size设置为训练输出保存在/home/aistudio/output/PPLCNet下。
num_classes = len(train_dataset.labels) model = pdx.cls.PPLCNet(num_classes=num_classes) model.train(num_epochs=50, train_dataset=train_dataset, eval_dataset=eval_dataset, learning_rate=0.00585938, train_batch_size=24, save_interval_epochs=2, save_dir='/home/aistudio/output/PPLCNet', use_vdl=True)登录后复制
Metrics/Training(Step): Loss
Metrics/Training(Step): ACC 1
Metrics/Training(Step): Learning Rate
Metrics/Eval(Epoch): ACC 1
导入模型 测试Igneous_Rock 测试Metamorphic_Rock 测试Sedimentary_Rock In []
# 导入模型model = pdx.load_model("/home/aistudio/output/PPLCNet/best_model/")登录后复制 In []
# 测试 Igneous_Rock test_pic = "/home/aistudio/data/data153329/Pic/D0001/Igneous_Rock/Igneous_10_1-1.jpg" print(model.predict(test_pic))登录后复制
[{'category_id': 0, 'category': 'Igneous_Rock', 'score': 0.9999058}]登录后复制 In []
# 测试 Metamorphic_Rocktest_pic = "/home/aistudio/data/data153329/Pic/D0001/Metamorphic_Rock/Metamorphic_13_2-3.jpg"print(model.predict(test_pic))登录后复制
[{'category_id': 1, 'category': 'Metamorphic_Rock', 'score': 0.9999999}]登录后复制 In []
# 测试 Sedimentary_Rocktest_pic = "/home/aistudio/data/data153329/Pic/D0001/Sedimentary_Rock/Sedimentary_17_1-9.jpg"print(model.predict(test_pic))登录后复制
[{'category_id': 2, 'category': 'Sedimentary_Rock', 'score': 1.0}]登录后复制
导出 Paddle Inference 模型 导出 Paddle Lite 模型 In []
# 导出 Paddle Inference 模型!paddlex --export_inference --model_dir=./output/PPLCNet/best_model --save_dir=/home/aistudio/inference_model/paddle_inference登录后复制 In [15]
# 安装 Paddle Lite!pip install paddlelite # 安装完后请重启内核# 导出 Paddle Lite 模型!paddle_lite_opt \ --model_file=/home/aistudio/inference_model/paddle_inference/inference_model/model.pdmodel \ --param_file=/home/aistudio/inference_model/paddle_inference/inference_model/model.pdiparams \ --optimize_out=./inference_model/paddlelite/model \ --optimize_out_type=naive_buffer \ --valid_targets=arm登录后复制
以上就是【AI达人特训营】岩石薄片分类的详细内容,更多请关注其它相关文章!
2025-08-11
随着多模态人工智能技术的迅猛发展,用户对于能够整合文本、图像、音频等多种信息形式进行理解与处理的工具需求日益增长
2025-08-11
在当今数字化时代,绘画工具也不断推陈出新,钉钉ai绘画工具便是其中一款备受瞩目的创作利器。它为用户提供了便捷且富有创意的绘画体验,接下来就为大家详细介绍其使用方法。钉钉ai绘画工具怎么用一、打开钉钉ai绘画工具进入钉钉软件,在搜索栏输入“ai绘画”,点击搜索结
2025-08-11
动漫城市3D中文版玩法揭秘,新手必看操作指南,轻松上手畅玩游戏。-启动游戏后,按图示点击选项。-确认角色名称与形象后,点击下一步按钮