【完整源碼+數據集+部署教程】停車位狀態檢測系統源碼和數據集:改進yolo11-DCNV2-Dynamic

背景意義

隨著城市化進程的加快,城市交通擁堵問題日益嚴重,停車難成為了許多城市居民面臨的普遍問題。有效的停車管理不僅可以提高城市交通的流動性,還能減少因尋找停車位而造成的時間浪費和環境污染。因此,開發一個高效的停車位狀態檢測系統顯得尤為重要。基于深度學習的計算機視覺技術,尤其是目標檢測算法,已被廣泛應用于智能交通系統中,為停車位的自動檢測提供了新的解決方案。

YOLO(You Only Look Once)系列算法因其實時性和高準確率而受到廣泛關注。YOLOv11作為該系列的最新版本,結合了多種先進的技術,能夠在復雜環境中快速準確地識別目標。通過對YOLOv11的改進,我們可以進一步提升其在停車位狀態檢測中的性能。具體而言,改進后的模型將能夠更好地處理不同光照條件、天氣變化以及復雜背景下的停車位檢測任務。

本研究將利用一個包含1100張圖像的數據集,數據集中分為“空閑”和“占用”兩類,旨在訓練一個高效的停車位狀態檢測模型。通過對數據集的深度分析和處理,我們將為模型提供豐富的訓練樣本,以提升其泛化能力和準確性。此外,數據集的圖像經過預處理,確保了輸入數據的一致性和質量,為模型的訓練打下了堅實的基礎。

綜上所述,基于改進YOLOv11的停車位狀態檢測系統不僅能夠有效解決城市停車難題,還將為智能交通管理提供有力支持。通過本研究的實施,我們希望能夠為未來的智能城市建設貢獻一份力量,推動交通管理的智能化和自動化進程。

圖片效果

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

數據集信息

本項目旨在改進YOLOv11的停車位狀態檢測系統,所使用的數據集名為“collectPKlotData2”。該數據集專注于停車位的狀態檢測,包含兩種主要類別:空閑(empty)和占用(occupied)。通過對這兩種狀態的準確識別,系統能夠有效地幫助用戶了解停車場的實時情況,從而提高停車效率,減少尋找停車位的時間。

數據集的構建過程經過精心設計,確保了樣本的多樣性和代表性。我們在不同的環境條件下收集了大量的圖像數據,包括不同的天氣狀況、時間段以及各種停車場布局。這種多樣性使得模型在訓練過程中能夠學習到更為豐富的特征,從而提高其在實際應用中的魯棒性和準確性。數據集中每個類別的樣本數量經過合理配置,以確保模型在學習過程中不會出現類別不平衡的問題。

在數據標注方面,我們采用了嚴格的標注流程,確保每張圖像的狀態標注準確無誤。標注團隊由經驗豐富的人員組成,他們對停車位的狀態有著深刻的理解,能夠有效區分空閑和占用狀態。這一過程不僅提高了數據集的質量,也為后續的模型訓練打下了堅實的基礎。

此外,為了提升模型的泛化能力,我們還對數據集進行了數據增強處理,包括圖像旋轉、縮放、亮度調整等操作。這些增強手段能夠有效擴展訓練樣本的多樣性,使得模型在面對未知數據時表現更加出色。

綜上所述,數據集“collectPKlotData2”不僅涵蓋了停車位狀態檢測所需的基本信息,還通過多樣化的樣本和嚴格的標注流程,為改進YOLOv11的停車位狀態檢測系統提供了堅實的數據支持。通過充分利用這一數據集,我們期待能夠實現更高效、更準確的停車位狀態檢測,進而提升用戶的停車體驗。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

核心代碼

以下是經過簡化和注釋的核心代碼部分:

import os
import torch
from ultralytics.engine.validator import BaseValidator
from ultralytics.utils.metrics import DetMetrics, box_iou
from ultralytics.utils import LOGGER, ops

class DetectionValidator(BaseValidator):
“”"
擴展自BaseValidator類,用于基于檢測模型的驗證。
“”"

def __init__(self, dataloader=None, save_dir=None, args=None):"""初始化檢測模型所需的變量和設置。"""super().__init__(dataloader, save_dir, args=args)self.metrics = DetMetrics(save_dir=self.save_dir)  # 初始化檢測指標self.iouv = torch.linspace(0.5, 0.95, 10)  # IoU向量,用于計算mAPdef preprocess(self, batch):"""對圖像批次進行預處理,以便于YOLO訓練。"""# 將圖像轉移到設備上并歸一化batch["img"] = batch["img"].to(self.device, non_blocking=True) / 255# 將其他數據轉移到設備上for k in ["batch_idx", "cls", "bboxes"]:batch[k] = batch[k].to(self.device)return batchdef postprocess(self, preds):"""對預測輸出應用非極大值抑制(NMS)。"""return ops.non_max_suppression(preds,self.args.conf,self.args.iou,multi_label=True,max_det=self.args.max_det,)def update_metrics(self, preds, batch):"""更新檢測指標。"""for si, pred in enumerate(preds):# 處理每個預測結果npr = len(pred)pbatch = self._prepare_batch(si, batch)  # 準備批次數據cls, bbox = pbatch.pop("cls"), pbatch.pop("bbox")  # 獲取真實標簽if npr == 0:continue  # 如果沒有預測結果,跳過# 處理預測結果predn = self._prepare_pred(pred, pbatch)  # 準備預測數據stat = {"conf": predn[:, 4],  # 置信度"pred_cls": predn[:, 5],  # 預測類別"tp": self._process_batch(predn, bbox, cls)  # 計算真陽性}# 更新指標for k in self.stats.keys():self.stats[k].append(stat[k])def _process_batch(self, detections, gt_bboxes, gt_cls):"""返回正確的預測矩陣。"""iou = box_iou(gt_bboxes, detections[:, :4])  # 計算IoUreturn self.match_predictions(detections[:, 5], gt_cls, iou)  # 匹配預測與真實標簽def get_stats(self):"""返回指標統計信息和結果字典。"""stats = {k: torch.cat(v, 0).cpu().numpy() for k, v in self.stats.items()}  # 轉換為numpyif len(stats) and stats["tp"].any():self.metrics.process(**stats)  # 處理指標return self.metrics.results_dict  # 返回結果字典

代碼注釋說明:
類定義:DetectionValidator類用于驗證檢測模型的性能,繼承自BaseValidator。
初始化方法:在初始化時設置一些必要的變量和指標,DetMetrics用于存儲檢測性能指標。
預處理方法:preprocess方法對輸入的圖像批次進行歸一化處理,并將數據轉移到指定的設備(如GPU)。
后處理方法:postprocess方法使用非極大值抑制(NMS)來過濾預測結果,減少冗余框。
更新指標方法:update_metrics方法根據預測結果和真實標簽更新性能指標。
處理批次方法:_process_batch方法計算預測框與真實框之間的IoU,并返回匹配結果。
獲取統計信息方法:get_stats方法返回當前的指標統計信息,便于后續分析和展示。
以上代碼展示了YOLO模型驗證的核心邏輯,注釋詳細解釋了每個方法的功能和作用。

這個程序文件 val.py 是一個用于目標檢測模型驗證的類,名為 DetectionValidator,它繼承自 BaseValidator 類。該類主要用于評估 YOLO(You Only Look Once)目標檢測模型的性能,支持處理圖像數據、計算指標、生成結果報告等功能。

在初始化方法 init 中,類設置了一些基本參數,包括數據加載器、保存目錄、進度條、參數和回調函數。它還初始化了一些用于計算檢測指標的變量,如 DetMetrics 對象和 IoU(Intersection over Union)向量。

preprocess 方法用于對輸入的圖像批次進行預處理,包括將圖像數據轉移到指定設備(如 GPU),進行數據類型轉換,以及對邊界框進行歸一化處理。此方法還支持自動標注功能。

init_metrics 方法用于初始化評估指標,包括判斷數據集是否為 COCO 格式,設置類別映射,以及初始化混淆矩陣和統計信息。

get_desc 方法返回一個格式化的字符串,用于描述 YOLO 模型的類別指標。

postprocess 方法應用非極大值抑制(NMS)來處理模型的預測輸出,以減少冗余的檢測框。

_prepare_batch 和 _prepare_pred 方法分別用于準備輸入的圖像和目標框的批次數據,以及處理模型的預測結果。

update_metrics 方法負責更新檢測指標,通過比較預測結果和真實標簽,計算出真正例、置信度和預測類別等信息,并更新統計數據。

finalize_metrics 方法設置最終的指標值,包括計算速度和混淆矩陣。

get_stats 方法返回計算后的指標統計信息,并更新每個類別的目標數量。

print_results 方法用于打印訓練或驗證集的每個類別的指標結果,并在需要時繪制混淆矩陣。

_process_batch 方法用于計算正確的預測矩陣,通過計算 IoU 值來匹配預測框和真實框。

build_dataset 和 get_dataloader 方法用于構建 YOLO 數據集和返回數據加載器,以便于后續的驗證過程。

plot_val_samples 和 plot_predictions 方法用于可視化驗證樣本和模型的預測結果,并將結果保存為圖像文件。

save_one_txt 方法將 YOLO 檢測結果保存為文本文件,采用特定的格式以便后續使用。

pred_to_json 方法將 YOLO 的預測結果序列化為 COCO JSON 格式,以便于后續的評估。

eval_json 方法用于評估 YOLO 輸出的 JSON 格式結果,并返回性能統計信息,支持與 COCO 數據集的評估工具進行交互。

總體而言,這個文件提供了一個完整的框架,用于對 YOLO 模型進行驗證和評估,支持多種輸出格式和性能指標的計算,適用于計算機視覺領域的目標檢測任務。

10.4 mamba_yolo.py
以下是經過簡化和注釋的核心代碼部分,保留了主要功能并添加了詳細的中文注釋:

import torch
import torch.nn as nn
from einops import rearrange

定義二維層歸一化
class LayerNorm2d(nn.Module):
def init(self, normalized_shape, eps=1e-6, elementwise_affine=True):
super().init()
# 使用 PyTorch 的 LayerNorm 進行歸一化
self.norm = nn.LayerNorm(normalized_shape, eps, elementwise_affine)

def forward(self, x):# 將輸入張量的維度從 (B, C, H, W) 轉換為 (B, H, W, C)x = rearrange(x, 'b c h w -> b h w c').contiguous()# 進行歸一化x = self.norm(x)# 將張量的維度轉換回 (B, C, H, W)x = rearrange(x, 'b h w c -> b c h w').contiguous()return x

自適應填充函數
def autopad(k, p=None, d=1): # kernel, padding, dilation
“”“根據輸入的卷積核大小自動計算填充,以保持輸出形狀不變。”“”
if d > 1:
k = d * (k - 1) + 1 if isinstance(k, int) else [d * (x - 1) + 1 for x in k] # 實際卷積核大小
if p is None:
p = k // 2 if isinstance(k, int) else [x // 2 for x in k] # 自動填充
return p

交叉掃描功能
class CrossScan(torch.autograd.Function):
@staticmethod
def forward(ctx, x: torch.Tensor):
B, C, H, W = x.shape # 獲取輸入張量的形狀
ctx.shape = (B, C, H, W)
xs = x.new_empty((B, 4, C, H * W)) # 創建新的張量用于存儲掃描結果
xs[:, 0] = x.flatten(2, 3) # 進行平鋪
xs[:, 1] = x.transpose(dim0=2, dim1=3).flatten(2, 3) # 轉置并平鋪
xs[:, 2:4] = torch.flip(xs[:, 0:2], dims=[-1]) # 反轉前兩個結果
return xs

@staticmethod
def backward(ctx, ys: torch.Tensor):B, C, H, W = ctx.shapeL = H * W# 反向傳播ys = ys[:, 0:2] + ys[:, 2:4].flip(dims=[-1]).view(B, 2, -1, L)y = ys[:, 0] + ys[:, 1].view(B, -1, W, H).transpose(dim0=2, dim1=3).contiguous().view(B, -1, L)return y.view(B, -1, H, W)

選擇性掃描核心功能
class SelectiveScanCore(torch.autograd.Function):
@staticmethod
@torch.cuda.amp.custom_fwd
def forward(ctx, u, delta, A, B, C, D=None, delta_bias=None, delta_softplus=False, nrows=1, backnrows=1):
# 確保輸入張量是連續的
if u.stride(-1) != 1:
u = u.contiguous()
if delta.stride(-1) != 1:
delta = delta.contiguous()
if D is not None and D.stride(-1) != 1:
D = D.contiguous()
if B.stride(-1) != 1:
B = B.contiguous()
if C.stride(-1) != 1:
C = C.contiguous()
if B.dim() == 3:
B = B.unsqueeze(dim=1) # 擴展維度
ctx.squeeze_B = True
if C.dim() == 3:
C = C.unsqueeze(dim=1) # 擴展維度
ctx.squeeze_C = True
ctx.delta_softplus = delta_softplus
ctx.backnrows = backnrows
# 調用 CUDA 核心函數進行前向計算
out, x, *rest = selective_scan_cuda_core.fwd(u, delta, A, B, C, D, delta_bias, delta_softplus, 1)
ctx.save_for_backward(u, delta, A, B, C, D, delta_bias, x) # 保存反向傳播所需的張量
return out

@staticmethod
@torch.cuda.amp.custom_bwd
def backward(ctx, dout, *args):u, delta, A, B, C, D, delta_bias, x = ctx.saved_tensorsif dout.stride(-1) != 1:dout = dout.contiguous()# 調用 CUDA 核心函數進行反向計算du, ddelta, dA, dB, dC, dD, ddelta_bias, *rest = selective_scan_cuda_core.bwd(u, delta, A, B, C, D, delta_bias, dout, x, ctx.delta_softplus, 1)return (du, ddelta, dA, dB, dC, dD, ddelta_bias, None, None, None, None)

選擇性掃描的主函數
def cross_selective_scan(
x: torch.Tensor,
x_proj_weight: torch.Tensor,
dt_projs_weight: torch.Tensor,
A_logs: torch.Tensor,
Ds: torch.Tensor,
out_norm: torch.nn.Module,
nrows=-1,
backnrows=-1,
delta_softplus=True,
to_dtype=True,
):
B, D, H, W = x.shape # 獲取輸入張量的形狀
D, N = A_logs.shape
K, D, R = dt_projs_weight.shape
L = H * W

# 進行交叉掃描
xs = CrossScan.apply(x)# 進行權重投影
x_dbl = torch.einsum("b k d l, k c d -> b k c l", xs, x_proj_weight)
dts, Bs, Cs = torch.split(x_dbl, [R, N, N], dim=2)  # 拆分張量
dts = torch.einsum("b k r l, k d r -> b k d l", dts, dt_projs_weight)
xs = xs.view(B, -1, L)
dts = dts.contiguous().view(B, -1, L)# HiPPO 矩陣
As = -torch.exp(A_logs.to(torch.float))  # (k * c, d_state)
Bs = Bs.contiguous()
Cs = Cs.contiguous()
Ds = Ds.to(torch.float)  # (K * c)
delta_bias = dt_projs_bias.view(-1).to(torch.float)# 進行選擇性掃描
ys: torch.Tensor = SelectiveScan.apply(xs, dts, As, Bs, Cs, Ds, delta_bias, delta_softplus, nrows, backnrows
).view(B, K, -1, H, W)# 合并結果
y: torch.Tensor = CrossMerge.apply(ys)# 進行輸出歸一化
y = out_norm(y.view(B, -1, H, W)).view(B, H, W, -1)return (y.to(x.dtype) if to_dtype else y)

簡單的卷積網絡結構
class SimpleStem(nn.Module):
def init(self, inp, embed_dim, ks=3):
super().init()
self.hidden_dims = embed_dim // 2
self.conv = nn.Sequential(
nn.Conv2d(inp, self.hidden_dims, kernel_size=ks, stride=2, padding=autopad(ks, d=1), bias=False),
nn.BatchNorm2d(self.hidden_dims),
nn.GELU(),
nn.Conv2d(self.hidden_dims, embed_dim, kernel_size=ks, stride=2, padding=autopad(ks, d=1), bias=False),
nn.BatchNorm2d(embed_dim),
nn.SiLU(),
)

def forward(self, x):return self.conv(x)  # 前向傳播

視覺線索合并模塊
class VisionClueMerge(nn.Module):
def init(self, dim, out_dim):
super().init()
self.hidden = int(dim * 4)

    self.pw_linear = nn.Sequential(nn.Conv2d(self.hidden, out_dim, kernel_size=1, stride=1, padding=0),nn.BatchNorm2d(out_dim),nn.SiLU())def forward(self, x):# 進行張量的拼接y = torch.cat([x[..., ::2, ::2],x[..., 1::2, ::2],x[..., ::2, 1::2],x[..., 1::2, 1::2]], dim=1)return self.pw_linear(y)  # 前向傳播

以上代碼中,保留了重要的類和函數,提供了詳細的中文注釋,便于理解每個部分的功能和實現方式。

這個程序文件 mamba_yolo.py 實現了一個基于深度學習的視覺模型,主要用于目標檢測任務。文件中包含了多個類和函數,構成了一個復雜的神經網絡架構,結合了卷積神經網絡(CNN)和一些新穎的結構,如選擇性掃描(Selective Scan)和狀態空間模型(State Space Model, SSM)。以下是對代碼的詳細講解。

首先,文件導入了一些必要的庫,包括 PyTorch 和一些用于深度學習的模塊。接著,定義了一個 LayerNorm2d 類,它是對 2D 張量進行層歸一化的實現。這個類的 forward 方法會對輸入的張量進行維度重排,以適應層歸一化的要求。

接下來,定義了一個 autopad 函數,用于計算卷積操作的自動填充,以確保輸出形狀與輸入形狀相同。

文件中還實現了多個自定義的 PyTorch 函數,如 CrossScan 和 CrossMerge,它們用于處理張量的交叉掃描和合并操作。這些操作是為了提高模型在處理特征時的靈活性和效率。

SelectiveScanCore 類實現了選擇性掃描的前向和反向傳播邏輯。選擇性掃描是一種高效的特征處理方法,可以在計算中減少冗余,提高模型的性能。

cross_selective_scan 函數則是對選擇性掃描的封裝,提供了多種參數選項以適應不同的輸入和輸出需求。

SS2D 類實現了一個包含狀態空間模型的模塊,具有多個可調參數,包括模型的維度、狀態維度、卷積層的設置等。這個模塊的前向傳播邏輯通過調用 cross_selective_scan 函數來處理輸入數據。

接下來,定義了多個塊(Block)類,如 RGBlock、LSBlock 和 XSSBlock,這些類都是神經網絡的基本構建單元,負責處理輸入特征并生成輸出特征。每個塊都包含卷積層、激活函數和其他操作,以增強模型的表達能力。

VSSBlock_YOLO 類是一個更高級的模塊,結合了選擇性掃描和其他塊的功能,旨在處理更復雜的特征提取任務。它的前向傳播方法將輸入通過多個層進行處理,最終生成輸出。

SimpleStem 類是模型的輸入層,負責將輸入圖像通過卷積層和激活函數進行初步處理,以提取基礎特征。

最后,VisionClueMerge 類用于合并不同來源的特征,增強模型的多樣性和魯棒性。

總體來說,這個文件實現了一個復雜的視覺模型,結合了多種深度學習技術,旨在提高目標檢測任務的性能。通過模塊化的設計,代碼具有良好的可讀性和可擴展性,便于后續的修改和優化。

源碼文件

在這里插入圖片描述

源碼獲取

歡迎大家點贊、收藏、關注、評論啦 、查看👇🏻獲取聯系方式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94983.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94983.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94983.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Password Guessing Using Random Forest》論文解讀

論文填補了傳統統計方法(如 PCFG、Markov)與深度學習方法(如 LSTM、GAN)之間的研究空白,提出基于隨機森林的口令猜測框架 RFGuess,覆蓋三種核心猜測場景,為口令安全研究提供了全新技術路線。一、…

項目一系列-第9章 集成AI千帆大模型

第9章 集成AI千帆大模型 學習目標 能夠說清楚健康評估模塊在項目中的作用能夠掌握千帆大模型的開通和對接能夠掌握健康評估模塊中的prompt提示詞編寫能夠自主完成健康評估模塊的接口開發 分析設計 需求說明 健康評估是指老人辦理入住前需上傳體檢報告,由AI自動…

vben admin5組件文檔(豆包版)---VbenTree

VbenTree 用法說明 VbenTree 是 Vben5 中基于 radix-vue 實現的樹形組件,支持單選、多選、展開/折疊、權限控制等功能。以下是其核心用法說明: 1. 基礎引入 import { VbenTree } from vben-core/shadcn-ui;2. 核心屬性(Props)屬性…

postman常用快捷鍵

作為一名IT程序猿,不懂一些工具的快捷方式,應該會被鄙視的吧。收集了一些Postman的快捷方式,大家一起動手操作~ 1小時postman接口測試從入門到精通教程簡單操作 操作mac系統windows系統 打開新標簽 ?TCtrl T關閉標簽?WCtrl W強制關閉標簽…

【物聯網】什么是 DHT11(數字溫濕度傳感器)?

正面照片(藍色傳感器朝上,針腳朝下) 絲印標注非常清晰: 左邊 → S 👉 信號 (DATA) 中間 → 👉 VCC (電源,3.3V 或 5V) 右邊 → - 👉 GND (地) ? 正確接法(Arduino Nano…

光譜相機在霧霾監測中有何優勢?

光譜相機在霧霾監測中的優勢主要體現在多維度數據采集和環境適應性方面,結合最新技術進展分析如下:一、核心優勢?穿透性監測能力? 短波紅外(SWIR)波段可穿透霧霾顆粒,結合可見光成像實現霧霾濃度與能見度的同步監測&…

【c++】超好玩游戲

#include <iostream> #include <vector> #include <conio.h> #include <windows.h> #include <time.h>using namespace std;// 游戲常量 const int WIDTH 40; const int HEIGHT 20; const int PADDLE_WIDTH 5;// 方向枚舉 enum Direction { S…

GitHub 熱榜項目 - 日榜(2025-08-27)

GitHub 熱榜項目 - 日榜(2025-08-27) 生成于&#xff1a;2025-08-27 統計摘要 共發現熱門項目&#xff1a;15 個 榜單類型&#xff1a;日榜 本期熱點趨勢總結 本期GitHub熱榜呈現出三大技術趨勢&#xff1a;1. AI生產力工具持續升溫&#xff1a;系統提示詞泄露庫、DeepCode…

基于Springboot + vue3實現的學校學報出版發行管理系統

項目描述本系統包含管理員和用戶兩個角色。管理員角色&#xff1a;用戶管理&#xff1a;管理系統中所有用戶的信息&#xff0c;包括添加、刪除和修改用戶。稿件分類管理&#xff1a;管理稿件分類信息&#xff0c;包括新增、查看、修改和刪除稿件分類。新聞資訊管理&#xff1a;…

【Keil5教程及技巧】耗時一周精心整理萬字全網最全Keil5(MDK-ARM)功能詳細介紹【建議收藏-細細品嘗】

&#x1f48c; 所屬專欄&#xff1a;【單片機開發軟件技巧】 &#x1f600; 作??者&#xff1a; 于曉超 &#x1f680; 個人簡介&#xff1a;嵌入式工程師&#xff0c;專注嵌入式領域基礎和實戰分享 &#xff0c;歡迎咨詢&#xff01; &#x1f496; 歡迎大家&#xff1…

國家育兒補貼政策遭利用,黑產組織借機竊取敏感數據

組織概況與作案手法近期網絡安全領域出現了一個高度組織化的犯罪集團UTG-Q-1000&#xff0c;該組織通過利用中國國家育兒補貼政策實施大規模金融詐騙和數據竊取活動。這個結構嚴密的犯罪網絡下設多個專業部門&#xff0c;包括財務組、新聞與色情組、設計與制造組以及黑市交易組…

Python Imaging Library (PIL) 全面指南:PIL高級圖像處理-分割與顏色空間轉換

高級圖像處理&#xff1a;PIL中的圖像分割與顏色空間轉換 學習目標 本課程將深入探討PIL&#xff08;Python Imaging Library&#xff09;中的一些高級功能&#xff0c;包括圖像分割和顏色空間轉換。通過本課程的學習&#xff0c;學員將能夠掌握如何使用PIL進行更復雜的圖像處理…

圖解 OAuth,為什么這樣設計?

OAuth 于 2007 年首次推出。它最初由 Twitter 創建&#xff0c;因為 Twitter 希望能夠允許第三方應用代表用戶發布推文。想象一下&#xff0c;如果今天設計類似的應用&#xff0c;你會怎么做&#xff1f;一種方法是直接要求用戶輸入用戶名和密碼。因此&#xff0c;你創建一個非…

WeakAuras Lua Script ICC (BarneyICC) Simplified Chinese [Mini]

WeakAuras Lua Script ICC &#xff08;BarneyICC&#xff09; Simplified Chinese [Mini] ICC 迷你版本會打了只需要團隊框體高亮提示即可&#xff0c;因為有DBM&#xff0c;就不需要那么多了 !WA:2!S3xc4XrXzI6wkSjzcVSyb4aoKWGaC04ijMdPrsoit0OdRXwxmsYgmWoNTup4rZ0UNr2sKL…

mcp學習

mcp學習 預算&#xff1a;5塊(半頓拼好飯嗚嗚嗚) 出問題試著開啟或者關閉代理。 文章目錄mcp學習1. 基本原理2. 環境配置1. cherryStudiodeepseekpython2. Clinedeepseek3. 常用mcp服務1. mcp-server-fetch2. mcp-playwright3. baidu-map4. filesystem5. mcp-mysql-server參考…

Rust:所有權

Rust&#xff1a;所有權拷貝 & 移動堆棧拷貝移動克隆所有權變量的初始權限指針的雙重權限權限的動態變化引用賦值重新借用函數調用時的權限移動拷貝借用不可變借用可變借用復合類型的權限結構體元組數組傳統語言的內存管理要么依賴程序員手動管理&#xff08;C/C&#xff0…

Elasticsearch數據遷移快照方案初探(二):快照創建與多節點存儲問題解決

快照倉庫創建成功 經過前面的配置修改&#xff0c;我們成功創建了快照倉庫&#xff1a; curl -X PUT "https://[ES_HOST]:9200/_snapshot/backup_repo" \-H "Content-Type: application/json" \-u "[USERNAME]:[PASSWORD]" \-k \-d {"type&…

DeepSeek大模型風靡云平臺,百度智能云、阿里云、騰訊云等多個平臺宣布上線DeepSeek模型

近日&#xff0c;百度智能云、華為云、阿里云、騰訊云、360數字安全、云軸科技等多個平臺紛紛宣布上線DeepSeek大模型&#xff0c;這一消息無疑為AI開發者和企業用戶帶來了全新的機遇和選擇。本文將探討DeepSeek大模型上線的背景、意義以及未來的發展趨勢。 首先&#xff0c;我…

position屬性

文章目錄Position屬性&#x1f9ed; 一、position 屬性的取值&#x1f4dd; 二、各屬性值詳解與示例1. static&#xff08;靜態定位&#xff09;2. relative&#xff08;相對定位&#xff09;3. absolute&#xff08;絕對定位&#xff09;4. fixed&#xff08;固定定位&#xf…

通信中間件 Fast DDS(二) :詳細介紹

目錄 1.引言 2.DDS的基本原理 3.FastDDS 的核心特性 4.FastDDS 的核心架構 5.典型應用場景 6.FastDDS 的安裝與快速上手 7.學習資源與社區 1.引言 FastDDS&#xff08;原稱 Fast RTPS&#xff09;是由西班牙公司 eProsima 開發的一款開源、高性能、實時性強的數據分發服…