馬曉強(qiáng) 張必武 張環(huán) 楊鵬程
摘要:由于我國(guó)經(jīng)濟(jì)的持續(xù)高速發(fā)展,生活垃圾急速增長(zhǎng),統(tǒng)計(jì)表明我國(guó)生活垃圾從1927年的0.5億噸增至2016年的2.04億噸。在2019年7月1日,上海試點(diǎn)了號(hào)稱史上最為嚴(yán)各垃圾分類制度。那句直擊靈魂深處的拷問(wèn):“你是什么垃圾?”傳遍了中國(guó)。面對(duì)嚴(yán)格的垃圾分類制度,對(duì)垃圾實(shí)現(xiàn)智能化分類顯得尤為重要,因?yàn)槔闹悄芑诸惒粌H能降低人工成本,提高資源的重復(fù)利用,而且有助于實(shí)現(xiàn)國(guó)家生態(tài)文明的建設(shè)目標(biāo)。為經(jīng)濟(jì)的持續(xù)高速發(fā)展提供基礎(chǔ)保障。
關(guān)鍵詞:垃圾分類;深度學(xué)習(xí);圖像識(shí);VGG16
一、研究背景
早期而研究方法也大多采用傳統(tǒng)的目標(biāo)檢測(cè)算法。近年來(lái),隨著深度學(xué)習(xí)的火熱,目標(biāo)檢測(cè)模型也由傳統(tǒng)檢測(cè)算法向卷積神經(jīng)網(wǎng)絡(luò)發(fā)展,由于卷積神經(jīng)網(wǎng)絡(luò)能自主的進(jìn)行特征的提取和篩選。跟傳統(tǒng)目標(biāo)檢測(cè)算法相比,其不僅省去了手動(dòng)提取特征存在的諸多問(wèn)題也極大的提升了目標(biāo)檢測(cè)算法的準(zhǔn)確性。本文采用VGG16模型來(lái)構(gòu)建神經(jīng)網(wǎng)絡(luò),來(lái)實(shí)現(xiàn)垃圾的識(shí)別分類。VGG是由Simonyan和Zisserman在文獻(xiàn)《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷積神經(jīng)網(wǎng)絡(luò)模型。對(duì)VGG16進(jìn)行具體分析,VGG16共包含:13個(gè)卷積層,3個(gè)全連接層,5個(gè)池化層。
二、基于OpenCV和VGG16模型的垃圾識(shí)別分類算法
(一)VGG16模型
VGG-16由13層卷積層和3層全連接層組成,該模型要求輸入的圖片數(shù)據(jù)大小為224x 224x 3,初始卷積核大小為3x 3 x 3,stride的大小為1,padding的大小為1,pooling為2x 2的最大池化函數(shù) max pooling的方式。模型中的卷積過(guò)程為:首先使用兩次64個(gè)卷積核的卷積處理,接著進(jìn)行一次池化層,完成后又進(jìn)行三次256個(gè)卷積核的卷積,再采用一次池化層,最后重復(fù)兩次三個(gè)512個(gè)卷積核卷積之后,最后進(jìn)行一次池化層。在卷積層處理后是三次全連接層。
(二)圖片處理
基于OpenCV對(duì)圖像的二值圖進(jìn)行輪廓識(shí)別,并得到其邊界矩形,通過(guò)此方法,能夠框選得到圖中的主要物體,并依據(jù)大小選出方框選出的方框?qū)D像進(jìn)行裁剪為224*224的尺寸。
首先對(duì)圖像進(jìn)行灰度化及二值化處理
origin_image = img.copy()
gray_image?= cv2.cvtColor(origin_image, cv2.COLOR_BGR2GRAY)
gray_image = cv2.GAussianBlur(gray_image, (21, 21), 0) # 對(duì)灰度圖進(jìn)行高斯模糊處理
diff_image=cv2.threshold(gray_image,160,255,cv2.THRESH_BINARY)[1]#二值化閾值處理
index = 0
max_offset = 0
img_size = img.shape
img_width = img_size[0]
img_height = img_size[1]
for c in contours:
(x, y, w, h) = cv2.boundingRect(c)
offset = w + h
if max_offset< offset: # 選取長(zhǎng)寬和最大的邊界矩形
max_offset = offse
index = c
cv2.rectangle(origin_image,
(x,y,w,h) = cv2.boundingRect(index)#獲取被選取的方框的尺寸
e = max(w, h)
if e >min(img_width, img_height):
e = min(img_width, img_height)
x = int(x - (e - w) / 2)
if x < 0:
x = 0
elif x + e >img_height:? x = img_height– e
(三)損失函數(shù)
cross_entropy = tf.nn.softmax_cross_entropy_with_logits_v2(logits=fc16, labels=y_input)
loss = tf.reduce_mean(cross_entropy)
具體執(zhí)行:
第一步是對(duì)網(wǎng)絡(luò)最后一層的輸出做一個(gè)softmax,公式為:
第二步是softmax的輸出向量和樣本的實(shí)際標(biāo)簽做交叉熵?fù)p失。公式如下:
(四)訓(xùn)練過(guò)程
(五)測(cè)試及分析
經(jīng)過(guò)2萬(wàn)多步的訓(xùn)練,采用VGG16模型的垃圾識(shí)別系統(tǒng)的訓(xùn)練集準(zhǔn)確度為82.7%,測(cè)試集準(zhǔn)確度64.5%。準(zhǔn)確度仍然有待提高。后期可通過(guò)具體分析逐步提高其訓(xùn)練準(zhǔn)確度及測(cè)試準(zhǔn)確度。
三、結(jié)束語(yǔ)
本文介紹了基于OpenCV技術(shù)和VGG16模型下的垃圾識(shí)別分類系統(tǒng)及實(shí)現(xiàn)過(guò)程。希望該系統(tǒng)的實(shí)現(xiàn)能引導(dǎo)更多人認(rèn)識(shí)垃圾的分類及其重要意義。測(cè)試表明,該系統(tǒng)在準(zhǔn)確度上仍然有一定的問(wèn)題,在今后還可以對(duì)系統(tǒng)進(jìn)行完善,在圖像預(yù)處理、模型改進(jìn)和數(shù)據(jù)集等方面可以進(jìn)行更加深入改進(jìn)和研究。
四、備注
本項(xiàng)目由,西北民族大學(xué)本科生科研項(xiàng)目--《基于機(jī)器學(xué)習(xí)的垃圾識(shí)別分類系統(tǒng)》;項(xiàng)目編號(hào):XBMU-BYL20174資助研究。
參考文獻(xiàn)
[1]Karen Simonyan,Andrew Zisserman.Very Deep Convolutional Networks for Large Scale Image Recognition[J].ResearchGate,2014
[2]彭昕昀,李嘉樂(lè),李婉,劉杏洲,張程發(fā),林顯新,歐嘉誠(chéng). 基于SSD算法的垃圾識(shí)別分類研究[J].韶關(guān)學(xué)院學(xué)報(bào),2019:6
基金項(xiàng)目:西北民族大學(xué)本科生科研項(xiàng)目--《基于機(jī)器學(xué)習(xí)的垃圾識(shí)別分類系統(tǒng)》;項(xiàng)目編號(hào):XBMU-BYL20174。
作者簡(jiǎn)介:
馬曉強(qiáng)(1998-),男,回,甘肅臨夏人,學(xué)生,本科生,單位:西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,研究方向:python開(kāi)發(fā),數(shù)據(jù)分析
張必武(1998-),男,漢,湖北潛江人,學(xué)生,本科生,單位:西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,研究方向:計(jì)算機(jī)應(yīng)用技術(shù),java開(kāi)發(fā)
張環(huán)(1998-),男,苗,湖南懷化人,學(xué)生,本科生,單位:?西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,研究方向:C++,C#開(kāi)發(fā),Unity游戲
楊鵬程(2000-),男,漢,云南昭通人,學(xué)生,本科生,單位:西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,研究方向:小游戲開(kāi)發(fā),web開(kāi)發(fā),數(shù)據(jù)挖掘
西北民族大學(xué),甘肅蘭州?730000