From 77017cc9f2815ce32f9893ca65129adabb6e67e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E5=B3=BB=E6=81=BA?= <202115006@mail.sdu.edu.cn> Date: Wed, 9 Apr 2025 01:52:15 +0000 Subject: [PATCH] program MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 葛峻恺 <202115006@mail.sdu.edu.cn> --- README_CN.md | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 README_CN.md diff --git a/README_CN.md b/README_CN.md new file mode 100644 index 0000000..c3ef124 --- /dev/null +++ b/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