基于深度學習的醫學CT圖像肺結節智能檢測與語音提示系統【python源碼+Pyqt5界面+數據集+訓練代碼】

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

一、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.【基于深度學習的遙感視角地面房屋建筑檢測分割與分析系統】

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

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

目錄

  • 基本功能演示
  • 研究背景
  • 應用場景
  • 主要工作內容
  • 一、軟件核心功能介紹及效果演示
    • 軟件主要功能
    • 界面參數設置說明
    • 檢測結果說明
    • 主要功能說明
    • (1)圖片檢測說明
    • (2)視頻檢測說明
    • (3)攝像頭檢測說明
    • (4)保存圖片與視頻檢測說明
  • 二、YOLO11簡介
  • 三、模型訓練、評估與推理
    • 1. 數據集準備與訓練
    • 2.模型訓練
    • 3. 訓練結果評估
    • 4. 使用模型進行推理
  • 四、可視化系統制作
    • Pyqt5詳細介紹
    • 系統制作
  • 【獲取方式】

基本功能演示

基于深度學習的醫學CT圖像肺結節智能檢測與語音提示系統【python源碼+Pyqt5界面+數據集+訓練代碼】

摘要:肺癌是全球范圍內導致死亡的主要原因之一,早期發現和治療至關重要。肺結節是肺癌早期標志物,其傳統診斷依賴醫生經驗,耗時且易誤診。本文基于YOLO11的深度學習框架,通過2356張實際場景中醫學CT圖像肺結節的相關圖片,訓練了可進行肺結節目標檢測的模型,可以很好的檢測醫學CT圖像中的肺結節,同時會進行語音提示。最終基于訓練好的模型制作了一款帶UI界面的醫學CT圖像肺結節智能檢測與語音提示系統,更便于實際應用。該系統是基于pythonPyQT5開發的,支持圖片視頻以及攝像頭進行目標檢測,并保存檢測結果。本文提供了完整的Python代碼和使用教程,給感興趣的小伙伴參考學習,完整的代碼資源文件獲取方式見文末

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


研究背景

肺癌是全球范圍內導致死亡的主要原因之一,早期發現和治療對于提高患者的生存率至關重要。肺結節作為潛在的早期肺癌標志物,其準確檢測對臨床診斷具有重要意義。然而,傳統的肺結節檢測方法依賴于放射科醫生的經驗和專業知識,這不僅耗時,而且容易出現漏診或誤診的情況。基于YOLO深度學習框架開發的醫學CT圖像肺結節智能檢測與語音提示系統,能夠實時自動識別CT圖像中的肺結節,并通過語音提示提醒醫療人員注意潛在的問題。該系統的應用顯著提高了肺結節檢測的速度和準確性,有助于實現早期診斷和及時治療,從而改善患者預后。

應用場景

臨床輔助診斷:在日常診療中為醫生提供快速且準確的肺結節檢測結果,幫助醫生做出更精準的診斷決策。
急診室快速響應:在緊急情況下,系統可以迅速分析CT圖像,確保肺結節等關鍵信息不被遺漏,加速急救流程。
大規模篩查項目:支持公共衛生部門進行大規模肺癌篩查,尤其是在高風險人群中(如吸煙者),提高篩查效率和覆蓋范圍。
遠程醫療服務:結合遠程醫療技術,系統可以在偏遠地區的醫療機構中使用,當地醫生上傳CT圖像后,系統不僅能自動分析結果,還能通過語音提示指導后續處理步驟。
教學與培訓:作為教育工具,幫助醫學生和初級放射科醫生學習如何識別不同類型的肺結節及其特征,提升他們的專業技能。
術后復查與康復監測:用于跟蹤已接受治療的患者的恢復情況,定期評估是否存在新的或復發的肺結節,確保治療效果符合預期。

主要工作內容

本文的主要內容包括以下幾個方面:

  1. 搜集與整理數據集:搜集整理實際場景中醫學CT圖像肺結節的相關數據圖片,并進行相應的數據標注與處理,為模型訓練提供訓練數據集;
  2. 訓練模型:基于整理的數據集,根據最前沿的YOLOv11目標檢測技術訓練目標檢測模型,實現對需要檢測的對象進行有效檢測的功能;
  3. 模型性能評估:對訓練出的模型在驗證集上進行了充分的結果評估和對比分析,主要目的是為了揭示模型在關鍵指標(如Precision、Recall、mAP50和mAP50-95等指標)上的表現情況
  4. 可視化系統制作:基于訓練出的目標檢測模型,搭配Pyqt5制作的UI界面,用python開發了一款界面簡潔的軟件系統,可支持圖片、視頻以及攝像頭檢測,同時可以將圖片或者視頻檢測結果進行保存。其目的是為檢測系統提供一個用戶友好的操作平臺,使用戶能夠便捷、高效地進行檢測任務。

軟件初始界面如下圖所示:
在這里插入圖片描述

檢測結果界面如下:
在這里插入圖片描述

一、軟件核心功能介紹及效果演示

軟件主要功能

1. 可用于實際場景中的醫學CT圖像肺結節檢測,分1個檢測類別:['肺結節'];
2. 支持圖片、視頻及攝像頭進行檢測,同時支持圖片的批量檢測
3. 界面可實時顯示目標位置目標總數置信度用時檢測結果等信息;
4. 支持圖片或者視頻檢測結果保存
5. 支持將圖片的檢測結果保存為csv文件;

界面參數設置說明

在這里插入圖片描述

置信度閾值:也就是目標檢測時的conf參數,只有檢測出的目標框置信度大于該值,結果才會顯示;
交并比閾值:也就是目標檢測時的iou參數,對檢測框重疊比例iou大于該閾值的目標框進行過濾【也就是說假如兩檢測框iou大于該值的話,會過濾掉其中一個,該值越小,重疊框會越少】;

檢測結果說明

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

語音提示功能:檢測結果區域如檢測到目標會顯示異常,同時會有語音提示;如無目標則顯示正常
顯示標簽名稱與置信度:表示是否在檢測圖片上標簽名稱與置信度,顯示默認勾選,如果不勾選則不會在檢測圖片上顯示標簽名稱與置信度;
總目標數:表示畫面中檢測出的目標數目;
目標選擇:可選擇單個目標進行位置信息、置信度查看。
目標位置:表示所選擇目標的檢測框,左上角與右下角的坐標位置。默認顯示的是置信度最大的一個目標信息;

主要功能說明

功能視頻演示見文章開頭,以下是簡要的操作描述。

(1)圖片檢測說明

點擊打開圖片按鈕,選擇需要檢測的圖片,或者點擊打開文件夾按鈕,選擇需要批量檢測圖片所在的文件夾,操作演示如下:
點擊目標下拉框后,可以選定指定目標的結果信息進行顯示。
點擊保存按鈕,會對檢測結果進行保存,存儲路徑為:save_data目錄下,同時會將圖片檢測信息保存csv文件
注:1.右側目標位置默認顯示置信度最大一個目標位置,可用下拉框進行目標切換。所有檢測結果均在左下方表格中顯示。

(2)視頻檢測說明

點擊視頻按鈕,打開選擇需要檢測的視頻,就會自動顯示檢測結果,再次點擊可以關閉視頻。
點擊保存按鈕,會對視頻檢測結果進行保存,存儲路徑為:save_data目錄下。

(3)攝像頭檢測說明

點擊打開攝像頭按鈕,可以打開攝像頭,可以實時進行檢測,再次點擊,可關閉攝像頭。

(4)保存圖片與視頻檢測說明

點擊保存按鈕后,會將當前選擇的圖片【含批量圖片】或者視頻的檢測結果進行保存,對于圖片圖片檢測還會保存檢測結果為csv文件,方便進行查看與后續使用。檢測的圖片與視頻結果會存儲在save_data目錄下。
注:暫不支持視頻文件的檢測結果保存為csv文件格式。

保存的檢測結果文件如下:
在這里插入圖片描述

圖片文件保存的csv文件內容如下,包括圖片路徑、目標在圖片中的編號、目標類別、置信度、目標坐標位置
注:其中坐標位置是代表檢測框的左上角與右下角兩個點的x、y坐標。
在這里插入圖片描述

二、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. 數據集準備與訓練

通過網絡上搜集關于實際場景中醫學CT圖像肺結節的相關圖片,并使用Labelimg標注工具對每張圖片進行標注,分1個檢測類別['肺結節']

該數據集一共包含2356張圖片,其中訓練集包含1645張圖片驗證集包含474張圖片測試集包含237張圖片
部分圖像及標注如下圖所示:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

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

2.模型訓練

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

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

train: D:\2MyCVProgram\2DetectProgram\PulmonaryNoduleDetection_v11\datasets\Data/train
val: D:\2MyCVProgram\2DetectProgram\PulmonaryNoduleDetection_v11\datasets\Data/valid
test: D:\2MyCVProgram\2DetectProgram\PulmonaryNoduleDetection_v11\datasets\Data/testnc: 1
names: ['nodule']

注: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.822,結果還是不錯的。

在這里插入圖片描述

4. 使用模型進行推理

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

#coding:utf-8
from ultralytics import YOLO
import cv2# 所需加載的模型目錄
path = 'models/best.pt'
# 需要檢測的圖片地址
img_path = "TestFiles/0507_png.rf.8128832a8db0abf2deb94cf6e012f3b6.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.waitKey(0)

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

更多檢測結果示例如下:
在這里插入圖片描述
在這里插入圖片描述

四、可視化系統制作

基于上述訓練出的目標檢測模型,為了給此檢測系統提供一個用戶友好的操作平臺,使用戶能夠便捷、高效地進行檢測任務。博主基于Pyqt5開發了一個可視化的系統界面,通過圖形用戶界面(GUI),用戶可以輕松地在圖片、視頻和攝像頭實時檢測之間切換,無需掌握復雜的編程技能即可操作系統。【系統詳細展示見第一部分內容】

Pyqt5詳細介紹

關于Pyqt5的詳細介紹可以參考之前的博客文章:《Python中的Pyqt5詳細介紹:基本機構、部件、布局管理、信號與槽、跨平臺》,地址:

https://a-xu-ai.blog.csdn.net/article/details/143273797

系統制作

博主基于Pyqt5框架開發了此款醫學X光骨折檢測與語音提示系統即文中第一部分的演示內容,能夠很好的支持圖片、視頻及攝像頭進行檢測,同時支持檢測結果的保存

通過圖形用戶界面(GUI),用戶可以輕松地在圖片、視頻和攝像頭實時檢測之間切換,無需掌握復雜的編程技能即可操作系統。這不僅提升了系統的可用性和用戶體驗,還使得檢測過程更加直觀透明,便于結果的實時觀察和分析。此外,GUI還可以集成其他功能,如檢測結果的保存與導出、檢測參數的調整,從而為用戶提供一個全面、綜合的檢測工作環境,促進智能檢測技術的廣泛應用。
在這里插入圖片描述

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


【獲取方式】

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

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

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


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

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

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

相關文章

前端小食堂 | Day14 - Vue 3 の傳送門與懸念

&#x1f300; 今日秘技&#xff1a;Teleport 與 Suspense の時空魔法 1. Teleport 任意門 <template> <!-- &#x1f6aa; 將組件傳送到 body 末尾 --> <Teleport to"body"> <div class"modal"> <h2>重要通知&#x…

emacs使用mongosh的方便工具發布

github項目地址: GitHub - csfreebird/emacs_mongosh: 在emacs中使用mongosh快速登錄mongodb數據庫 * 用途 在emacs中使用mongosh快速登錄mongodb數據庫&#xff0c; 操作方法: M-x mongosh, 輸入數據庫名稱&#xff0c;然后就可以自動登錄&#xff0c;前提是你已經配置好了…

Linux:Ubuntu server 24.02 上搭建 ollama + dify

一、安裝Ubuntu 具體的安裝過程可以參見此鏈接&#xff1a;鏈接&#xff1a;Ubuntu Server 20.04詳細安裝教程&#xff0c;這里主要記錄一下過程中遇到的問題。 安裝時subnet如何填寫 在Ubuntu中subnet填寫255.255.255.0是錯誤的&#xff0c;其格式為 xx.xx.xx.xx/yy &#…

unordered_set 的常用函數

在 C 的標準庫中&#xff0c;std::unordered_set 是基于哈希表實現的哈希集合。下面介紹這種語言里哈希集合的常用函數。 C std::unordered_set 1. 元素操作 insert 功能&#xff1a;向哈希集合中插入元素。如果元素已經存在&#xff0c;則不會重復插入。示例代碼&#xff1a…

starrocks批量啟停腳本

#!/bin/bash # 定義 StarRocks 安裝目錄 STARROCKS_HOME"/path/to/starrocks" # 定義 FE 和 BE 節點列表 FE_NODES("fe_node1_ip" "fe_node2_ip" "fe_node3_ip") BE_NODES("be_node1_ip" "be_node2_ip" "be_…

python 提取視頻中的音頻

在Python中提取視頻中的音頻&#xff0c;你可以使用moviepy庫&#xff0c;這是一個非常強大且易于使用的庫&#xff0c;專門用于視頻編輯。以下是如何使用moviepy來提取視頻中的音頻的步驟&#xff1a; 安裝moviepy 首先&#xff0c;你需要安裝moviepy。你可以通過pip安裝它&a…

大語言模型打卡學習DAY1

學習目標&#xff1a; 語言模型的發展歷程 大模型的技術基礎 學習內容&#xff1a; 1. 語言模型的發展歷程 語言模型通常是指能夠建模自然語言文本生成概率的模型&#xff0c;從語言建模到任務求解&#xff0c;這是科學思維的一次重要躍升。2. 大語言模型技術基礎 定義&#…

boarding_passes(登機牌)表的作用

boarding_passes&#xff08;登機牌&#xff09;表的作用 boarding_passes 這張表的主要作用是記錄旅客的登機信息&#xff0c;包括&#xff1a; 票號 (ticket_no) - 關聯到 tickets 表&#xff0c;表示這張票屬于哪個旅客。航班 ID (flight_id) - 關聯到 flights 表&#xf…

Go語言為什么運行比Java快

文章目錄 前言一、核心區別二、Go Vs Java1.Go 的啟動比 Java 快&#xff1f;2.選 Go Or Java&#xff1f; 總結 前言 Go 和 Java 是兩種廣泛應用的編程語言&#xff0c;它們在語言特性、性能、生態、應用場景等方面存在顯著區別。以下是它們的核心區別&#xff0c;以及在實際…

java生成一個24位的字符串,要求這個字符串由大寫的英文字母和數字組成,長度固定位24位

import java.security.SecureRandom;public class RandomStringGenerator {// 定義允許的字符集&#xff08;大寫字母和數字&#xff09;private static final String ALLOWED_CHARACTERS "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";private static final SecureRando…

基于python的升級隊列加速決策

a-f大等級是3級 a-c建筑每升1級分別需要8天 d-f建筑每升1級分別需要10天 目前以下建筑隊列正在從0級升至1級 建筑A升級需要7天05&#xff1a;16&#xff1a;20 建筑b升級需要06&#xff1a;06&#xff1a;54 建筑c升級需要00&#xff1a;37&#xff1a;00 建筑d升級需要…

【經驗】Ubuntu|VMware 新建虛擬機后打開 SSH 服務、在主機上安裝vscode并連接、配置 git 的 ssh

常常有人問VMware-Tools裝了也復制粘貼不了怎么辦&#xff0c;這個東西影響因素太多了&#xff0c;我總是建議直接用SSH連接虛擬機。但是之前一直都沒有出教程&#xff0c;現在出一個簡單的教程。 文章目錄 在 Ubuntu 虛擬機&#xff08;VMware&#xff09;中開啟 SSH 服務、配…

C++多線程編程 3.互斥量、互斥鎖

目錄 1. 線程安全與互斥鎖&#xff08;std::mutex&#xff09; 2. 互斥量死鎖 3. std::lock_guard 4. std::unique_lock (1)示例 (2)詳細知識點 5. std::this_thread (1)sleep_for (2)sleep_until (3)yield (4)get_id 直接通過示例講解&#xff1a; 1. 線程安全與互…

【redis】hash基本命令和內部編碼

文章目錄 表示形式命令HSET 和 HGET HEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSETNXHINCRBYHINCRBYFLOAT命令小結內部編碼 表示形式 Redis 自身已經是鍵值對結構了 Redis 自身的鍵值對就是通過哈希的方式來組織的 把 key 這一層組織完成之后&#xff0c;到了 value 這一層&…

行為模式---策略模式

概念 策略模式是一種行為設計摸是&#xff0c;它的核心思想是將一些列的算法封裝成獨立的對象&#xff0c;并使它們可以相互替換&#xff0c;通過上下文進行調用。 策略模式通過算法抽象為獨立的策略類&#xff0c;客戶端可以根據自身需求選擇不同的策略類來完成任務、這種方…

Selenium 自動化測試學習總結

大概了解一下即可&#xff0c;現在主要用的自動化工具是 playWright&#xff0c;它可以錄制操作。 selenium是老款自動化測試工具&#xff0c;仍有很多可取之處。 安裝&#xff1a; pip install selenium即可。然后下載瀏覽器的驅動包&#xff0c;注意不是瀏覽器&#xff01;…

四層協議攻防手冊:從SYN Flood到UDP反射的深度防御

一、四層協議攻擊類型與特征 攻擊類型協議層特征SYN FloodTCP大量半開連接&#xff0c;SYN_RECV狀態堆積UDP反射放大UDP小請求包觸發大響應&#xff08;如NTP、DNS響應&#xff09;TCP分片攻擊TCP發送異常分片耗盡重組資源連接耗盡攻擊TCP建立大量空閑連接占用端口資源 二、TC…

【社區投稿】深入再談智能指針、AsRef引用與Borrow借用

深入再談智能指針、AsRef引用與Borrow借用 這是一個具有深度的技術主題。每次重溫其理論知識&#xff0c;都會有新的領悟。大約 2 年前&#xff0c;我曾就這一技術方向撰寫過另一篇短文《從類型轉換視角&#xff0c;淺談Deref<Target T>, AsRef<T>, Borrow<T&g…

外層元素旋轉,其包括在內的子元素一并旋轉(不改變旋轉中心),單元測試

思路&#xff1a;外層旋轉后坐標&#xff0c;元素旋轉后坐標&#xff0c;計算偏移坐標 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…

如何在虛擬機上安裝hadoop

與前面java的方式相同安裝好hadoop后進入hadoop的環境變量my_env.sh 輸入#?HADOOP_export HADOOP_HOME /opt/module/hadoop-3.1.3 export PATH$PATH:$HADOOP_HOME/bin export PATH$PATH:$HADOOP_HOME/sbin 再輸入hadoop測試是否安裝成功