国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺圖像分類系統(tǒng)的設計與實現(xiàn)

2021-11-26 09:44:32
關(guān)鍵詞:分類器灰度分類

薛 賓

(天津市南開區(qū)職工大學,天津 300100)

一、引言

隨著移動終端設備的普及,移動終端設備上的各種應用已經(jīng)給人們的生活帶來了巨大的便捷?;谝苿咏K端設備上的圖像識別和分類技術(shù)已是目前研究的熱點。移動終端設備因為體積比較小,便于攜帶,人們可以隨時使用,對于拍攝的照片可以根據(jù)圖像分類技術(shù)自動存儲到特定的文件中,省去了人工分類的時間;使用移動設備拍照時,通過圖像分類技術(shù)可以自動識別所拍的景物,實現(xiàn)自動調(diào)節(jié)光圈焦距等功能;圖像分類技術(shù)還可以應用在醫(yī)院診斷治療、Internet信息檢索和數(shù)據(jù)過濾等方面。Android作為主要用于移動設備終端的操作系統(tǒng),經(jīng)過不斷的發(fā)展,目前市場占有率已近80%。因此,研究基于Android平臺的圖像分類技術(shù)具有重要的現(xiàn)實意義。

二、圖像識別與分類算法

(一)圖像的預處理

為了提取、匹配、識別圖像特征,使其處理效果更加真實,需要對圖像進行預處理操作。經(jīng)過圖像預處理后,消除了圖像中的沒有用的信息,從而簡化了數(shù)據(jù),使得圖像的信息更加易于檢測。

1.彩色圖像的灰度化

彩色圖像在進行圖像處理前要提取出色彩特征,也就是灰度化。彩色圖像存儲信息通常采用24位RGB模式。彩色圖像就是紅(R)、綠(G)、藍(B)三原色色彩深淺的組合,存儲時需要占用三個字節(jié),每個顏色分別存儲;灰度圖像就是沒有色彩,紅綠藍三個顏色的取值相同,存儲時占用一個字節(jié)。經(jīng)比較本系統(tǒng)采用加權(quán)平均法計算灰度圖像的灰度值,該方法更為合理,它是將紅(R)、綠(G)、藍(B)做不同權(quán)值的加權(quán)處理后得到的。計算灰度值的公式如下:

F(I,j) = 0.299R(I,j)+ 0.587G(I,j),+0.114B(I,j))/3

2.灰度直方圖

灰度的分布情況是圖像的一個重要特征。灰度直方圖能夠反映出某種灰度在圖像中的出現(xiàn)的頻率,它實際上是灰度級的函數(shù),它的操作可以增強圖像,它的計算很簡單,就是統(tǒng)計出每種灰度級的個數(shù),可以通過循環(huán)語句檢測圖像中的所有元素來完成。本系統(tǒng)的實現(xiàn)中,使用gArray數(shù)組來存儲圖像中的每一個像素的灰度值,gArray數(shù)組長度為Width*Heigh,灰度圖像已經(jīng)進行過預處理,每個像素點的RGB分量值相同,所以遍歷gArray數(shù)組中的元素統(tǒng)計出灰度級的個數(shù),可以設置步長為3,也就是每隔3個元素進行統(tǒng)計。直方圖的數(shù)據(jù)信息存放在數(shù)組長度為256的一維數(shù)組countPixel中。關(guān)鍵代碼如下:

Array.Clear(countPixel,0,256);

For(int I = 0;I < bitmap.Width * bitmap.Height; i+=3)

{

Byte temp = grayArray[i];

countPixel[temp]++;

}

3. 灰度拉伸

灰度拉伸是一種圖像點運算,也是一種灰度變換。為了改善輸出圖像,通過該算法將某段灰度區(qū)間進行拉伸。本系統(tǒng),對彩色圖像灰度化后采用下面的算式進行全等級直方圖拉伸。

f(x,y)為輸入圖像;改善后的輸出圖像為g(x,y);輸入圖像的最小灰度級A = min[f(x,y)],線性映射到0;最大灰度級B = max[f(x,y)],線性映射到255。

(二)圖像紋理分析

本系統(tǒng)選擇基于紋理的圖像分類技術(shù),它能夠通過像素點的灰度值找出物體表面的內(nèi)在規(guī)律和結(jié)構(gòu)描述。圖像紋理特征是一種全局特征,需要統(tǒng)計計算多個像素區(qū)域。圖像中的元素或基元會存在一些排列規(guī)則,這些排列規(guī)則形成的重復模型叫做圖像紋理特征。分析圖像的紋理特征,就是要提取和分析圖像灰度空間的規(guī)律。

灰度共生矩陣是較為有效的圖像紋理分析方法,它很好的反應了灰度級空間的相關(guān)性。灰度共生矩陣實際上是一個矩陣函數(shù)。它反映出圖像中某距離的像素之間具有某個灰度的情況。

灰度共生矩陣實際上是兩個像素灰度的聯(lián)合直方圖。設共生矩陣元素記為p(i,j|d,θ),其中i和j是一對像元的兩個灰度概率,θ是方向,d是距離。θ的取值為0°表示水平方向,取值為90°表示垂直方向。Zc、Zr分別是水平和垂直空間域。l、n、k、m在其所選的計算窗口中變動。

當方向θ=0°,距離為d時,其計算公式為:

P(i,j|d,0)=#{[(k,l),(m,n)]∈(Zr*Zc)|k-m=0,|l-n|=d},f(k,l)=i,f(m,n)=j}

當方向θ=90°,距離為d時,其計算公式為:

P(i,j|d,90)=#{[(k,l),(m,n)]∈(Zr*Zc)|k-m=d,l-n=0},f(k,l)=i,f(m,n)=j}

P(i,j)可反映出圖像的許多紋理特征。P(i,j)的數(shù)值可以顯示出圖像紋理的粗細;P(i,j)的灰度相關(guān)性可以表示矩陣行或列之間的相似度;P(i,j)的熵和能量可以反映出圖像分布的均勻度。

三、 圖像識別算法

本系統(tǒng)的圖像識別算法采用的是SVM(中文支持向量機)算法。SVM通??梢杂脕硖幚矸诸悊栴},所以本系統(tǒng)使用SVM來進行圖像分類工作。

SVM是最優(yōu)秀的分類算法之一,屬于有監(jiān)督學習算法的一種。因為SVM只由支持向量決定,所以它適合小樣本的機器學習。使用SVM解決數(shù)據(jù)分類問題,可以使用核函數(shù)。為了構(gòu)建良好性能的分類器,經(jīng)過比較多個常用的核函數(shù),本系統(tǒng)選用徑向基函數(shù)(RBF),它參數(shù)較少對模型的復雜度影響更小,能夠?qū)崿F(xiàn)非線性映射,參數(shù)較少對模型的復雜度影響更小,穩(wěn)定性更好。本系統(tǒng)采用的核函數(shù)是徑向基函數(shù)(RBF)。

四、OpenCV框架

OpenCV是一個計算機視覺庫。由于開源性和跨平臺性,加速了它的發(fā)展。它提供了JAVA等多種語言的接口,包含圖像處理方面的很多算法,并且允許使用和修改它的源代碼。它支持移動平臺的Android操作系統(tǒng),它的多數(shù)模塊使用C++語言編寫,少數(shù)模塊使用C語言編寫。它的特點是輕量級且高效率,因此本系統(tǒng)的設計采用OpenCV視覺庫。

分析圖像的相似數(shù)據(jù)信息的排序算法,經(jīng)過度中心性算法、半局部中心性算法、介數(shù)中心性算法三種比較,本系統(tǒng)選擇半局部中心性算法,該算法排序效果遠好于其他兩個算法,時間復雜度隨數(shù)據(jù)線性增長。

該算法中, 定義N(W)為W節(jié)點的兩層鄰居度,定義

則i節(jié)點的局部中心性為:

五、 開發(fā)環(huán)境

圖像分類系統(tǒng)的開發(fā)環(huán)境是Windows7,開發(fā)語言是JAVA,核心代碼部分使用了C++,應用程序的開發(fā)的工具選擇的是Eclipse,系統(tǒng)的開發(fā)環(huán)境配置的是64位Eclipse和64位JDK。在Eclipse中需要安裝ADT插件,用于搭建Android開發(fā)環(huán)境;然后要安裝Android SDK插件,它提供的工具可以進行Android應用程序調(diào)試。

本系統(tǒng)的圖像處理開發(fā)使用Android+OpenCV方式。在Android系統(tǒng)上,利用OpenCV進行開發(fā)的方式有兩種:一種方式是使用OpenCV提供的C++ API,需要使用NDK插件和JNI接口,NDK可以開發(fā)C/C++的動態(tài)庫,并自動打包成APK,然后借助JNI街口使用JAVA語言調(diào)用C/C++代碼,實現(xiàn)不同編程代碼間的交互。另一種方式是使用動態(tài)的OpenCV庫,OpenCV直接編譯庫,API直接完成操作。本系統(tǒng)采用的是第一種方式,使用NDK插件和JNI接口。本系統(tǒng)采用JAVA語言開發(fā)程序,但核心的圖像分類模塊使用C++語言進行編寫,第二種開發(fā)方式不支持使用C++代碼,第一種開發(fā)方式中可以使用JNI接口調(diào)用C++編碼。

六、系統(tǒng)模塊設計與實現(xiàn)

本系統(tǒng)主要分為分類學習和分類測試兩大模塊。分類學習模塊的主要功能是從測試樣本中提取HOG特征向量,并將學習結(jié)果保存到XML文件中。分類預測模塊的主要功能是拍照、加載圖像和分類預測。

(一) 分類學習模塊

分類學習模塊使用非線性分類器,對多個分類數(shù)不小于二的測試樣本進行學習。其中圖像分類器使用基于SVM算法的多分類器,該分類器提取測試樣本的HOG特征,并按照預設的類別編號進行學習,最后把學習的結(jié)果存儲為XML格式。

分類學習模塊中,第一步要采集測試樣本。樣本60%來源于網(wǎng)上爬取、選出的合適圖像,其他40%樣本來源于相機拍攝的實物圖像。為了提高分類預測的分辨率,待分類圖像的選取要盡量減少相似樣本的重復率,同時要反映出待分類圖像各個角度、各種亮度等情況下的樣式。第二步,構(gòu)建SVM支持向量機多分類器。經(jīng)過多個常用核函數(shù)的比較,本系統(tǒng)選擇徑向基函數(shù)(RBF),它的穩(wěn)定性更好,然后需要設置RBF的參數(shù)。

目前,選取參數(shù)的方法要依據(jù)經(jīng)驗判定一個大致的范圍,根據(jù)分類預測的結(jié)果在設定范圍內(nèi)進行微調(diào),直到調(diào)整為最佳的分類預測分辨率。第三步,提取全部測試樣本的分類編號和HOG特征向量。測試樣本在學習之前,要預先為它們進行編號。提取測試樣本的HOG向量特征,首先要灰度化圖像,其次將圖像劃分成小的連續(xù)區(qū)域,然后計算出每個連續(xù)區(qū)域中的每個像素的梯度,最后統(tǒng)計出每個連續(xù)區(qū)域的梯度直方圖。第四步,測試樣本的學習。通過分類編號或HOG特征向量將測試樣本輸入,然后調(diào)用SVM分類器的學習方法完成測試樣本的學習,最后輸出學習結(jié)果到XML文件中。

實現(xiàn)圖像分類器功能使用C++進行編碼。首先,需要設定全局變量,包括測試樣本TXT文件的路徑、學習結(jié)果XML文件的路徑、圖片的寬高等。其次,要讀取指定文件下的SVM測試樣本文件中的信息,得到測試樣本圖片的存儲路徑和預設分類;在測試樣本文件中第一行是圖片的絕對路徑,緊跟著的下一行則是該圖片對應的分類編號,編號設置為不同的整數(shù)即可,但至少應有兩種分類,當然也支持多分類,如果分類少于兩種會報錯。再次,通過循環(huán)結(jié)構(gòu)按照樣本圖片路徑讀取樣本圖片,并提取出每張樣本圖片的HOG特征描述向量并保存到矩陣中。最后,HOG特征提取完成后調(diào)用Opencv中的SVM分類器設置其相關(guān)參數(shù),并對樣本進行學習,學習結(jié)果使用save方法保存到XML文件中。

(二)分類預測模塊

分類預測模塊在Android系統(tǒng)中運行,需要提取圖像的HOG特征來進行分類預測,并與XML文件中的特征信息進行比對。在實現(xiàn)HOG特征的提取與對比時,C++編碼的效率會遠高于JAVA編碼。因此,本模塊通過使用JNI技術(shù),核心部分將在JAVA中調(diào)用C++代碼來實現(xiàn)。

分類預測模塊分為相冊、拍照和圖像分類三部分。相冊是從設備存儲空間或外置SD卡上獲取待分類的圖像。相機是調(diào)用設備的相機功能拍照,將拍攝得到的照片作為帶分類的圖像。圖像分類是本模塊的核心,是通過 JNI接口調(diào)用C++函數(shù)進行分類預測,以分類標號的形式返回預測結(jié)果,在JAVA中通過對編號進行判斷解析成相應的文字。

圖像分類預測模塊執(zhí)行時需要在頁面中添加菜單的監(jiān)聽事件,加載OpenCV運行庫,運行包含圖像分類預測函數(shù)的C++代碼的imageProc庫,根據(jù)用戶的選擇打開手機的圖像管理程序或相機功能進行相應的功能處理,檢測已存在的圖像將通過JNI傳遞文件地址給C++函數(shù),該函數(shù)完成圖像分類預測后將返回圖像的分類編號,JAVA主程序接收到JNI接口返回的圖像分類編號,根據(jù)編號解析成文字內(nèi)容,顯示在主界面中。

相機功能的調(diào)用有intent對象方法和SurfaceView對象方式兩種。本系統(tǒng)使用intent對象方法直接調(diào)用系統(tǒng)相機。兩種方式的代碼編寫量差不多,但SurfaceView對象方式直接調(diào)用硬件資源,不同的機型都需要進行適配,而本系統(tǒng)主要是對圖像進行分類,對相機功能要求穩(wěn)定、易用即可,因此本系統(tǒng)使用intent對象方法直接調(diào)用系統(tǒng)相機。

七、總結(jié)

圖像分類技術(shù)有助于人們快速的識別移動終端設備上的海量圖像數(shù)據(jù)。本系統(tǒng)是基于向量機理論,采用SVM算法以及OpenCV框架實現(xiàn)了移動平臺Android系統(tǒng)下的圖像分類功能。從實驗數(shù)據(jù)上看,圖像測試樣本分辨率能達到95%以上,圖像分類的效果較理想。移動終端設備上的圖像分類功能應用比較廣泛,是目前研究的熱點,它也是計算機視覺處理中的基本任務之一。本系統(tǒng)對圖像分類技術(shù)的研究有重要意義。

猜你喜歡
分類器灰度分類
采用改進導重法的拓撲結(jié)構(gòu)灰度單元過濾技術(shù)
基于灰度拉伸的圖像水位識別方法研究
分類算一算
分類討論求坐標
數(shù)據(jù)分析中的分類討論
BP-GA光照分類器在車道線識別中的應用
電子測試(2018年1期)2018-04-18 11:52:35
教你一招:數(shù)的分類
基于最大加權(quán)投影求解的彩色圖像灰度化對比度保留算法
自動化學報(2017年5期)2017-05-14 06:20:56
加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
静安区| 景东| 张掖市| 当阳市| 依安县| 卓尼县| 洛川县| 武陟县| 辽阳市| 金昌市| 东辽县| 冷水江市| 明光市| 米泉市| 定陶县| 腾冲县| 阿拉善右旗| 称多县| 建平县| 广德县| 舟山市| 哈尔滨市| 南昌市| 怀宁县| 平原县| 苏尼特右旗| 东山县| 泰来县| 大姚县| 南乐县| 秦皇岛市| 楚雄市| 新乡市| 濉溪县| 壤塘县| 新田县| 新闻| 鱼台县| 西藏| 缙云县| 乐陵市|