《博主簡介》
小伙伴們好,我是阿旭。專注于人工智能、AIGC、python、計算機(jī)視覺相關(guān)分享研究。
?更多學(xué)習(xí)資源,可關(guān)注公-仲-hao:【阿旭算法與機(jī)器學(xué)習(xí)】,共同學(xué)習(xí)交流~
??感謝小伙伴們點贊、關(guān)注!
《------往期經(jīng)典推薦------》
一、AI應(yīng)用軟件開發(fā)實戰(zhàn)專欄【鏈接】
項目名稱 | 項目名稱 |
---|---|
1.【人臉識別與管理系統(tǒng)開發(fā)】 | 2.【車牌識別與自動收費管理系統(tǒng)開發(fā)】 |
3.【手勢識別系統(tǒng)開發(fā)】 | 4.【人臉面部活體檢測系統(tǒng)開發(fā)】 |
5.【圖片風(fēng)格快速遷移軟件開發(fā)】 | 6.【人臉表表情識別系統(tǒng)】 |
7.【YOLOv8多目標(biāo)識別與自動標(biāo)注軟件開發(fā)】 | 8.【基于YOLOv8深度學(xué)習(xí)的行人跌倒檢測系統(tǒng)】 |
9.【基于YOLOv8深度學(xué)習(xí)的PCB板缺陷檢測系統(tǒng)】 | 10.【基于YOLOv8深度學(xué)習(xí)的生活垃圾分類目標(biāo)檢測系統(tǒng)】 |
11.【基于YOLOv8深度學(xué)習(xí)的安全帽目標(biāo)檢測系統(tǒng)】 | 12.【基于YOLOv8深度學(xué)習(xí)的120種犬類檢測與識別系統(tǒng)】 |
13.【基于YOLOv8深度學(xué)習(xí)的路面坑洞檢測系統(tǒng)】 | 14.【基于YOLOv8深度學(xué)習(xí)的火焰煙霧檢測系統(tǒng)】 |
15.【基于YOLOv8深度學(xué)習(xí)的鋼材表面缺陷檢測系統(tǒng)】 | 16.【基于YOLOv8深度學(xué)習(xí)的艦船目標(biāo)分類檢測系統(tǒng)】 |
17.【基于YOLOv8深度學(xué)習(xí)的西紅柿成熟度檢測系統(tǒng)】 | 18.【基于YOLOv8深度學(xué)習(xí)的血細(xì)胞檢測與計數(shù)系統(tǒng)】 |
19.【基于YOLOv8深度學(xué)習(xí)的吸煙/抽煙行為檢測系統(tǒng)】 | 20.【基于YOLOv8深度學(xué)習(xí)的水稻害蟲檢測與識別系統(tǒng)】 |
21.【基于YOLOv8深度學(xué)習(xí)的高精度車輛行人檢測與計數(shù)系統(tǒng)】 | 22.【基于YOLOv8深度學(xué)習(xí)的路面標(biāo)志線檢測與識別系統(tǒng)】 |
23.【基于YOLOv8深度學(xué)習(xí)的智能小麥害蟲檢測識別系統(tǒng)】 | 24.【基于YOLOv8深度學(xué)習(xí)的智能玉米害蟲檢測識別系統(tǒng)】 |
25.【基于YOLOv8深度學(xué)習(xí)的200種鳥類智能檢測與識別系統(tǒng)】 | 26.【基于YOLOv8深度學(xué)習(xí)的45種交通標(biāo)志智能檢測與識別系統(tǒng)】 |
27.【基于YOLOv8深度學(xué)習(xí)的人臉面部表情識別系統(tǒng)】 | 28.【基于YOLOv8深度學(xué)習(xí)的蘋果葉片病害智能診斷系統(tǒng)】 |
29.【基于YOLOv8深度學(xué)習(xí)的智能肺炎診斷系統(tǒng)】 | 30.【基于YOLOv8深度學(xué)習(xí)的葡萄簇目標(biāo)檢測系統(tǒng)】 |
31.【基于YOLOv8深度學(xué)習(xí)的100種中草藥智能識別系統(tǒng)】 | 32.【基于YOLOv8深度學(xué)習(xí)的102種花卉智能識別系統(tǒng)】 |
33.【基于YOLOv8深度學(xué)習(xí)的100種蝴蝶智能識別系統(tǒng)】 | 34.【基于YOLOv8深度學(xué)習(xí)的水稻葉片病害智能診斷系統(tǒng)】 |
35.【基于YOLOv8與ByteTrack的車輛行人多目標(biāo)檢測與追蹤系統(tǒng)】 | 36.【基于YOLOv8深度學(xué)習(xí)的智能草莓病害檢測與分割系統(tǒng)】 |
37.【基于YOLOv8深度學(xué)習(xí)的復(fù)雜場景下船舶目標(biāo)檢測系統(tǒng)】 | 38.【基于YOLOv8深度學(xué)習(xí)的農(nóng)作物幼苗與雜草檢測系統(tǒng)】 |
39.【基于YOLOv8深度學(xué)習(xí)的智能道路裂縫檢測與分析系統(tǒng)】 | 40.【基于YOLOv8深度學(xué)習(xí)的葡萄病害智能診斷與防治系統(tǒng)】 |
41.【基于YOLOv8深度學(xué)習(xí)的遙感地理空間物體檢測系統(tǒng)】 | 42.【基于YOLOv8深度學(xué)習(xí)的無人機(jī)視角地面物體檢測系統(tǒng)】 |
43.【基于YOLOv8深度學(xué)習(xí)的木薯病害智能診斷與防治系統(tǒng)】 | 44.【基于YOLOv8深度學(xué)習(xí)的野外火焰煙霧檢測系統(tǒng)】 |
45.【基于YOLOv8深度學(xué)習(xí)的腦腫瘤智能檢測系統(tǒng)】 | 46.【基于YOLOv8深度學(xué)習(xí)的玉米葉片病害智能診斷與防治系統(tǒng)】 |
47.【基于YOLOv8深度學(xué)習(xí)的橙子病害智能診斷與防治系統(tǒng)】 |
二、機(jī)器學(xué)習(xí)實戰(zhàn)專欄【鏈接】,已更新31期,歡迎關(guān)注,持續(xù)更新中~~
三、深度學(xué)習(xí)【Pytorch】專欄【鏈接】
四、【Stable Diffusion繪畫系列】專欄【鏈接】
五、YOLOv8改進(jìn)專欄【鏈接】,持續(xù)更新中~~
六、YOLO性能對比專欄【鏈接】,持續(xù)更新中~
《------正文------》
基本功能演示
摘要:乳腺癌是女性中最常見的癌癥之一,其診斷與治療成效在很大程度上依賴于腫瘤的早期發(fā)現(xiàn)和準(zhǔn)確分類。
乳腺癌智能檢測分割與診斷系統(tǒng)的引入,通過精確的圖像分析技術(shù),可以大大提高腫瘤檢測的速度和準(zhǔn)確性,這對于提升乳腺癌患者的治療效果和生存率具有至關(guān)重要的意義
。本文基于YOLOv8深度學(xué)習(xí)框架
,通過780張乳腺超聲圖片
,訓(xùn)練了一個進(jìn)行乳腺癌腫瘤
的目標(biāo)分割模型
,可以檢測分割出乳腺癌腫瘤的具體位置,并判斷腫瘤是良性還是惡性
。最終基于此模型開發(fā)了一款帶UI界面的乳腺癌智能檢測分割與診斷系統(tǒng)
,可用于實時檢測場景中的乳腺癌智能檢測與診斷
,也更加方便的進(jìn)行功能展示。該系統(tǒng)是基于python
與PyQT5
開發(fā)的,支持圖片、批量圖片、視頻以及攝像頭
進(jìn)行目標(biāo)檢測分割,并保存檢測結(jié)果
。本文提供了完整的Python代碼和使用教程,給感興趣的小伙伴參考學(xué)習(xí),完整的代碼資源文件獲取方式見文末。
點擊跳轉(zhuǎn)至文末《完整相關(guān)文件及源碼》獲取
前言
乳腺癌是女性中最常見的癌癥之一,其診斷與治療成效在很大程度上依賴于腫瘤的早期發(fā)現(xiàn)和準(zhǔn)確分類。然而,傳統(tǒng)的診斷方法需要高度依賴醫(yī)生的經(jīng)驗和專業(yè)知識,這一過程可能存在耗時久、誤診率高等問題。乳腺癌智能檢測分割與診斷系統(tǒng)的引入,通過精確的圖像分析技術(shù),可以大大提高腫瘤檢測的速度和準(zhǔn)確性,這對于提升乳腺癌患者的治療效果和生存率具有至關(guān)重要的意義
。
乳腺癌智能檢測分割與診斷系統(tǒng)的
應(yīng)用場景包括
:醫(yī)院日常診斷
:輔助放射科醫(yī)生快速檢測和診斷乳腺病變,提升日常診療效率。遠(yuǎn)程醫(yī)療服務(wù)
:對于偏遠(yuǎn)地區(qū)的患者,可通過遠(yuǎn)程傳輸超聲圖像,讓專家在異地進(jìn)行分析和診斷。乳腺癌篩查項目
:在大規(guī)模的乳腺癌篩查計劃中,自動識別和分割腫瘤,提高篩查的覆蓋率和精確度。醫(yī)學(xué)研究
:為研究人員提供精確的乳腺腫瘤圖像資料,推動乳腺癌機(jī)理和治療方法的研究。醫(yī)生培訓(xùn)與教育
:作為醫(yī)學(xué)生和專業(yè)醫(yī)生的教育工具,幫助他們更好地理解腫瘤的形態(tài)特征。
總結(jié)來說
,乳腺癌智能檢測分割與診斷系統(tǒng)對于醫(yī)療輔助具有重要作用。它不僅能提高乳腺癌的早期發(fā)現(xiàn)率和診斷準(zhǔn)確性,還能幫助醫(yī)療機(jī)構(gòu)優(yōu)化資源配置,降低運營成本,最終提升整個醫(yī)療行業(yè)的服務(wù)水平
。隨著醫(yī)療技術(shù)的不斷發(fā)展,這類系統(tǒng)未來將在乳腺癌治療領(lǐng)域扮演更加重要的角色,大幅提高患者的生存率和生活質(zhì)量。
博主通過搜集乳腺癌腫瘤
的相關(guān)超聲圖片,根據(jù)YOLOv8的目標(biāo)分割技術(shù),基于python與Pyqt5
開發(fā)了一款界面簡潔的乳腺癌智能檢測分割與診斷系統(tǒng)
,可支持圖片、視頻以及攝像頭檢測
,同時可以將圖片、視頻以及攝像頭的檢測結(jié)果進(jìn)行保存
。本文詳細(xì)的介紹了此系統(tǒng)的核心功能以及所使用到的技術(shù)原理與制作流程。
軟件初始界面如下圖所示:
檢測結(jié)果界面如下:
檢測結(jié)果說明:
診斷結(jié)果區(qū)域:分別用'綠色'、‘黃色’、‘紅色’背景代表‘正?!?、‘良性’、‘惡性’這3種類別的檢測結(jié)果
。
顯示效果如下:
一、軟件核心功能介紹及效果演示
軟件主要功能
1. 可進(jìn)行乳腺癌腫瘤的檢測與分割
,并判斷腫瘤類型:['良性', '惡性']
,在診斷結(jié)果區(qū)域顯示['正常'、'良性', '惡性']
這3種診斷結(jié)果;
2. 支持圖片、圖片批量、視頻及攝像頭
進(jìn)行檢測分割;
3. 可顯示總分割面積占比
以及單個目標(biāo)的分割面積占比
;
4. 界面可實時顯示目標(biāo)位置
、分割結(jié)果
、分割面積占比
、置信度
、用時
等信息;
5. 結(jié)果保存:支持圖片
、視頻
及攝像頭
的分割結(jié)果保存
;
界面參數(shù)設(shè)置說明
-
置信度閾值
:也就是目標(biāo)檢測時的conf參數(shù)
,只有檢測出的目標(biāo)置信度大于該值,結(jié)果才會顯示; -
交并比閾值
:也就是目標(biāo)檢測時的iou參數(shù)
,只有目標(biāo)檢測框的交并比大于該值,結(jié)果才會顯示; -
窗口1:顯示分割結(jié)果
:表示是否在檢測圖片中顯示分割結(jié)果,默認(rèn)勾選; -
窗口1:顯示檢測框與標(biāo)簽
:表示是否在檢測圖片中顯示檢測框與標(biāo)簽,默認(rèn)勾選; -
窗口2:顯示Mask或者顯示原始分割圖片
:表示在窗口2中顯示分割的Mask
或者原始圖片分割內(nèi)容
;
IoU:全稱為Intersection over
Union,表示交并比。在目標(biāo)檢測中,它用于衡量模型生成的候選框與原標(biāo)記框之間的重疊程度。IoU值越大,表示兩個框之間的相似性越高。通常,當(dāng)IoU值大于0.5時,認(rèn)為可以檢測到目標(biāo)物體。這個指標(biāo)常用于評估模型在特定數(shù)據(jù)集上的檢測準(zhǔn)確度。
顯示Mask
或者顯示原始分割圖片
選項的功能效果如下:
(1)圖片檢測演示
1.點擊打開圖片
按鈕,選擇需要檢測的圖片,或者點擊打開文件夾
按鈕,選擇需要批量檢測圖片所在的文件夾,操作演示如下:
2.點擊目標(biāo)下拉框后,可以選定指定目標(biāo)的結(jié)果信息進(jìn)行顯示。
3. 點擊保存
按鈕,會對圖片檢測結(jié)果進(jìn)行保存,存儲路徑為:save_data
目錄下。
4.點擊表格中的指定行,界面會顯示該行表格所寫的信息內(nèi)容。注:右側(cè)目標(biāo)位置默認(rèn)顯示置信度最大一個目標(biāo)位置,可用下拉框進(jìn)行信息切換。所有檢測結(jié)果均在表格中顯示。
單個圖片檢測操作如下:
批量圖片檢測操作如下:
點擊保存
按鈕,會對圖片的檢測結(jié)果進(jìn)行保存,共會保存3種類型結(jié)果,分別是:檢測分割結(jié)果標(biāo)識圖片、分割的Mask圖片以及原圖分割后的圖片
。存儲在save_data
目錄下,保存結(jié)果如下:
(2)視頻檢測演示
1.點擊打開視頻
圖標(biāo),打開選擇需要檢測的視頻,就會自動顯示檢測結(jié)果。再次點擊該按鈕,會關(guān)閉視頻
。
2.點擊保存
按鈕,會對視頻檢測結(jié)果進(jìn)行保存,同樣會保存3種類型結(jié)果,分別是:檢測分割結(jié)果標(biāo)識視頻、分割Mask視頻以及原視頻分割后的視頻
,存儲路徑為:save_data
目錄下。
視頻檢測演示:
視頻保存演示:
視頻檢測保存結(jié)果如下:
(3)攝像頭檢測演示
1.點擊打開攝像頭
按鈕,可以打開攝像頭,可以實時進(jìn)行檢測,再次點擊該按鈕,可關(guān)閉攝像頭
;
2.點擊保存
按鈕,可以進(jìn)行攝像頭實時圖像的檢測結(jié)果保存
。
攝像頭檢測演示:
攝像頭保存演示:
攝像頭檢測保存結(jié)果如下:
(4)檢測結(jié)果保存
點擊保存
按鈕后,會將當(dāng)前選擇的圖片【含批量圖片】、視頻或者攝像頭
的分割結(jié)果進(jìn)行保存。結(jié)果會存儲在save_data
目錄下,保存內(nèi)容如下:
二、目標(biāo)分割模型的訓(xùn)練、評估與推理
1.YOLOv8的基本原理
YOLOv8是一種前沿的深度學(xué)習(xí)技術(shù),它基于先前YOLO版本在目標(biāo)檢測任務(wù)上的成功,進(jìn)一步提升了性能和靈活性,在精度和速度方面都具有尖端性能
。在之前YOLO 版本的基礎(chǔ)上,YOLOv8 引入了新的功能和優(yōu)化,使其成為廣泛應(yīng)用中各種物體檢測任務(wù)的理想選擇。主要的創(chuàng)新點包括一個新的骨干網(wǎng)絡(luò)、一個新的 Ancher-Free 檢測頭和一個新的損失函數(shù),可以在從 CPU 到 GPU 的各種硬件平臺上運行
。
YOLO各版本性能對比:
其主要網(wǎng)絡(luò)結(jié)構(gòu)如下:
2. 數(shù)據(jù)集準(zhǔn)備與訓(xùn)練
通過網(wǎng)絡(luò)上搜集關(guān)于乳腺癌腫瘤相關(guān)超聲圖片
,并使用Labelme標(biāo)注工具對每張圖片中的分割結(jié)果及類別進(jìn)行標(biāo)注。一共包含780張圖片
,其中訓(xùn)練集包含624張圖片
,驗證集包含156張圖片
,部分圖像及標(biāo)注如下圖所示。
數(shù)據(jù)集的各類別具體分布如下所示:
圖片數(shù)據(jù)的存放格式如下,在項目目錄中新建datasets
目錄,同時將檢測的圖片分為訓(xùn)練集、驗證集放入Data
目錄下。
同時我們需要新建一個data.yaml
文件,用于存儲訓(xùn)練數(shù)據(jù)的路徑及模型需要進(jìn)行檢測的類別。YOLOv8在進(jìn)行模型訓(xùn)練時,會讀取該文件的信息,用于進(jìn)行模型的訓(xùn)練與驗證。data.yaml
的具體內(nèi)容如下:
train: D:\2MyCVProgram\3.SegmentProgram\BreastCancerSeg\datasets\Data\train
val: D:\2MyCVProgram\3.SegmentProgram\BreastCancerSeg\datasets\Data\val
nc: 2
names: ['benign', 'malignant']
注:train與val后面表示需要訓(xùn)練圖片的路徑,建議直接寫自己文件的絕對路徑。
數(shù)據(jù)準(zhǔn)備完成后,通過調(diào)用train.py
文件進(jìn)行模型訓(xùn)練,epochs
參數(shù)用于調(diào)整訓(xùn)練的輪數(shù),batch
參數(shù)用于調(diào)整訓(xùn)練的批次大小【根據(jù)內(nèi)存大小調(diào)整,最小為1】,代碼如下:
#coding:utf-8
from ultralytics import YOLO
import matplotlib
matplotlib.use('TkAgg')
if __name__ == '__main__':
# 訓(xùn)練模型配置文件路徑
yolo_yaml_path = 'ultralytics/cfg/models/v8/yolov8-seg.yaml'
# 數(shù)據(jù)集配置文件路徑
data_yaml_path = 'datasets/Data/data.yaml'
# 官方預(yù)訓(xùn)練模型路徑
pre_model_path = "yolov8n-seg.pt"
# 加載預(yù)訓(xùn)練模型
model = YOLO(yolo_yaml_path).load(pre_model_path)
# 模型訓(xùn)練
model.train(data=data_yaml_path, epochs=150, batch=4)
3. 訓(xùn)練結(jié)果評估
在深度學(xué)習(xí)中,我們通常用損失函數(shù)下降的曲線來觀察模型訓(xùn)練的情況。YOLOv8在訓(xùn)練時主要包含三個方面的損失:定位損失(box_loss)、分類損失(cls_loss)、動態(tài)特征損失(dfl_loss)以及分割損失(seg_loss),在訓(xùn)練結(jié)束后,可以在runs/
目錄下找到訓(xùn)練過程及結(jié)果文件,如下所示:
各損失函數(shù)作用說明:定位損失box_loss
:預(yù)測框與標(biāo)定框之間的誤差(GIoU),越小定位得越準(zhǔn);分類損失cls_loss
:計算錨框與對應(yīng)的標(biāo)定分類是否正確,越小分類得越準(zhǔn);動態(tài)特征損失(dfl_loss)
:DFLLoss是一種用于回歸預(yù)測框與目標(biāo)框之間距離的損失函數(shù)。在計算損失時,目標(biāo)框需要縮放到特征圖尺度,即除以相應(yīng)的stride,并與預(yù)測的邊界框計算Ciou Loss,同時與預(yù)測的anchors中心點到各邊的距離計算回歸DFLLoss。這個過程是YOLOv8訓(xùn)練流程中的一部分,通過計算DFLLoss可以更準(zhǔn)確地調(diào)整預(yù)測框的位置,提高目標(biāo)檢測的準(zhǔn)確性。分割損失(seg_loss)
:預(yù)測的分割結(jié)果與標(biāo)定分割之前的誤差,越小分割的越準(zhǔn)確;
本文訓(xùn)練結(jié)果如下:
我們通常用PR曲線
來體現(xiàn)精確率和召回率的關(guān)系,本文訓(xùn)練結(jié)果的PR曲線如下。mAP
表示Precision和Recall作為兩軸作圖后圍成的面積,m表示平均,@后面的數(shù)表示判定iou為正負(fù)樣本的閾值。mAP@.5:表示閾值大于0.5的平均mAP。
定位結(jié)果的PR曲線如下:
分割結(jié)果的PR曲線如下:
從上面圖片曲線結(jié)果可以看到:定位的平均精度為0.739
,分割的平均精度為0.737
,結(jié)果還是不錯的。
4. 模型推理
模型訓(xùn)練完成后,我們可以得到一個最佳的訓(xùn)練結(jié)果模型best.pt
文件,在runs/trian/weights
目錄下。我們可以使用該文件進(jìn)行后續(xù)的推理檢測。
圖片檢測代碼如下:
# 所需加載的模型目錄
path = 'models/best.pt'
# 需要檢測的圖片地址
img_path = "TestFiles/benign (9).png"
# 加載預(yù)訓(xùn)練模型
# conf 0.25 object confidence threshold for detection
# iou 0.7 intersection over union (IoU) threshold for NMS
model = YOLO(path, task='segment')
# 檢測圖片
results = model(img_path)
print(results)
res = results[0].plot()
# res = cv2.resize(res,dsize=None,fx=0.5,fy=0.5,interpolation=cv2.INTER_LINEAR)
cv2.imshow("YOLOv8 Detection", res)
cv2.waitKey(0)
執(zhí)行上述代碼后,會將執(zhí)行的結(jié)果直接標(biāo)注在圖片上,結(jié)果如下:
以上便是關(guān)于此款乳腺癌智能檢測分割與診斷系統(tǒng)
的原理與代碼介紹?;诖四P停┲饔?code>python與Pyqt5
開發(fā)了一個帶界面的軟件系統(tǒng),即文中第二部分的演示內(nèi)容,能夠很好的支持圖片、視頻及攝像頭進(jìn)行檢測
,同時支持檢測結(jié)果的保存。
關(guān)于該系統(tǒng)涉及到的完整源碼、UI界面代碼、數(shù)據(jù)集、訓(xùn)練代碼、測試圖片視頻等相關(guān)文件,均已打包上傳,感興趣的小伙伴可以通過下載鏈接自行獲取。
【獲取方式】
關(guān)注下方名片G-Z-H:【阿旭算法與機(jī)器學(xué)習(xí)】,發(fā)送【源碼】即可獲取下載方式
本文涉及到的完整全部程序文件:包括環(huán)境配置文檔說明、python源碼、數(shù)據(jù)集、訓(xùn)練代碼、UI文件、測試圖片視頻等(見下圖),獲取方式見文末:
注意:該代碼基于Python3.9開發(fā),運行界面的主程序為
MainProgram.py
,其他測試腳本說明見上圖。為確保程序順利運行,請按照程序運行說明文檔txt
配置軟件運行所需環(huán)境。
關(guān)注下方名片GZH:【阿旭算法與機(jī)器學(xué)習(xí)】,發(fā)送【源碼】即可獲取下載方式
結(jié)束語
以上便是博主開發(fā)的基于YOLOv8深度學(xué)習(xí)的乳腺癌智能檢測分割與診斷系統(tǒng)
的全部內(nèi)容,由于博主能力有限,難免有疏漏之處,希望小伙伴能批評指正。
關(guān)于本篇文章大家有任何建議或意見,歡迎在評論區(qū)留言交流!文章來源:http://www.zghlxwxcb.cn/news/detail-849785.html
覺得不錯的小伙伴,感謝點贊、關(guān)注加收藏哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-849785.html
到了這里,關(guān)于基于深度學(xué)習(xí)的乳腺癌智能檢測分割與診斷系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】深度學(xué)習(xí)實戰(zhàn)、目標(biāo)分割、人工智能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!