遙感影像巖性分類:基于CNN與CNN-EL集成學習的深度學習方法

遙感影像巖性分類:基于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;…