【项目实战】Python基于决策树多分类模型实现水色图像的水质评价
說明:這是一個機器學習實戰項目(附帶數據+代碼+文檔+視頻講解),如需數據+代碼+文檔+視頻講解可以直接到文章最后獲取。
1.項目背景
? ? ? ?隨著工業技術的日益提升,人類的生活變得越來越便利。但與此同時,環境污染問題也日趨嚴重,大氣、土壤、水質污染是各個工業國家不得不面對的問題。污染需要治理,因此對于污染物的評價與監測十分重要。水產養殖業是我國國民經濟的一個重要組成部分,在水產養殖的過程中,選擇沒有污染的水域進行養殖十分重要。
本項目使用拍攝的池塘水樣圖片數據,結合圖像切割和特征提取技術,使用決策樹算法,對圖樣的水質進行預測,以輔助生產人員對水質狀況進行判斷。
2.項目目標
? ? ? 有經驗的漁業生產從業者可通過觀察水色變化調控水質,以維持由浮游植物、微生物類、浮游動物等構成的養殖水體生態系統的動態平衡。大多數情況下,這些是根據經驗或通過肉眼觀察進行判斷的,使得觀察結果存在主觀性引起的觀察性偏倚,可比性、可重復性降低,不易推廣應用。當前數字圖像處理技術為計算機監控技術在水產養殖業的應用提供了更大的空間。在水質在線監測方面,數字圖像處理技術是基于計算機視覺,以專家經驗為基礎,來對池塘水色進行優劣分級,以實現對池塘水色的準確快速判別。
結合某地區的多個羅非魚池塘水樣的數據,實現以下目標:
1)對水樣圖片進行切割,提取水樣圖片中的特征。
2)基于提取的特征數據,構建決策樹水質評價模型。
3)對構建的模型進行評價,評價模型對于水色的識別效率。
3.項目過程說明
? ? ? ?我們通過拍攝水樣采集得到水樣圖像,但圖像數據的維度過大,不容易分析,這就需要我們從中提取水樣圖像的特征,即反映圖像本質的一些關鍵指標,以達到自動進行圖像識別或分類的目的。顯然,圖像特征提取是圖像識別或分類的關鍵步驟,圖像特征的提取效果將直接影響到圖像識別和分類的好壞。
? ? ? 圖像特征主要包括顏色特征、紋理特征、形狀特征、空間關系特征等。與幾何特征相比,顏色特征更為穩健,對于物體的大小和方向均不敏感,表現出較強的魯棒性。本項目中,由于水色圖像是均勻的,故主要關注顏色特征即可。顏色特征是一種全局特征,它描述了圖像或圖像區域所對應的景物的表面性質。一般顏色特征是基于像素點的特征,所有屬于圖像或圖像區域的像素都有各自的貢獻。在利用圖像的顏色信息進行圖像處理、識別、分類的研究實現方法上已有大量的研究成果,主要采用顏色處理常用的直方圖法和顏色矩方法等。
? ? ? ?顏色直方圖是最基本的顏色特征表示方法,它反映的是圖像中顏色的組成分布,即出現了哪些顏色以及各種顏色出現的概率。其優點在于它能簡單描述一幅圖像中顏色的全局分布,即不同色彩在整幅圖像中所占的比例,特別適用于描述那些難以自動分割的圖像和不需要考慮物體空間位置的圖像。其缺點在于它無法描述圖像中顏色的局部分布及每種色彩所處的空間位置,即無法描述圖像中的某一具體的對象或物體。
? ? ? 基于顏色矩提取圖像特征的數學基礎在于圖像中任何的顏色分布均可以用它的矩來表示。根據概率論的理論,隨機變量的概率分布可以由其各階矩唯一地表示和描述。一副圖像的色彩分布也可認為是一種概率分布,那么圖像可以由其各階矩來描述。顏色矩包含各個顏色通道的一階距、二階矩和三階矩,對于一副RGB顏色空間的圖像,具有R、G和B 3個顏色通道,則有9個分量。
? ? ? ?顏色直方圖產生的特征維數一般大于顏色矩的特征維數,為了避免過多變量影響后續的分類效果,在本項目中選擇采用顏色矩來提取水樣圖像的特征,即建立水樣圖像與反映該圖像特征的數據信息關系,同時由有經驗的專家對水樣圖像根據經驗進行分類,建立水樣數據信息與水質類別的專家樣本庫,進而構建分類模型,得到水樣圖像與水質類別的映射關系,并經過不斷調整系數優化模型,最后再利用訓練好的分類模型,用戶就能方便地通過水樣圖像,自動判別出該水樣的水質類別。
3.1分析步驟與流程
基于水色圖像特征提取的水質評價流程如圖所示:
?主要步驟如下:
1)從采集到的原始水樣圖像中進行選擇性抽取形成建模數據。
2)對步驟1形成的數據集進行數據預處理,包括圖像切割和顏色矩特征提取。
3)利用步驟2形成的已完成數據預處理的建模數據,劃分為訓練集與測試集。
4)利用步驟3的訓練集構建分類模型。
5)利用步驟4構建好的分類模型進行水質評價。
4.數據獲取
本次建模數據來源于網絡(本項目撰寫人整理而成),數據項統計如下:
本項目數據給出了某地區的多個羅非魚池塘水樣的數據,包含水產專家按水色判斷水質分類的數據以及用數碼相機按照標準進行水色采集的數據,每個水質圖片命名規則為“類別-編號.jpg”,如“1_1.jpg”說明當前圖片屬于第1類的樣本。
水色分類
數據詳情如下(部分展示):
標準條件下拍攝的水樣圖像
5.數據預處理
5.1圖像切割
一般情況下,采集到的水樣圖像包含盛水容器,且容器的顏色與水體顏色差異較大,同時水體位于圖像中央,所以為了提取水色的特征,就需要提取水樣圖像中央部分具有代表意義的圖像,具體實施方式是提取水樣圖像中央101×101像素的圖像。設原始圖像I的大小是M×N,則截取寬從第個像素點到第個像素點,長從第個像素點到第個像素點的子圖像。
5.2特征提取
使用Python編程軟件進行編程,即可把下圖左邊的切割前的水樣圖像切割并保存到右邊的切割后的水樣圖像。
切割前水樣圖像(左)和切割后水樣圖像(右)
在本項目中,選擇采用顏色矩來提取水樣圖像的特征,下面給出各階顏色矩的計算公式。
(1)一階顏色矩
一階顏色矩采用一階原點矩,反映了圖像的整體明暗程度,如式所示:
?
式中,Ei是在第i個顏色通道的一階顏色矩,對于RGB顏色空間的圖像,i=1,2,3,Pij是第j個像素的第i個顏色通道的顏色值。?
(2)二階顏色矩
二階顏色矩采用的是二階中心距的平方根,反映了圖像顏色的分布范圍,如式所示:
式中,Si是在第i個顏色通道的二階顏色矩,Ei是在第i個顏色通道的一階顏色矩。?
(3)三階顏色矩
三階顏色矩采用的是三階中心距的立方根,反映了圖像顏色分布的對稱性,如式所示:
式中,Si是在第i個顏色通道的三階顏色矩,Ei是在第i個顏色通道的一階顏色矩。
對切割后的圖像提取其顏色矩,作為圖像的顏色特征。對顏色矩的提取,需要提取每個文件名中的類別和序號,同時針對所有的圖片進行同樣的操作,因提取的特征的取值范圍差別較大,如果直接輸入模型,可能會導致模型精確度下降,因此,在建模之前需要將數據進行標準化,關鍵代碼如下:
圖像切割和特征提取
6.特征工程
6.1 建立特征數據和標簽數據
?其中1~9均為輸入的特征,10為標簽。關鍵代碼如下:
6.2數據集拆分
對標準化后的樣本進行抽樣,抽取80%作為訓練樣本,剩下的20%作為測試樣本,用于水質評價檢驗,使用決策樹算法構建水質評價模型,關鍵代碼如下:
7.構建決策樹模型
本項目采用決策樹作為水質評價分類模型。模型的輸入包括兩部分:一部分是訓練樣本的輸入,另一部分是建模參數的輸入。各參數說明如表所示:
?關鍵代碼如下:
8.模型評價
取所有測試樣本為輸入樣本,代入已構建好的決策樹模型,得到輸出結果,即預測的水質類型。
8.1評估指標及結果
評估指標主要包括準確率、查準率、查全率、F1分值等等。
從上表可以看出,準確率為71%? F1分值為73%,決策樹分類模型良好,由于圖片數據比較少,效果沒有達到非常好。
關鍵代碼如下:
8.2混淆矩陣
決策樹分類模型混淆矩陣:
?
從上圖可以看到,實際值為1 預測為1的有5個;實際值為2? 預測為2的有8個。
水質評價的混淆矩陣見下表,分類準確率為71%,說明水質評價模型對于新增的水色圖像的分類效果較好,可將模型應用到水質自動評價系統,實現水質評價。
水質評價的混淆矩陣
8.3分類報告
決策樹分類模型分類報告:
?從上圖可以看到,分類類型為1的F1分值為0.48;分類類型為2的F1分值為0.76;分類類型為3的F1分值為0.77;分類類型為4的F1分值為0.89;整個模型的準確率為0.71。
9.結論與展望
綜上所述,本文采用了決策樹分類模型,最終證明了我們提出的模型效果良好。準確率達到了71%,可用于日常生活中進行建模預測,以提高價值。說明水質評價模型對于新增的水色圖像的分類效果較好,可將模型應用到水質自動評價系統,實現水質評價。
本次機器學習項目實戰所需的資料,項目資源如下:
項目說明:
鏈接:https://pan.baidu.com/s/1dW3S1a6KGdUHK90W-lmA4w?
提取碼:bcbp
網盤如果失效,可以添加博主微信:zy10178083
總結
以上是生活随笔為你收集整理的【项目实战】Python基于决策树多分类模型实现水色图像的水质评价的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荷兰国旗问题(C语言)
- 下一篇: css盒子模型