
本發(fā)明涉及圖像處理
技術(shù)領(lǐng)域:
,特別涉及一種基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法、裝置及移動(dòng)終端。
背景技術(shù):
:隨著卷積神經(jīng)網(wǎng)絡(luò)(cnn:convolutionalneuralnetwork)的快速發(fā)展,越來越多的圖像處理手段,如分類、分割、風(fēng)格轉(zhuǎn)換、畫質(zhì)改善等,均采用cnn進(jìn)行訓(xùn)練學(xué)習(xí),以取得比傳統(tǒng)處理方法更好的效果。然而,cnn在移動(dòng)終端上的應(yīng)用仍存在瓶頸,尤其是當(dāng)cnn達(dá)到數(shù)百層時(shí),需大量的浮點(diǎn)數(shù)乘法運(yùn)算及大量的cpu內(nèi)存申請(qǐng),導(dǎo)致移動(dòng)終端的計(jì)算效率和內(nèi)存跟不上cnn的發(fā)展速度?,F(xiàn)有的在移動(dòng)終端基于卷積神經(jīng)網(wǎng)絡(luò)處理圖像的方法,是利用gpu和如opengles的圖形程序接口來實(shí)現(xiàn)浮點(diǎn)運(yùn)算的。一方面,移動(dòng)終端內(nèi)置的gpu具有強(qiáng)大的浮點(diǎn)運(yùn)算能力,能夠?qū)⒁苿?dòng)終端的浮點(diǎn)運(yùn)算效率提高10倍以上,甚至更多倍數(shù),另一方面,移動(dòng)端gpu芯片基本支持opengles,而opengles的3.x系列可支持16位或32位浮點(diǎn)紋理,可為gpu計(jì)算提供極大的便利性,從而可用于cnn的gpu高效計(jì)算。然而,在通過紋理存儲(chǔ)數(shù)據(jù)時(shí),勢必會(huì)導(dǎo)致大量紋理的創(chuàng)建,而opengles在紋理渲染過程中是需要不斷綁定和解綁不同紋理的,導(dǎo)致了計(jì)算效率下降。而且cnn中存在數(shù)量較多的卷積層,在利用opengles執(zhí)行腳本渲染以實(shí)現(xiàn)卷積處理時(shí),對(duì)于特征圖邊界的判斷需要使用如“if…else…”的條件判斷語句,而此類語句容易給渲染過程帶來效率低下的問題。因此,需要一種新的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方案來優(yōu)化上述過程。技術(shù)實(shí)現(xiàn)要素:為此,本發(fā)明提供一種基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理的技術(shù)方案,以力圖解決或者至少緩解上面存在的問題。根據(jù)本發(fā)明的一個(gè)方面,提供一種基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法,適于在具有圖形程序接口的移動(dòng)終端中執(zhí)行,卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)處理層和多個(gè)數(shù)據(jù)層,其中每個(gè)處理層用于處理與之相連的上一數(shù)據(jù)層中的多個(gè)特征圖,以生成下一數(shù)據(jù)層中的多個(gè)特征圖,移動(dòng)終端中存儲(chǔ)有各數(shù)據(jù)層對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù),存儲(chǔ)參數(shù)包括特征圖尺寸、紋理橫向數(shù)量和紋理縱向數(shù)量,該方法包括如下步驟:首先,將待處理圖片作為第一個(gè)數(shù)據(jù)層輸入到卷積神經(jīng)網(wǎng)絡(luò);對(duì)每一個(gè)數(shù)據(jù)層,根據(jù)存儲(chǔ)參數(shù),將該數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ);對(duì)每一個(gè)處理層,獲取與之相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。可選地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法中,特征圖尺寸包括特征圖的高和寬,根據(jù)存儲(chǔ)參數(shù),將該數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ)的步驟包括:獲取該數(shù)據(jù)層中多個(gè)特征圖對(duì)應(yīng)的小紋理;將小紋理按照紋理橫向數(shù)量乘以紋理縱向數(shù)量的樣式進(jìn)行組合,以形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ),大紋理的高為特征圖的高與紋理縱向數(shù)量的乘積,大紋理的寬為特征圖的寬與紋理橫向數(shù)量的乘積。可選地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法中,獲取與之相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖的步驟包括:獲取與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,大紋理由上一數(shù)據(jù)層中的多個(gè)特征圖所形成的小紋理組成;對(duì)每一個(gè)小紋理,獲取該小紋理的各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo);根據(jù)各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo),調(diào)用圖形程序接口對(duì)該小紋理進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖??蛇x地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法中,處理層包括卷積層,與該卷積層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理包括由該數(shù)據(jù)層中的多個(gè)特征圖形成的小紋理,獲取與之相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理的步驟,包括調(diào)用圖形程序接口對(duì)其進(jìn)行與該卷積層對(duì)應(yīng)的渲染處理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該卷積層對(duì)應(yīng)的渲染處理的步驟包括:獲取卷積層的處理參數(shù),以及與卷積層相連的下一數(shù)據(jù)層的存儲(chǔ)參數(shù)中的特征圖尺寸,處理參數(shù)包括卷積核與步長;對(duì)每一個(gè)小紋理,根據(jù)處理參數(shù),對(duì)該小紋理中符合特征圖尺寸的中心區(qū)域進(jìn)行一次渲染處理;在完成一次渲染處理后,對(duì)中心區(qū)域以外的小紋理的邊界區(qū)域進(jìn)行二次渲染處理。可選地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法中,還包括預(yù)先獲取卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層的對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù)??蛇x地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法中,預(yù)先獲取卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層的對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù)的步驟包括:根據(jù)預(yù)先獲取的訓(xùn)練圖片集對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以獲取各數(shù)據(jù)層的特征圖的特征圖尺寸和特征圖數(shù)量;對(duì)每一個(gè)數(shù)據(jù)層,將該數(shù)據(jù)層的特征圖數(shù)量與4的商作為特征圖對(duì)應(yīng)的小紋理的數(shù)量,小紋理的尺寸與特征圖尺寸一致;將小紋理的數(shù)量拆分成2個(gè)盡可能接近的數(shù)值的乘積,將這2個(gè)數(shù)值分別作為紋理橫向數(shù)量和紋理縱向數(shù)量。根據(jù)本發(fā)明的又一個(gè)方面,提供一種基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置,該裝置適于駐留在具有圖形程序接口的移動(dòng)終端中,卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)處理層和多個(gè)數(shù)據(jù)層,其中每個(gè)處理層用于處理與之相連的上一數(shù)據(jù)層中的多個(gè)特征圖,以生成下一數(shù)據(jù)層中的多個(gè)特征圖,移動(dòng)終端中存儲(chǔ)有各數(shù)據(jù)層對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù),存儲(chǔ)參數(shù)包括特征圖尺寸、紋理橫向數(shù)量和紋理縱向數(shù)量,該裝置包括輸入模塊、轉(zhuǎn)換模塊和處理模塊。其中,輸入模塊適于將待處理圖片作為第一個(gè)數(shù)據(jù)層輸入到卷積神經(jīng)網(wǎng)絡(luò);轉(zhuǎn)換模塊適于對(duì)每一個(gè)數(shù)據(jù)層,根據(jù)存儲(chǔ)參數(shù),將該數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ);處理模塊適于對(duì)每一個(gè)處理層,獲取與之相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。可選地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置中,特征圖尺寸包括特征圖的高和寬,轉(zhuǎn)換模塊進(jìn)一步適于:獲取該數(shù)據(jù)層中多個(gè)特征圖對(duì)應(yīng)的小紋理;將小紋理按照紋理橫向數(shù)量乘以紋理縱向數(shù)量的樣式進(jìn)行組合,以形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ),大紋理的高為特征圖的高與紋理縱向數(shù)量的乘積,大紋理的寬為特征圖的寬與紋理橫向數(shù)量的乘積??蛇x地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置中,處理模塊進(jìn)一步適于:獲取與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,大紋理由上一數(shù)據(jù)層中的多個(gè)特征圖所形成的小紋理組成;對(duì)每一個(gè)小紋理,獲取該小紋理的各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo);根據(jù)各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo),調(diào)用圖形程序接口對(duì)該小紋理進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖??蛇x地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置中,處理層包括卷積層,與該卷積層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理包括由該數(shù)據(jù)層中的多個(gè)特征圖形成的小紋理,處理模塊還適于:獲取卷積層的處理參數(shù),以及與卷積層相連的下一數(shù)據(jù)層的存儲(chǔ)參數(shù)中的特征圖尺寸,處理參數(shù)包括卷積核與步長;對(duì)每一個(gè)小紋理,根據(jù)處理參數(shù),對(duì)該小紋理中符合特征圖尺寸的中心區(qū)域進(jìn)行一次渲染處理;在完成一次渲染處理后,對(duì)中心區(qū)域以外的小紋理的邊界區(qū)域進(jìn)行二次渲染處理??蛇x地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置中,還包括獲取模塊,適于預(yù)先獲取卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層的對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù)。可選地,在根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置中,獲取模塊進(jìn)一步適于:根據(jù)預(yù)先獲取的訓(xùn)練圖片集對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以獲取各數(shù)據(jù)層的特征圖的特征圖尺寸和特征圖數(shù)量;對(duì)每一個(gè)數(shù)據(jù)層,將該數(shù)據(jù)層的特征圖數(shù)量與4的商作為特征圖對(duì)應(yīng)的小紋理的數(shù)量,小紋理的尺寸與特征圖尺寸一致;將小紋理的數(shù)量拆分成2個(gè)盡可能接近的數(shù)值的乘積,將這2個(gè)數(shù)值分別作為紋理橫向數(shù)量和紋理縱向數(shù)量。根據(jù)本發(fā)明的又一個(gè)方面,提供一種移動(dòng)終端,包括根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置。根據(jù)本發(fā)明的又一個(gè)方面,還提供一種移動(dòng)終端,包括一個(gè)或多個(gè)處理器、存儲(chǔ)器以及一個(gè)或多個(gè)程序,其中一個(gè)或多個(gè)程序存儲(chǔ)在存儲(chǔ)器中并被配置為由一個(gè)或多個(gè)處理器執(zhí)行,一個(gè)或多個(gè)程序包括用于執(zhí)行根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法的指令。根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方案,首先將待處理圖片作為第一個(gè)數(shù)據(jù)層輸入到卷積神經(jīng)網(wǎng)絡(luò)中開始進(jìn)行圖像處理,在處理過程中,對(duì)于卷積神經(jīng)網(wǎng)絡(luò)中的每一個(gè)數(shù)據(jù)層,會(huì)根據(jù)該數(shù)據(jù)層對(duì)應(yīng)與圖形程序接口的存儲(chǔ)參數(shù),將這一數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ),則與該數(shù)據(jù)層相連的下一處理層即獲取上述大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成與之相連的下一數(shù)據(jù)層中的多個(gè)特征圖,而下一數(shù)據(jù)層則會(huì)繼續(xù)執(zhí)行將多個(gè)特征圖組合形成大紋理進(jìn)行存儲(chǔ)的步驟。換言之,對(duì)于每一個(gè)處理層,相當(dāng)于輸入該處理層的數(shù)據(jù)是一個(gè)大紋理,而從該處理層輸出的數(shù)據(jù)也是一個(gè)大紋理,處理層的計(jì)算過程則轉(zhuǎn)換為基于圖形程序接口的腳本渲染過程。在上述技術(shù)方案中,對(duì)于各數(shù)據(jù)層,通過將該數(shù)據(jù)層的多個(gè)特征圖進(jìn)行組合形成對(duì)應(yīng)的大紋理,以提供給與之相連的下一處理層進(jìn)行處理,而對(duì)于各處理層,則對(duì)與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理中的各小紋理執(zhí)行分塊渲染,不僅無需大量創(chuàng)建紋理,避免在紋理渲染過程中不斷綁定和解綁紋理的重復(fù)操作,而且處理層的計(jì)算環(huán)節(jié)完全在gpu中完成,無需cpu與gpu的數(shù)據(jù)來回切換,提高了計(jì)算效率。進(jìn)一步地,當(dāng)處理層具體為卷積層時(shí),對(duì)當(dāng)前輸入的大紋理中的各小紋理,基于邊界區(qū)域進(jìn)行分次渲染,以降低因防止越界而進(jìn)行條件判斷的次數(shù),充分利用腳本渲染的計(jì)算效率,實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的加速。附圖說明為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的移動(dòng)終端100的結(jié)構(gòu)框圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法200的流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)層a2對(duì)應(yīng)的大紋理示意圖;圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)層a3對(duì)應(yīng)的大紋理示意圖;圖6示出了本發(fā)明一個(gè)實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置600的示意圖;以及圖7示出了本發(fā)明又一個(gè)實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置700的示意圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖1是移動(dòng)終端100的結(jié)構(gòu)框圖。移動(dòng)終端100可以包括存儲(chǔ)器接口102、一個(gè)或多個(gè)數(shù)據(jù)處理器、圖像處理器和/或中央處理單元104,以及外圍接口106。存儲(chǔ)器接口102、一個(gè)或多個(gè)處理器104和/或外圍接口106既可以是分立元件,也可以集成在一個(gè)或多個(gè)集成電路中。在移動(dòng)終端100中,各種元件可以通過一條或多條通信總線或信號(hào)線來耦合。傳感器、設(shè)備和子系統(tǒng)可以耦合到外圍接口106,以便幫助實(shí)現(xiàn)多種功能。例如,運(yùn)動(dòng)傳感器110、光線傳感器112和距離傳感器114可以耦合到外圍接口106,以方便定向、照明和測距等功能。其他傳感器116同樣可以與外圍接口106相連,例如定位系統(tǒng)(例如gps接收機(jī))、溫度傳感器、生物測定傳感器或其他感測設(shè)備,由此可以幫助實(shí)施相關(guān)的功能。相機(jī)子系統(tǒng)120和光學(xué)傳感器122可以用于方便諸如記錄照片和視頻剪輯的相機(jī)功能的實(shí)現(xiàn),其中所述相機(jī)子系統(tǒng)和光學(xué)傳感器例如可以是電荷耦合器件(ccd)或互補(bǔ)金屬氧化物半導(dǎo)體(cmos)光學(xué)傳感器??梢酝ㄟ^一個(gè)或多個(gè)無線通信子系統(tǒng)124來幫助實(shí)現(xiàn)通信功能,其中無線通信子系統(tǒng)可以包括射頻接收機(jī)和發(fā)射機(jī)和/或光(例如紅外)接收機(jī)和發(fā)射機(jī)。無線通信子系統(tǒng)124的特定設(shè)計(jì)和實(shí)施方式可以取決于移動(dòng)終端100所支持的一個(gè)或多個(gè)通信網(wǎng)絡(luò)。例如,移動(dòng)終端100可以包括被設(shè)計(jì)成支持lte、3g、gsm網(wǎng)絡(luò)、gprs網(wǎng)絡(luò)、edge網(wǎng)絡(luò)、wi-fi或wimax網(wǎng)絡(luò)以及blueboothtm網(wǎng)絡(luò)的通信子系統(tǒng)124。音頻子系統(tǒng)126可以與揚(yáng)聲器128以及麥克風(fēng)130相耦合,以便幫助實(shí)施啟用語音的功能,例如語音識(shí)別、語音復(fù)制、數(shù)字記錄和電話功能。i/o子系統(tǒng)140可以包括觸摸屏控制器142和/或一個(gè)或多個(gè)其他輸入控制器144。觸摸屏控制器142可以耦合到觸摸屏146。舉例來說,該觸摸屏146和觸摸屏控制器142可以使用多種觸摸感測技術(shù)中的任何一種來檢測與之進(jìn)行的接觸和移動(dòng)或是暫停,其中感測技術(shù)包括但不局限于電容性、電阻性、紅外和表面聲波技術(shù)。一個(gè)或多個(gè)其他輸入控制器144可以耦合到其他輸入/控制設(shè)備148,例如一個(gè)或多個(gè)按鈕、搖桿開關(guān)、拇指旋輪、紅外端口、usb端口、和/或指示筆之類的指點(diǎn)設(shè)備。所述一個(gè)或多個(gè)按鈕(未顯示)可以包括用于控制揚(yáng)聲器128和/或麥克風(fēng)130音量的向上/向下按鈕。存儲(chǔ)器接口102可以與存儲(chǔ)器150相耦合。該存儲(chǔ)器150可以包括高速隨機(jī)存取存儲(chǔ)器和/或非易失性存儲(chǔ)器,例如一個(gè)或多個(gè)磁盤存儲(chǔ)設(shè)備,一個(gè)或多個(gè)光學(xué)存儲(chǔ)設(shè)備,和/或閃存存儲(chǔ)器(例如nand,nor)。存儲(chǔ)器150可以存儲(chǔ)操作系統(tǒng)172,例如android、ios或是windowsphone之類的操作系統(tǒng)。該操作系統(tǒng)172可以包括用于處理基本系統(tǒng)服務(wù)以及執(zhí)行依賴于硬件的任務(wù)的指令。存儲(chǔ)器150還可以存儲(chǔ)應(yīng)用174。在移動(dòng)設(shè)備運(yùn)行時(shí),會(huì)從存儲(chǔ)器150中加載操作系統(tǒng)172,并且由處理器104執(zhí)行。應(yīng)用174在運(yùn)行時(shí),也會(huì)從存儲(chǔ)器150中加載,并由處理器104執(zhí)行。應(yīng)用174運(yùn)行在操作系統(tǒng)之上,利用操作系統(tǒng)以及底層硬件提供的接口實(shí)現(xiàn)各種用戶期望的功能,如即時(shí)通信、網(wǎng)頁瀏覽、圖片管理等。應(yīng)用174可以是獨(dú)立于操作系統(tǒng)提供的,也可以是操作系統(tǒng)自帶的。另外,應(yīng)用174被安裝到移動(dòng)終端100中時(shí),也可以向操作系統(tǒng)添加驅(qū)動(dòng)模塊。在上述各種應(yīng)用174中,其中的一種應(yīng)用為根據(jù)本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置600。其中,卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)處理層和多個(gè)數(shù)據(jù)層,每個(gè)處理層用于處理與之相連的上一數(shù)據(jù)層中的多個(gè)特征圖,以生成下一數(shù)據(jù)層的多個(gè)特征圖。進(jìn)一步地,移動(dòng)終端100具有圖形程序接口(圖中未示出),例如opengl系列,并存儲(chǔ)有卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù),基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置600對(duì)于每一個(gè)數(shù)據(jù)層,根據(jù)該數(shù)據(jù)層的存儲(chǔ)參數(shù),將多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理以作為與該數(shù)據(jù)層相連的下一處理層的輸入,調(diào)用該圖形程序接口對(duì)該大紋理執(zhí)行與該處理層對(duì)應(yīng)的渲染處理。一般情況下,各數(shù)據(jù)層的存儲(chǔ)參數(shù)包括特征圖尺寸、紋理橫向數(shù)量和紋理縱向數(shù)量,是在預(yù)先對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí)獲取的,具體的獲取方法此處先暫且不表,后面再予以解釋說明。圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法200的流程圖?;诰矸e神經(jīng)網(wǎng)絡(luò)的圖像處理方法200適于在具有圖形程序接口的移動(dòng)終端100(例如圖1所示的移動(dòng)終端100)中執(zhí)行。如圖2所示,方法200始于步驟s210。在步驟s210中,將待處理圖片作為第一個(gè)數(shù)據(jù)層輸入到卷積神經(jīng)網(wǎng)絡(luò)。其中,卷積神經(jīng)網(wǎng)絡(luò)是已經(jīng)預(yù)先訓(xùn)練好的,所包括的數(shù)據(jù)層的數(shù)量一般比處理層的數(shù)量多1個(gè)。圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。如圖3所示,該卷積神經(jīng)網(wǎng)絡(luò)包括5個(gè)數(shù)據(jù)層a1~a5和4個(gè)處理層b1~b4,其中,數(shù)據(jù)層a1和a5分別對(duì)應(yīng)卷積神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)層和輸出數(shù)據(jù)層,處理層b1~b4用于處理與之相連的上一數(shù)據(jù)層中的多個(gè)特征圖,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。在該實(shí)施方式中,待處理圖片為rgba的4通道彩色圖片,尺寸為320px×256px,由于待處理圖片的通道數(shù)為4,表明每1個(gè)通道下的圖片對(duì)應(yīng)于1個(gè)特征圖,即該圖片包括4個(gè)不同通道,即通道r、g、b和alpha下,尺寸為320px×256px的特征圖,將這4個(gè)特征圖作為數(shù)據(jù)層a1輸入到上述卷積神經(jīng)網(wǎng)絡(luò)以便進(jìn)行后續(xù)圖像處理。隨后,進(jìn)入步驟s220,對(duì)每一個(gè)數(shù)據(jù)層,根據(jù)存儲(chǔ)參數(shù),將該數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ)。其中,存儲(chǔ)參數(shù)與圖形程序接口對(duì)應(yīng),包括特征圖尺寸、紋理橫向數(shù)量和紋理縱向數(shù)量,特征圖尺寸包括特征圖的高和寬。根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖形程序接口選用opengles3.0,表1示出了該實(shí)施方式下卷積神經(jīng)網(wǎng)絡(luò)各數(shù)據(jù)層的存儲(chǔ)參數(shù)示例,具體如下所示:數(shù)據(jù)層特征圖尺寸(高px×寬px)紋理橫向數(shù)量紋理縱向數(shù)量a1320px×256px11a280px×64px31a380px×64px31a478px×62px21a578px×62px11表1根據(jù)該實(shí)施方式,可以通過以下方式對(duì)各數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ)。首先,獲取該數(shù)據(jù)層中多個(gè)特征圖對(duì)應(yīng)的小紋理,由于opengles3.0的浮點(diǎn)紋理最大的特點(diǎn)是可以用4通道來存儲(chǔ)數(shù)據(jù),則紋理的4通道可同時(shí)存儲(chǔ)4個(gè)特征圖,則可通過將特征圖數(shù)量與4的商作為小紋理的數(shù)量,以實(shí)現(xiàn)以與特征圖尺寸相同的小紋理來存儲(chǔ)多個(gè)特征圖。當(dāng)然,在特征圖數(shù)量無法被4整除時(shí),在計(jì)算上將特征圖數(shù)量與4的商向下取整后再加1的值作為小紋理的數(shù)量,即當(dāng)不足4通道時(shí),會(huì)湊成4通道存在紋理中。比如對(duì)數(shù)據(jù)層a1,數(shù)據(jù)層a1中共計(jì)4個(gè)特征圖,且特征圖尺寸為320px×256px,則小紋理的數(shù)量為4/4=1,得到了數(shù)據(jù)層a1中4個(gè)特征圖對(duì)應(yīng)的1個(gè)小紋理。然后,將得到的小紋理按照紋理橫向數(shù)量乘以紋理縱向數(shù)量的樣式進(jìn)行組合,以形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ),該大紋理的高為特征圖的高與紋理縱向數(shù)量的乘積,該大紋理的寬為特征圖的寬與紋理橫向數(shù)量的乘積。很明顯,由于數(shù)據(jù)層a1對(duì)應(yīng)的小紋理只有1個(gè),且紋理橫向數(shù)量和紋理縱向數(shù)量也均為1,則形成的大紋理實(shí)際上就是該小紋理。為了進(jìn)一步說明大紋理的形成過程,下面以數(shù)據(jù)層a2為例進(jìn)行補(bǔ)充描述。數(shù)據(jù)層a2中所包括的特征圖是處理層b1對(duì)數(shù)據(jù)層a1對(duì)應(yīng)的大紋理進(jìn)行渲染處理而生成的,此時(shí)得到數(shù)據(jù)層a2共計(jì)具有11個(gè)特征圖,由于11無法被4整除,則計(jì)算11與4的商向下取整后再加1的值作為小紋理的數(shù)量,即小紋理的數(shù)量為floor(11/4)+1=3,floor表示向下取整。對(duì)于前2個(gè)小紋理,每個(gè)小紋理的4通道均存儲(chǔ)有特征圖,即總共存儲(chǔ)了8個(gè)特征圖,還剩余11-8=3個(gè)特征圖,這3個(gè)特征圖需要存儲(chǔ)在第3個(gè)小紋理中,但是考慮到1個(gè)小紋理可同時(shí)存儲(chǔ)4個(gè)特征圖,基于補(bǔ)全原則,需要將余下的3個(gè)特征圖湊成4個(gè)特征圖進(jìn)行存儲(chǔ),即將第4個(gè)特征圖對(duì)應(yīng)于第3個(gè)小紋理的第4通道的值全部設(shè)置為0,以湊成4通道。接下來,需要將得到的3個(gè)小紋理按照紋理橫向數(shù)量乘以紋理縱向數(shù)量的樣式進(jìn)行組合,以形成大紋理來存儲(chǔ),由于數(shù)據(jù)層a2的存儲(chǔ)參數(shù)中特征圖的尺寸為80px×64px,紋理橫向數(shù)量為3,紋理縱向數(shù)量為1,即該大紋理由橫向排列的上述3個(gè)尺寸為80px×64px的小紋理組成。圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)層a2對(duì)應(yīng)的大紋理示意圖。如圖4所示,大紋理由小紋理a2-1、a2-2和a2-3組成,小紋理的高為80px,寬為64px,則最終形成的數(shù)據(jù)層a2對(duì)應(yīng)的大紋理的高為80px×1=80px,寬為64px×3=192px。在獲取到數(shù)據(jù)層a1對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ)后,開始進(jìn)入步驟s230,對(duì)每一個(gè)處理層,獲取與之相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。需要說明的是,實(shí)際在執(zhí)行基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法200時(shí),在待處理圖片輸入到卷積神經(jīng)網(wǎng)絡(luò)后,步驟s220和s230中具體的處理操作是交替進(jìn)行直至執(zhí)行到卷積神經(jīng)網(wǎng)絡(luò)的最后一層。例如對(duì)圖3所示的卷積神經(jīng)網(wǎng)絡(luò)而言,數(shù)據(jù)層a1~a5與處理層b1~b4相互穿插排列,對(duì)數(shù)據(jù)層a1~a5均要執(zhí)行步驟s220中形成大紋理的操作,而處理層b1~b4則是要執(zhí)行步驟s230中通過opengles3.0進(jìn)行紋理渲染的處理,按照上述排列順序執(zhí)行相應(yīng)步驟的過程即是步驟s220與步驟s230交替執(zhí)行,直至獲得數(shù)據(jù)層a5對(duì)應(yīng)的大紋理為止。為便于描述,這里僅對(duì)處理層b3執(zhí)行步驟s230中的具體操作進(jìn)行說明,其他處理層則不予以贅述。具體地,在根據(jù)本發(fā)明的一個(gè)實(shí)施例中,可以通過以下方式來獲取與處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。首先,獲取與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,大紋理由上一數(shù)據(jù)層中的多個(gè)特征圖所形成的小紋理組成。在該實(shí)施方式中,與處理層b3相連的上一數(shù)據(jù)層為數(shù)據(jù)層a3,則先獲取數(shù)據(jù)層a3對(duì)應(yīng)的大紋理。從表1可知數(shù)據(jù)層a3與數(shù)據(jù)層a2對(duì)應(yīng)的大紋理在形式上一致,因此數(shù)據(jù)層a3對(duì)應(yīng)的大紋理由3個(gè)小紋理組成。隨后,對(duì)每一個(gè)小紋理,獲取該小紋理的各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo)。圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)層a3對(duì)應(yīng)的大紋理示意圖。如圖5所示,數(shù)據(jù)層a3對(duì)應(yīng)的大紋理包括小紋理a3-1、a3-2和a3-3,將小紋理的高設(shè)為h,寬設(shè)為w。以小紋理a3-1為例,小紋理a3-1具有d1、d2、d3和d4共計(jì)4個(gè)頂點(diǎn),對(duì)這4個(gè)頂點(diǎn)而言,其像素坐標(biāo)如下:頂點(diǎn)d1:(cx×w,cy×h)頂點(diǎn)d2:((cx+1)×w,cy×h)頂點(diǎn)d3:(cx×w,(cy+1)×h)頂點(diǎn)d4:((cx+1)×w,(cy+1)×h)紋理坐標(biāo)如下:頂點(diǎn)d1:(cx/cw,cy×ch)頂點(diǎn)d2:((cx+1)×cw,cy×ch)頂點(diǎn)d3:(cx×cw,(cy+1)×ch)頂點(diǎn)d4:((cx+1)×cw,(cy+1)×ch)其中,cw為數(shù)據(jù)層a3對(duì)應(yīng)的紋理橫向數(shù)量,ch為數(shù)據(jù)層a3對(duì)應(yīng)的紋理縱向數(shù)量,cy=floor((i-1)/cw),cx=i-1-cy×cw,i表示小紋理的序號(hào),由于數(shù)據(jù)層a3對(duì)應(yīng)的大紋理包括3個(gè)小紋理,則i的取值可為1、2或3,對(duì)小紋理a3-1而言,i=1,對(duì)小紋理a3-2而言,i=2,對(duì)小紋理a3-3而言,i=3。由此,根據(jù)各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo),調(diào)用圖形程序接口對(duì)該小紋理進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。在該實(shí)施方式中,由表1可知,與處理層a3相連的上一數(shù)據(jù)層a3對(duì)應(yīng)的大紋理包括3個(gè)小紋理,相當(dāng)于有3個(gè)輸入塊,下一數(shù)據(jù)層a4對(duì)應(yīng)的大紋理包括2個(gè)小紋理,相當(dāng)于由2個(gè)輸出塊,考慮opengles3.0在腳本中傳入的參數(shù)有限,依次計(jì)算各輸出塊以實(shí)現(xiàn)分塊計(jì)算。將處理層a3的操作標(biāo)記為φ,則對(duì)于各輸入塊mi(i=1,2,3),輸出塊nk(k=1,2)有:其中,∑(·)表示對(duì)所有輸入塊mi(i=1,2,3)進(jìn)行φ處理后的某種組合,當(dāng)然,不同的處理層對(duì)于不同的組合,比如若處理層b3為卷積層,則∑(·)表示求和。那么,對(duì)任一輸入塊mi(i=1,2,3)進(jìn)行渲染時(shí),由于紋理坐標(biāo)范圍為0~1,而腳本渲染的過程實(shí)際上是利用像素坐標(biāo)來插值紋理坐標(biāo),則根據(jù)各輸入塊對(duì)應(yīng)的4個(gè)頂點(diǎn)的像素坐標(biāo)和紋理坐標(biāo),利用頂點(diǎn)著色器進(jìn)行插值形成紋理采樣點(diǎn),以供片段著色器并行使用即可實(shí)現(xiàn)腳本渲染。進(jìn)一步地,對(duì)于卷積神經(jīng)網(wǎng)絡(luò)而言,其處理層一般包括卷積層、池化層、激活層等多種類型,而就卷積層來說,卷積與反卷積計(jì)算占據(jù)了卷積神經(jīng)網(wǎng)絡(luò)處理70%以上的計(jì)算時(shí)間,采用如opengles3.0的腳本渲染進(jìn)行分塊計(jì)算,可大幅度提高計(jì)算效率,但卷積操作按塊進(jìn)行計(jì)算時(shí),在邊界區(qū)域?yàn)楸苊庠浇?,?huì)涉及大量的“if…else…”條件判斷,難以充分利用腳本渲染的計(jì)算效率。為解決這一問題,根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)處理層為卷積層時(shí),可通過以下方式調(diào)用圖形程序接口,對(duì)與其相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理進(jìn)行與該卷積層對(duì)應(yīng)的渲染處理。首先,獲取卷積層的處理參數(shù),以及與卷積層相連的下一數(shù)據(jù)層的存儲(chǔ)參數(shù)中的特征圖尺寸,處理參數(shù)包括卷積核與步長。在該實(shí)施方式中,處理層b3為卷積層,與其相連的下一數(shù)據(jù)層為數(shù)據(jù)層a4,數(shù)據(jù)層a4的存儲(chǔ)參數(shù)中的特征圖尺寸為78px×62px,處理層b3的處理參數(shù)中卷積核的大小為3px×3px,步長為1。接下來,對(duì)每一個(gè)小紋理,根據(jù)處理參數(shù),對(duì)該小紋理中符合特征圖尺寸的中心區(qū)域進(jìn)行一次渲染處理,處理層b3要進(jìn)行分塊渲染處理的小紋理為圖5所示的小紋理a3-1、a3-2和a3-3,此處以小紋理a3-1進(jìn)行渲染處理的示例說明。根據(jù)上述卷積核和步長,對(duì)小紋理a3-1中尺寸為78px×62px的中心區(qū)域進(jìn)行一次渲染,由于中心區(qū)域?yàn)橐粋€(gè)78px×62px的矩形,而小紋理a3-1的尺寸為80px×64px,在對(duì)中心區(qū)域的渲染時(shí)無需進(jìn)行“if…else…”判斷,以中心區(qū)域的對(duì)角線對(duì)其進(jìn)行分割可得到2個(gè)三角面片,則對(duì)該中心區(qū)域的渲染處理實(shí)際上是渲染這2個(gè)三角面片。最后,在完成一次渲染處理后,對(duì)中心區(qū)域以外的小紋理的邊界區(qū)域進(jìn)行二次渲染處理。很明顯,邊界區(qū)域可視為4條寬度為1px的線段,直接對(duì)這4條線段進(jìn)行渲染即可。上述分步渲染是卷積核大小為3px×3px的情形,若卷積核大小為5px×5px,則邊界區(qū)域相當(dāng)于4條寬度為2px的線段,但二次渲染處理的對(duì)象是寬度為1px的線段,此時(shí)應(yīng)將邊界區(qū)域視為8條寬度為1px的線段以進(jìn)行渲染。依此類推,可得到基于7px×7px、9px×9px和11px×11px等大小的卷積核的渲染方法。在以上基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理過程中,卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層的對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù)需要預(yù)先獲取,根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以利用下列方法來預(yù)先獲取存儲(chǔ)參數(shù)。在該實(shí)施方式中,首先根據(jù)預(yù)先獲取的訓(xùn)練圖片集對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以獲取各數(shù)據(jù)層的特征圖的特征圖尺寸和特征圖數(shù)量。表2示出了該實(shí)施方式下各數(shù)據(jù)層的特征圖尺寸和特征圖數(shù)量的存儲(chǔ)示例,具體如下所示:數(shù)據(jù)層特征圖尺寸(高px×寬px)特征圖數(shù)量a1320px×256px4a280px×64px11a380px×64px12a478px×62px8a578px×62px4表2然后,對(duì)每一個(gè)數(shù)據(jù)層,將該數(shù)據(jù)層的特征圖數(shù)量與4的商作為特征圖對(duì)應(yīng)的小紋理的數(shù)量,小紋理的尺寸與特征圖尺寸一致。數(shù)據(jù)層a1~a5中特征圖的數(shù)量依次為4、11、12、8和4,很明顯數(shù)據(jù)層a2的特征圖數(shù)量11是無法被4整除的,則計(jì)算11與4的商向下取整后再加1的值作為小紋理的數(shù)量,即小紋理的數(shù)量為floor(11/4)+1=3,floor表示向下取整,最終得到數(shù)據(jù)層a1~a5對(duì)應(yīng)的小紋理的數(shù)量分別為1、3、3、2和1。最后,將小紋理的數(shù)量拆分成2個(gè)盡可能接近的數(shù)值的乘積,將這2個(gè)數(shù)值分別作為紋理橫向數(shù)量和紋理縱向數(shù)量。數(shù)據(jù)層a1和a5的小紋理數(shù)量均為1,將1拆分成1×1,則數(shù)據(jù)層a1和a5的紋理橫向數(shù)量和紋理縱向數(shù)量均為1,數(shù)據(jù)層a2和a3的小紋理數(shù)量均為3,將3拆分成1×3,則數(shù)據(jù)層a2和a3的紋理橫向數(shù)量為3,紋理縱向數(shù)量為1,數(shù)據(jù)層a4的小紋理數(shù)量為2,將2拆分成1×2,則數(shù)據(jù)層a4的紋理橫向數(shù)量為2,紋理縱向數(shù)量為1。至此,獲取到了所有數(shù)據(jù)層的存儲(chǔ)參數(shù),將其全部存儲(chǔ)至移動(dòng)終端100中,關(guān)于各數(shù)據(jù)層的存儲(chǔ)參數(shù)示例,具體可參見上文中的表1。圖6示出了本發(fā)明一個(gè)實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置600的示意圖。如圖6所示,基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置600包括輸入模塊610、轉(zhuǎn)換模塊620和處理模塊630。輸入模塊610適于將待處理圖片作為第一個(gè)數(shù)據(jù)層輸入到卷積神經(jīng)網(wǎng)絡(luò)。其中,卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)處理層和多個(gè)數(shù)據(jù)層,其中每個(gè)處理層用于處理與之相連的上一數(shù)據(jù)層中的多個(gè)特征圖,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。轉(zhuǎn)換模塊620與輸入模塊610相連,適于對(duì)每一個(gè)數(shù)據(jù)層,根據(jù)存儲(chǔ)參數(shù),將該數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ)。其中,存儲(chǔ)參數(shù)包括特征圖尺寸、紋理橫向數(shù)量和紋理縱向數(shù)量。特征圖尺寸包括特征圖的高和寬,轉(zhuǎn)換模塊620進(jìn)一步適于獲取該數(shù)據(jù)層中多個(gè)特征圖對(duì)應(yīng)的小紋理;將小紋理按照紋理橫向數(shù)量乘以紋理縱向數(shù)量的樣式進(jìn)行組合,以形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ),大紋理的高為特征圖的高與紋理縱向數(shù)量的乘積,大紋理的寬為特征圖的寬與紋理橫向數(shù)量的乘積。處理模塊630與轉(zhuǎn)換模塊620相連,適于對(duì)每一個(gè)處理層,獲取與之相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。處理模塊630進(jìn)一步適于獲取與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,大紋理由上一數(shù)據(jù)層中的多個(gè)特征圖所形成的小紋理組成;對(duì)每一個(gè)小紋理,獲取該小紋理的各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo);根據(jù)各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo),調(diào)用圖像程序接口對(duì)該小紋理進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。處理層包括卷積層,與該卷積層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理包括由該數(shù)據(jù)層中的多個(gè)特征圖形成的小紋理,處理模塊630還適于獲取卷積層的處理參數(shù),以及與卷積層相連的下一數(shù)據(jù)層的存儲(chǔ)參數(shù)中的特征圖尺寸,處理參數(shù)包括卷積核與步長;對(duì)每一個(gè)小紋理,根據(jù)處理參數(shù),對(duì)該小紋理中符合特征圖尺寸的中心區(qū)域進(jìn)行一次渲染處理;在完成一次渲染處理后,對(duì)中心區(qū)域以外的小紋理的邊界區(qū)域進(jìn)行二次渲染處理。圖7示出了本發(fā)明又一個(gè)實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置700的示意圖。如圖7所示,基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置700的輸入模塊710、轉(zhuǎn)換模塊720和處理模塊730,分別與圖6中基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理裝置600的輸入模塊610、轉(zhuǎn)換模塊620和處理模塊630一一對(duì)應(yīng),是一致的,并新增了與轉(zhuǎn)換模塊720相連的獲取模塊740。獲取模塊740適于預(yù)先獲取卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層的對(duì)應(yīng)于圖形程序接口的存儲(chǔ)參數(shù)。獲取模塊740進(jìn)一步適于根據(jù)預(yù)先獲取的訓(xùn)練圖片集對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以獲取各數(shù)據(jù)層的特征圖的特征圖尺寸和特征圖數(shù)量;對(duì)每一個(gè)數(shù)據(jù)層,將該數(shù)據(jù)層的特征圖數(shù)量與4的商作為特征圖對(duì)應(yīng)的小紋理的數(shù)量,小紋理的尺寸與特征圖尺寸一致;將小紋理的數(shù)量拆分成2個(gè)盡可能接近的數(shù)值的乘積,將這2個(gè)數(shù)值分別作為紋理橫向數(shù)量和紋理縱向數(shù)量。關(guān)于基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理的具體步驟以及實(shí)施例,在基于圖2~5的描述中已經(jīng)詳細(xì)公開,此處不再贅述?,F(xiàn)有的在移動(dòng)終端基于卷積神經(jīng)網(wǎng)絡(luò)處理圖像的方法,是利用gpu和如opengles的圖形程序接口來實(shí)現(xiàn)浮點(diǎn)運(yùn)算的。但在通過紋理存儲(chǔ)數(shù)據(jù)時(shí),會(huì)導(dǎo)致大量紋理的創(chuàng)建,而opengles在紋理渲染過程中是需要不斷綁定和解綁不同紋理的,導(dǎo)致了計(jì)算效率下降。而且cnn中存在數(shù)量較多的卷積層,對(duì)于特征圖邊界的判斷需要使用如“if…else…”的條件判斷語句,而此類語句容易給渲染過程帶來效率低下的問題。根據(jù)本發(fā)明實(shí)施例的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方案,首先將待處理圖片作為第一個(gè)數(shù)據(jù)層輸入到卷積神經(jīng)網(wǎng)絡(luò)中開始進(jìn)行圖像處理,在處理過程中,對(duì)于卷積神經(jīng)網(wǎng)絡(luò)中的每一個(gè)數(shù)據(jù)層,會(huì)根據(jù)該數(shù)據(jù)層對(duì)應(yīng)與圖形程序接口的存儲(chǔ)參數(shù),將這一數(shù)據(jù)層的多個(gè)特征圖組合形成對(duì)應(yīng)的大紋理進(jìn)行存儲(chǔ),則與該數(shù)據(jù)層相連的下一處理層即獲取上述大紋理,調(diào)用圖形程序接口對(duì)其進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成與之相連的下一數(shù)據(jù)層中的多個(gè)特征圖,而下一數(shù)據(jù)層則會(huì)繼續(xù)執(zhí)行將多個(gè)特征圖組合形成大紋理進(jìn)行存儲(chǔ)的步驟。換言之,對(duì)于每一個(gè)處理層,相當(dāng)于輸入該處理層的數(shù)據(jù)是一個(gè)大紋理,而從該處理層輸出的數(shù)據(jù)也是一個(gè)大紋理,處理層的計(jì)算過程則轉(zhuǎn)換為基于圖形程序接口的腳本渲染過程。在上述技術(shù)方案中,對(duì)于各數(shù)據(jù)層,通過將該數(shù)據(jù)層的多個(gè)特征圖進(jìn)行組合形成對(duì)應(yīng)的大紋理,以提供給與之相連的下一處理層進(jìn)行處理,而對(duì)于各處理層,則對(duì)與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理中的各小紋理執(zhí)行分塊渲染,不僅無需大量創(chuàng)建紋理,避免在紋理渲染過程中不斷綁定和解綁紋理的重復(fù)操作,而且處理層的計(jì)算環(huán)節(jié)完全在gpu中完成,無需cpu與gpu的數(shù)據(jù)來回切換,提高了計(jì)算效率。進(jìn)一步地,當(dāng)處理層具體為卷積層時(shí),對(duì)當(dāng)前輸入的大紋理中的各小紋理,基于邊界區(qū)域進(jìn)行分次渲染,以降低因防止越界而進(jìn)行條件判斷的次數(shù),充分利用腳本渲染的計(jì)算效率,實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的加速。b9.如b7或8所述的裝置,所述處理模塊進(jìn)一步適于:獲取與該處理層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理,所述大紋理由上一數(shù)據(jù)層中的多個(gè)特征圖所形成的小紋理組成;對(duì)每一個(gè)小紋理,獲取該小紋理的各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo);根據(jù)各頂點(diǎn)的紋理坐標(biāo)與像素坐標(biāo),調(diào)用所述圖形程序接口對(duì)該小紋理進(jìn)行與該處理層對(duì)應(yīng)的渲染處理,以生成下一數(shù)據(jù)層中的多個(gè)特征圖。b10.如b7-9中任一項(xiàng)所述的裝置,所述處理層包括卷積層,與該卷積層相連的上一數(shù)據(jù)層對(duì)應(yīng)的大紋理包括由該數(shù)據(jù)層中的多個(gè)特征圖形成的小紋理,所述處理模塊還適于:獲取所述卷積層的處理參數(shù),以及與所述卷積層相連的下一數(shù)據(jù)層的存儲(chǔ)參數(shù)中的特征圖尺寸,所述處理參數(shù)包括卷積核與步長;對(duì)每一個(gè)小紋理,根據(jù)所述處理參數(shù),對(duì)該小紋理中符合所述特征圖尺寸的中心區(qū)域進(jìn)行一次渲染處理;在完成一次渲染處理后,對(duì)所述中心區(qū)域以外的小紋理的邊界區(qū)域進(jìn)行二次渲染處理。b11.如b7-10中任一項(xiàng)所述的裝置,還包括獲取模塊,適于預(yù)先獲取所述卷積神經(jīng)網(wǎng)絡(luò)中各數(shù)據(jù)層的對(duì)應(yīng)于所述圖形程序接口的存儲(chǔ)參數(shù)。b12.如b11所述的裝置,所述獲取模塊進(jìn)一步適于:根據(jù)預(yù)先獲取的訓(xùn)練圖片集對(duì)所述卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以獲取各數(shù)據(jù)層的特征圖的特征圖尺寸和特征圖數(shù)量;對(duì)每一個(gè)數(shù)據(jù)層,將該數(shù)據(jù)層的特征圖數(shù)量與4的商作為特征圖對(duì)應(yīng)的小紋理的數(shù)量,所述小紋理的尺寸與特征圖尺寸一致;將所述小紋理的數(shù)量拆分成2個(gè)盡可能接近的數(shù)值的乘積,將這2個(gè)數(shù)值分別作為紋理橫向數(shù)量和紋理縱向數(shù)量。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組間可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組間組合成一個(gè)模塊或單元或組間,以及此外可以把它們分成多個(gè)子模塊或子單元或子組間。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。這里描述的各種技術(shù)可結(jié)合硬件或軟件,或者它們的組合一起實(shí)現(xiàn)。從而,本發(fā)明的方法和設(shè)備,或者本發(fā)明的方法和設(shè)備的某些方面或部分可采取嵌入有形媒介,例如軟盤、cd-rom、硬盤驅(qū)動(dòng)器或者其它任意機(jī)器可讀的存儲(chǔ)介質(zhì)中的程序代碼(即指令)的形式,其中當(dāng)程序被載入諸如計(jì)算機(jī)之類的機(jī)器,并被所述機(jī)器執(zhí)行時(shí),所述機(jī)器變成實(shí)踐本發(fā)明的設(shè)備。在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備一般包括處理器、處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件),至少一個(gè)輸入裝置,和至少一個(gè)輸出裝置。其中,存儲(chǔ)器被配置用于存儲(chǔ)程序代碼;處理器被配置用于根據(jù)該存儲(chǔ)器中存儲(chǔ)的所述程序代碼中的指令,執(zhí)行本發(fā)明的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法。以示例而非限制的方式,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息。通信介質(zhì)一般以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。以上的任一種的組合也包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對(duì)象僅僅表示涉及類似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本
技術(shù)領(lǐng)域:
內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。當(dāng)前第1頁12