如何構(gòu)建一個 CNN 模型,以從圖像中對幼苗的種類進(jìn)行分類?
介紹本文將學(xué)習(xí)和構(gòu)建一個 CNN 模型,以從圖像中對幼苗的種類進(jìn)行分類。該數(shù)據(jù)集有12組圖像,我們的最終目的是從圖像中對植物物種進(jìn)行分類。
我們將執(zhí)行多個步驟,例如導(dǎo)入庫和模塊、讀取圖像并調(diào)整它們的大小、圖像清理、圖像預(yù)處理、模型構(gòu)建、模型訓(xùn)練、減少過度擬合,最后對測試數(shù)據(jù)集進(jìn)行預(yù)測。
目錄
問題陳述
導(dǎo)入庫
獲取數(shù)據(jù)并調(diào)整圖像大小
清理圖像并去除背景
將標(biāo)簽轉(zhuǎn)換為數(shù)字
定義我們的模型并拆分?jǐn)?shù)據(jù)集
防止過擬合
定義卷積神經(jīng)網(wǎng)絡(luò)
將 CNN 擬合到數(shù)據(jù)上
混淆矩陣
獲得預(yù)測
問題陳述
該數(shù)據(jù)集由奧爾胡斯大學(xué)信號處理小組提供。這是一個典型的圖像識別問題陳述。我們提供了一個圖像數(shù)據(jù)集,其中包含處于不同生長階段的植物照片。每張照片都有其唯一的 ID 和文件名。
該數(shù)據(jù)集包含來自 12 個植物物種的 960 種獨(dú)特植物。最終目標(biāo)是構(gòu)建一個能夠從照片中確定植物種類的分類器。
物種列表
Black-grass
Charlock
Cleavers
Common Chickweed
Common wheat
Fat Hen
Loose Silky-bent
Maize
Scentless Mayweed
Shepherds Purse
Small-flowered Cranesbill
Sugar beet
導(dǎo)入庫
首先導(dǎo)入所有必要的庫以供我們進(jìn)一步分析。我們將使用 NumPy、Pandas、matplotlib、OpenCV、Keras 和 sci-kit-learn。
檢查以下命令以導(dǎo)入所有必需的庫
import numpy as np # MATRIX OPERATIONS
import pandas as pd # EFFICIENT DATA STRUCTURES
import matplotlib.pyplot as plt # GRAPHING AND VISUALIZATIONS
import math # MATHEMATICAL OPERATIONS
import cv2 # IMAGE PROCESSING - OPENCV
from glob import glob # FILE OPERATIONS
import itertools
# KERAS AND SKLEARN MODULES
from keras.utils import np_utils
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.layers import BatchNormalization
from keras.callbacks import ModelCheckpoint,ReduceLROnPlateau,CSVLogger
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
# GLOBAL VARIABLES
scale = 70
seed = 7
獲取數(shù)據(jù)并調(diào)整圖像大小
為了訓(xùn)練我們的模型,我們需要先讀取數(shù)據(jù)。我們的數(shù)據(jù)集有不同大小的圖像,因此我們將調(diào)整圖像的大小。讀取數(shù)據(jù)并調(diào)整其大小只需一步即可完成。查看以下代碼以獲取有關(guān)如何執(zhí)行不同操作的完整信息。path_to_images = 'plant-seedlings-classification/train/png'
images = glob(path_to_images)
trainingset = []
traininglabels = []
num = len(images)
count = 1
#READING IMAGES AND RESIZING THEM
for i in images:
print(str(count)+'/'+str(num),end='r')
trainingset.a(chǎn)ppend(cv2.resize(cv2.imread(i),(scale,scale)))
traininglabels.a(chǎn)ppend(i.split('/')[-2])
count=count+1
trainingset = np.a(chǎn)sarray(trainingset)
traininglabels = pd.DataFrame(traininglabels)
清理圖像并去除背景
這是執(zhí)行清理的一個非常重要的步驟。清理圖像是一項(xiàng)艱巨的任務(wù)。我們將執(zhí)行以下步驟以清理圖像
將 RGB 圖像轉(zhuǎn)換為 HSV
為了去除噪聲,我們將不得不模糊圖像
為了刪除背景,我們將不得不創(chuàng)建一個遮罩。new_train = []
sets = []; getEx = True
for i in trainingset:
blurr = cv2.GaussianBlur(i,(5,5),0)
hsv = cv2.cvtColor(blurr,cv2.COLOR_BGR2HSV)
#GREEN PARAMETERS
lower = (25,40,50)
upper = (75,255,255)
mask = cv2.inRange(hsv,lower,upper)
struc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(11,11))
mask = cv2.morphologyEx(mask,cv2.MORPH_CLOSE,struc)
boolean = mask>0
new = np.zeros_like(i,np.uint8)
new[boolean] = i[boolean]
new_train.a(chǎn)ppend(new)
if getEx:
plt.subplot(2,3,1);plt.imshow(i) # ORIGINAL
plt.subplot(2,3,2);plt.imshow(blurr) # BLURRED
plt.subplot(2,3,3);plt.imshow(hsv) # HSV CONVERTED
plt.subplot(2,3,4);plt.imshow(mask) # MASKED
plt.subplot(2,3,5);plt.imshow(boolean) # BOOLEAN MASKED
plt.subplot(2,3,6);plt.imshow(new) # NEW PROCESSED IMAGE
plt.show()
getEx = False

發(fā)表評論
最新活動更多
-
8月5日立即報(bào)名>> 【在線會議】CAE優(yōu)化設(shè)計(jì):醫(yī)療器械設(shè)計(jì)的應(yīng)用案例與方案解析
-
8月14日立即報(bào)名>> 【在線研討會】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 7月30日- 8月1日 2025全數(shù)會工業(yè)芯片與傳感儀表展
-
精彩回顧立即查看>> 全數(shù)會2025(第六屆)機(jī)器人及智能工廠展
-
精彩回顧立即查看>> OFweek 2025 具身機(jī)器人動力電池技術(shù)應(yīng)用大會
推薦專題
- 1 AI產(chǎn)業(yè)的新高度!英偉達(dá)成為全球首家市值破4萬億美元的公司
- 2 傳魏建軍與賈躍亭合作,長城汽車出海美國
- 3 一文讀懂:到底什么是 “具身智能” ?
- 4 黃仁勛:與雷軍長期合作,共探AI智駕
- 5 具身智能泡沫爭議下,華映資本尋找「穿越周期者」
- 6 中國平安們欲靠AI守“陣地”
- 7 官宣:智元機(jī)器人借殼上市,A股人形機(jī)器人第一股!
- 8 華為讓渡“三界”銷售主導(dǎo)權(quán),智界高管:終于能全力奔跑了
- 9 借仿生手實(shí)現(xiàn)突圍,國產(chǎn)靈巧手破局“不可能三角”
- 10 DeepSeek R2加持,中國AI與芯片產(chǎn)業(yè)迎來新一輪協(xié)同進(jìn)化