亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android平臺(tái)圖像分類系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2021-11-26 09:44:32
        關(guān)鍵詞:分類系統(tǒng)

        薛 賓

        (天津市南開(kāi)區(qū)職工大學(xué),天津 300100)

        一、引言

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

        二、圖像識(shí)別與分類算法

        (一)圖像的預(yù)處理

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

        1.彩色圖像的灰度化

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

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

        2.灰度直方圖

        灰度的分布情況是圖像的一個(gè)重要特征。灰度直方圖能夠反映出某種灰度在圖像中的出現(xiàn)的頻率,它實(shí)際上是灰度級(jí)的函數(shù),它的操作可以增強(qiáng)圖像,它的計(jì)算很簡(jiǎn)單,就是統(tǒng)計(jì)出每種灰度級(jí)的個(gè)數(shù),可以通過(guò)循環(huán)語(yǔ)句檢測(cè)圖像中的所有元素來(lái)完成。本系統(tǒng)的實(shí)現(xiàn)中,使用gArray數(shù)組來(lái)存儲(chǔ)圖像中的每一個(gè)像素的灰度值,gArray數(shù)組長(zhǎng)度為Width*Heigh,灰度圖像已經(jīng)進(jìn)行過(guò)預(yù)處理,每個(gè)像素點(diǎn)的RGB分量值相同,所以遍歷gArray數(shù)組中的元素統(tǒng)計(jì)出灰度級(jí)的個(gè)數(shù),可以設(shè)置步長(zhǎng)為3,也就是每隔3個(gè)元素進(jìn)行統(tǒng)計(jì)。直方圖的數(shù)據(jù)信息存放在數(shù)組長(zhǎng)度為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. 灰度拉伸

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

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

        (二)圖像紋理分析

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

        灰度共生矩陣是較為有效的圖像紋理分析方法,它很好的反應(yīng)了灰度級(jí)空間的相關(guān)性?;叶裙采仃噷?shí)際上是一個(gè)矩陣函數(shù)。它反映出圖像中某距離的像素之間具有某個(gè)灰度的情況。

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

        當(dāng)方向θ=0°,距離為d時(shí),其計(jì)算公式為:

        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}

        當(dāng)方向θ=90°,距離為d時(shí),其計(jì)算公式為:

        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ù)值可以顯示出圖像紋理的粗細(xì);P(i,j)的灰度相關(guān)性可以表示矩陣行或列之間的相似度;P(i,j)的熵和能量可以反映出圖像分布的均勻度。

        三、 圖像識(shí)別算法

        本系統(tǒng)的圖像識(shí)別算法采用的是SVM(中文支持向量機(jī))算法。SVM通??梢杂脕?lái)處理分類問(wèn)題,所以本系統(tǒng)使用SVM來(lái)進(jìn)行圖像分類工作。

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

        四、OpenCV框架

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

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

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

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

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

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

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

        六、系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)

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

        (一) 分類學(xué)習(xí)模塊

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

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

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

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

        (二)分類預(yù)測(cè)模塊

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

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

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

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

        七、總結(jié)

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

        猜你喜歡
        分類系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        分類算一算
        垃圾分類的困惑你有嗎
        大眾健康(2021年6期)2021-06-08 19:30:06
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        分類討論求坐標(biāo)
        半沸制皂系統(tǒng)(下)
        數(shù)據(jù)分析中的分類討論
        教你一招:數(shù)的分類
        天天干夜夜躁| 天堂√在线中文官网在线| 日本丰满人妻xxxxxhd| 国产精品18久久久久网站| 青青草视频在线播放81| 日本区一区二区三视频 | 在线播放免费播放av片| 国产喷水在线观看| 在线观看免费人成视频国产| 中文字幕色偷偷人妻久久一区 | 欧美v亚洲v日韩v最新在线| 日韩精品久久久中文字幕人妻| 中文字幕亚洲综合久久久| 亚洲av中文无码字幕色本草| 老熟女高潮一区二区三区| 国产av综合一区二区三区最新| 一区二区三区一片黄理论片| 亚洲人成自拍网站在线观看| 精品爆乳一区二区三区无码av| 91情侣在线精品国产免费| 日本一区二区三区不卡在线| 特黄做受又硬又粗又大视频小说| 久久久窝窝午夜精品| 丰满少妇一区二区三区专区| 久久综合精品人妻一区二区三区 | 一区二区三区日韩精品视频| 亚洲伊人一本大道中文字幕 | 国产高清一区二区三区三州| 性色欲情网站| 精品88久久久久88久久久| 亚洲av网站首页在线观看| 青青草精品在线视频观看| 人妻暴雨中被强制侵犯在线| 少妇的诱惑免费在线观看| 亚洲熟女熟妇另类中文| 狠狠噜狠狠狠狠丁香五月| 国产成人精品电影在线观看18 | 国产人妻丰满熟妇嗷嗷叫| 亚洲成人观看| 亚洲少妇一区二区三区老| 日日日日做夜夜夜夜做无码|