![圖像識(shí)別本科畢業(yè)設(shè)計(jì)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/953ab469-6873-4f0b-8144-3e2eb08891fd/953ab469-6873-4f0b-8144-3e2eb08891fd1.gif)
![圖像識(shí)別本科畢業(yè)設(shè)計(jì)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/953ab469-6873-4f0b-8144-3e2eb08891fd/953ab469-6873-4f0b-8144-3e2eb08891fd2.gif)
![圖像識(shí)別本科畢業(yè)設(shè)計(jì)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/953ab469-6873-4f0b-8144-3e2eb08891fd/953ab469-6873-4f0b-8144-3e2eb08891fd3.gif)
![圖像識(shí)別本科畢業(yè)設(shè)計(jì)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/953ab469-6873-4f0b-8144-3e2eb08891fd/953ab469-6873-4f0b-8144-3e2eb08891fd4.gif)
![圖像識(shí)別本科畢業(yè)設(shè)計(jì)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/953ab469-6873-4f0b-8144-3e2eb08891fd/953ab469-6873-4f0b-8144-3e2eb08891fd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 編 號(hào): 審定成績: 重慶郵電大學(xué)畢業(yè)設(shè)計(jì)(論文)設(shè)計(jì)(論文)題目:基于C+/MATLAB的圖像識(shí)別技術(shù)的仿真研究學(xué) 院 名 稱 :通信與信息學(xué)院學(xué) 生 姓 名 :周易德專 業(yè) :電子信息工程班 級(jí) :0121208學(xué) 號(hào) :2012214709指 導(dǎo) 教 師 :余艷英答辯組 負(fù)責(zé)人 :填表時(shí)間:2016年 5 月重慶郵電大學(xué)教務(wù)處制重慶郵電大學(xué)本科畢業(yè)設(shè)計(jì)(論文)摘 要圖像識(shí)別是一種針對(duì)圖像的模式識(shí)別。圖像識(shí)別的目的是使得計(jì)算機(jī)擁有像人類一樣能從圖片中認(rèn)識(shí)事物分析事物的能力。本文對(duì)圖像識(shí)別的技術(shù)進(jìn)行了調(diào)研,并列舉出了圖像識(shí)別核心技術(shù)。圖像識(shí)別系統(tǒng)分為三個(gè)部分:預(yù)處理、特征提取和模式識(shí)別。M
2、ATLAB是算法設(shè)計(jì)和仿真實(shí)驗(yàn)的有力工具,而C/C+語言是最常見的編程語言。本文簡單地介紹了MATLAB與C/C+混合編程方法,并舉例說明了如何進(jìn)行混編。最后還開展了兩組有代表性的圖形識(shí)別仿真實(shí)驗(yàn)人臉識(shí)別和手寫數(shù)字識(shí)別。在兩組實(shí)驗(yàn)中,應(yīng)用了不同的特征提取技術(shù)和模式識(shí)別技術(shù),并對(duì)不同方法進(jìn)行了對(duì)比,對(duì)不同實(shí)現(xiàn)方式進(jìn)行了優(yōu)劣進(jìn)行了討論。仿真中主要用到的技術(shù)有概率神經(jīng)網(wǎng)絡(luò)、SVD降維和深度神經(jīng)網(wǎng)絡(luò)等。【關(guān)鍵詞】圖像識(shí)別 人臉識(shí)別 手寫數(shù)字識(shí)別 pnn svd dnnABSTRACTImage recognition is a pattern recognition for an image. The
3、 purpose is to make image recognition computer, like humans have the ability to understand things from the picture analysis of things. In this paper, the image recognition technology research, and outlines the core image recognition technology. Image recognition system is divided into three parts: p
4、reprocessing, feature extraction and pattern recognition. MATLAB is a powerful tool for algorithm design and simulation, and C / C + programming language is the most common language. This article briefly introduces the MATLAB and C / C + mixed programming, and illustrates how mixed. The last two gro
5、ups have also carried out a representative simulation of pattern recognition - recognition and handwriting digit recognition. In two experiments, the application of different feature extraction and pattern recognition technology, and the different methods were compared for different ways to achieve
6、the advantages and disadvantages are discussed. Simulation technology is mainly used in probabilistic neural network, SVD depth dimension reduction and neural networks.【Key words】Image Recognition Face Recognition Handwritten Digital Recognition pnn dnn目 錄前 言1第一章 圖像識(shí)別技術(shù)概述2第一節(jié) 圖像處理和分析技術(shù)介紹2一、圖像處理核心工具列
7、舉2二、圖像分析核心技術(shù)簡介4第二節(jié) 模式識(shí)別技術(shù)介紹5一、模式與特征概念簡介5二、分類器設(shè)計(jì)簡介6第三節(jié) 本章小結(jié)8第二章 MATLAB與C/C+混合編程簡介9第一節(jié) MATLAB與C/C+混合編程特點(diǎn)9一、MATLAB M 語言特點(diǎn)9二、C/C+語言特點(diǎn)9三、MATLAB與C/C+混合編程優(yōu)點(diǎn)10第二節(jié) MATLAB與C/C+混合編程優(yōu)點(diǎn)的主要方式10一、通過MEX文件實(shí)現(xiàn)混合編程10二、通過dll實(shí)現(xiàn)混合編程10三、MATLAB Coder實(shí)現(xiàn)混合編程11四、調(diào)用C/C+程序生成可執(zhí)行文件11五、一些次要混編方法Active X、COM 、NET11第三節(jié) MATLAB與C/C+混編開發(fā)
8、環(huán)境介紹12第四節(jié) mx-API介紹及混合編程舉例12一、接口數(shù)據(jù)類型及接口函數(shù)介紹12二.舉例介紹13第五節(jié) 本章小結(jié)14第三章 圖像識(shí)別仿真與結(jié)果15第一節(jié) 手寫數(shù)字識(shí)別仿真研究15一、意義和難點(diǎn)15二、實(shí)驗(yàn)內(nèi)容簡介15三、實(shí)驗(yàn)步驟17四、實(shí)驗(yàn)結(jié)果18五、討論與分析19第二節(jié) 人臉識(shí)別仿真研究19一、研究意義與難點(diǎn)19二、實(shí)驗(yàn)內(nèi)容介紹19三、實(shí)驗(yàn)步驟20四、實(shí)驗(yàn)結(jié)果20五、討論與分析21第三節(jié) 本章小結(jié)21結(jié) 論22致 謝23參考文獻(xiàn)24附 錄25一、英文原文:25- 55 -前 言人類通過眼、耳、喉、鼻和舌等各種感官接受外界的刺激和信息,其中超過83%的信息來自于眼睛。俗話說“百聞不如一
9、見”,就是在說語言描述不如視覺的一目了然。隨著數(shù)字圖像處理技術(shù)的發(fā)展和實(shí)際應(yīng)用的需求,許多問題不再要求計(jì)算機(jī)只輸出處理后的圖片,而是將經(jīng)處理的圖片再進(jìn)行分割和描述,并提取主要特征,進(jìn)而加以判決分類,這種技術(shù)就是基于圖像的模式識(shí)別即圖像識(shí)別。圖像識(shí)別技術(shù)是利用計(jì)算機(jī)對(duì)圖片數(shù)據(jù)的處理,以模仿人類視覺系統(tǒng),達(dá)到人類所具有的對(duì)圖片內(nèi)容進(jìn)行認(rèn)識(shí)的能力,以代替人去完成某些信息分別和辨別的能力。圖像識(shí)別屬于當(dāng)代計(jì)算機(jī)科學(xué)研究的重要領(lǐng)域,已經(jīng)發(fā)展成為一個(gè)獨(dú)立的學(xué)科。這學(xué)科發(fā)展相當(dāng)迅猛,應(yīng)用范圍越來越廣泛,幾乎涵蓋了所有生產(chǎn)部門。目前,光學(xué)字符識(shí)別OCR,以及生物特征識(shí)別(指紋、人臉和虹膜等)已經(jīng)在日常生活中廣
10、泛應(yīng)用。光學(xué)字符識(shí)別(Optical Character Recognition,OCR)的目標(biāo)是在復(fù)雜環(huán)境下識(shí)別機(jī)器讀取的字符信息。OCR處理的信息可分為三大類:文字信息識(shí)別、數(shù)據(jù)識(shí)別信息和條形碼識(shí)別信息。生物特征識(shí)別則是采用某種技術(shù)和手段對(duì)人的身份進(jìn)行標(biāo)識(shí),從而依據(jù)標(biāo)識(shí)對(duì)人進(jìn)行身份識(shí)別的技術(shù)。最常見的生物特征識(shí)別是人臉識(shí)別、指紋識(shí)別和虹膜識(shí)別,這些身份識(shí)別方式都是通過人的生物特征實(shí)現(xiàn)的,這些特征有不易丟失、不易偽造、易攜帶、不易破解等優(yōu)點(diǎn)。本文即使要對(duì)這兩類圖像識(shí)別進(jìn)行深入調(diào)研,并尋找解決方法。本文組織形式如下:第一章:定義圖像識(shí)別,并介紹圖像識(shí)別系統(tǒng)需要的技術(shù)種類。第二章:具體的介紹了幾
11、種圖像識(shí)別技術(shù),并介紹這些技術(shù)在圖像識(shí)別中的作用。第三章:介紹了MATLAB與C/C+混合編程方法,并距離說明了如何實(shí)現(xiàn)混編。第四章:介紹了實(shí)驗(yàn)軟硬件平臺(tái),進(jìn)行并討論了兩組實(shí)驗(yàn)。結(jié) 論 :最后總結(jié)了仿真實(shí)驗(yàn)過程中獲得的經(jīng)驗(yàn)和遇見的難題。第一章 圖像識(shí)別技術(shù)概述圖像識(shí)別是一種針對(duì)圖像的模式識(shí)別。人類具有對(duì)各種事物和現(xiàn)象進(jìn)行分析、描述和判斷的能力,而圖像識(shí)別就是通過輸入圖像使計(jì)算機(jī)擁有類似自動(dòng)分析事物的能力。圖像識(shí)別貫穿了圖像處理、圖像分析和模式識(shí)別三個(gè)不同層次。本章將從這三個(gè)方面來簡單介紹這些技術(shù)??偟膩碇v,圖像處理是從原始圖像到處理后圖像的處理過程;圖像分析是從圖片到目標(biāo)表達(dá)的過程,這些目標(biāo)最
12、終是以特征的形式提取表現(xiàn)出來的;模式識(shí)別是從目標(biāo)表達(dá)到分類和辨別的過程。第一節(jié) 圖像處理和分析技術(shù)介紹圖像識(shí)別的過程中少不了運(yùn)用圖像處理和分析的很多知識(shí)。圖像處理的目的就是將輸入圖像處理成輸出圖像,從而達(dá)到圖像增強(qiáng)、圖像恢復(fù)等目的。圖像識(shí)別需要對(duì)樣本圖片進(jìn)行一定的圖像處理,為之后的圖像分割、特征提取做準(zhǔn)備。一、圖像處理核心工具列舉1.灰度變化(1)灰度映射(圖像求反、對(duì)比度增強(qiáng)和動(dòng)態(tài)范圍壓擴(kuò))(2)直方圖變化(直方圖均衡化和直方圖規(guī)定化)圖1.1: 從左到右分別是原圖、動(dòng)態(tài)范圍擴(kuò)展結(jié)果和直方圖均衡化結(jié)果2.模板操作模版操作把局部信息為依據(jù),二維卷積(模版卷積)為工具,實(shí)現(xiàn)圖像處理的多種目標(biāo)。它
13、可以實(shí)現(xiàn)線性濾波與銳化、非線性濾波與銳化、局部直方圖增強(qiáng)等。其中基于梯度算子的銳化還可用于邊緣檢測。圖1.2左圖為原始圖像cameraman;右圖為利用正交梯度算子進(jìn)行邊緣檢測。3.變換域操作變化域操作就是將圖像從最開始的空間域變換到另一個(gè)域比后,進(jìn)行一定操作后實(shí)現(xiàn)圖像處理的目的。比如最常見的例子就是頻域?yàn)V波。圖1.3頻域?yàn)V波過程示意圖圖1.4從左至右依次是原始圖像、原始圖像頻譜圖、濾波函數(shù)空域圖和濾波后圖片4.圖像消噪與恢復(fù)與模板操作和頻域操作相比,消噪與恢復(fù)更像是一種目的。模板操作和頻域操都是消噪與恢復(fù)的重要工具。5.放射變換放射變化是一種分別對(duì)每個(gè)像素重新計(jì)算坐標(biāo)的幾何變化,主要包含放縮
14、、旋轉(zhuǎn)、剪切和平移。二、圖像分析核心技術(shù)簡介1.圖像分割在圖像分析和理解中,很多時(shí)候我們只關(guān)心圖像中的一部分目標(biāo)。目標(biāo)一般對(duì)應(yīng)圖像特定的具有獨(dú)特特性的區(qū)域。區(qū)別不同目標(biāo)以及區(qū)別目標(biāo)和背景是進(jìn)一步分析圖像和特征提取的前提。圖像分割就是指把圖像分成各具特色的區(qū)域并提取出感興趣的目標(biāo)區(qū)域的技術(shù)和過程。邊緣檢測是所有基于邊界的圖像分割方法的第一步。最基礎(chǔ)的邊緣檢測算法有正交梯度算子、二階導(dǎo)數(shù)算子、閥值化等。常用典型的分割技術(shù)有SUSAN檢測算子法、分水嶺分割法、聚類法等。圖2.1就是利用正交梯度算子進(jìn)行邊緣檢測的2.圖像表達(dá)圖像表達(dá)就是要對(duì)圖像中的目標(biāo)采取合適的數(shù)據(jù)結(jié)構(gòu)來進(jìn)行表達(dá)。根據(jù)不同的目標(biāo)圖像選
15、擇不同的方式表達(dá)才能構(gòu)建出合理的特征空間,最終才能使模式識(shí)別發(fā)揮作用。常見的圖像表達(dá)主要有基于輪廓的方式和基于區(qū)域的方式。圖1.5 圖像表達(dá)距離:橫豎線交點(diǎn)法上圖就是一個(gè)手寫數(shù)字目標(biāo)表達(dá)的例子,圖中每個(gè)數(shù)字與三個(gè)橫線相交,又與兩個(gè)豎線相交。形成的焦點(diǎn)數(shù)量就是每個(gè)目標(biāo)特征,例如對(duì)于0來說特征可以表達(dá)為交點(diǎn)數(shù)量(2,2,2,2,2)。這是一種基于目標(biāo)像素空間分布的表達(dá)方式。3.數(shù)學(xué)形態(tài)學(xué)工具數(shù)學(xué)形態(tài)學(xué)是以形態(tài)為基礎(chǔ)對(duì)圖像進(jìn)行分析的工具,是圖像處理和分析的重要工具。它的基本思想是用具有一定形態(tài)的結(jié)構(gòu)元素,去量度和提取圖像中的對(duì)應(yīng)形狀,來實(shí)現(xiàn)圖像分析和識(shí)別的目的。按照處理對(duì)象不同,形態(tài)學(xué)又分成二值形態(tài)
16、學(xué)和灰度形態(tài)學(xué)。我們這里主要介紹二值形態(tài)學(xué)的一些基本工具和典型應(yīng)用。二值形態(tài)學(xué)的基本工具有膨脹和腐蝕,這兩個(gè)基本工具的反復(fù)組合和迭代就構(gòu)筑了形態(tài)學(xué)的高樓大廈。由膨脹和腐蝕組合起來的工具有開啟、閉合和擊中-擊不中變化等。數(shù)學(xué)形態(tài)學(xué)的基本應(yīng)用有區(qū)域凸包、細(xì)化、粗化和剪切等,復(fù)雜的典型應(yīng)用有消噪、角點(diǎn)檢測和骨架計(jì)算等。圖1.6 從左至右分別是原圖像,腐蝕后圖像、開啟后圖像、細(xì)化后圖像和骨架化圖像第二節(jié) 模式識(shí)別技術(shù)介紹模式識(shí)別是圖像識(shí)別的主要工具和核心難點(diǎn)。人類具有對(duì)各種事物和現(xiàn)象進(jìn)行分析、描述和判斷的能力,而模式識(shí)別就是使計(jì)算機(jī)擁有類似自動(dòng)識(shí)別事物的能力。人類對(duì)模式的識(shí)別在生活中很常見,比如人類能
17、對(duì)同類臉上的表情做出判斷,像是炒股的人們憑借著市場各種指數(shù)和累計(jì)的經(jīng)驗(yàn)?zāi)茴A(yù)測未來走勢,又或是下棋的兩個(gè)人對(duì)棋局形勢的優(yōu)劣能做出判斷。模式識(shí)別對(duì)人來說是如此的直觀、如此的無所不在,對(duì)人來說這就是與生俱來的一種能力,然而對(duì)于計(jì)算機(jī)來說卻不是那么容易實(shí)現(xiàn)。如何讓計(jì)算機(jī)能像人一樣具有識(shí)別、分類的能力就是模式識(shí)別所要研究的。一、模式與特征概念簡介模式(Pattern)廣義的來講就是一種完美的概念,通常是從某類事物中歸納總結(jié)出來的一種認(rèn)識(shí)。舉個(gè)例子我們要在一群人中找到威猛的壯漢們,這就要求我們之前對(duì)壯漢有一定的認(rèn)識(shí),也就是我們具有壯漢的概念。有了這樣的概念我們就有了判斷一個(gè)人是不是壯漢的工具和切入點(diǎn)。但這
18、對(duì)于計(jì)算機(jī)可并不容易,計(jì)算機(jī)可不能像我們一樣形成一個(gè)壯漢的概念。這就涉及到了模式的描述問題了。計(jì)算機(jī)不懂壯漢甚至不懂人是什么,于是我們就要對(duì)觀察目標(biāo)進(jìn)行描述。我們要描述一個(gè)人而且要能讓計(jì)算機(jī)理解就需要使用矩陣的知識(shí)。表1.1 特征空間舉例說明樣品編號(hào)性別年齡血型握力800米成績實(shí)心球是否單身高數(shù)成績1男18O39kg32010是662女21AB25kg35011是773女23A23kg3309是884男34B31kg4108否995女31O33kg4058否33上表中樣本的性別、年齡、血型等8個(gè)屬性就是我們用來描述一個(gè)人的特征。這樣我們就能用上表中每一行信息來描述每一個(gè)樣本。這就是樣本描述方法
19、,通過樣本的不同屬性,也就特征來描述一個(gè)樣本。我們的目的是要區(qū)別一個(gè)人是否是壯漢,這就要求我們?cè)O(shè)計(jì)出來的計(jì)算機(jī)系統(tǒng)能根據(jù)對(duì)一個(gè)樣本的描述來判斷一個(gè)樣本是屬于壯漢還是非壯漢。如果將上表中的用來描述人的一行行信息看作是一個(gè)向量。這個(gè)向量的維數(shù)則由我們選取的特征數(shù)確定,這個(gè)向量所屬空間就叫特征空間。同時(shí),每個(gè)人即每個(gè)樣本就是空間中的某個(gè)點(diǎn)。要描述一個(gè)的特征的數(shù)量非常多,遠(yuǎn)不止上表中列出的8個(gè)特征,不可能全部都利用起來,更何況有些特征與我們的目標(biāo)找到壯漢完全沒有任何關(guān)系,例如上表中的高數(shù)成績。這就要求我們通過對(duì)目標(biāo)的認(rèn)識(shí),選擇出一套合理的特征。這個(gè)找出合適特征的過程叫做特征選擇與優(yōu)化,這是實(shí)現(xiàn)模式識(shí)別
20、的關(guān)鍵一步。通常情況下我們需要降低特征數(shù)量,也就是降低特征空間維數(shù)。二、分類器設(shè)計(jì)簡介在選取好合適的特征后,我們要解決的問題就好似將特征空間中的每個(gè)點(diǎn)分成兩類壯漢和非壯漢。我們?cè)O(shè)計(jì)分類算法的過程又叫做分類器設(shè)計(jì)。在分類器設(shè)計(jì)設(shè)計(jì)過程中我們需要一些已經(jīng)分好類的樣品集合來使計(jì)算機(jī)認(rèn)識(shí)到不同類別的區(qū)別,這個(gè)樣品集合就叫訓(xùn)練集。分類器設(shè)計(jì)的基本做法就是在訓(xùn)練集的基礎(chǔ)上確定分類的判斷方法,并通過對(duì)未知的測試樣本分類情況不斷修正或優(yōu)化分類判斷方法。圖1.7分類器設(shè)計(jì)過程示意圖下面介紹下模式識(shí)別的常見方法。1.模板匹配模板匹配的基本原理很簡單,就是使用已知的樣本作為模板,與測試樣本進(jìn)行比較,從而識(shí)別目標(biāo)。將
21、待分類的樣品與每類的一個(gè)或者多個(gè)標(biāo)準(zhǔn)模板進(jìn)行比較,看跟哪個(gè)類的模板匹配程度好,這樣就能為測試樣本分類了。匹配識(shí)別需要計(jì)算測試樣品與各個(gè)模板的相似程度,并尋找最相似模板。假如是人臉識(shí)別,對(duì)于每一個(gè)測試樣本,都需要計(jì)算這個(gè)測試樣本到每個(gè)模板的距離。在模板數(shù)量很大時(shí),這個(gè)缺點(diǎn)越明顯。因此,雖說近鄰法判決在原理上很簡單,但是計(jì)算量很大。模板匹配主要應(yīng)用于對(duì)圖像中對(duì)物像位置的檢測,運(yùn)動(dòng)物體跟蹤等。模版匹配的另一個(gè)缺點(diǎn)是由于匹配的點(diǎn)很多,雖然理論上可以達(dá)到最優(yōu)解,但在實(shí)際中卻很難做到。2.判別函數(shù)設(shè)計(jì)判別函數(shù)的形式有兩種:基于概率統(tǒng)計(jì)的分類法和幾何分類法。(1)基于概率統(tǒng)計(jì)的分類法這種方法需要使用到貝葉斯
22、決,策決策者雖不能控制客觀因素的變化,但卻掌握其變化的可能狀況及各狀況的分布概率,并利用期望值即未來可能出現(xiàn)的平均狀況作為決策準(zhǔn)則。要使用貝葉斯決策就需要得到關(guān)于樣本的總體分布,包括各類的先驗(yàn)概率以及各類條件概率函數(shù),計(jì)算的出樣品的后驗(yàn)概率,并以此作為產(chǎn)生判別函數(shù)的必要數(shù)據(jù),設(shè)計(jì)出相應(yīng)的判別函數(shù)與決策面。這種分類器對(duì)特征空間的各類樣品分布已經(jīng)很清楚,一旦測試樣本特征向量已知,就可以確定樣品X對(duì)各類的后驗(yàn)概率,也就可以按照一定準(zhǔn)則進(jìn)行分類了。(2)基于幾何的分類法在完成特征選取后,每個(gè)模式的特征全部量化為每一維的坐標(biāo)值,這就使得每個(gè)特征變?yōu)榱颂卣骺臻g上的一個(gè)點(diǎn)。幾何分類法就是要在不同的模式點(diǎn)之間
23、找到一些分界面,以分離不同類的點(diǎn)集。幾何分類的分類函數(shù)即是分開不同類的點(diǎn)集合。3.神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)是種對(duì)生物神經(jīng)系統(tǒng)的模擬的算法。它將若干個(gè)神經(jīng)元(處理單元)通過一定互連模型連接成一個(gè)網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)通過一定的機(jī)制可以模仿神經(jīng)系統(tǒng)的動(dòng)作過程,已達(dá)到分類的目的。這種分類法最大的特點(diǎn)是對(duì)帶識(shí)別目標(biāo)不需要進(jìn)行深入的了解和分析,具有一定智能化處理的特點(diǎn),特別適用于處理需要考慮多種因素和條件的、不精確和模糊信息處理問題。神經(jīng)網(wǎng)絡(luò)可以看作是輸入空間到輸出空間的一個(gè)非線性映射,它通過調(diào)整權(quán)重和閥值來“學(xué)習(xí)”或者發(fā)現(xiàn)輸入輸出之間的關(guān)系。優(yōu)點(diǎn)是可以處理一些環(huán)境信息非常復(fù)雜,背景知識(shí)還不完備,推理規(guī)則還不明確的
24、問題,允許樣品有較大的缺損和畸變。缺點(diǎn)是目前能識(shí)別的模式類還不夠多,模型在不斷豐富和完善中。4.聚類法上述分類方法都是利用了已分類的樣本來構(gòu)造分類器。聚類法則不然,不需要了解一批樣本中的模式和概率分布,唯一的分類根據(jù)就是測試樣品本身。利用樣品本身的特性區(qū)別來構(gòu)造分類器,這種分類也被稱作無監(jiān)督分類。在不了解每類模式特征的情況下,僅僅利用某種相似性量度和歸類準(zhǔn)則,把特征相似的測試樣品歸為一類。第三節(jié) 本章小結(jié)本章對(duì)圖像識(shí)別的技術(shù)做了簡要的介紹,圖像識(shí)別的技術(shù)可以簡單的分成三個(gè)層次:圖像處理,圖像分析和模式識(shí)別。一個(gè)完整的圖像識(shí)別系統(tǒng)包含三個(gè)部分:圖像預(yù)處理、特征提取和模式匹配。本章對(duì)著三個(gè)層次和三
25、個(gè)組成部分做了簡要介紹。 第二章 所用核心技術(shù)介紹本章對(duì)主要介紹幾種將在仿真中用到的核心技術(shù),包括三個(gè)部分概率神經(jīng)網(wǎng)絡(luò)(Probabilistic Neural Network,PNN)和深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network)以及SVD降維。第一節(jié) 概率神經(jīng)網(wǎng)絡(luò)一、神經(jīng)元模型1.神經(jīng)元模型人工神經(jīng)元(Artificial Neural Network,ANN)是對(duì)哺乳動(dòng)物神經(jīng)細(xì)胞的模型,每個(gè)人工神經(jīng)元主要包含樹突、軸突、突觸和細(xì)胞體。單個(gè)的神經(jīng)元相當(dāng)于多輸入單輸出的非線性閥值器件。圖2.1 最典型的人工神經(jīng)元模型圖2.1的X1、X2和X3是輸入,有時(shí)是其他神經(jīng)元的軸突,X是輸入
26、矢量;o表示輸出,輸出只有一個(gè);W是一個(gè)權(quán)矢量決定著每個(gè)輸入的權(quán)重;XW是輸入的加權(quán)和;是激活閥值,只有在輸入加權(quán)和大于閥值時(shí)神經(jīng)元才有效輸出。輸出形式由激活函數(shù)f決定。常見的激活函數(shù)f有單位階躍函數(shù)、符號(hào)函數(shù)、Sigmoid函數(shù)等。神經(jīng)元的可塑性主要反映在加權(quán)向量和門限的變化,當(dāng)一個(gè)輸入對(duì)應(yīng)的權(quán)重為0時(shí)就相當(dāng)于沒有這個(gè)樹突連接,當(dāng)一個(gè)輸入對(duì)應(yīng)的權(quán)重從0變?yōu)榉橇阒禃r(shí)就相當(dāng)于增加了一個(gè)輸入樹突。經(jīng)過不斷的學(xué)習(xí),整個(gè)網(wǎng)絡(luò)中的每個(gè)神經(jīng)元的加權(quán)向量都在不斷改變,知道達(dá)到已經(jīng)的目的才結(jié)束學(xué)習(xí)。圖2.1的輸出函數(shù)基本可以表示成:(2.1)等式(2.1)中o表示輸出;x表示輸入向量;w表示輸入的權(quán)重向量;w
27、x為輸入的加權(quán)求和;b為一個(gè)偏差值。對(duì)于b=0,w的每個(gè)元素為1,且f(x)=x時(shí)的神經(jīng)元的輸出函數(shù)為o=x。這種神經(jīng)元叫做純線性神經(jīng)元(pure line neuron),在神經(jīng)網(wǎng)絡(luò)中常常被作為輸入層和輸出層。下面我們介紹另一種神經(jīng)元模型:徑向基神經(jīng)元(Radial Basis Neuron,radbas neuron)。圖2.2徑向基神經(jīng)元激活函數(shù)Gaussian為高數(shù)函數(shù);激活函數(shù)的輸入為 ,其中b為偏差值,W為加權(quán)向量;X為輸入向量;為X到W的距離。其輸出函數(shù)為:(2.2)二、概率神經(jīng)網(wǎng)絡(luò)概率神經(jīng)網(wǎng)絡(luò)(PNN)是一種用貝葉斯決策規(guī)則,即錯(cuò)誤分類的期望風(fēng)險(xiǎn)最小,在多維輸入空間內(nèi)分離決策空
28、間的人工神經(jīng)網(wǎng)絡(luò)。PNN由四層結(jié)構(gòu)組成,如圖2.3所示。l 輸入層為多個(gè)純線性神經(jīng)元組成,本層神經(jīng)元之間不進(jìn)行任何連接,輸出與下一層每個(gè)神經(jīng)元單向連接。輸出函數(shù)為。l 樣本層中包含多個(gè)徑向基神經(jīng)元,且每個(gè)徑向基神經(jīng)元分別包含訓(xùn)練樣本信息X1、X2、X3和X4。其輸出函數(shù)為式2.3。 (2.3)樣本層的徑向基神經(jīng)元數(shù)量是由監(jiān)督學(xué)習(xí)提供的樣本數(shù)量決定的。l 求和層的目的是對(duì)同一類的樣本的輸出進(jìn)行求平均,求和層的神經(jīng)元數(shù)量由樣本分為多少類決定。像圖2.3中樣本只分作三類紅、藍(lán)和黃。因此,求和層輸出只有三個(gè)值。求和層不是求和而是求平均。l 輸出層:在圖2.3中,輸出層以三個(gè)和作為輸入,三個(gè)和值相互競爭
29、,最大值作為競爭勝利者輸出1,其余輸出0。這在神經(jīng)網(wǎng)絡(luò)中稱作競爭層。圖2.3 PNN拓?fù)浣Y(jié)構(gòu)圖我們就以圖2.3舉一個(gè)例子。假設(shè)輸入為二維點(diǎn),利用分層三類的四個(gè)樣值來將二維泡面劃分為三個(gè)類。表2.1樣本點(diǎn)坐標(biāo)(2,1)(1,2)(3,3)(4,4)類別標(biāo)簽1233這四個(gè)樣點(diǎn)在圖2.4中標(biāo)為紅色。圖2.3中的未知數(shù)為Xi就是四個(gè)樣本點(diǎn)值,而求和層的未知數(shù)Wi由標(biāo)簽信息決定。圖2.4 二維平面分割圖圖2.4的黑色部分為第1類,深灰色范圍為第2類,淺灰色部分為第3類。PNN通過輸入訓(xùn)練樣本和對(duì)應(yīng)的標(biāo)簽從而確定神經(jīng)網(wǎng)絡(luò)內(nèi)的所有參數(shù),建立起一種以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的分類器。第二節(jié) 深度神經(jīng)網(wǎng)絡(luò)深度神經(jīng)網(wǎng)絡(luò),即
30、含有多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)。與深度神經(jīng)網(wǎng)絡(luò)相比較 “淺”的網(wǎng)絡(luò)只使用一層計(jì)算單元(隱藏層)。需要注意的是深度神經(jīng)網(wǎng)絡(luò)的多個(gè)隱藏層的激活函數(shù)f都必須使用非線性函數(shù),如果都是使用線性激活函這再多的隱藏層也可以被一層代替。通過引入深度網(wǎng)絡(luò),我們可以計(jì)算更多復(fù)雜的輸入特征。因?yàn)槊恳粋€(gè)隱藏層可以對(duì)上一層的輸出進(jìn)行非線性變換,因此深度神經(jīng)網(wǎng)絡(luò)擁有比“淺層”網(wǎng)絡(luò)更加優(yōu)異的表達(dá)能力(例如可以學(xué)習(xí)到更加復(fù)雜的函數(shù)關(guān)系)1。一、AutoEncoder 自動(dòng)編碼器自動(dòng)編碼器又叫做autoassociator(自動(dòng)關(guān)聯(lián)器)是一種MLP(multilayer perceptron,多層感知器)的典型應(yīng)用2。自動(dòng)編碼器神經(jīng)
31、網(wǎng)絡(luò)是一種無監(jiān)督學(xué)習(xí)的算法,主要使用了反向傳播技術(shù),目的是讓輸出如輸入相等。如圖2.5所示,圖中的Layer1輸入層使用不是計(jì)算單元;Layer 2和Layer 3使用非線性函數(shù)作為激勵(lì)函數(shù),最常見的非線性激勵(lì)函數(shù)為sigmoid 函數(shù)。其中Layer 2的神經(jīng)元數(shù)量上少于輸入層,Layer 3的神經(jīng)元數(shù)量與輸入完全相同。通過無監(jiān)督訓(xùn)練的目的是使Later 3的輸出與輸入完全相同。這個(gè)網(wǎng)絡(luò)是要逼近函數(shù)f(x)=x這個(gè)函數(shù)。圖2.5 Autoencoder with 6-3-6 architecture.來自于 1如果能實(shí)現(xiàn)Layer 3的輸出等于Layer 1的輸入。圖2.5中去掉Layer
32、3則網(wǎng)絡(luò)變成了一個(gè)輸入為高維數(shù)據(jù),輸出為低維數(shù)據(jù)的編碼器。而只看Layer 3則是這種編碼器的解碼器。在圖像識(shí)別中引入自動(dòng)編碼器是因?yàn)樗哂泻蚉CA很類似的數(shù)據(jù)降維的作用。如果自動(dòng)編碼器的輸入是隨機(jī)數(shù),比如高數(shù)隨機(jī)變量,這很難控制輸出與輸入相等。而如果輸入數(shù)據(jù)內(nèi)部有各種隱藏的相關(guān)性和結(jié)構(gòu),則自動(dòng)編碼器會(huì)利用這些相關(guān)性進(jìn)行降維,從而達(dá)到較好的準(zhǔn)確率。AutoEncoder學(xué)習(xí)算法在這里不做介紹,代價(jià)函數(shù)都是以錯(cuò)誤率為基礎(chǔ)的各種參數(shù)。學(xué)習(xí)算法就是不斷無監(jiān)督學(xué)習(xí)優(yōu)化代價(jià)函數(shù)。二、Softmax 回歸網(wǎng)絡(luò)Softmax 回歸網(wǎng)絡(luò)的目的是找到輸入x是某類Ci的后驗(yàn)概率。也就是說不同于PNN所使用的競爭網(wǎng)
33、絡(luò)只有一個(gè)winner,Softmax回歸網(wǎng)絡(luò)能給出輸入x屬于某一類的概率P(Ci|x)。假設(shè)有K類,所有的類別為Ci,i=1,2K。這Softmax網(wǎng)絡(luò)由K個(gè)神經(jīng)元組成,且每個(gè)神經(jīng)元輸出為每類的后驗(yàn)概率。每個(gè)神經(jīng)元輸出為:,i=1,2K(2.4)式 (2.4)中需要學(xué)習(xí)的參數(shù)有K個(gè)權(quán)重向量Wi和K個(gè)偏移值bi。Softmax學(xué)習(xí)的代價(jià)函數(shù)為:,i=1,2K(2.5)第三節(jié) 本章小結(jié)本章主要介紹了三種技術(shù)PNN和DNN。其中PNN能在圖像識(shí)別系統(tǒng)中發(fā)揮模式識(shí)別分類器的作用;DNN的AutoEncoder算法能發(fā)揮降維并起特征提取的作用;DNN的Softmax回歸算法能起到分類器的作用。第三章
34、MATLAB與C/C+混合編程簡介MATLAB是科研工作者和工程師的好伙伴,具有強(qiáng)大的科學(xué)計(jì)算能力以及數(shù)據(jù)可視化功能,是用來完成算法設(shè)計(jì)和實(shí)驗(yàn)仿真的利器,應(yīng)用領(lǐng)域已經(jīng)涵蓋科學(xué)研究和工程開發(fā)的各個(gè)領(lǐng)域,甚至包含技術(shù)難度極大的天線仿真。而C/C+是家喻戶曉的編程語言,可用于幾乎所有場景。C語言是MCU開發(fā)、嵌入式開發(fā)和驅(qū)動(dòng)開發(fā)等領(lǐng)域,具有極佳的運(yùn)行效率,而C+和C#在頂層應(yīng)用程序設(shè)計(jì)中發(fā)揮著不可代替的作用。如果能將兩者結(jié)合起來一定能發(fā)揮出兩者的有事,然而MATLAB與C/C+混合編程因?yàn)樯婕暗讲煌_發(fā)語言、不同開發(fā)環(huán)境以及多種接口,仍然存在一定難度。隨著MATLAB7.0之后的版本更新,混合編程的
35、穩(wěn)定性和兼容性具有越來越強(qiáng)的兼容性和穩(wěn)定性。第一節(jié) MATLAB與C/C+混合編程特點(diǎn)一、MATLAB M 語言特點(diǎn)MATLAB所使用的M語言是一種基于矩陣的腳本語言,其核心是高效率的數(shù)值計(jì)算。矩陣是MATLAB核心變量類型,既有簡單的數(shù)值矩陣,也有復(fù)雜的元組矩陣以及結(jié)構(gòu)矩陣。MATLAB還有一個(gè)主要優(yōu)點(diǎn)是具有數(shù)據(jù)可視化功能。與C/C+不同,M語言是一種解釋性語言,其循環(huán)語句執(zhí)行效率低下,MATLAB的數(shù)值計(jì)算函數(shù)對(duì)矩陣運(yùn)算進(jìn)行了優(yōu)化,因此在進(jìn)行M語言設(shè)計(jì)時(shí),一定要注意盡量減少循環(huán)語句的使用量,盡量使用庫函數(shù)代替大量循環(huán)實(shí)現(xiàn)矩陣和向量計(jì)算。在M語言中,各種類型的矩陣都不需要聲明且不同類型矩陣操
36、作方式類似。MATLAB中的矩陣與C/C+中的多位數(shù)組差不多,然而兩者的儲(chǔ)存方式不同,C/C+語言的多維數(shù)組元素在內(nèi)部存儲(chǔ)器中是按行排列的順序儲(chǔ)存的(也就是“按行儲(chǔ)存”),而在M語言中則與之相反,各類型矩陣的元素是按列存儲(chǔ)的。這就造成了在混合編程時(shí),需要在混合編程時(shí),兩種不同語言中的同一數(shù)組元素的線性引索各不同。據(jù)了解,MATLAB的核心數(shù)值計(jì)算庫大部分是由C/C+語言以及另一種科學(xué)計(jì)算語言Fortran語言實(shí)現(xiàn)的。因此如果不調(diào)用數(shù)值計(jì)算庫函數(shù)而使用M語言循環(huán)語句時(shí),二、C/C+語言特點(diǎn)C語言的流行程度和應(yīng)用范圍之廣,這里就不再冗述。從工商管理專業(yè)學(xué)生到計(jì)算機(jī)專業(yè)學(xué)生,都在本科階段接觸過C語言
37、。C+語言是在C語言基礎(chǔ)上引入了類與對(duì)象的概念,因此C+語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,而C語言是面向過程的語言。在以C語言為代表的面向過程的程序設(shè)計(jì)語言中,程序就是分開的算法和數(shù)據(jù)結(jié)構(gòu)。而對(duì)于C+這種面對(duì)對(duì)象的程序設(shè)計(jì)來說,通過類和對(duì)象可以將算法和數(shù)據(jù)結(jié)構(gòu)通過類的形式集成在一起。引用混編三、MATLAB與C/C+混合編程優(yōu)點(diǎn)由于上述MATLAB M語言和C/C+語言的不同特點(diǎn),讓混合編程變得有用武之地,成為了程集成兩者的優(yōu)點(diǎn)的編程方式。通過MATLAB M語言與C/C+混合編程的方式,一來可以發(fā)揮兩種語言的優(yōu)勢,二來可以整合MATLAB開發(fā)社區(qū)和C/C+開發(fā)社區(qū)各自所擁有的程序資源。第二節(jié)
38、 MATLAB與C/C+混合編程優(yōu)點(diǎn)的主要方式一、通過MEX文件實(shí)現(xiàn)混合編程在MATLAB中調(diào)用C/C+代碼程序最常見最方便的方法就是使用MEX文件。MEX文件是C/C+程序編譯后生產(chǎn)一種動(dòng)態(tài)連接庫。這種方法需要要求在MATLAB使用mex命令調(diào)用C/C+編譯器將C/C+源文件編譯為mexw32或者mexw64動(dòng)態(tài)鏈接庫文件。這種方式需要用到mx API(包含在mex.h的頭文件中)。MEX文件中既包含了動(dòng)態(tài)鏈接褲又包含MATLAB動(dòng)態(tài)裝載模塊,這使得用戶可以在MATLAB中像調(diào)用M語言函數(shù)一樣調(diào)用MEX文件。在MATLAB環(huán)境下,通過MEX文件調(diào)用C/C+文件可以實(shí)現(xiàn)一下目的; 提高程序的執(zhí)
39、行效率。用來代替執(zhí)行效率很低的某一段包含大量循環(huán)語句的M程序代碼的; 利用MATLAB的數(shù)據(jù)可視化功能,來對(duì)C/C+代碼進(jìn)行調(diào)試; 拓展MATLAB的硬件接口操作和圖形化程序設(shè)計(jì)的能力;二、通過dll實(shí)現(xiàn)混合編程dll動(dòng)態(tài)鏈接庫是另一種能實(shí)現(xiàn)MATLAB與C/C+混合編程的途徑。相對(duì)來講,采用dll動(dòng)態(tài)鏈接庫的方法要比MEX文件的方法要復(fù)雜一些。但在Windows平臺(tái)下,有大量的第三方開發(fā)的C/C+程序以dll動(dòng)態(tài)鏈接庫的形式存在。dll動(dòng)態(tài)鏈接庫可以提高軟件的模塊化程度;利用動(dòng)態(tài)加載可以實(shí)現(xiàn)插件功能;在多個(gè)軟件同時(shí)調(diào)用同一個(gè)dll動(dòng)態(tài)運(yùn)行庫可以節(jié)省內(nèi)存資源。dll動(dòng)態(tài)運(yùn)行庫本身只提供一組可供
40、外部程序調(diào)用的函數(shù),因此在使用動(dòng)態(tài)鏈接庫時(shí),一般需要一些說明文件,以說明動(dòng)態(tài)鏈接庫提供的函數(shù)聲明和參數(shù)類型等信息混編。在MATLAB加載dll動(dòng)態(tài)鏈接庫時(shí),不僅需要.dll文件還需要.h頭文件。同時(shí)MATLAB M語言代碼可以通過“mcc”命令編譯為.dll文件,供C/C+可執(zhí)行文件調(diào)用。而反之由C/C+程序編寫的程序也可以以dll形式被MATLAB以加載動(dòng)態(tài)庫的形式調(diào)用。三、MATLAB Coder實(shí)現(xiàn)混合編程MATLAB Coder是一種能將MATLAB M代碼轉(zhuǎn)換為C/C+代碼的強(qiáng)大工具。常見的用法是在MATLAB中使用M語言設(shè)計(jì)好需要的算法代碼段,再通過MATLAB Coder轉(zhuǎn)化成C
41、/C+代碼,再嵌入到需要的C/C+程序中。這個(gè)過程就相當(dāng)于在MATLAB中設(shè)計(jì)和調(diào)試好了一種算法的核心代碼,再嵌入到C/C+代碼中去。MATLAB Coder 也不是萬能,它對(duì)M語言代碼段有其特殊的約束條件。而且在從M語言代碼向C/C+代碼轉(zhuǎn)換的過程中,是需要用戶自己逐步優(yōu)化的。實(shí)現(xiàn)同一算法的不同M語言代碼因?yàn)槭褂昧瞬煌瑪?shù)據(jù)類型和不同控制結(jié)構(gòu),則會(huì)導(dǎo)致轉(zhuǎn)化為C/C+代碼后的運(yùn)行效率差異很大。這就需要用戶反復(fù)修改M語言程序或者是輸出的C/C+代碼。四、調(diào)用C/C+程序生成可執(zhí)行文件在MATLAB M語言中可以直接使用“! executablefilename”的方式調(diào)用外部可執(zhí)行程序(也就是調(diào)用
42、.exe)。雖然此法可以最大限度的利用現(xiàn)有的程序資源,但是也有很大弊端。其一,每次調(diào)用可執(zhí)行文件的調(diào)用開銷很大,也就是說如果大量調(diào)用一些計(jì)算時(shí)間較短的可執(zhí)行文件會(huì)使得調(diào)用開銷大于計(jì)算開銷,造成程序運(yùn)行效率極大地減少;其二,可執(zhí)行文件參數(shù)輸入和結(jié)果輸出都需要通過外部存儲(chǔ)器的文件進(jìn)行,有一定局限性。最常見的混合編程方式是使用mat API讓可執(zhí)行文件的輸入輸出用.mat矩陣存儲(chǔ)文件實(shí)現(xiàn)。五、一些次要混編方法Active X、COM 、NET除了上面的混編方式外,還有MATLAB通過Active X調(diào)用C/C+程序的方式。這種方式主要是利用MATLAB來調(diào)用Windows平臺(tái)中存在的大量Active
43、 X控件來完成特定的功能。而C+是Active X的主流開發(fā)語言。MATLAB M語言可以通過deploytool工具實(shí)現(xiàn)COM組件的編譯。在Visual C+中調(diào)用由deploytool工具生成的COM組件時(shí),客戶與COM組件可以通過VARIANT接口進(jìn)行數(shù)據(jù)交換,從而實(shí)現(xiàn)混合編程。但是此法編程復(fù)雜,使用接口多。與COM組件類似,MATLAB M語言可以通過deploytool工具實(shí)現(xiàn).NET組件的開發(fā)。上述幾種方式在應(yīng)用開發(fā)中使用較多,但在數(shù)值計(jì)算、科學(xué)仿真和算法實(shí)現(xiàn)中顯得過于復(fù)雜。第三節(jié) MATLAB與C/C+混編開發(fā)環(huán)境介紹本文的全部仿真和實(shí)驗(yàn)都是通過Visual Studio Com
44、munity 2015 和MATLAB 2015b實(shí)現(xiàn)的。在混編過程中經(jīng)常要求MATLAB調(diào)用C/C+編譯器,這就需要一定配置。具體來說,在安裝Visual Studio Community 2015時(shí)一定要附帶安裝Visual C+ 2015 Professional。還需要在MATLAB命令行中通過“mex setup”和“mbuild -setup”命令進(jìn)行配置,選擇合適的C/C+編譯器。第四節(jié) mx-API介紹及混合編程舉例在安裝完成好開發(fā)環(huán)境后就可以開始混合編程了。我們這里使用一個(gè)簡單的mex開發(fā)過程作為例子來說明如何實(shí)現(xiàn)混合編程。首先我們要了解關(guān)于在mex.h中聲明的mx-API相
45、關(guān)函數(shù)、數(shù)據(jù)類型和接口的用法,只有借此才能使用C/C+程序操作MATLAB矩陣。一、接口數(shù)據(jù)類型及接口函數(shù)介紹下面簡單介紹幾個(gè)接口函數(shù)和數(shù)據(jù)類型l 數(shù)據(jù)類型:mxArray 矩陣是M語言的核心數(shù)據(jù)類型。在C/C+語言中,通過mxArray來訪問、創(chuàng)建和操作MATLAB矩陣。混合編程時(shí)的l 接口函數(shù):void mexFunction(int nlhs,mxArray * plhs,int nrhs,const mxArray *prhs)函數(shù)功能:在showmatrix.c中的mexFunction函數(shù)就是整個(gè)程序的入口和數(shù)據(jù)交換的接口,其功能與C/C+中的main函數(shù)功能類似。mexFunct
46、ion的輸入包含了兩個(gè)mxArray *和兩個(gè)int型變量的作用就是MATLAB與C/C+子函數(shù)的數(shù)據(jù)交換接口。參數(shù)說明:int nlhs是程序輸出矩陣個(gè)數(shù)。在mex文件調(diào)用完成后會(huì)返回一個(gè)和多個(gè)矩陣;mxArray * plhs是程序輸出的返回值,其本質(zhì)上是一個(gè)mxArray的指針數(shù)組,每個(gè)指針指向一個(gè)輸出矩陣。nt nrhs 是程序輸入矩陣個(gè)數(shù)const mxArray *prhs是程序輸入矩陣,其本質(zhì)上是一個(gè)mxArray的指針數(shù)組,每個(gè)指針指向一個(gè)輸入矩陣。l 接口函數(shù):double * mxGetPr(const mxArray *array_ptr)函數(shù)功能:將一個(gè)指向MATLAB
47、 double類型矩陣的mxArray指針轉(zhuǎn)化為一個(gè)C/C+中double型數(shù)組指針參數(shù)列表:array_ptr輸入的MATLAB double類型矩陣;返回值為一個(gè)double指針。需要注意的是返回值的double指針是按列儲(chǔ)存的。l 接口函數(shù):mwIndex mxCalcSingleSubscript(const mxArray * array_ptr, mwSize nsubs, mwIndex * subs)函數(shù)功能:線性引索轉(zhuǎn)換函數(shù),計(jì)算一個(gè)按列儲(chǔ)存的矩陣array_ptr中的某個(gè)元素(x,y,z)的線性引索。參數(shù)列表:array_ptr輸入的MATLAB矩陣的mxArray指針;s
48、ubs就是一個(gè)整型數(shù)組表示某個(gè)元素的坐標(biāo)某個(gè)元素(x,y,z);而nsubs是矩陣的維數(shù);返回值為對(duì)應(yīng)的線性引索。l 接口函數(shù)int mexPrintf(const char * format,.)函數(shù)功能:類似于C語言的printf函數(shù),功能基本一樣。參數(shù)列表:具體參考C語言的printf函數(shù)。二、舉例介紹將附錄三中的showmatrix.c源文件放在MATLAB的工作目錄下,再通過命令行使用“mex showmatrix.c”命令編譯生成showmatrix.mexw64文件。在調(diào)用showmatrix時(shí),可以像M語言函數(shù)一樣直接調(diào)用。表3.1 MATLAB命令行中調(diào)用showmatrix
49、函數(shù) mex showmatrix.cBuilding with Microsoft Visual C+ 2015 Professional (C).MEX completed successfully. showmatrix(magic(4),1:6)第1個(gè)變量: 16.00, 2.00, 3.00, 13.00, 5.00, 11.00, 10.00, 8.00, 9.00, 7.00, 6.00, 12.00, 4.00, 14.00, 15.00, 1.00,第2個(gè)變量: 1.00, 2.00, 3.00, 4.00, 5.00, 6.00,第五節(jié) 本章小結(jié)本章對(duì)MATLAB與C/C+
50、混合編程做了簡要介紹和舉例,主要總結(jié)了多種混合編程的方式,在本章最后舉了混合編程的例子進(jìn)行說明如何實(shí)現(xiàn)混合編程。第四章 圖像識(shí)別仿真與結(jié)果本畢業(yè)設(shè)計(jì)仿真中做了兩組圖像識(shí)別仿真手寫數(shù)字識(shí)別和人臉識(shí)別。其中手寫數(shù)字分成兩個(gè)部分實(shí)驗(yàn),其一主要是針對(duì)MNIST手寫數(shù)字?jǐn)?shù)據(jù)庫上做的一系列仿真,其二是在第一部分基礎(chǔ)上做的一個(gè)完整的手寫圖像識(shí)別系統(tǒng)仿真。而第二組人臉識(shí)別主要完成了對(duì)人臉數(shù)據(jù)庫進(jìn)行仿真。兩組仿真相比較而言,前者完全的實(shí)現(xiàn)了一個(gè)識(shí)別系統(tǒng),能從包含多個(gè)數(shù)字的圖片中分割和提取出每個(gè)數(shù)字,再進(jìn)行識(shí)別,而人臉識(shí)別則專注于特征提取和模式識(shí)別,直接從人臉庫中得到人臉圖片。第一節(jié) 實(shí)驗(yàn)環(huán)境平臺(tái)介紹本文所有圖像
51、識(shí)別仿真實(shí)驗(yàn)都是以相同平臺(tái)進(jìn)行。本文所提到的所有時(shí)間復(fù)雜度信息都是在本平臺(tái)上的數(shù)據(jù)。表4.1 試驗(yàn)平臺(tái)信息CPU型號(hào)Intel 志強(qiáng) E3-1230內(nèi)存8GB 1600Mhz顯卡HD6850系統(tǒng)Win7 Ultimate軟件平臺(tái)MATLAB2015b需要注意的是本實(shí)驗(yàn)都是在MATLAB2015b上進(jìn)行的,代碼中用到了2015b才引入最新的Neural Network Toolbox。本文使用的神經(jīng)網(wǎng)絡(luò)部分代碼不能在低于MATLAB 2015b的任何版本下運(yùn)行。注意高計(jì)算量的深度神經(jīng)網(wǎng)絡(luò)的計(jì)算MATLAB用GPU進(jìn)行并行計(jì)算來做優(yōu)化,在使用Intel核心顯卡時(shí)可能出現(xiàn)不支持。本文用到了三個(gè)數(shù)據(jù)庫
52、:l 手寫數(shù)字?jǐn)?shù)據(jù)庫MNIST l 人臉數(shù)據(jù)庫ORL cam-orl.co.uk/facedatabase.htmll 人臉數(shù)據(jù)庫AR /aleix/ARdatabase.html第二節(jié) 手寫數(shù)字識(shí)別仿真研究一、意義和難點(diǎn)數(shù)字是人類日常生活進(jìn)行信息交流的重要方式。在財(cái)會(huì)和郵政等領(lǐng)域,從業(yè)者每天都和手寫數(shù)字打著交道。手寫數(shù)字識(shí)別在郵件分捻、財(cái)務(wù)票據(jù)和大規(guī)模數(shù)據(jù)統(tǒng)計(jì)中發(fā)揮著巨大作用。OCR(光學(xué)字符識(shí)別)技術(shù)在日常生活中的應(yīng)用越來越多。手寫數(shù)字識(shí)別是OCR技術(shù)的子集。手寫數(shù)字識(shí)別系統(tǒng)具有以下組成部分:1.獲取數(shù)組圖像;2.圖像預(yù)處理;3.數(shù)字特征提??;
53、4.數(shù)字識(shí)別;數(shù)字的種類雖然很少只有10種,且比劃簡單。但實(shí)際上,由于不同的人書寫習(xí)慣不同,寫出來的數(shù)字風(fēng)格迥異,千差萬別。也就是說人類在書寫數(shù)字時(shí)隨意性較大書,因此寫不規(guī)范導(dǎo)致的歧義也很常見。若要將OCR系統(tǒng)應(yīng)用于財(cái)務(wù)方面,識(shí)別系統(tǒng)的正確率就的達(dá)到很高的要求。一般來講,英文字符中一個(gè)字符出錯(cuò)還可以通過上下文猜測其內(nèi)涵,而阿拉伯?dāng)?shù)字則不行。找出識(shí)別難度大的原因在于一下三點(diǎn)。(1)筆畫簡單,某些數(shù)字的字型差距不大。(2)書寫過于隨意,單個(gè)數(shù)字的變化可能很大。(3)數(shù)字之間沒有語義上的相關(guān)性,要通過后續(xù)處理消除和糾錯(cuò)就很困難了。二、實(shí)驗(yàn)內(nèi)容及結(jié)果1.第一組實(shí)驗(yàn)D1圖4.1橫豎線交點(diǎn)法表4.2手寫數(shù)
54、字識(shí)別第一組實(shí)驗(yàn)實(shí)驗(yàn)編號(hào)D1.1D1.2訓(xùn)練集900張64x64900張64x64測試集100張64x64100張64x64特征提取橫豎線交點(diǎn)(橫豎各8條交線外加兩根對(duì)角線)SVD降維法壓縮到10維模式識(shí)別概率神經(jīng)網(wǎng)絡(luò)分類器spread=0.60概率神經(jīng)網(wǎng)絡(luò)分類器spread=0.24正確率80%91%計(jì)算時(shí)間1.60s1.82s第一組實(shí)驗(yàn)包含兩個(gè)實(shí)驗(yàn)D1.1和D1.2。需要注意的是這兩個(gè)實(shí)驗(yàn)所用到的訓(xùn)練集和測試集都來自于MNIST數(shù)據(jù)庫。MNIST數(shù)據(jù)庫本身是28x28的黑白圖片,我們實(shí)驗(yàn)里經(jīng)過調(diào)整為64x64定格且保存原數(shù)據(jù)長寬比。討論:本次實(shí)驗(yàn)在于比較兩種特征提取方案,實(shí)驗(yàn)中我們發(fā)現(xiàn)SV
55、D數(shù)據(jù)壓縮法有一定優(yōu)勢。SVD降維方法可以參看附錄五。思考:對(duì)于手寫識(shí)別來講,圖片本身并不復(fù)雜,且我們采用的都是二值圖片,或許對(duì)于原始數(shù)據(jù)量本來就不大的情況直接使用降維算法對(duì)原始數(shù)據(jù)進(jìn)行壓縮或許是較好的方法。2.第二組實(shí)驗(yàn)D2表4.3手寫數(shù)字識(shí)別第二組實(shí)驗(yàn)實(shí)驗(yàn)編號(hào)D2.1D2.2D2.3訓(xùn)練集60000張28x28MNIST的訓(xùn)練集部分10000張28x28MNIST的訓(xùn)練集部分60000張28x28MNIST的訓(xùn)練集部分測試集10000張28x28MNIST的測試集部分10000張28x28MNIST的測試集部分10000張28x28MNIST的測試集部分特征提取SVD降維法壓縮到10維SVD降維法壓縮到30維AutoEncoder訓(xùn)練參數(shù)模式識(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代產(chǎn)品設(shè)計(jì)中的民族圖案與色彩研究
- 現(xiàn)代紋樣設(shè)計(jì)在商業(yè)品牌推廣中的應(yīng)用實(shí)踐
- 現(xiàn)代辦公環(huán)境下的AI餐廳服務(wù)應(yīng)用研究
- 現(xiàn)代物流行業(yè)的服務(wù)創(chuàng)新與升級(jí)
- 現(xiàn)代辦公環(huán)境下的報(bào)告制作技巧
- 2024年五年級(jí)語文上冊(cè) 第六單元 口語交際:父母之愛說課稿 新人教版
- Module7 Unit2 This little girl can't walk(Period 1) (說課稿) -2024-2025學(xué)年外研版(三起)英語五年級(jí)上冊(cè)
- 7《什么比獵豹的速度更快》說課稿-2024-2025學(xué)年五年級(jí)上冊(cè)語文統(tǒng)編版001
- 13美麗的冬天 說課稿-2024-2025學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版
- 2024-2025學(xué)年高中化學(xué) 第1章 第4節(jié) 第2課時(shí) 有機(jī)物分子式與分子結(jié)構(gòu)的確定說課稿 新人教版選修5
- GB/T 27476.5-2014檢測實(shí)驗(yàn)室安全第5部分:化學(xué)因素
- 金屬非金屬礦山重大生產(chǎn)安全事故隱患判定標(biāo)準(zhǔn)課件
- 四年級(jí)上冊(cè)數(shù)學(xué)課件-一般應(yīng)用題 全國通用(共26張PPT)
- 肝臟炎性假瘤的影像學(xué)表現(xiàn)培訓(xùn)課件
- 國家行政機(jī)關(guān)公文格式課件
- 業(yè)務(wù)員回款考核辦法
- 急性心梗的護(hù)理業(yè)務(wù)學(xué)習(xí)課件
- 2021年投標(biāo)部工作計(jì)劃
- 導(dǎo)向標(biāo)識(shí)系統(tǒng)設(shè)計(jì)(二)課件
- 好書推薦《西游記》共33張幻燈片
- 化工儀表自動(dòng)化【第四章】自動(dòng)控制儀表
評(píng)論
0/150
提交評(píng)論