Signed-off-by: 葛峻恺 <202115006@mail.sdu.edu.cn>
这个提交包含在:
葛峻恺
2025-04-09 01:52:15 +00:00
提交者 Gitee
父节点 9bd9fa9637
当前提交 77017cc9f2

162
README_CN.md 普通文件
查看文件

@@ -0,0 +1,162 @@
### **🔍 基于深度学习的探地雷达源无关全波形反演程序**
本项目为一个基于 PyTorch 实现的探地雷达GPR源无关全波形反演FWI框架,采用深度学习方法实现地下介电常数模型的重建。该方法适用于冻土环境或起伏地层下的GPR探测任务。
程序名称: GPR-SIDL-inv
程序大小: 98.6 Mb.
开发语言: Python 3.10.4
### 📌 主要特点:
🚀 源无关反演反演程序能够适应不同GPR源子波条件下的全波形反演。
🧠 噪声模拟功能:支持在数据集中模拟真实环境下的噪声干扰。
🌍 集成gprMax支持在三维模拟环境中建立可靠的数据集。
📉 支持功能全面包括初始模型输入可选、时深转换、深时转换、劳雷探地雷达格式数据的转换和初步处理依赖readgssi软件包等。
### 📂 项目结构
GPR-SIDL-inv/
├── dataset/ # 存放训练/测试数据及合成数据集
│ ├── data.csv # 已预先生成的模拟数据集70MHz Ricker子波
│ ├── label.csv # 已预先生成的标签数据集
data.csv 与 label.csv 已打包为 dataset.rar 文件)
├── field_data/ # 存放用于反演的实测数据
├── IMG/ # 数据处理及反演结果图像存储
├── impulse/ # 存放模拟和实测的源子波文件
├── Log/ # 操作日志文件
├── Network/ # 存放网络模型与数据加载程序
│ ├── Model.py/ # Transformer网络模型
│ ├── Mydataset.py/ # 数据加载与预处理
├── readgssi/ # GSSI原始数据读取与转换模块程序包
├── SAVE/ # 存储训练好的模型文件
├── time_result_csv/ # 时间域反演结果存储
├── utils/ # 工具包
│ ├── layers_generator.py/ # 生成随机地层、并赋予属性程序
│ ├── train_val_lr.py/ # 网络训练与验证管理
│ ├── plot.py/ # 2D图像绘制工具
├── 1_model_generator.py # 随机生成用于 gprMax 三维建模的输入文件
├── 2_forward_simulation.py # 运行正演模拟程序,生成A-scan结果
├── 3_combine_dataset.py # 筛选、排序并整合生成数据集
├── 4_gssi_data_convert.py # 将GSSI采集的DZT文件转换为CSV格式
├── 5_data_preprocess.py # 实测数据预处理(去直流漂移、去直达波、静校正等)
├── 6_extract_impulse.py # 从实测数据中提取真实源子波
├── 7_network_train.py # 训练深度学习网络用于反演
├── 8_prediction.py # 对实测数据进行反演预测
├── 9_time_depth_convert.py # 将反演结果从时间域转换为深度域
├── config.py # 配置文件,定义路径、参数等
├── requirements.txt # Python依赖库列表
└── README.md # 项目说明文件(本文件)
### 💡 硬件要求
请根据自身需求选择合适的硬件设备。本项目已在以下配置下完成测试,仅供参考:
处理器Intel(R) Core (TM) i7-12700H
内存:最大可用内存 15.7 GiB
显卡NVIDIA RTX 3070 Ti Laptop GPU,显存7.8 GiB
### 📚 软件环境
本项目无需额外软件,所有依赖项均可通过 requirements.txt 安装。
### 🛠️ 安装步骤
### 1. 克隆项目仓库
git clone https://gitee.com/sduem/gpr-sidl-inv
cd GPR-FWI-DeepLearning
### 2. 安装 gprMax非必要但推荐
官网链接: https://www.gprmax.com/
### 3. 安装依赖项
pip install -r requirements.txt
### 📊 使用说明
本项目提供了调用 gprMax 生成自定义数据集的接口程序。如需自行生成数据集,可从第一步开始执行;若已有模拟数据集,可跳过前三步。第4至第6步用于对实测数据进行个性化处理。我们提供了在青藏高原冻土区采集的实测数据供测试使用,并提供训练好的网络模型以便用户直接运行反演程序进行测试。
### 1. 模拟数据集生成
步骤1: 运行 1_model_generator.py 生成gprMax输入文件,在config.py中设置模型数量、子波类型、模型尺寸、介电常数范围等参数。
步骤2: 运行 2_forward_simulation.py 生成正演结果,在config.py中设置移除直达波的参数静校正、直达波时间等。建议在服务器多线程运行加快速度。
步骤3: 运行 3_combine_dataset.py 将正演数据进行筛选、排序、归一化并整合成完整数据集。
### 2. 实测数据转换与预处理
步骤4: 运行 4_gssi_data_convert.py 将GSSI地质雷达采集的原始DZT文件转换为CSV格式。如使用其他型号设备,请进行相应的数据转换。
步骤5: 运行 5_data_preprocess.py 对原始实测数据进行去直流、去直达波、静校正等预处理操作。
### 3. 子波提取与网络训练
步骤6: 运行 6_extract_impulse.py 从预处理后的数据中提取真实源子波。
步骤7: 运行 7_network_train.py 训练深度学习反演网络,可在config.py中设置学习率、批量大小等参数。
### 4. 反演预测与时深转换
步骤8: 运行 Prediction.py 使用训练好的模型对实测数据进行预测反演。
步骤9: 运行 7_network_train.py 将时间域反演结果转换为深度域结果。
### 📝 参考文献
若您在研究中使用本代码,请引用以下文献:
@article{your2025sourceindependent,
title={Source-independent Full Waveform Inversion for GPR Using Deep Learning},
author={Junkai Ge, Rui Liu, Shirong Zhang, Xiaodong Li, Huaifeng Sun, Bo Tian, Ziqiang Zheng},
journal={Computers & Geosciences},
year={2025},
doi={under review}
}
### 📫 联系方式
如有疑问,请联系:
孙怀凤 教授
山东大学土建与水利学院工程软件系
山东大学岩土与地下工程研究院
山东大学隧道工程灾变防控与智能建养全国重点实验室
📧 邮箱sunhuaifeng@email.sdu.edu.cn
📮 地址中国山东省济南市,山东大学,250061