该项目针对岩相分析痛点,用PP-LCNet模型分类岩石薄片。数据集含2634张图片,分3类岩石,按8:2划分训练与验证集。经数据增强,训练50-60个epoch后精度约98%,导出相关模型提升效率与一致性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

南京大学岩石学教学用岩石显微照片数据集: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(Math Kernel Library for Deep Networks)的 Intel® CPU 上,主流的轻量级模型的推理速度并没有得到最大的提升,所以文章提出了 PP-LCNet,一种基于 MKLDNN 的轻量级 CPU 卷积神经网络。
作者着重思考了如下三个问题:
PP-LCNet 模型,与其他主流模型的对比如图所示:
PP-LCNet 的网络结构:
具体方法:
图像分类任务的对比:

目标检测任务对比:
语义分割任务对比:
消融实验:
SE 模块在不同位置的影响:
大卷积核在不同位置的影响:
不同技术的影响:
小结: PP-LCNet 带来了在轻量级 Intel® CPU 上更好的 accuracy-speed balance,并减少了NAS的搜索空间,也为更快地访问NAS的轻量级模型提供了可能。
参考资料:
# 解压数据集!ls /home/aistudio/data !unzip /home/aistudio/data/data153329/D0001.zip -d /home/aistudio/data/data153329/Pic
# 安装PaddleX!pip install paddlex # 安装完后请重启内核
# 添加PaddleX安装路径,并导入相关库import sys
sys.path.append('/home/aistudio/work/paddlex')import paddlex as pdxfrom paddlex import transforms as T# 训练集数据增强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()
])# 进入数据集路径(数据集划分的时候没写好,得到数据集目录下才能进行训练)%cd /home/aistudio/data/data153329/Pic/D0001/
# 定义训练集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 作为网络结构,我们发现大概在 50-60 个 epoch 的时候就可以达到理想的精度(约 98%),数据集中一张图片会有 24 种不同的变形,所以 batch_size 设置为 24 ,训练输出保存在 /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
# 导入模型model = pdx.load_model("/home/aistudio/output/PPLCNet/best_model/")# 测试 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}]# 测试 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}]# 测试 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 模型!paddlex --export_inference --model_dir=./output/PPLCNet/best_model --save_dir=/home/aistudio/inference_model/paddle_inference
# 安装 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达人特训营】岩石薄片分类的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号