基于TensorFlow的卷积神经网络的岩石图像分类识别(简易实践案例)

基于TensorFlow的卷积神经网络的岩石图像分类识别

题目简述

今有砾岩(Conglomerate)、安山岩(Andesite)、石灰岩(Limestone)、石英岩(Quartzite)和花岗岩(Granite)5种岩石图片,每张图片的大小不一。试建立卷积神经模型,利用训练数据集进行训练,并对测试集进行分类识别。
在这里插入图片描述 数据集 CSDN 下载.
如果资源失效可以再我的发布资源里找对应链接

个人项目运行环境

  • PyCharm 2017.1
  • Python 3.8.6
  • numpy 1.19.5
  • TensorFlow 2.5.0
  • scikit-learn 0.24.2

导入模块

import os
import numpy as np
from PIL import Image
from tensorflow.keras import layers,models
from sklearn.model_selection import train_test_split

数据处理

这里我们构造卷积神经网络模型所需要的输入数据和输出数据,其中输入数据为所有彩图数据。我所展示的样例共有300张图片,统一取图像中心点100×100像素,共有R、G、B三个通道,并对每个通道像素值归一化,彩色图片有3个通道(也可以使用OpenCV的函数查看自己使用图片的通道数),故所有彩图数据可以用一个四维数组来存储,其形态为 (300,100,100,3)。记为X。输出数据为岩石类型,依次为砾岩、安山岩、石灰岩、石英岩和花岗岩(不确定顺序,我也不能分清具体岩石是哪个类,按照图片的类别来分不同岩石),类型编号为0、1、2、3、4,记为Y。代码如下:

# 数据处理
def DataDispose(X,Y,ImgList):
    for i in range(len(ImgList)):
        # 读取第一张图片,img有R、G、B(三色)三个通道
        img = Image.open(ImgPath + "\\" +ImgList[i])
        # 分离R、G、B通道
        sep = img.split()
        # R 通道
        R = np.array(sep[0])
        # 注意中心点
        row_1 = int(R.shape[0]/2) - 50
        row_2 = int(R.shape[0]/2) + 50
        con_1 = int(R.shape[1]/2) - 50
        con_2 = int(R.shape[1]/2) + 50
        R = R[row_1:row_2,con_1:con_2]
        # G 通道
        G = np.array(sep[1])
        G = G[row_1:row_2,con_1:con_2]
        # B 通道
        B = np.array(sep[2])
        B = B[row_1:row_2,con_1:con_2]
        # 获取R、G、B通道即可,并归一化
        X[i,:,:,0] = R/255
        X[i,:,:,1] = G/255
        X[i,:,:,2] = B/255
        # 构造输出数据,岩石类别编号
        S = ImgList[i]
        I = S.find('_',0,
<think>好的,我现在需要处理用户关于寻找毕节滑坡地理或环境数据集的请求。首先,用户希望下载用于地质灾害研究的数据,所以我得确定哪些资源是可靠且相关的。 首先想到的是政府机构和学术机构的数据平台。中国地质环境监测院和自然资源部官网可能会有公开的地质灾害数据。毕节位于贵州,贵州省自然资源厅的官方网站可能提供区域性的数据,包括滑坡点的分布和监测报告。需要检查这些网站是否有数据下载的入口,或者是否需要通过申请获取。 接下来,科研数据共享平台也是重要的来源。国家地球系统科学数据中心和地理空间数据云可能有相关的GIS数据,比如地形、降雨量、地质构造等。这些数据集对于分析滑坡成因非常重要,用户可能需要DEM数据或卫星影像来进行地形分析。 学术数据库如CNKI和万方可能会有相关的研究论文,这些论文的附录或补充材料中有时会包含数据集。此外,联系论文的作者也是一种方法,特别是那些专注于贵州地质灾害研究的学者,他们可能愿意分享数据。 国际资源也不能忽视,比如NASA的Earthdata和USGS的地质调查数据。虽然主要是全球范围的,但高分辨率的卫星数据对区域研究也有帮助。Earthdata可能需要注册,但数据是免费的。 数据获取时需要注意版权和许可,尤其是商业用途可能需要额外授权。预处理步骤如坐标系转换和格式转换可能是必要的,比如将HDF转换为GeoTIFF。此外,时间序列分析可能需要结合气象数据,如降雨记录,这对滑坡研究很关键。 最后,要确保回答结构清晰,分点列出方法,每个资源都给出具体名称和获取方式,并提醒注意事项。相关问题部分需要基于用户的问题和回答内容,可能涉及数据预处理、最新监测技术或区域降雨关联等。</think>根据毕节滑坡地质灾害研究需求,以下为可获取相关数据集的方法与资源平台: **1. 政府公开数据平台** - 中国地质环境监测院(http://www.cigem.cgs.gov.cn/)提供地质灾害普查数据,包含滑坡点坐标、规模、历史活动记录。需在“数据服务”板块提交研究用途申请。 - 贵州省自然资源厅官网(http://zrzy.guizhou.gov.cn/)发布区域地质灾害监测报告,涉及毕节市高发区的地形图、岩层结构和降雨量数据。 **2. 科研机构共享数据库** - 国家地球系统科学数据中心(http://www.geodata.cn)包含毕节地区$DEM$(数字高程模型)数据,分辨率达30米,可通过检索“贵州地质灾害”获取滑坡点周边地形起伏度数据。 - 地理空间数据云(http://www.gscloud.cn)提供Landsat和Sentinel卫星影像,适用于提取植被覆盖指数$NDVI$与地表形变分析,使用以下代码可批量下载: ```python import requests api_url = "https://api.gscloud.cn/search" params = {"keyword": "毕节", "datatype": "Sentinel-2"} response = requests.get(api_url, params=params) ``` **3. 学术研究补充数据集** - CNKI学术文献库(https://www.cnki.net)中检索“毕节滑坡机理”相关论文,部分研究附有现场监测的孔隙水压力、土壤含水量时间序列数据。 - 国际滑坡协会(ICL)数据库(https://iclhq.org)包含全球滑坡案例库,筛选条件设置为“中国贵州”可获取岩土力学参数等专业指标。 **注意事项** - 涉及行政区划数据需遵守《地理信息安全管理办法》,禁止用于非科研用途 - 卫星影像处理建议使用GDAL库进行坐标系转换: ```bash gdalwarp -t_srs EPSG:4326 input.tif output.tif ``` - 滑坡敏感度分析推荐结合$Logistic$回归模型: $$P = \frac{1}{1+e^{-(β_0+β_1X_1+...+β_nX_n)}}$$ 其中$X_i$代表坡度、降雨强度等影响因子
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W.Lionel.Esaka

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值