基于深度學(xué)習(xí)圖像分割的墻體裂縫識別檢測
?直接上效果演示圖:

demo的演示視頻和代碼倉庫看b站視頻002期:
代碼展示界面

主要是01、02、03.py文件
運(yùn)行01make_dataset.py文件能將圖片數(shù)據(jù)轉(zhuǎn)化成特定的格式。

?

自制數(shù)據(jù)集需要使用labelme工具對圖片中裂縫部分進(jìn)行打標(biāo),最好安裝labelme==3.16.7環(huán)境
pip install labelme==3.16.7
運(yùn)行02train.py訓(xùn)練這些的圖片數(shù)據(jù)集,訓(xùn)練好的模型保存在weights文件下。

運(yùn)行03pyqt.py可以有一個(gè)可視化的交互界面,界面有兩個(gè)按鈕有兩個(gè)顯示圖片框,背景有動態(tài)圖,顏色每次加載都會顯示不一樣。

左側(cè)圖片點(diǎn)擊加載感興趣的圖片,點(diǎn)擊右側(cè)按鈕即可識別結(jié)果。

科普圖像分割算法:
一般深度學(xué)習(xí)的圖像分割算法包括:
Unet、mask-rcnn、PSPnet、yolov5-segment等等
Unet是一種常用于圖像分割任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)架構(gòu)。它由Olaf Ronneberger、Philipp Fischer和Thomas Brox于2015年提出,并在醫(yī)學(xué)圖像分割領(lǐng)域取得了廣泛應(yīng)用。
Unet的名字來源于它的網(wǎng)絡(luò)結(jié)構(gòu),它具有"U"字型的特征提取和上采樣路徑。該網(wǎng)絡(luò)結(jié)構(gòu)包含了一個(gè)對稱的編碼器(Encoder)和解碼器(Decoder),中間通過跳躍連接(Skip Connections)進(jìn)行特征融合。這種設(shè)計(jì)使得Unet在處理圖像分割任務(wù)時(shí)能夠同時(shí)具備全局信息和局部細(xì)節(jié)。
Unet的編碼器部分由連續(xù)的卷積層和池化層組成,用于逐步提取圖像的特征并降低空間維度。解碼器部分則通過上采樣操作和對應(yīng)的卷積層來恢復(fù)圖像的空間分辨率,并逐步重建分割結(jié)果。在解碼器的每一層,通過跳躍連接將對應(yīng)的編碼器層的特征圖與解碼器層的特征圖進(jìn)行合并,從而保留了多尺度的特征信息。這有助于解決語義分割任務(wù)中的信息丟失和邊界模糊等問題。
Unet的網(wǎng)絡(luò)結(jié)構(gòu)相對簡單,而且適用于較小的數(shù)據(jù)集,因此在許多圖像分割任務(wù)中都取得了良好的性能。它被廣泛用于醫(yī)學(xué)圖像分割,如肺部分割、細(xì)胞分割等領(lǐng)域,也可以應(yīng)用于其他領(lǐng)域的圖像分割任務(wù)。隨著深度學(xué)習(xí)的發(fā)展,基于Unet的改進(jìn)和變種也不斷涌現(xiàn),進(jìn)一步提升了圖像分割的性能和效果。
Mask R-CNN(Mask Region-based Convolutional Neural Network)是一種用于圖像實(shí)例分割任務(wù)的深度學(xué)習(xí)模型,是對Faster R-CNN模型的擴(kuò)展。它由Kaiming He、Georgia Gkioxari、Piotr Dollár和Ross Girshick于2017年提出。
Mask R-CNN的設(shè)計(jì)目標(biāo)是同時(shí)進(jìn)行目標(biāo)檢測(Object Detection)和實(shí)例級別的語義分割(Instance Segmentation)。與傳統(tǒng)的目標(biāo)檢測方法相比,Mask R-CNN能夠?yàn)槊總€(gè)檢測到的目標(biāo)生成高質(zhì)量的分割掩碼,實(shí)現(xiàn)對目標(biāo)的像素級別的精確分割。
Mask R-CNN的基本結(jié)構(gòu)包含兩個(gè)主要部分:區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)和實(shí)例分割網(wǎng)絡(luò)。RPN負(fù)責(zé)生成候選的目標(biāo)區(qū)域,而實(shí)例分割網(wǎng)絡(luò)則對這些候選區(qū)域進(jìn)行分類、邊界框回歸和像素級分割。
具體而言,RPN通過在輸入圖像上滑動一個(gè)小的窗口來生成候選區(qū)域,并為每個(gè)窗口預(yù)測目標(biāo)的邊界框和目標(biāo)性得分。這些候選區(qū)域經(jīng)過篩選和非極大值抑制后,作為后續(xù)分割網(wǎng)絡(luò)的輸入。
實(shí)例分割網(wǎng)絡(luò)采用了全卷積網(wǎng)絡(luò)(Fully Convolutional Network)的結(jié)構(gòu),通過對候選區(qū)域進(jìn)行RoI池化(Region of Interest Pooling)操作來提取固定尺寸的特征圖。然后,該特征圖被饋送到一系列卷積層和上采樣層,同時(shí)進(jìn)行目標(biāo)分類、邊界框回歸和像素級分割掩碼的預(yù)測。
通過聯(lián)合訓(xùn)練目標(biāo)檢測和語義分割任務(wù),Mask R-CNN能夠在像素級別準(zhǔn)確地識別和分割圖像中的不同目標(biāo)。這使得它在許多計(jì)算機(jī)視覺任務(wù)中都取得了顯著的性能提升,如實(shí)例分割、物體識別、人體姿態(tài)估計(jì)等。
PSPNet(Pyramid Scene Parsing Network)是一種用于語義分割任務(wù)的深度學(xué)習(xí)模型,由Hengshuang Zhao、Jianping Shi、Xiaogang Wang和Xiaowei Zhou于2017年提出。
PSPNet的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)對圖像場景的像素級別語義分割。它通過利用金字塔池化(Pyramid Pooling)機(jī)制來獲取多尺度的上下文信息,以便更好地理解圖像中不同目標(biāo)的語義信息和上下文關(guān)系。
PSPNet的基本結(jié)構(gòu)包含兩個(gè)關(guān)鍵組件:特征提取器和金字塔池化模塊。
特征提取器通常是一個(gè)預(yù)訓(xùn)練的深度卷積神經(jīng)網(wǎng)絡(luò)(如ResNet、VGG等),它用于從輸入圖像中提取高級語義特征。
金字塔池化模塊位于特征提取器之后,負(fù)責(zé)捕獲多尺度的上下文信息。它通過將特征圖分為多個(gè)不同尺度的區(qū)域,并在每個(gè)區(qū)域上進(jìn)行池化操作來獲取局部和全局的語義信息。不同尺度的池化特征被級聯(lián)起來,并經(jīng)過一系列卷積層進(jìn)行特征融合和細(xì)化,最后生成與輸入圖像尺寸相同的語義分割結(jié)果。
通過利用金字塔池化模塊,PSPNet能夠有效地整合多尺度的上下文信息,使得在語義分割任務(wù)中更好地捕捉目標(biāo)的語義信息和上下文關(guān)系。它在許多圖像語義分割的挑戰(zhàn)中取得了良好的性能,并且在準(zhǔn)確性和效率上都具有競爭力。
需要注意的是,PSPNet是一種經(jīng)典的語義分割模型,而隨著深度學(xué)習(xí)的發(fā)展,還有其他的改進(jìn)和變種模型涌現(xiàn),可以進(jìn)一步提升語義分割任務(wù)的性能和效果。