【AI达人特训营】岩石薄片分类
该项目针对岩相分析痛点,用PP-LCNet模型分类岩石薄片。数据集含2634张图片,分3类岩石,按8:2划分训练与验证集。经数据增强,训练50-60个epoch后精度约98%,导出相关模型提升效率与一致性。

【AI达人特训营】岩石薄片分类
一、项目背景
岩相分析是以岩石薄片的微观描述和分类为基础的研究工作,也是沉积和成岩研究的一项重要技术,对于油气勘探开发的工程实践具有基础性指导地位。通过薄片分析矿物的比例、分布、质地、孔隙空间、胶结成分等因素,给后续的油气田开发方案设计作为保障提供了更好、更准确的手段。 工程实践中,大多数岩相分析依赖大量的地质学家使用显微镜,进行岩石薄片的目视检查,标准规范和时间紧迫之间的矛盾日益突出。总体来说,存在三个核心痛点:第一,人类专家面临大量繁重的重复性劳动,精力与效率的平衡问题无法忽视。同时,多位岩石学家共同工作,可能会出现分析不一致的情况。第二,由于分布在世界各地的油田,其地质特征、发育机理等因素存在差异,因此还需要充分考虑跨源识别这一重要因素。第三,现有自动化识别方法对于岩相覆盖范围仅针对若干个特定区块的几种类型;同时也不具备迁移能力。飞桨AI达人特训营针对上述痛点,开展了岩石薄片分类的图像分类任务。二、数据集介绍
在南京大学地球科学与工程学院近100年的岩石学教学和研究历史中,薄片一直发挥着不可替代的作用。这些教学薄片虽然经历了消耗、流失、增加和更新的过程,但其中包括28种不同的沉积岩、40种火成岩和42种变质岩。南京大学这些薄层覆盖了90%以上的常见岩石类型,包括地质专业教学大纲要求的95%以上的常见矿物和岩石结构。该数据集对南京大学目前用于岩石学教学的薄片进行电子信息化。共完成了110种不同岩石330个薄片的2658张偏光显微照片。本项目对该数据集进行了些许处理,使其符合 PaddleX 对数据集的要求。训练集占80%,验证集占20%,共2634张图片,3种类别(火成岩,沉积岩,变质岩)。南京大学岩石学教学用岩石显微照片数据集:https://aistudio.baidu.com/aistudio/datasetdetail/150040
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
处理后的数据集:https://aistudio.baidu.com/aistudio/datasetdetail/153329
三、数据集预览
1. 数据集结构
2. 沉积岩
铝土矿
部分沉积岩图片
3. 变质岩
大理岩
部分变质岩图片
4. 火成岩
二辉橄榄岩
部分火成岩图片
四、PP-LCNet 模型介绍
本项目使用的的 PP-LCNet 模型,来自2024年的《PP-LCNet: A Lightweight CPU Convolutional Neural Network》。
原文地址:https://arxiv.org/abs/2109.15099
在文章中,作者说明了目前在启用 Intel® MKLDNN(Math Kernel Library for Deep Networks)的 Intel® CPU 上,主流的轻量级模型的推理速度并没有得到最大的提升,所以文章提出了 PP-LCNet,一种基于 MKLDNN 的轻量级 CPU 卷积神经网络。
作者着重思考了如下三个问题:
如何在不增加延迟的情况下促进网络学习更强的特性展示。在CPU上提高轻量级模型精度的要素是什么。如何有效结合不同的策略在CPU上设计轻量级模型。PP-LCNet 模型,与其他主流模型的对比如图所示:
PP-LCNet 的网络结构:
具体方法:
使用 MobileNet V1 的 DepthSepConv 作为基础模块,并发现在 small model 中, additional、concat 等操作不会提升 accuracy,反而会增加 inference time。DepthSepConv 模块在加速库中被优化过,比 inverted-block 和 shufflenet-block 更快。所以作者基于 DepthSepConv 堆叠形成了 BaseNet。使用 H-Swish 作为激活函数,EfficientNet 使用 Swish 获得了比 ReLU 更好的性能,MobileNet V3 使用 Hard Swish 获得了比 Swish 更好的性能,作者在 BaseNet 中使用 H-Swish 替换了原先的 ReLu,获得了更好的 accuracy,而且不增加 inference time。合理的安排 SE 模块的位置,SE 虽然很有效,但是在 Intel® CPU 上,它会增加 inference time,经过实验,作者证明了 把 SE 模块放在 “near the tail of the network” 能在发挥 SE 模块作用的同时,尽可能的减小它对 inference time 的副作用。使用更大的卷积核,MixNet 证明了使用不同大小的 kernel 的组合可以得到更好的效果,但这会显著地增加 inference time。所以作者采用与 SE 模块类似的做法,在 “near the tail of the network” 使用了一个 5×5 的 kernel 代替了 3×3 的 kernel,并达到了近似的效果。在 GAP 后增加 1280 维的 1×1 卷积层,在经过 GAP 后的网络输出维数很小,为了使模型具有更强的拟合能力,在最后的 GAP 层之后增加了一个 1280 维的 1×1 卷积层,相当于 FC 层,这将 “ allow for more storage of the model with little increase of inference time.”图像分类任务的对比:

目标检测任务对比:
语义分割任务对比:
消融实验:
SE 模块在不同位置的影响:
大卷积核在不同位置的影响:
不同技术的影响:
小结: PP-LCNet 带来了在轻量级 Intel® CPU 上更好的 accuracy-speed balance,并减少了NAS的搜索空间,也为更快地访问NAS的轻量级模型提供了可能。
参考资料:
《PP-LCNet: A Lightweight CPU Convolutional Neural Network》冬日and暖阳的博客《超越MobileNetV3!这个轻量级网络PP-LCNet在CPU上快到起飞!》五、模型训练
1. 准备工作
解压处理后的数据集。安装 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登录后复制 2. 定义数据集
设定训练集与验证集的数据增强方案。进入数据集路径。定义训练集与验证集。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)登录后复制
3. 开始训练
本项目使用 PPLCNet 作为网络结构,我们发现大概在 50-60 个 epoch 的时候就可以达到理想的精度(约 98%),数据集中一张图片会有 24 种不同的变形,所以 batch_size 设置为 24 ,训练输出保存在 /home/aistudio/output/PPLCNet 下。
In [ ]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)登录后复制
4.可视化训练结果
Metrics/Training(Step): Loss
Metrics/Training(Step): ACC 1
Metrics/Training(Step): Learning Rate
Metrics/Eval(Epoch): ACC 1
5. 测试结果
导入模型测试 Igneous_Rock测试 Metamorphic_Rock测试 Sedimentary_RockIn [ ]# 导入模型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.webp" 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.webp"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.webp"print(model.predict(test_pic))登录后复制
[{'category_id': 2, 'category': 'Sedimentary_Rock', 'score': 1.0}]登录后复制 6.模型导出
导出 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登录后复制
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
日均 120 万亿 Token,火山引擎两年前的赌注开始兑现
带着 Seedance 2 0 和 ArkClaw 两件新武器,火山引擎开始席卷 MaaS 市场。作者|郑玄两年前,火山引擎说要 All in Token 的时候,很多人觉得这是一句正确但空洞的口号
开盒Claude Code的原来是中国00后!曾怒怼Anthropic窃取用户代码
Jay 发自 凹非寺量子位 | 公众号 QbitAI扒光Anthropic底裤的人,究竟是谁?答案揭晓——一位年仅25岁的中国小伙,Chaofan Shou。仅凭一条帖子便引爆全网,从60MB的so
10万预算新选择!启源Q05大空间长续航 智驾配置卷出新高度
在预算10万元以内选购纯电汽车,消费者过去往往只能在小型轿车中做选择。然而,随着市场需求的演变,一款兼具SUV空间优势与高阶智能配置的全新车型——全新Q05,正以颠覆性姿态打破这一局限,为预算敏感型
极豆科技携手银联智谱岚图 全球首秀车载智能体支付场景 开启出行服务新体验
中国银联近日在上海正式推出《智能体支付开放协议框架》(Agentic Payment Open Protocol,简称APOP框架),并顺利完成首批生产系统验证交易。这一创新举措标志着智能支付领域迈
上汽奥迪E5 Sportback智驾升级:Momenta大模型赋能,多场景辅助驾驶再进化
上汽奥迪近日宣布,旗下AUDI品牌首款车型E5 Sportback迎来重大智驾升级,搭载Momenta全新强化学习大模型,全面优化全景辅助驾驶功能。此次升级覆盖环岛通行、ETC无感通行(OTA)、三
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

