【CV綜合實戰】基于深度學習的工業壓力表智能檢測與讀數系統【1】壓力表位置檢測

《------往期經典推薦------》

一、AI應用軟件開發實戰專欄【鏈接】

項目名稱項目名稱
1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】
3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】
5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】
7.【YOLOv8多目標識別與自動標注軟件開發】8.【基于深度學習的行人跌倒檢測系統】
9.【基于深度學習的PCB板缺陷檢測系統】10.【基于深度學習的生活垃圾分類目標檢測系統】
11.【基于深度學習的安全帽目標檢測系統】12.【基于深度學習的120種犬類檢測與識別系統】
13.【基于深度學習的路面坑洞檢測系統】14.【基于深度學習的火焰煙霧檢測系統】
15.【基于深度學習的鋼材表面缺陷檢測系統】16.【基于深度學習的艦船目標分類檢測系統】
17.【基于深度學習的西紅柿成熟度檢測系統】18.【基于深度學習的血細胞檢測與計數系統】
19.【基于深度學習的吸煙/抽煙行為檢測系統】20.【基于深度學習的水稻害蟲檢測與識別系統】
21.【基于深度學習的高精度車輛行人檢測與計數系統】22.【基于深度學習的路面標志線檢測與識別系統】
23.【基于深度學習的智能小麥害蟲檢測識別系統】24.【基于深度學習的智能玉米害蟲檢測識別系統】
25.【基于深度學習的200種鳥類智能檢測與識別系統】26.【基于深度學習的45種交通標志智能檢測與識別系統】
27.【基于深度學習的人臉面部表情識別系統】28.【基于深度學習的蘋果葉片病害智能診斷系統】
29.【基于深度學習的智能肺炎診斷系統】30.【基于深度學習的葡萄簇目標檢測系統】
31.【基于深度學習的100種中草藥智能識別系統】32.【基于深度學習的102種花卉智能識別系統】
33.【基于深度學習的100種蝴蝶智能識別系統】34.【基于深度學習的水稻葉片病害智能診斷系統】
35.【基于與ByteTrack的車輛行人多目標檢測與追蹤系統】36.【基于深度學習的智能草莓病害檢測與分割系統】
37.【基于深度學習的復雜場景下船舶目標檢測系統】38.【基于深度學習的農作物幼苗與雜草檢測系統】
39.【基于深度學習的智能道路裂縫檢測與分析系統】40.【基于深度學習的葡萄病害智能診斷與防治系統】
41.【基于深度學習的遙感地理空間物體檢測系統】42.【基于深度學習的無人機視角地面物體檢測系統】
43.【基于深度學習的木薯病害智能診斷與防治系統】44.【基于深度學習的野外火焰煙霧檢測系統】
45.【基于深度學習的腦腫瘤智能檢測系統】46.【基于深度學習的玉米葉片病害智能診斷與防治系統】
47.【基于深度學習的橙子病害智能診斷與防治系統】48.【基于深度學習的車輛檢測追蹤與流量計數系統】
49.【基于深度學習的行人檢測追蹤與雙向流量計數系統】50.【基于深度學習的反光衣檢測與預警系統】
51.【基于深度學習的危險區域人員闖入檢測與報警系統】52.【基于深度學習的高密度人臉智能檢測與統計系統】
53.【基于深度學習的CT掃描圖像腎結石智能檢測系統】54.【基于深度學習的水果智能檢測系統】
55.【基于深度學習的水果質量好壞智能檢測系統】56.【基于深度學習的蔬菜目標檢測與識別系統】
57.【基于深度學習的非機動車駕駛員頭盔檢測系統】58.【太基于深度學習的陽能電池板檢測與分析系統】
59.【基于深度學習的工業螺栓螺母檢測】60.【基于深度學習的金屬焊縫缺陷檢測系統】
61.【基于深度學習的鏈條缺陷檢測與識別系統】62.【基于深度學習的交通信號燈檢測識別】
63.【基于深度學習的草莓成熟度檢測與識別系統】64.【基于深度學習的水下海生物檢測識別系統】
65.【基于深度學習的道路交通事故檢測識別系統】66.【基于深度學習的安檢X光危險品檢測與識別系統】
67.【基于深度學習的農作物類別檢測與識別系統】68.【基于深度學習的危險駕駛行為檢測識別系統】
69.【基于深度學習的維修工具檢測識別系統】70.【基于深度學習的維修工具檢測識別系統】
71.【基于深度學習的建筑墻面損傷檢測系統】72.【基于深度學習的煤礦傳送帶異物檢測系統】
73.【基于深度學習的老鼠智能檢測系統】74.【基于深度學習的水面垃圾智能檢測識別系統】
75.【基于深度學習的遙感視角船只智能檢測系統】76.【基于深度學習的胃腸道息肉智能檢測分割與診斷系統】
77.【基于深度學習的心臟超聲圖像間隔壁檢測分割與分析系統】78.【基于深度學習的心臟超聲圖像間隔壁檢測分割與分析系統】
79.【基于深度學習的果園蘋果檢測與計數系統】80.【基于深度學習的半導體芯片缺陷檢測系統】
81.【基于深度學習的糖尿病視網膜病變檢測與診斷系統】82.【基于深度學習的運動鞋品牌檢測與識別系統】
83.【基于深度學習的蘋果葉片病害檢測識別系統】84.【基于深度學習的醫學X光骨折檢測與語音提示系統】
85.【基于深度學習的遙感視角農田檢測與分割系統】86.【基于深度學習的運動品牌LOGO檢測與識別系統】
87.【基于深度學習的電瓶車進電梯檢測與語音提示系統】88.【基于深度學習的遙感視角地面房屋建筑檢測分割與分析系統】
89.【基于深度學習的醫學CT圖像肺結節智能檢測與語音提示系統】90.【基于深度學習的舌苔舌象檢測識別與診斷系統】
91.【基于深度學習的蛀牙智能檢測與語音提示系統】92.【基于深度學習的皮膚癌智能檢測與語音提示系統】

二、機器學習實戰專欄【鏈接】,已更新31期,歡迎關注,持續更新中~~
三、深度學習【Pytorch】專欄【鏈接】
四、【Stable Diffusion繪畫系列】專欄【鏈接】
五、YOLOv8改進專欄【鏈接】持續更新中~~
六、YOLO性能對比專欄【鏈接】,持續更新中~

《------正文------》

目錄

  • 基本功能演示
  • 引言
  • 研究背景及重要性
  • 應用場景
  • 項目實現基本步驟
    • 1.目標檢測模型訓練
    • 2.分割模型訓練
    • 3.讀取壓力表讀數
    • 4.可視化系統制作
  • 目標檢測模型訓練基本流程
  • YOLO11簡介
  • 模型訓練、評估與推理
    • 1. 數據集準備與訓練
    • 2.模型訓練
    • 3. 訓練結果評估
    • 4. 使用模型進行推理
  • 總結
  • 【獲取方式】

基本功能演示

【CV綜合實戰】基于深度學習的工業壓力表智能檢測與讀數系統【python源碼+Pyqt5界面+數據集+訓練代碼】

摘要:在工業環境中,壓力表作為關鍵的監控設備,用于實時監測各種系統和流程中的壓力變化,對確保生產安全與效率至關重要。本文基于YOLO11的深度學習框架,通過783張實際場景中拍攝的工業壓力表相關圖片,訓練了可進行壓力表目標檢測的模型,然后用Unet網絡,通過414張分圖片訓練壓力表指針與刻度分割模型,對檢測出的壓力表指針與刻度進行分割,然后通過OpenCV進行后處理的讀數讀取。最終基于以上內容制作了一款帶UI界面的工業壓力表智能檢測與讀數系統,更便于實際應用。該系統是基于pythonPyQT5開發的,支持圖片視頻以及攝像頭進行壓力表數據讀取,并保存檢測結果。本文提供了完整的Python代碼和使用教程,給感興趣的小伙伴參考學習,完整的代碼資源文件獲取方式見文末

點擊跳轉至文末《完整相關文件及源碼》獲取


引言

該系列文章主要介紹一個《基于深度學習的工業壓力表智能檢測與讀數系統》的制作流程:包含了項目所有源碼與模型訓練數據集、訓練代碼與訓練結果等內容。最終實現效果如下:
在這里插入圖片描述

該系統制作主要包括以下幾步:

  1. 壓力表目標檢測模型的訓練,該項目使用的是YOLO11
  2. 壓力表指針與刻度分割模型的訓練,該項目使用的是Unet
  3. OpenCV對分割結果進行后處理,并讀取壓力表讀數;
  4. 系統軟件界面的制作。

由于項目的內容較多,一篇文章無法介紹完全。本文先介紹第一部分內容:壓力表目標檢測模型的訓練實現。

研究背景及重要性

在工業環境中,壓力表作為關鍵的監控設備,用于實時監測各種系統和流程中的壓力變化,對確保生產安全與效率至關重要。然而,傳統的壓力表讀數依賴于人工檢查,這不僅耗時費力,而且容易出錯,特別是在需要連續監控的情況下。為了解決這些問題,基于YOLO深度學習框架訓練的工業壓力表檢測模型結合Unet模型進行的壓力表指針與刻度分割技術應運而生。該系統能夠自動從圖片或視頻流中識別并定位壓力表,精確分割指針與刻度,并通過Opencv進行后處理以準確讀取壓力表數值。這種智能檢測與讀數系統的開發,極大地提高了工業監控的自動化水平,減少了人為錯誤,增強了數據獲取的及時性和準確性。

應用場景

  1. 實時監控與預警:在化工、石油、天然氣等行業的生產過程中,實時監控管道和容器的壓力狀態,快速發現異常情況并發出警報。
  2. 遠程維護與診斷:允許工程師通過網絡遠程訪問監控畫面,評估設備運行狀態,減少現場檢查的需求,降低維護成本。
  3. 歷史數據分析:收集并存儲壓力表的歷史讀數,便于后續分析,優化生產流程,預防潛在故障。
  4. 質量控制:在制造過程中,使用此系統監控生產設備的壓力參數,確保產品質量的一致性和穩定性。
  5. 教育與培訓:作為技術人員培訓工具,幫助新手更快地掌握壓力表讀數技能,提高工作效率。

項目實現基本步驟

這個工業壓力表智能檢測與讀數系統的實現主要包含一下步驟:

1.目標檢測模型訓練

使用YOLO11訓練壓力表目標檢測模型,用于檢測圖片中的壓力表位置,效果示例如下:
在這里插入圖片描述

2.分割模型訓練

使用Unet訓練壓力表刻度與指針分割模型,對上述檢測到的壓力表刻度與指針進行分割,效果示例如下:
在這里插入圖片描述

3.讀取壓力表讀數

通過OpenCV對分割后的結果進行一系列的后處理:腐蝕、極坐標變換等,最終讀取壓力表讀數;示例如下:
在這里插入圖片描述
在這里插入圖片描述

4.可視化系統制作

基于上述實現的內容,用Pyqt5開發可視化系統界面,便于使用與展示,示例如下:

在這里插入圖片描述

目標檢測模型訓練基本流程

本文介紹的第一步中,目標檢測模型的訓練流程如下:

  1. 搜集與整理數據集:搜集整理實際場景中工業壓力表的相關數據圖片,并進行相應的數據標注與處理,為模型訓練提供訓練數據集;
  2. 訓練模型:基于整理的數據集,根據最前沿的YOLOv11目標檢測技術訓練目標檢測模型,實現對需要檢測的對象進行有效檢測的功能;
  3. 模型性能評估:對訓練出的模型在驗證集上進行了充分的結果評估和對比分析,主要目的是為了揭示模型在關鍵指標(如Precision、Recall、mAP50和mAP50-95等指標)上的表現情況

YOLO11簡介

YOLO11源碼地址:https://github.com/ultralytics/ultralytics

Ultralytics YOLO11是一款前沿的、最先進的模型,它在之前YOLO版本成功的基礎上進行了構建,并引入了新功能和改進,以進一步提升性能和靈活性。YOLO11設計快速、準確且易于使用,使其成為各種物體檢測和跟蹤、實例分割、圖像分類以及姿態估計任務的絕佳選擇。
在這里插入圖片描述
YOLO11模型結構如下:
在這里插入圖片描述

YOLO11創新點如下:

YOLO 11主要改進包括:
增強的特征提取:YOLO 11采用了改進的骨干和頸部架構,增強了特征提取功能,以實現更精確的目標檢測。
優化的效率和速度:優化的架構設計和優化的訓練管道提供更快的處理速度,同時保持準確性和性能之間的平衡。
更高的精度,更少的參數:YOLO11m在COCO數據集上實現了更高的平均精度(mAP),參數比YOLOv8m少22%,使其在不影響精度的情況下提高了計算效率。
跨環境的適應性:YOLO 11可以部署在各種環境中,包括邊緣設備、云平臺和支持NVIDIA GPU的系統。
廣泛的支持任務:YOLO 11支持各種計算機視覺任務,如對象檢測、實例分割、圖像分類、姿態估計和面向對象檢測(OBB)。

模型訓練、評估與推理

本文主要基于YOLO11n模型進行模型訓練,訓練完成后對模型在驗證集上的表現進行全面的性能評估及對比分析。總體流程包括:數據集準備、模型訓練、模型評估。

1. 數據集準備與訓練

通過網絡上搜集關于實際場景中工業壓力表的相關圖片,并使用Labelimg標注工具對每張圖片進行標注,分1個檢測類別['壓力表']

最終數據集一共包含783張圖片,其中訓練集包含725張圖片驗證集包含58張圖片
部分圖像及標注如下圖所示:
在這里插入圖片描述

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

數據集各類別數目分布情況如下:
在這里插入圖片描述

2.模型訓練

準備好數據集后,將圖片數據以如下格式放置在項目目錄中。在項目目錄中新建datasets目錄,同時將檢測的圖片分為訓練集與驗證集放入Data目錄下。
在這里插入圖片描述

同時我們需要新建一個data.yaml文件,用于存儲訓練數據的路徑及模型需要進行檢測的類別。YOLOv11在進行模型訓練時,會讀取該文件的信息,用于進行模型的訓練與驗證。data.yaml的具體內容如下:

train: D:\2MyCVProgram\meter_det\datasets\train\images
val: D:\2MyCVProgram\meter_det\datasets\val\imagesnc: 1
names: ['meter']

注:train與val后面表示需要訓練圖片的路徑,建議直接寫自己文件的絕對路徑。
數據準備完成后,通過調用train.py文件進行模型訓練,epochs參數用于調整訓練的輪數,batch參數用于調整訓練的批次大小【根據內存大小調整,最小為1】,optimizer設定的優化器為SGD,訓練代碼如下:

#coding:utf-8
from ultralytics import YOLO
import matplotlib
matplotlib.use('TkAgg')# 模型配置文件
model_yaml_path = "ultralytics/cfg/models/11/yolo11.yaml"
#數據集配置文件
data_yaml_path = 'datasets/Data/data.yaml'
#預訓練模型
pre_model_name = 'yolo11n.pt'if __name__ == '__main__':#加載預訓練模型model = YOLO(model_yaml_path).load(pre_model_name)#訓練模型results = model.train(data=data_yaml_path,epochs=150,      # 訓練輪數batch=4,         # batch大小name='train_v11', # 保存結果的文件夾名稱optimizer='SGD') # 優化器

模型常用訓練超參數參數說明:
YOLO11 模型的訓練設置包括訓練過程中使用的各種超參數和配置。這些設置會影響模型的性能、速度和準確性。關鍵的訓練設置包括批量大小、學習率、動量和權重衰減。此外,優化器、損失函數和訓練數據集組成的選擇也會影響訓練過程。對這些設置進行仔細的調整和實驗對于優化性能至關重要。
以下是一些常用的模型訓練參數和說明:

參數名默認值說明
modelNone指定用于訓練的模型文件。接受指向 .pt 預訓練模型或 .yaml 配置文件。對于定義模型結構或初始化權重至關重要。
dataNone數據集配置文件的路徑(例如 coco8.yaml).該文件包含特定于數據集的參數,包括訓練數據和驗證數據的路徑、類名和類數。
epochs100訓練總輪數。每個epoch代表對整個數據集進行一次完整的訓練。調整該值會影響訓練時間和模型性能。
patience100在驗證指標沒有改善的情況下,提前停止訓練所需的epoch數。當性能趨于平穩時停止訓練,有助于防止過度擬合。
batch16批量大小,有三種模式:設置為整數(例如,’ Batch =16 ‘), 60% GPU內存利用率的自動模式(’ Batch =-1 ‘),或指定利用率分數的自動模式(’ Batch =0.70 ')。
imgsz640用于訓練的目標圖像尺寸。所有圖像在輸入模型前都會被調整到這一尺寸。影響模型精度和計算復雜度。
deviceNone指定用于訓練的計算設備:單個 GPU (device=0)、多個 GPU (device=0,1)、CPU (device=cpu),或蘋果芯片的 MPS (device=mps).
workers8加載數據的工作線程數(每 RANK 多 GPU 訓練)。影響數據預處理和輸入模型的速度,尤其適用于多 GPU 設置。
nameNone訓練運行的名稱。用于在項目文件夾內創建一個子目錄,用于存儲訓練日志和輸出結果。
pretrainedTrue決定是否從預處理模型開始訓練。可以是布爾值,也可以是加載權重的特定模型的字符串路徑。提高訓練效率和模型性能。
optimizer'auto'為訓練模型選擇優化器。選項包括 SGD, Adam, AdamW, NAdam, RAdam, RMSProp 等,或 auto 用于根據模型配置進行自動選擇。影響收斂速度和穩定性
lr00.01初始學習率(即 SGD=1E-2, Adam=1E-3) .調整這個值對優化過程至關重要,會影響模型權重的更新速度。
lrf0.01最終學習率占初始學習率的百分比 = (lr0 * lrf),與調度程序結合使用,隨著時間的推移調整學習率。

3. 訓練結果評估

在深度學習中,我們通常用損失函數下降的曲線來觀察模型訓練的情況。YOLOv11在訓練時主要包含三個方面的損失:定位損失(box_loss)、分類損失(cls_loss)和動態特征損失(dfl_loss),在訓練結束后,可以在runs/目錄下找到訓練過程及結果文件,如下所示:

在這里插入圖片描述

各損失函數作用說明:
定位損失box_loss:預測框與標定框之間的誤差(GIoU),越小定位得越準;
分類損失cls_loss:計算錨框與對應的標定分類是否正確,越小分類得越準;
動態特征損失(dfl_loss):DFLLoss是一種用于回歸預測框與目標框之間距離的損失函數。在計算損失時,目標框需要縮放到特征圖尺度,即除以相應的stride,并與預測的邊界框計算Ciou Loss,同時與預測的anchors中心點到各邊的距離計算回歸DFLLoss。
本文訓練結果如下:

在這里插入圖片描述

我們通常用PR曲線來體現精確率和召回率的關系,本文訓練結果的PR曲線如下。mAP表示Precision和Recall作為兩軸作圖后圍成的面積,m表示平均,@后面的數表示判定iou為正負樣本的閾值。mAP@.5:表示閾值大于0.5的平均mAP,可以看到本文目標檢測模型在驗證集上的mAP@0.5值為0.995,結果還是十分不錯的。

在這里插入圖片描述

4. 使用模型進行推理

模型訓練完成后,我們可以得到一個最佳的訓練結果模型best.pt文件,在runs/train/weights目錄下。我們可以使用該文件進行后續的推理檢測。
圖片檢測代碼如下:

#coding:utf-8
from ultralytics import YOLO
import cv2# 所需加載的模型目錄
path = 'runs/detect/train_v11/weights/best.pt'
# 需要檢測的圖片地址
img_path = r"datasets/val/images/20190829154802545.jpg"# 加載預訓練模型
model = YOLO(path, task='detect')# 檢測圖片
results = model(img_path)
res = results[0].plot()
# res = cv2.resize(res,dsize=None,fx=0.5,fy=0.5,interpolation=cv2.INTER_LINEAR)
cv2.imshow("Detection Result", res)
cv2.imwrite("result.jpg", res)
cv2.waitKey(0)

執行上述代碼后,會將執行的結果直接標注在圖片上,結果如下:
在這里插入圖片描述

更多檢測結果示例如下:

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

總結

本文詳細介紹了《工業壓力表智能檢測與讀數系統》實現的第一步:壓力表目標位置檢測下一篇文章將詳細介紹如何訓練分割模型,并分割出壓力表的指針與刻度位置。


關于該系統涉及到的完整源碼、UI界面代碼、數據集、訓練代碼、訓練好的模型、測試圖片視頻等相關文件,均已打包上傳,感興趣的小伙伴可以通過下載鏈接自行獲取。

【獲取方式】

關注末尾名片GZH【阿旭算法與機器學習】,發送【源碼】獲取下載方式

本文涉及到的完整全部程序文件:包括python源碼、數據集、訓練好的結果文件、訓練代碼、UI源碼、測試圖片視頻等(見下圖),獲取方式見文末:
在這里插入圖片描述

在這里插入圖片描述

注意:該代碼基于Python3.9開發,運行界面的主程序為MainProgram.py,其他測試腳本說明見上圖。為確保程序順利運行,請按照程序運行說明文檔txt配置軟件運行所需環境。


好了,這篇文章就介紹到這里,喜歡的小伙伴感謝給點個贊和關注,更多精彩內容持續更新~~
關于本篇文章大家有任何建議或意見,歡迎在評論區留言交流!

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

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

相關文章

性能狂飆 Gooxi 8卡5090服務器重新定義高密度算力

國鑫Intel Eagle Stream平臺8卡RTX5090AI服務器性能到底有多強?小編一文帶你看懂個中奧妙。國鑫Intel Eagle Stream平臺8卡RTX5090AI服務器如圖,國鑫Intel Eagle Stream平臺8卡RTX5090AI服務器(SY6108G-G4)只有6U高度,…

零基礎掌握Go語言需要多久?報班的話哪家好?

大家有沒有發現,近年來,Go語言越來越受歡迎了,TIOBE榜單中,Go現在已經穩居前10了。 尤其在云計算、區塊鏈、微服務等領域,Go語言更是“欽點語言”,很多大廠也都在積極使用Go語言,薪資待遇更是連…

【網絡】Linux 內核優化實戰 - net.ipv4.tcp_no_metrics_save

目錄一、TCP連接指標緩存的作用二、tcp_no_metrics_save的取值及含義三、適用場景與影響推薦啟用緩存(值為0)的場景:推薦禁用緩存(值為1)的場景:實際影響:四、如何查看和修改參數1. 查看當前值2…

13. G1垃圾回收器

1. JVM介紹和運行流程-CSDN博客 2. 什么是程序計數器-CSDN博客 3. java 堆和 JVM 內存結構-CSDN博客 4. 虛擬機棧-CSDN博客 5. JVM 的方法區-CSDN博客 6. JVM直接內存-CSDN博客 7. JVM類加載器與雙親委派模型-CSDN博客 8. JVM類裝載的執行過程-CSDN博客 9. JVM垃圾回收…

算法學習筆記:13.歸并排序——從原理到實戰,涵蓋 LeetCode 與考研 408 例題

歸并排序是一種基于分治策略的經典排序算法,由約翰?馮?諾依曼在 1945 年提出。它以穩定的 O (nlogn) 時間復雜度和良好的可并行性,在大規模數據排序場景中占據重要地位。與快速排序的 “先分區后排序” 不同,歸并排序采用 “先排序后合并”…

Kotlin基礎學習記錄

變量和函數 變量 // val為常量,一旦賦值就不可變 val a 10 val a: Int 10 a 3 // 報錯// var為變量 var a 10 a 3 var b: Int 20 b 2函數fun add(a: Int, b: Int): Unit {a b // 報錯,參數默認val }fun add(a: Int, b: Int) {var x: Int ax b …

【C#】GraphicsPath的用法

在 C# 中,GraphicsPath 是 GDI 提供的一個非常強大的類,用于創建和操作復雜圖形路徑。它可以用來繪制直線、曲線、多邊形等形狀,并支持判斷點是否在路徑內或路徑的輪廓上。一、基本概念GraphicsPath 類功能:添加各種幾何圖形&…

C語言32個關鍵字

文章目錄數據類型1、數據類型(12個)控制語句2、控制語句關鍵字(12個)存儲類型3、存儲類型關鍵字(4個)其他關鍵字4、其他關鍵字(4個)?一共32個關鍵字分為 數據類型 1、數據類型&am…

粒子濾波|粒子濾波的相關算法理論介紹

在自動控制、導航、目標跟蹤等眾多領域,系統狀態估計是獲取真實狀態的關鍵環節。由于觀測信號常受噪聲干擾,濾波技術成為提取可靠信息的核心手段。本文將圍繞目標跟蹤技術中的濾波算法理論展開,重點解析粒子濾波框架的原理與應用。一、動態系…

Jenkins+Gitee+Docker容器化部署

寫在前文 本文主要是通過Jenkins的maven項目版本GiteeDocker-maven插件來進行部署的,本文沒有使用dockerfile/docker-compose。 本文默認已經安裝了Docker 1、安裝Jenkins Step1、創建文件夾當作映射jenkins的home文件夾 mkdir /app/jenkins Step2、賦權&#xff…

[Meetily后端框架] 多模型-Pydantic AI 代理-統一抽象 | SQLite管理

第5章:人工智能模型交互(Pydantic-AI 代理) 歡迎回來! 在上一章第四章:文字記錄處理邏輯中,我們學習了TranscriptProcessor如何將冗長的會議記錄分解為稱為"塊"的較小片段,因為人工…

利用DeepSeek實現rust調用duckdb動態鏈接庫的duckdb CLI

提示詞:請用rust調用duckdb-rs實現一個duckdb CLI,支持語法突出顯示和計時,還支持命令行管道輸入輸出 Cargo.toml [package] name "duckdb-cli" version "0.1.0" edition "2024"[dependencies] duckdb "1.3.1&qu…

C++,從匯編角度看《虛擬繼承的邪惡》

刷到一篇文章&#xff1a; 作者&#xff1a; 原文&#xff1a;虛擬繼承的邪惡 討論到這樣的一個程序&#xff0c;最終輸出什么&#xff1f;&#xff1f;&#xff1f; 代碼有簡化命名 using namespace std;class A { public:A(int a 0) : v(a) {};int v; };template <type…

多 Agent 強化學習實踐指南(一):CTDE PPO 在合作捕食者-獵物游戲中的應用詳解

我們來詳細講解如何在合作捕食者-獵物游戲中結合 PPO (Proximal Policy Optimization) 算法。我們將聚焦于 CTDE&#xff08;Centralized Training, Decentralized Execution&#xff0c;集中訓練、分散執行&#xff09; 模式&#xff0c;因為這是處理合作多 Agent 任務的常用且…

Web應用文件上傳安全設計指南

引言 在當今的Web應用中&#xff0c;文件上傳功能已成為基礎且必要的服務能力&#xff0c;但不當的設計可能帶來目錄遍歷、代碼注入、服務端資源耗盡等安全風險。本文從威脅模型、安全設計原則、技術實現三個維度&#xff0c;系統闡述安全文件上傳架構的設計要點。 一、威脅模型…

用 React Three Fiber 實現 3D 城市模型的擴散光圈特效

本文介紹了如何使用 React Three Fiber&#xff08;R3F&#xff09;和 Three.js 實現一個從中心向外擴散的光圈特效&#xff08;DiffuseAperture 組件&#xff09;&#xff0c;并將其集成到城市 3D 模型&#xff08;CityModel 組件&#xff09;中。該特效通過動態調整圓柱幾何體…

【牛客刷題】COUNT數字計數

文章目錄 一、題目介紹二、題解思路三、算法實現四、復雜度分析五 、關鍵步驟解析5.1 數字分解5.2 三種情況處理5.2.1 情況1: d < c u r d < cur d<cur(完整周期)5.2.2 情況2: d = c u r d = cur d=cur(混合周期)5.2.3 情況3: d > c u r d > cur d>cu…

AGV穿梭不“迷路”CCLinkIE轉Modbus TCP的銜接技巧

在AGV控制系統集成中&#xff0c;工程師常面臨一個現實難題&#xff1a;如何讓CCLinkIE總線與Modbus TCP設備實現高效通信&#xff1f;這種跨協議的連接需求&#xff0c;往往需要耗費大量時間調試。本文將通過實際案例解析&#xff0c;為制造行業工程師提供可復用的解決方案。【…

【代碼隨想錄】刷題筆記——哈希表篇

目錄 242. 有效的字母異位詞 349. 兩個數組的交集 202. 快樂數 1. 兩數之和 454. 四數相加 II 383. 贖金信 15. 三數之和 18. 四數之和 242. 有效的字母異位詞 思路 代碼 class Solution {public boolean isAnagram(String s, String t) {if (s.length() ! t.length()…

Python爬蟲實戰:研究messytables庫相關技術

1. 引言 在當今數字化時代,互聯網上存在著大量有價值的數據。然而,這些數據通常以不規則的格式存在,尤其是表格數據,可能包含復雜的表頭、合并單元格、不規則布局等問題。傳統的數據處理工具往往難以應對這些挑戰。 網絡爬蟲技術可以幫助我們從網頁上自動提取數據,而 mes…