如何構(gòu)建一個(gè) CNN 模型,以從圖像中對(duì)幼苗的種類進(jìn)行分類?
介紹本文將學(xué)習(xí)和構(gòu)建一個(gè) CNN 模型,以從圖像中對(duì)幼苗的種類進(jìn)行分類。該數(shù)據(jù)集有12組圖像,我們的最終目的是從圖像中對(duì)植物物種進(jìn)行分類。
我們將執(zhí)行多個(gè)步驟,例如導(dǎo)入庫(kù)和模塊、讀取圖像并調(diào)整它們的大小、圖像清理、圖像預(yù)處理、模型構(gòu)建、模型訓(xùn)練、減少過(guò)度擬合,最后對(duì)測(cè)試數(shù)據(jù)集進(jìn)行預(yù)測(cè)。

目錄
問(wèn)題陳述
導(dǎo)入庫(kù)
獲取數(shù)據(jù)并調(diào)整圖像大小
清理圖像并去除背景
將標(biāo)簽轉(zhuǎn)換為數(shù)字
定義我們的模型并拆分?jǐn)?shù)據(jù)集
防止過(guò)擬合
定義卷積神經(jīng)網(wǎng)絡(luò)
將 CNN 擬合到數(shù)據(jù)上
混淆矩陣
獲得預(yù)測(cè)
問(wèn)題陳述
該數(shù)據(jù)集由奧爾胡斯大學(xué)信號(hào)處理小組提供。這是一個(gè)典型的圖像識(shí)別問(wèn)題陳述。我們提供了一個(gè)圖像數(shù)據(jù)集,其中包含處于不同生長(zhǎng)階段的植物照片。每張照片都有其唯一的 ID 和文件名。
該數(shù)據(jù)集包含來(lái)自 12 個(gè)植物物種的 960 種獨(dú)特植物。最終目標(biāo)是構(gòu)建一個(gè)能夠從照片中確定植物種類的分類器。
物種列表
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)入庫(kù)
首先導(dǎo)入所有必要的庫(kù)以供我們進(jìn)一步分析。我們將使用 NumPy、Pandas、matplotlib、OpenCV、Keras 和 sci-kit-learn。
檢查以下命令以導(dǎo)入所有必需的庫(kù)
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í)行清理的一個(gè)非常重要的步驟。清理圖像是一項(xiàng)艱巨的任務(wù)。我們將執(zhí)行以下步驟以清理圖像
將 RGB 圖像轉(zhuǎn)換為 HSV
為了去除噪聲,我們將不得不模糊圖像
為了刪除背景,我們將不得不創(chuàng)建一個(gè)遮罩。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ā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-

OpenAI發(fā)布的AI瀏覽器,市場(chǎng)為何反應(yīng)強(qiáng)烈?
-

馬云重返一線督戰(zhàn),阿里重啟創(chuàng)始人模式
-

機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-

存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-

長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-

豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-

字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-

員工持股爆雷?廣汽埃安緊急回應(yīng)
最新活動(dòng)更多
-
11月7日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月20日立即報(bào)名>> 【免費(fèi)下載】RISC-V芯片發(fā)展現(xiàn)狀與測(cè)試挑戰(zhàn)-白皮書
-
即日-11.25立即下載>>> 費(fèi)斯托白皮書《柔性:汽車生產(chǎn)未來(lái)的關(guān)鍵》
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
11月28日立即下載>> 【白皮書】精準(zhǔn)洞察 無(wú)線掌控——283FC智能自檢萬(wàn)用表
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
- 1 特斯拉工人被故障機(jī)器人打成重傷,索賠3.6億
- 2 海康威視數(shù)智系統(tǒng)“上崗”,重慶垃圾中轉(zhuǎn)站煥新
- 3 AI 時(shí)代,阿里云想當(dāng)“安卓” ,那誰(shuí)是“蘋果”?
- 4 拐點(diǎn)已至!匯川領(lǐng)跑工控、埃斯頓份額第一、新時(shí)達(dá)海爾賦能扭虧為盈
- 5 L3自動(dòng)駕駛延期,逼出車企技術(shù)自我淘汰
- 6 隱退4年后,張一鳴久違現(xiàn)身!互聯(lián)網(wǎng)大佬正集體殺回
- 7 機(jī)器人9月大事件|3家國(guó)產(chǎn)機(jī)器人沖刺IPO,行業(yè)交付與融資再創(chuàng)新高!
- 8 7倍機(jī)器人大牛股:高管股東套現(xiàn)VS機(jī)構(gòu)兇猛抱團(tuán),該信誰(shuí)?
- 9 八部門聯(lián)手放行L3自動(dòng)駕駛!巨頭開始拼搶萬(wàn)億市場(chǎng)?
- 10 OpenAI發(fā)布的AI瀏覽器,市場(chǎng)為何反應(yīng)強(qiáng)烈?
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市


分享





