祝景月,呂曉晨,姜穎道
(青島黃海學(xué)院,山東 青島 266000)
大部分盲人主要依靠觸感來挑選衣服。也有部分盲人依靠其他的幫助,通過有盲文的衣服或他人的幫助選擇衣服。但是,為盲人準(zhǔn)備的有盲文的衣服明顯較少,因此他們很難獨(dú)立完成穿衣。因此,本文在對現(xiàn)有市場智能衣柜進(jìn)行分析的基礎(chǔ)上,設(shè)計(jì)一種基于深度學(xué)習(xí)和圖像識(shí)別的物聯(lián)網(wǎng)智能衣柜。使用者挑選衣服,通過對話請求想要的功能。衣柜進(jìn)行語音解讀和服裝拍攝等,根據(jù)要求將結(jié)果輸出到語音。執(zhí)行這些功能的智能衣柜命名為“小璐”。
“小璐”通過多種功能支持用戶。第一,使用者打開衣柜門時(shí),衣柜內(nèi)部的LED燈照亮衣柜內(nèi)部,并幫助拍攝時(shí)出現(xiàn)正確的衣服。第二,測量衣柜內(nèi)部的溫度和濕度。濕度升高時(shí),通過風(fēng)扇換氣,降低衣柜濕度,防止衣服受損。第三,通過語音識(shí)別來執(zhí)行各種功能。通過語音識(shí)別“小璐”來運(yùn)行衣柜,并要求執(zhí)行用戶想要的功能。最后對掛著的衣服進(jìn)行深度學(xué)習(xí)和圖像識(shí)別,判斷衣服的信息。通過要求功能,廣角攝像機(jī)把拍攝的圖像傳送到云服務(wù)器,構(gòu)建深度學(xué)習(xí)模型預(yù)測信息并通過揚(yáng)聲器輸出服裝的顏色、種類、屬性等信息。
“小璐”智能衣柜最重要的功能是識(shí)別衣服的信息。為了識(shí)別衣服的信息,利用TensorFlow和Keras庫[1]建立了適用CNN算法的深度學(xué)習(xí)模型。另外,為了讓模型學(xué)習(xí),利用香港中文大學(xué)多媒體研究所開發(fā)的通過信息采集收集的大規(guī)模服裝圖像數(shù)據(jù)的“DeepFashion DataSet”[2],如圖1所示。
圖1 類別和屬性預(yù)測數(shù)據(jù)
“DeepFashion DataSet”共有5個(gè)可執(zhí)行的數(shù)據(jù)?!靶¤础敝悄芤鹿袷褂脤傩灶A(yù)測數(shù)據(jù)來實(shí)現(xiàn)衣服信息識(shí)別模型。屬性預(yù)測數(shù)據(jù)共有28 922個(gè)服裝圖像和標(biāo)有50個(gè)服裝類別以及1 000個(gè)服裝屬性標(biāo)簽。但是標(biāo)簽存在一些不正確的數(shù)據(jù),導(dǎo)致準(zhǔn)確度下降。因此,本文以衣服的種類,按照屬性分類學(xué)習(xí)數(shù)據(jù),實(shí)現(xiàn)對衣服分類預(yù)測模型。衣服的屬性是將1 000個(gè)屬性分為5個(gè)屬性類型,只學(xué)習(xí)約200個(gè)屬性,實(shí)現(xiàn)屬性預(yù)測模型。最后以一套衣服、上衣、下衣區(qū)分的數(shù)據(jù)為基礎(chǔ),實(shí)現(xiàn)上下衣預(yù)測模型。
“小璐”智能衣柜通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural network,CNN)[3]算法實(shí)現(xiàn)識(shí)別模型。CNN是主要用于圖像分類的算法,是直接輸入圖像像素值,分類屬于哪一類的算法。
如圖2所示,CNN將圖像的邊緣分別進(jìn)行整合,獲得強(qiáng)調(diào)邊緣的形象。之后通過整合或過濾獲得的特性地圖,通過活性函數(shù)激活后輸出,并通過Pooling技術(shù)減少特性地圖的大小。這些特性地圖再次重復(fù)前面的過程,將區(qū)域特性地圖打造成全面特性地圖,形成更高層次的特性。最后通過最終制作的特性地圖進(jìn)行分類工作。
圖2 基于CNN的特征地圖提取
本文采用TensorFlow和Keras庫來實(shí)現(xiàn)識(shí)別服裝信息的CNN模型。TensorFlow是谷歌開發(fā)的機(jī)器學(xué)習(xí)用引擎,是為了應(yīng)用于深度學(xué)習(xí)而開發(fā)的開源軟件,并提供有關(guān)圖像處理的基本庫和學(xué)習(xí)的CNN算法。TensorFlow是執(zhí)行Keras庫的基礎(chǔ),而Keras是由Python語言編程的開源神經(jīng)網(wǎng)庫。Keras能讓深度學(xué)習(xí)的實(shí)驗(yàn)快速進(jìn)行并以最小模塊擴(kuò)展可能性為焦點(diǎn)的庫。“小璐”通過Keras提供的模型庫調(diào)用Sequential函數(shù)生成線性模型,使用Layers庫調(diào)用“Convolution2D、MaxPooling2D、Dropout和Dense”[4]等函數(shù),進(jìn)行深度學(xué)習(xí)模型的準(zhǔn)確度提高的工作。
本論文以Arduino和樹莓派(Raspberry Pi)作為“小璐”的硬件部分。另外,根據(jù)衣柜門的開/關(guān)狀態(tài),利用磁性傳感器來管理衣柜內(nèi)LED燈光狀態(tài)。同時(shí),通過溫濕度傳感器測量衣柜的濕度并控制衣柜的濕度。其硬件與功能、軟件開發(fā)環(huán)境分別見表1、表2。
表1 硬件與功能
表2 軟件開發(fā)環(huán)境
系統(tǒng)由多個(gè)傳感器連接的Arduino UNO R3、樹莓派4B和存儲(chǔ)深度學(xué)習(xí)模型的服務(wù)器組成。Arduino UNO R3通過樹莓派4B、串行(Serial)通信和I2C通信,樹莓派和服務(wù)器是利用Socket通信來接收數(shù)據(jù),硬件與軟件系統(tǒng)設(shè)計(jì)圖如圖3所示。
圖3 硬件與軟件系統(tǒng)設(shè)計(jì)圖
硬件通過Arduino UNO R3進(jìn)行衣柜內(nèi)部管理,通過樹莓派與外界進(jìn)行通信,管理攝像頭、麥克風(fēng)、揚(yáng)聲器等。軟件在服務(wù)器上執(zhí)行利用CNN算法對衣服的種類、顏色、圖像等進(jìn)行識(shí)別。另外,Speech-To-Text和Text-To-Speech功能將利用百度AI來進(jìn)行。
本文中,服裝識(shí)別模型大致分為2種:通過拍攝的圖像識(shí)別模型和通過CNN算法識(shí)別衣服信息的深度學(xué)習(xí)模型?!靶¤础钡姆b圖像識(shí)別模型用于衣服顏色識(shí)別。圖像顏色識(shí)別模型不使用深度學(xué)習(xí),而是通過像素值提取圖像顏色。服裝顏色識(shí)別的執(zhí)行過程如圖4所示。
圖4 服裝顏色識(shí)別圖
拍攝的照片,通過圖割(Grap-cut)算法[5]去除背景后,剪切保留衣服圖像清晰的中間部分。之后以像素為單位存儲(chǔ)為RGB值,判斷平均RGB值。之后通過WebColours[6],將平均RGB和存儲(chǔ)名字的顏色RGB之間的距離利用歐氏距離測量[7],判斷最相似的顏色。
“小璐”的深度學(xué)習(xí)服裝識(shí)別模型利用CNN算法識(shí)別服裝。深度學(xué)習(xí)服裝識(shí)別模型在各層將節(jié)點(diǎn)個(gè)數(shù)以倍數(shù)為單位增加,見表3。另外,每層增加Dropout層和Maxpooling2D層,防止學(xué)習(xí)時(shí)可能發(fā)生的過擬合問題。
表3 服裝識(shí)別的模型級(jí)結(jié)構(gòu)
本文為了確認(rèn)使用者對拍攝照片的認(rèn)識(shí)學(xué)習(xí)模式是否正確執(zhí)行,通過改變模型層數(shù)量、Dropout的調(diào)整、Maxpooling調(diào)整進(jìn)行了實(shí)驗(yàn)。在建立模型時(shí),模型的層數(shù)從1層開始,以逐層遞增的方式構(gòu)建,并每層都采用了Maxpooling。通過這樣的構(gòu)建、比較的過程,對準(zhǔn)確度高的模型,將Dropout逐層添加,完成了模型構(gòu)建。采用早期停止回調(diào)選項(xiàng),在進(jìn)行15次學(xué)習(xí)期間,如果測試集的準(zhǔn)確度不高,就停止學(xué)習(xí),保證了準(zhǔn)確度。通過上述過程進(jìn)行了70次學(xué)習(xí)時(shí)出現(xiàn)了最合適的準(zhǔn)確度和損失度。根據(jù)服裝信息識(shí)別模型的層數(shù)和Dropout程度來表示模型的準(zhǔn)確度,見表4。
從表4中可以看到,測試集和訓(xùn)練集的準(zhǔn)確度確認(rèn)上升到了0.80。在表4中確認(rèn)的模型中,運(yùn)用測試集準(zhǔn)確度較高的模型進(jìn)行了實(shí)際測試。
表4 按層和輟學(xué)測試集的準(zhǔn)確性
現(xiàn)有開發(fā)的智能衣柜大部分都是以非殘疾人為焦點(diǎn),管理衣服本身的功能為重點(diǎn)的智能衣柜。本文所設(shè)計(jì)的“小璐”智能系統(tǒng)通過語音識(shí)別、服裝信息識(shí)別等多項(xiàng)功能,幫助盲人獨(dú)立的穿衣生活。特別是對服裝的種類、圖案、材質(zhì)、上下衣、顏色等的識(shí)別模型,實(shí)驗(yàn)結(jié)果準(zhǔn)確度高達(dá)0.80。同時(shí),為了在識(shí)別衣服的過程中提高準(zhǔn)確度,調(diào)整模型層的數(shù)量和Maxpooling。同時(shí),為了保證準(zhǔn)確度,采用早期停止回調(diào),Dropout防止過擬合。本文所提出的制作模型的方法不僅可以識(shí)別衣服,還可以幫助多種領(lǐng)域的圖像識(shí)別深度學(xué)習(xí)模型的生成研究。