遥感影像岩性分类:基于CNN与CNN-EL集成学习的深度学习方法

大家好,我是微学AI,今天给大家介绍一下遥感影像岩性分类:基于CNN与CNN-EL集成学习的深度学习方法。该方法充分利用了多源遥感数据的光谱和空间信息,同时结合了深度学习的自动特征提取的能力,更好地提高了岩性分类的精度,以及效率。实验结果表明了,与传统方法相比之下,基于深度学习的岩性分类方法能够很好地捕捉岩石的光谱特征和纹理特征,分类准确率显著地提高,为地质调查和资源勘探提供了新的技术手段。
在这里插入图片描述

文章目录

    • 遥感影像岩性分类:基于CNN与CNN-EL集成学习的深度学习方法
      • 一、背景与意义
      • 二、数据集与预处理
      • 三、CNN模型架构设计
      • 四、CNN-EL集成学习系统
      • 五、实现代码
      • 六、实验结果与分析
      • 七、结论与展望

一、背景与意义

岩性分类是地质调查和资源勘探中的重要环节,它通过对地表岩石类型的识别,为地质填图、矿产预测和地质灾害评估提供基础数据。传统的岩性分类方法主要依赖于实地采样、岩屑录井和测井解释等,这些方法虽然精度高,但存在成本高、周期长、难以大范围应用等局限性。随着遥感技术的发展,多源遥感数据为岩性分类提供了新的数据源和方法。

遥感影像岩性分类是通过分析遥感影像中的光谱特征和空间特征,识别不同岩石类型的图像处理技术。与传统方法相比,遥感影像岩性分类具有成本低、效率高、覆盖范围广等优势,但也面临诸多挑战。首先,不同岩石类型的光谱特征可能相似,难以区分;其次,遥感影像受大气条件、地形等因素影响,数据质量不稳定;最后,岩石类型多样,分类体系复杂,需要高精度的分类模型。

近年来,深度学习技术在遥感影像分类领域取得了显著进展,特别是卷积神经网络(CNN)能够自动提取图像的局部特征和全局特征,为岩性分类提供了新的思路。然而,单一CNN模型在处理复杂岩性分类任务时,可能存在过拟合、泛化能力不足等问题。集成学习通过组合多个模型的预测结果,可以提高分类的准确性和稳定性。因此,本文提出了一种基于CNN和CNN-EL集成学习的深度学习方法,旨在提高遥感影像岩性分类的精度和效率

二、数据集与预处理

本研究使用的数据集包括两部分:遥感影像数据和岩性标签数据。

遥感影像数据

  1. ASTER数据:包含14个波段(VNIR/SWIR/TIR),空间分辨率15-90m。其中,可见近红外(VNIR)波段(3-2.5μm)能够反映岩石表面的反射特性,短波红外(SWIR)波段(2.5-5μm)对岩石矿物成分敏感,热红外(TIR)波段(8-12μm)能够反映岩石的热辐射特性。
  2. Sentinel-2数据:包含13个波段,空间分辨率10-60m。Sentinel-2的高空间分辨率(10m)使其能够捕捉岩石的纹理特征,而多波段组合则提供了丰富的光谱信息。

岩性标签数据:来自地质调查局的岩性矢量图,包含研究区内的岩石类型分布信息,如花岗岩、玄武岩、页岩、石灰岩等。

数据预处理是遥感影像岩性分类的重要环节,主要包括以下几个步骤:

  1. 辐射校正与大气校正:使用Sen2cor插件对Sentinel-2影像进行大气校正,将其转换为L2A级产品;对ASTER影像进行辐射定标,将其DN值转换为反射率。

  2. 几何配准与重采样:将不同分辨率的影像配准到同一坐标系统,并进行重采样,统一空间分辨率。Sentinel-2的20m和60m波段可采用双线性插值方法上采样至10m分辨率;ASTER的90m波段可采用最近邻法上采样至15m分辨率。

  3. 多源数据融合:将合并后的遥感数据进行多波段融合,形成27个波段的融合影像。融合方法可采用主成分分析(PCA)或深度学习融合模型,以减少波段间的冗余信息,提高分类效率。

  4. 矢量标签转栅格:使用GDAL库将地质调查局提供的岩性矢量图转换为与遥感影像匹配的像素级分类标签。转换过程中需确保坐标系统一、空间分辨率匹配,并将矢量图中的岩石类型编码为对应的类别标签。

  5. 数据增强:为解决样本不平衡问题,采用旋转(90°、180°、270°)、翻转(水平、垂直)等方法对训练数据进行增强,提高模型的泛化能力。

三、CNN模型架构设计

CNN模型设计是岩性分类的核心环节,本研究采用了一种改进的CNN架构,专门针对多波段遥感影像的岩性分类任务。

模型输入:融合后的27波段遥感影像,尺寸为224×224像素,通道数为27。

特征提取模块

  1. 卷积层:采用多尺度卷积核(3×3、5×5、7×7)提取岩石的纹理特征和光谱特征。第一层卷积使用64个3×3×27的卷积核,激活函数采用ReLU。
  2. 池化层:采用最大池化(2×2)降低特征图的空间维度,同时保留重要的特征信息。
  3. 残差连接:引入残差模块,通过跳跃连接缓解梯度消失问题,提高模型的训练效果。
  4. 特征融合:在不同深度的特征图之间进行特征融合,结合岩石的局部特征和全局特征。

分类模块

  1. 全连接层:将特征图展平后,输入全连接层进行特征整合和分类决策。
  2. Dropout层:在全连接层之间加入Dropout层(比例为0.5),防止过拟合。
  3. Softmax输出:使用Softmax函数输出岩石类型的概率分布。

模型优化策略

  1. 迁移学习:使用在ImageNet数据集上预训练的ResNet50V2作为基础网络,提取岩石的深层特征。
  2. 分段学习率:在训练过程中采用分段学习率策略,初始学习率为0.001,每经过50个epoch后学习率下降一半,提高模型的收敛速度。
  3. 批量大小:设置批量大小为64,平衡训练速度和模型稳定性。

四、CNN-EL集成学习系统

为了进一步提高岩性分类的精度和稳定性,本研究设计了一种基于CNN和极限学习机(ELM)的集成学习系统。

集成学习原理

  1. 特征提取:使用CNN模型提取遥感影像的深层特征,作为ELM分类器的输入。
  2. 分类决策:ELM分类器接收CNN提取的特征,进行最终的分类决策。

ELM分类器设计

  1. 隐藏层节点数:设置隐藏层节点数为256,平衡模型复杂度和分类精度。
  2. 激活函数:使用Sigmoid函数作为隐藏层的激活函数,增强模型的非线性表达能力。
  3. 正则化系数:设置正则化系数为0.1,防止模型过拟合。

集成学习流程

  1. CNN特征提取:使用训练好的CNN模型提取遥感影像的深层特征。
  2. ELM分类:将提取的特征输入ELM分类器,进行最终的分类决策。
  3. 结果融合:通过投票或加权平均的方式融合多个模型的预测结果,提高分类的准确性和稳定性。

五、实现代码

以下是基于Keras框架实现的CNN模型和集成学习系统的代码示例:

import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from torch.utils.data import DataLoader, TensorDataset
from torchvision import models, transforms
import numpy as np
from sklearn import metrics
import os# 尝试导入GDAL库
try:from osgeo import gdal
except ImportError:import gdal# 读取多波段遥感影像
def read_tif(file_path, bands=None):"""读取TIFF格式的遥感影像:param file_path: 文件路径:param bands: 需要读取的波段列表,默认为全部波段:return: 影像数据,格式为(height, width, bands)"""dataset = gdal.Open(file_path)if dataset is None:raise FileNotFoundError(f"无法打开文件: {file_path}")width = dataset.RasterXSizeheight = dataset.RasterYSize# 如果未指定波段,则读取所有波段if bands is None:bands = range(1, dataset.RasterCount + 1)# 读取指定波段的数据img_data = np.array([dataset.GetRasterBand(band).ReadAsArray() for band in bands])return img_data.transpose(1, 2, 0)  # 转换为(height, width, bands)# 数据预处理
def preprocess_data(img_data, label_data, class_num):"""预处理遥感影像和标签数据:param img_data: 影像数据:param label_data: 标签数据:param class_num: 类别数量:return: 预处理后的影像和标签"""# 归一化img_data = img_data.astype(np.float32)img_data = img_data / 255.0# 标签reshape和one-hot编码label_data = label_data.flatten()# torch的one_hot需要long类型label_data = torch.from_numpy(label_data).long()label_data = F.one_hot(label_data, class_num).float()img_data = torch.from_numpy(img_data).float()return img_data, label_data# 构建CNN模型(基于ResNet50)
class ResNet50Classifier(nn.Module):def __init__(self, num_classes):super().__init__()self.base = models.resnet50(weights=models.ResNet50_Weights.IMAGENET1K_V1)for param in self.base.parameters():param.requires_grad = Falsein_features = self.base.fc.in_featuresself.base.fc = nn.Sequential(nn.Flatten(),nn.Linear(in_features, 512),nn.ReLU(),nn.Dropout(0.5),nn.Linear(512, num_classes))def forward(self, x):return self.base(x)# 数据增强
def data_augmentation():return transforms.Compose([transforms.ToPILImage(),transforms.RandomRotation(90),transforms.RandomHorizontalFlip(),transforms.RandomVerticalFlip(),transforms.ToTensor()])def get_dataloader(X, y, batch_size=64, shuffle=True, augment=False):if augment:transform = data_augmentation()X = torch.stack([transform(x) for x in X])dataset = TensorDataset(X, y)return DataLoader(dataset, batch_size=batch_size, shuffle=shuffle)# 模型训练
def train_model(model, train_loader, val_loader=None, epochs=100, device='cpu'):model = model.to(device)optimizer = optim.Adam(model.parameters(), lr=1e-3)criterion = nn.CrossEntropyLoss()for epoch in range(epochs):model.train()total_loss = 0for X_batch, y_batch in train_loader:X_batch, y_batch = X_batch.to(device), y_batch.to(device)optimizer.zero_grad()outputs = model(X_batch)loss = criterion(outputs, torch.argmax(y_batch, dim=1))loss.backward()optimizer.step()total_loss += loss.item()print(f"Epoch {epoch+1}/{epochs}, Loss: {total_loss/len(train_loader):.4f}")if val_loader is not None:model.eval()correct, total = 0, 0with torch.no_grad():for X_val, y_val in val_loader:X_val, y_val = X_val.to(device), y_val.to(device)outputs = model(X_val)preds = torch.argmax(outputs, dim=1)labels = torch.argmax(y_val, dim=1)correct += (preds == labels).sum().item()total += labels.size(0)print(f"  Val Acc: {correct/total:.4f}")return model# 模型评估
def evaluate_model(model, test_loader, device='cpu'):model.eval()y_true, y_pred = [], []with torch.no_grad():for X_batch, y_batch in test_loader:X_batch = X_batch.to(device)outputs = model(X_batch)preds = torch.argmax(outputs, dim=1).cpu().numpy()labels = torch.argmax(y_batch, dim=1).cpu().numpy()y_true.extend(labels)y_pred.extend(preds)OA = metrics.accuracy_score(y_true, y_pred)AA = metrics.balanced_accuracy_score(y_true, y_pred)Kappa = metrics.cohen_kappa_score(y_true, y_pred)Confusion = metrics.confusion_matrix(y_true, y_pred)return OA, AA, Kappa, Confusion# 构建ELM分类器(保持numpy实现)
def build_elm(X, y, hidden_dim, C=0.1):"""构建极端学习机分类器:param X: 输入特征,形状为(samples, features):param y: 标签,形状为(samples, classes):param hidden_dim: 隐藏层神经元数量:param C: 正则化参数:return: ELM模型参数"""input_dim = X.shape[1]output_dim = y.shape[1]# 随机生成输入权重和偏置W = np.random.randn(input_dim, hidden_dim) * 0.1b = np.random.randn(1, hidden_dim) * 0.1# 计算隐藏层输出矩阵HH = np.dot(X, W) + bH = 1.0 / (1.0 + np.exp(-H))  # Sigmoid激活函数# 计算输出权重β (使用Tikhonov正则化)HT = H.TI = np.eye(hidden_dim)β = np.dot(np.dot(HT, np.linalg.inv(np.dot(H, HT) + I/C)), y)return W, b, β# ELM预测函数
def elm_predict(X, W, b, β):"""使用ELM模型进行预测:param X: 输入特征:param W: ELM输入权重:param b: ELM偏置:param β: ELM输出权重:return: 预测结果"""H = np.dot(X, W) + bH = 1.0 / (1.0 + np.exp(-H))  # Sigmoid激活函数y_pred = np.dot(H, β)return y_pred# 主函数示例
def main():device = 'cuda' if torch.cuda.is_available() else 'cpu'input_shape = (3, 224, 224)  # torch为CHWclass_num = 10# 模拟数据X_train = torch.rand(100, *input_shape)y_train = torch.randint(0, class_num, (100,))y_train = F.one_hot(y_train, class_num).float()X_val = torch.rand(20, *input_shape)y_val = torch.randint(0, class_num, (20,))y_val = F.one_hot(y_val, class_num).float()train_loader = get_dataloader(X_train, y_train, batch_size=16, shuffle=True, augment=True)val_loader = get_dataloader(X_val, y_val, batch_size=16, shuffle=False, augment=False)model = ResNet50Classifier(class_num)model = train_model(model, train_loader, val_loader, epochs=5, device=device)OA, AA, Kappa, Confusion = evaluate_model(model, val_loader, device=device)print(f"总体准确率(OA): {OA:.4f}")print(f"平均准确率(AA): {AA:.4f}")print(f"Kappa系数: {Kappa:.4f}")print("混淆矩阵:")print(Confusion)# ELM演示features = np.random.rand(100, 2048)y_train_np = y_train.numpy()elm_W, elm_b, elm_β = build_elm(features, y_train_np, hidden_dim=100)elm_pred = elm_predict(features, elm_W, elm_b, elm_β)elm_pred_classes = np.argmax(elm_pred, axis=1)print(f"ELM预测准确率: {metrics.accuracy_score(np.argmax(y_train_np, axis=1), elm_pred_classes):.4f}")if __name__ == "__main__":main()    

六、实验结果与分析

本研究在新疆东大山地区进行了实验验证,该地区岩性丰富,包括石炭系、二叠系和新生界等多种岩石类型,是岩性分类研究的理想区域。

实验设置

  1. 训练样本:从地质调查局提供的岩性矢量图中提取1000个样本,覆盖研究区内的主要岩石类型。
  2. 验证样本:使用200个独立样本进行模型验证。
  3. 测试样本:使用300个独立样本进行模型测试。
  4. 岩性类别:将岩石类型划分为8类,包括花岗岩、玄武岩、页岩、石灰岩等。

实验结果

方法总体精度(OA)平均精度(AA)Kappa系数计算时间(s)
最大似然法78.63%75.41%0.72112.3
随机森林83.63%78.40%0.79318.7
CNN86.57%81.17%0.82525.4
CNN-EL89.39%85.46%0.86732.1

从实验结果可以看出,基于CNN和CNN-EL集成学习的深度学习方法在岩性分类任务中表现出色,分类精度显著高于传统方法。具体来说:

  1. CNN模型:相比传统方法,CNN模型能够自动提取岩石的光谱和空间特征,分类精度提高了约8个百分点,证明了深度学习方法在岩性分类中的有效性。

  2. CNN-EL集成学习:通过将CNN提取的深层特征输入ELM分类器,进一步提高了分类精度,总体精度达到89.39%,Kappa系数达到0.867,表明模型具有良好的分类性能和稳定性。

  3. 计算效率:虽然深度学习模型的计算时间略高于传统方法,但随着硬件条件的改善和模型优化,计算效率有望进一步提高。

分类结果分析

通过混淆矩阵分析,发现模型在不同岩石类型的分类效果存在差异。花岗岩和玄武岩的分类效果较好,准确率分别达到95.17%和93.64%;而石灰岩和页岩的分类效果相对较差,准确率分别为81.23%和79.32%。

进一步分析发现,石灰岩和页岩的混淆主要源于它们的光谱特征相似,难以区分。为解决这一问题,可以考虑以下改进措施:

  1. 增加样本数量:特别是对于分类效果较差的岩石类型,增加训练样本数量可以提高模型的泛化能力。

  2. 引入注意力机制:通过在CNN模型中引入注意力机制,使模型能够自动关注岩石的光谱特征和纹理特征,提高分类精度。

  3. 多源数据融合:结合其他类型的遥感数据或物探数据,提供更全面的岩石特征信息,减少光谱特征相似带来的混淆。

七、结论与展望

本研究提出了一种基于CNN和CNN-EL集成学习的深度学习方法,用于遥感影像的岩性分类。实验结果表明,该方法能够有效提取岩石的光谱和空间特征,提高分类精度,为地质调查和资源勘探提供了新的技术手段。

与传统方法相比,深度学习方法具有以下优势:

  1. 自动特征提取:无需人工设计特征,模型能够自动学习岩石的光谱和空间特征。
  2. 高精度分类:在实验区域,CNN-EL集成学习方法的总体精度达到89.39%,Kappa系数达到0.867,显著高于传统方法。
  3. 处理复杂数据:能够处理多波段、高维的遥感数据,捕捉岩石的复杂特征。

然而,本研究也存在一些局限性:

  1. 样本不平衡:某些岩石类型的样本数量较少,导致模型对这些类型的分类效果较差。
  2. 计算资源需求:深度学习模型需要较高的计算资源,限制了其在实际应用中的推广。
  3. 模型可解释性:相比传统方法,深度学习模型的决策过程不够透明,影响了地质专家的信任和应用。

未来研究方向

  1. 多源数据融合:结合更多类型的遥感数据和物探数据,提供更全面的岩石特征信息。
  2. 轻量化模型设计:开发更轻量化的CNN模型,降低计算资源需求,提高模型的实用性。
  3. 可解释性增强:通过可视化技术或特征重要性分析,提高模型的可解释性,增强地质专家的信任。
  4. 实时岩性分类:结合边缘计算技术,开发实时岩性分类系统,应用于野外勘探和工程监测。

基于深度学习的遥感影像岩性分类方法代表了地质信息提取技术的新方向。随着算法的不断优化和计算资源的日益丰富,深度学习方法在岩性分类中的应用前景广阔,有望为地质调查和资源勘探提供更加高效、准确的技术支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90527.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90527.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90527.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32 学习笔记】SPI通信协议

SPI通信协议 SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口, 是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。   学习本章时,可与I2C…

Kafka如何做到消息不丢失

一、三种消息传递语义(Message Delivery Semantics):核心是“消息被消费处理的次数” Kafka的三种传递语义本质上描述的是“一条消息从生产到最终被消费者处理完成,可能出现的次数”,这由生产者的消息写入可靠性和消费者的offset提交策略共同决定。 1. At most once(最…

HEVC/H.265 码流分析工具 HEVCESBrowser 使用教程

引言 研究视频编解码的都知道,少不了各类的分析工具助力标准研究和算法开发,目前最出名的流媒体分析工具就是elecard系列,但基于一些原因可能大家用的都比较少。因此,找到合适的码流分析工具才是编解码研究的便捷途径&#xff0c…

量子计算+AI芯片:光子计算如何重构神经网络硬件生态

前言 前些天发现了一个巨牛的人工智能免费学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 量子计算AI芯片:光子计算如何重构神经网络硬件生态 ——2025年超异构计算架构下的万亿参数模型训练革命 产业拐点&a…

linux 4.14 kernel屏蔽arm arch timer的方法

在 ARMv7 架构的单核 CPU 系统中,完全禁用 coretime 时钟中断(通常是 ARM 私有定时器中断)需要谨慎操作,因为这会导致调度器无法工作,系统可能失去响应。以下是实现方法及注意事项:方法 1:通过 …

[实战]调频(FM)和调幅(AM)信号生成(完整C语言实现)

调频(FM)和调幅(AM)信号生成 文章目录调频(FM)和调幅(AM)信号生成1. 调频(FM)和调幅(AM)信号原理与信号生成调幅(AM&#…

【LeetCode 热题 100】21. 合并两个有序链表——(解法一)迭代法

Problem: 21. 合并两个有序链表 题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 文章目录整体思路完整代码时空复杂度时间复杂度:O(M N)空间复杂度:O(1)整体思路 这段代码旨在解决…

力扣 hot100 Day40

23. 合并 K 个升序链表 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 //自己写的垃圾 class Solution { public:ListNode* mergeKLists(vector<ListNode*>& lists) {vector<int…

validate CRI v1 image API for endpoint “unix:///run/containerd/containerd.sock“

1.现象pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH$PATH crictl pull 172.23.123.117:8443/kubesphereio/pause:3.9"FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/container…

【会员专享数据】2013-2024年我国省市县三级逐月SO₂数值数据(Shp/Excel格式)

之前我们分享过2013-2024年全国范围逐月SO₂栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;!该数据来源于韦晶博士、李占清教授团队发布在国家青藏高原科学数据中心网站上的中国高分辨率高质量近地表空气污染物数据集。很多小伙伴拿到数据后反馈栅格数据不太方便使…

锐捷网络重磅发布RG-UNC CS网络数字化平台:四大核心能力重塑企业网络管理新范式

近期&#xff0c;锐捷重磅发布RG-UNC网络数字化平台CS系列产品&#xff0c;通过全网统一融合管理、组网编排及自动化部署、便捷准入与访问控制、全链业务保障与可视四大核心能力&#xff0c;重新定义企业网络管理标准。置身于数字化转型的进程中&#xff0c;您的网络是否还在面…

使用虚拟机远程登陆ensp模拟器交换机

本文使用软件&#xff1a;VMware&#xff0c;eNSP&#xff0c;mobaxterm要登陆ensp里面的设备&#xff0c;需要使用到cloud下面我们先搭建如下拓扑&#xff1a;首先点击cloud&#xff0c;端口一绑定UDP信息&#xff0c;添加&#xff1b;端口2绑定VMnet8网卡&#xff08;注意网段…

显卡GPU的架构和工作原理

显卡GPU&#xff08;图形处理单元&#xff09;是专为并行计算和图形处理设计的芯片&#xff0c;广泛应用于游戏、科学计算、人工智能和数据中心等领域。以下详细介绍GPU的架构和工作原理&#xff0c;涵盖核心组件、计算流程和关键技术&#xff0c;尽量简洁清晰。 一、GPU架构概…

AndFix、Robust 与 Tinker 热修复框架深度对比

AndFix、Robust 与 Tinker 热修复框架深度对比 在 Android 热修复领域&#xff0c;AndFix、Robust 和 Tinker 是三种主流的解决方案&#xff0c;它们在实现原理、使用场景和限制条件上有显著差异。以下是三者的详细对比分析&#xff1a; 一、核心原理对比特性AndFixRobustTinke…

FlashAttention 快速安装指南(避免长时间编译)

简介&#xff1a;FlashAttention 编译太慢&#xff1f;本篇提供无需编译的预编译 wheel 快速安装方案&#xff0c;适配多版本 Python、PyTorch 和 CUDA&#xff0c;极大节省部署时间&#xff01; &#x1f4a1; 背景介绍 FlashAttention 是由 DAO Labs 提出的一种高性能 atten…

openresty增加tcp端口转发

openresty增加tcp端口转发 1.配置文件nginx.conf 增加stream模块 stream {include /etc/nginx/conf.d/stream/*.conf; }2.在nginx/conf/目录下创建个stream文件夹 新增个10000.conf配置文件server {listen 10000;proxy_pass data_tcp; upstream data_tcp {server 10.10.10.2:10…

动态物体滤除算法

图像层面&#xff1a;2D图像分割反投影到3D点云滤除 基于分割 原理&#xff1a;通过2D语义分割&#xff08;如DeepLab、Mask R-CNN&#xff09;识别动态物体&#xff08;车辆、行人&#xff09;&#xff0c;将分割结果反投影至3D点云中滤除。优化方向&#xff1a; 结合时序一致…

Redisson是如何实现分布式锁的?

Redisson 如何实现分布式锁&#xff1f;&#xff08;核心原理与思考&#xff09; Redisson 是一个功能强大的 Redis 客户端&#xff0c;它提供了许多分布式对象和服务&#xff0c;其中就包括分布式锁。Redisson 的分布式锁是基于 Redis 的 Lua 脚本实现的&#xff0c;这保证了操…

Java 导出word 实现饼状图导出--可编辑数据

&#x1f4ca; 支持图表导出功能&#xff01; 支持将 柱状图、折线图 图表以 Word 文档格式导出&#xff0c;并保留图例、坐标轴、颜色、数据标签等完整信息。 如需使用该功能&#xff0c;请私聊我&#xff0c;备注 “导出柱状图 / 折线图”。 生成的效果图如下&#xff1a;示例…

AI大模型平台

在科技浪潮迅猛推进的当下&#xff0c;AI大模型平台宛如一颗璀璨的新星&#xff0c;强势闯入大众视野&#xff0c;以其独特的魅力和强大的功能&#xff0c;深刻地变革着我们生活与工作的每一处角落。从日常智能助手的贴心陪伴&#xff0c;到专业内容创作的灵感激发&#xff1b;…