基于OpenCV的中遠距離人臉檢測 計算機專業(yè)_第1頁
基于OpenCV的中遠距離人臉檢測 計算機專業(yè)_第2頁
基于OpenCV的中遠距離人臉檢測 計算機專業(yè)_第3頁
基于OpenCV的中遠距離人臉檢測 計算機專業(yè)_第4頁
基于OpenCV的中遠距離人臉檢測 計算機專業(yè)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、題 目基于OpenCV的中遠距離人臉檢測摘 要人臉檢測技術(shù),是指利用計算機采用一定的算法或者策略,在動態(tài)或者復(fù)雜的場景、背景中檢測出人的臉部的存在,并確定人臉的位置、大小以的技術(shù)。作為人臉識別、表情識別、人臉跟蹤等技術(shù)的基礎(chǔ)和前提技術(shù),人臉檢測技術(shù)在智能控制、模式識別等其他領(lǐng)域也引起了廣發(fā)的重視。本論文主要介紹的是基于OpenCV的人臉檢測應(yīng)用程序的開發(fā),簡單介紹了國內(nèi)外人臉識別技術(shù)研究及應(yīng)用的發(fā)展現(xiàn)狀及其重難點分析。在第二章重點分析了AdaBoost算法中集成機器學(xué)習(xí)的一個重要機制:多個弱分類器集成的方法,機器學(xué)習(xí)中的弱學(xué)習(xí)到強學(xué)習(xí),集成的關(guān)鍵是投票,最簡單的方法是“絕對多數(shù)”的方法,詳細(xì)分

2、析了AdaBoost算法檢測速度快、可以檢測任意尺度的圖像的特點。本人開發(fā)的人臉檢測和識別軟件是基于OpenCV的Haar級聯(lián)分類器進行人臉識別,通過對OpenCV開源代碼的研究學(xué)習(xí),掌握了OpenCV提供的重要的圖像分析和處理函數(shù)以及基礎(chǔ)的數(shù)據(jù)類型、幫助的數(shù)據(jù)類型,并Visual C+集成開發(fā)環(huán)境做平臺下搭建了基于OpenCV的人臉檢測系統(tǒng)。通過對實例空間內(nèi)大量圖像內(nèi)對目標(biāo)區(qū)域即人臉的識別,證明了利用Harr級聯(lián)分類器來進行人臉檢測和識別的方法是一種速度快、精度高的方法。關(guān)鍵字:人臉檢測;AdaBoost;分類器;OpenCVABSTRACTHuman face detection mean

3、s that for a given image or video,to determine whether it contains face regions,if so,determines the number, the exact location and the size of all the facesHuman face detection is not only a necessary precondition of face recognition,expression recognition technology, face tracking,but also,it play

4、s ail important role in applications like in the intelligent human-computer interaction,video conferencing,intelligent surveillance,video retrieval and so onTherefore,face detection technology attracted widespread attention in pattern recognition,computer vision,human-computer interaction and other

5、fieldsThis paper mainly introduces the number of face detection application program which is based on the OpenCV. This paper describes the national and international recognition technology applications research and development and analysis the difficult situation. In chapter 2 on the analysis of the

6、 AdaBoost algorithms integration of machinery to study of an important mechanism : more integrated approach in the classification of the study of study at the learning and integration is the key to the vote, the simplest method is the absolute majority . Also, detailed analysis AdaBoost algorithm te

7、st speed, you can detect any scale the image quality.I developed the application program by using the Haar cascade classifier of the OpenCV for face recognition. The so-called Haar cascade classifier is a greater level of classifier which is associated with several simple boost classifiers, the dete

8、cted targets pass through each classifier, the one who passed through all he classifiers can be judged as the face region. By the experiment of sample photos recognition, it proved that the Harr cascade classifier face-detection method is a kind of high speed and precision method.This papers researc

9、h is based on the OpenCV source code,in which some basic data type and helping data type were created,and because of the opermess of the code,we build a human face detection system in the Visual C+ environment.Key words: face detection ; AdaBoost ; classifier ; OpenCV目 錄1. 概述11.1 引言11.2概念介紹21.3 研究現(xiàn)狀

10、31.4 應(yīng)用領(lǐng)域41.4 評價標(biāo)準(zhǔn)52. Adaboost人臉檢測算法62.1 概述62.1.1 Adaboost算法簡介62.1.2 Adaboost人臉檢測算法62.2弱學(xué)習(xí)與強學(xué)習(xí)72.3 PAC基本模型82.3.1 概述82.3.2 基本概念82.3.3 PAC模型的不足92.4 Boosting算法92.5 Adaboost算法性能分析103. OpenCV訓(xùn)練分類器113.1 OpenCV平臺概述113.1.1 OpenCV簡介113.1.2 OpenCV函數(shù)113.1.3 OpenCV特征123.2 目標(biāo)檢測法123.3 樣本的創(chuàng)建133.3.1創(chuàng)建負(fù)樣本(反例樣本)143.3

11、.2創(chuàng)建正樣本(正例樣本)143.4訓(xùn)練分類器163.5 檢測目標(biāo)193.6創(chuàng)建Haar特征并載入樣本193.6.1 載入正樣本193.6.2 載入負(fù)樣本203.6.3 計算Haar特征值并生成XML文件214. 核心實驗設(shè)計234.1程序流程圖234.2關(guān)鍵代碼234.3為何增加檢測視頻記錄254.3各個分類器處理結(jié)果對比255. 結(jié) 論28致謝29參考文獻30附錄:人臉檢測源程序31331. 概述1.1 引言人臉檢測(Face Detection)最初來源于人臉識別(Face Recognition)。我們想要在進行人類識別之前,必須要對人臉的位置和大小進行精確的定位,即人臉檢測。因此一個

12、實時有效的人臉檢測系統(tǒng)在人臉識別中有著重要而不可代替的作用。由于人類基因組合的多樣性造成了人類臉部相似的概率大大減小,因此人臉檢測與識別更具有直接方面而且友好的優(yōu)勢,也更容易被用戶所接受。與此同時,通過對人臉表情的分析,還能夠獲得其他識別系統(tǒng)不可能獲得的資料,因此人臉識別也逐漸稱為身份驗證的最有力的手段之一。在早期的人臉識別技術(shù)中,主要針對一些約束性條件較強的圖像進行識別,而忽略了人臉檢測技術(shù)的研究。近年來,隨著信號處理理論和計算機的出現(xiàn)及其發(fā)展,人們開始用攝像機獲取環(huán)境圖像并將其轉(zhuǎn)換成數(shù)字信號,用計算機實現(xiàn)對視覺信息的處理,這就形成了計算機視覺。計算機視覺是當(dāng)前計算機科學(xué)中的一個非常活躍的領(lǐng)

13、域,其基本假設(shè)是:可以用計算的方式來模擬人類的視覺機制。人臉的自動識別是一種重要的生物特征識別技術(shù),與其它身份識別方法相比,人臉識別具有直接、方便、友好等特點,因而人臉自動識別問題的研究不僅具有重要的應(yīng)用價值,而且具有重要的理論意義。人臉識別通過計算機提取人臉的特征,并根據(jù)這些特征從而進行身份驗證。人臉與指紋等其他生物特征一樣是不可改變的,因此人臉?biāo)哂械奈ㄒ恍?、不容易被?fù)制的特性,在進行身份驗證時起到了決定性的作用。同時,人臉識別技術(shù)具有操作簡單方便、結(jié)果一目了然、方法隱蔽等優(yōu)點。人臉識別一般包括三個步驟:人臉檢測、人臉特征提取和人臉的識別與驗證。其處理流程如圖1.1所示。圖1.1人臉識別的

14、一般步驟1.2概念介紹所謂人臉檢測(Face Detection),是指對于給定的一幅圖像,利用計算機并采用一定的算法和策略,在圖像中進行搜索,并確定其中是否含有人臉、人臉位置、人臉大小及人臉姿態(tài)的技術(shù)。因此,人臉檢測技術(shù)是人臉自動識別系統(tǒng)中的一個重要的關(guān)鍵環(huán)節(jié)。1.3 研究現(xiàn)狀人臉檢測是一個復(fù)雜的極具挑戰(zhàn)性的模式檢測,其主要的難點有兩方面: 一方面,是由于人臉內(nèi)在的變化所引起:(1)人臉的自身因素。人臉是一個包含五官、毛發(fā)等極不規(guī)則的復(fù)雜待測目標(biāo),不同的人臉在形狀、大小、顏色、質(zhì)地等方面都有很大的變化性,某些局部特征具有隨機性(如,眼睛等),而且還存在著不同表情的人臉,以及時間間隔產(chǎn)生人臉的

15、變化等,這些都給人臉檢測帶來難度。(2)人臉的不同視角。人臉可能以不同視角出現(xiàn)在圖像中,造成某些用于檢測而需提取的人臉的特征不可見,為了實現(xiàn)檢測方法的魯棒性,還需考慮人臉在各種復(fù)雜的背景中、不同方向、角度、尺度等情況下所展現(xiàn)出來的不同表象。(3)物體的遮擋。圖像中其他物體對人臉的遮擋,如眼鏡、頭發(fā)和頭部飾物以及其他外部物體等,對中遠距離的人臉檢測造成一定影響。另一方面,是由于外在條件變化所引起:(1)成像角度的影響。成像角度的不同能夠造成人臉的多姿態(tài),如平面內(nèi)旋轉(zhuǎn)、深度旋轉(zhuǎn)以及上下旋轉(zhuǎn),其中深度旋轉(zhuǎn)影響較大。(2)光照的影響。在中遠距離條件下的圖像場景會比較模糊,由于光照不均勻,圖像中的亮度、

16、對比度的發(fā)生變化和陰影,攝像頭距離觀測人群較遠等原因,人臉檢測定位比較困難。(3)圖像的成像條件。如攝像設(shè)備的焦距、成像距離,圖像獲得的途徑等等。(4)圖像中存在著噪聲。檢測對象大多是由圖像捕捉設(shè)備所采集的數(shù)字圖像或視頻中的數(shù)字圖像序列,所以采集條件特別是關(guān)照條件包括光源的方向、明暗、色彩等都會對圖像的效果產(chǎn)生很大的影響,進而影響對人臉的檢測。正因為在人臉識別的過程中存在上述的各種各樣的問題,因此在實際的檢測和識別過程中,當(dāng)這些因素疊加到一起的時候,情況就變得更加復(fù)雜。這些困難都為解決人臉問題造成了難度。如果能找到一些相關(guān)的算法并使其能在應(yīng)用過程中達到實時,將為成功構(gòu)造出具有實際應(yīng)用價值的人臉

17、檢測系統(tǒng)提供保證。目前,國外從事人臉檢測的研究機構(gòu)和院校比較多,取得明顯成就的有麻省理工大學(xué)和卡內(nèi)基梅隆大學(xué);而國內(nèi)從事人臉檢測的院校研究生也很多,諸如清華大學(xué)、中國技術(shù)科學(xué)院的自動化所等等。隨著人臉檢測研究的深入,國際上發(fā)表的有關(guān)論文數(shù)量也在大幅度增長,如IEEE的FG、ICIPCVPR等重要國際會議上每年都有大量關(guān)于人臉檢測的論文,占有關(guān)人臉研究論文的1/3之多。由此可見世界范圍的學(xué)者對人臉檢測技術(shù)的重視??偟膩碚f,人臉識別技術(shù)就是確定一種人臉的描述方式進行人臉檢測與識別。但是無論是先前的幾何描述方式還是目前常用的代數(shù)描述方式,都存在各自的缺陷。在以后的研究中,我們應(yīng)逐漸去完善人臉的描述方

18、式,使之更加有效,更加準(zhǔn)確。1.4 應(yīng)用領(lǐng)域近年來,視頻人臉檢測及其合成技術(shù)受到越來越多研究者的關(guān)注,這主要由于兩方面原因:一方面,計算機計算和存儲成本的大幅度下跌使得以視頻速率或近似視頻速率采集存儲圖像序列成為可能;另一方面,視頻跟蹤識別技術(shù)的極為廣闊的市場應(yīng)用前景也是推動此研究的主要動力。主要應(yīng)用在一下五個領(lǐng)域:(1)身份認(rèn)證與安全防護領(lǐng)域最通俗的例子就是門禁控制。所謂門禁控制,是指為了有效的進行安全管理,對人員進出情況實現(xiàn)權(quán)限控制并詳細(xì)記錄的管理手段。隨著人臉技術(shù)的不斷發(fā)展,目前基于人臉識別的新型門禁控制系統(tǒng),將具有訪問權(quán)限的人員的人臉資料和信息存放到數(shù)據(jù)庫中,通過攝像頭拍攝進出畫面后,

19、利用人臉檢測和識別技術(shù)對人臉信息進行檢索,當(dāng)該人員的人臉信息與數(shù)據(jù)庫中信息有相匹配的,則可以進入,否則拒絕進入,并對強行進入者發(fā)出報警。(2)媒體與娛樂領(lǐng)域隨著網(wǎng)絡(luò)化時代的到來,人們利用臉部表情的變化和對人臉的抽象,可以進行娛樂。在如今的手機、電腦、相機等電子產(chǎn)品中,基于人臉變化的娛樂手段越來越多。而家庭娛樂指的是能夠識別家庭主人身份的智能機器人,而這些媒體與娛樂的電子產(chǎn)品,關(guān)鍵技術(shù)之一就是人臉的識別與檢測。(3)圖像搜索領(lǐng)域目前,Google的圖像搜索其實還是文字搜索。基于人臉圖像識別技術(shù)的搜索引擎將會具有廣泛的應(yīng)用前景。(4)公安偵查領(lǐng)域同前文所述的身份認(rèn)證一樣,當(dāng)銀行發(fā)生搶劫案件、小區(qū)發(fā)

20、生盜竊案件時,可利用攝像頭拍攝的圖像,進行人臉檢測和識別,提取犯罪嫌疑人的人臉資料,幫助公安機關(guān)破案。(5)信息安全領(lǐng)域信息安全是指計算機和網(wǎng)絡(luò)的登錄、文件的加密和解密。在信息安全中,人臉的識別也是其中的一個關(guān)鍵技術(shù)。1.4 評價標(biāo)準(zhǔn)人臉檢測與識別系統(tǒng)性能主要評價標(biāo)準(zhǔn)有:識別率,誤檢率,檢測速度以及魯棒性。(1識別率:正確檢測和識別的人臉數(shù)量與圖像內(nèi)真實的人臉數(shù)目的比值叫做識別率。識別率越高,說明人臉檢測與識別系統(tǒng)的性能越好。(2)誤檢率:不是人臉而被誤檢測為人臉的窗口與圖像內(nèi)檢測出來的所有的人臉窗口數(shù)目的比值叫做誤檢率。比如圖像內(nèi)被檢測為人臉窗口的總數(shù)為A,被誤檢為人臉的非人臉子窗口數(shù)為B,

21、則誤檢率為BA。識別率無法反映人臉檢測與識別系統(tǒng)對非人臉的排除能力。因此引入誤檢率來衡量人臉檢測與識別系統(tǒng)對非人臉的排除能力。誤檢率越低,說明人臉檢測與識別檢測系統(tǒng)的性能越好。(3)檢測時間:由于人臉檢測與識別系統(tǒng)最終實現(xiàn)到實際的應(yīng)用中去,因此檢測時間是人臉檢測與識別系統(tǒng)中的一個重要的指標(biāo)。它包括兩個階段:一個是人臉檢測與識別的訓(xùn)練時間,一個是識別時間。在識別率率和誤檢率達到要求的前提下,檢測時間越小越好。(4)魯棒性:即在各種復(fù)雜背景的條件下,人臉檢測與識別系統(tǒng)的適應(yīng)能力。2. Adaboost人臉檢測算法2.1 概述2.1.1 Adaboost算法簡介Adaboost是一種迭代算法,其核心

22、思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強的最終分類器(強分類器)4。Adaboost算法是基于改變數(shù)據(jù)分布的一種算法,它根據(jù)訓(xùn)練集合中樣本分類和總體分類的的正確率,確定每個訓(xùn)練樣本的權(quán)值,并將新的訓(xùn)練權(quán)值的數(shù)據(jù)集合發(fā)送至下層分類器展開訓(xùn)練,然后再將下層分類器的訓(xùn)練結(jié)果融合到一起,進行最后的決策。使用Adaboost分類器可以排除一些不必要的訓(xùn)練數(shù)據(jù)特徵,并將關(guān)鍵放在關(guān)鍵的訓(xùn)練數(shù)據(jù)上面。Adaboost 算法是于1995 年提出的一種快速人臉檢測算法,是人臉檢測領(lǐng)域里程碑式的進步,這種算法根據(jù)弱學(xué)習(xí)的反饋,適應(yīng)性地調(diào)整假設(shè)的錯誤率,使在效率不降

23、低的情況下,檢測正確率得到了很大的提高。Adaboost算法是目前在眾多的人臉檢測算法中是一種檢測速度快、效果好的一種檢測方法。通過不斷的修正弱分類器的權(quán)值,并將這些權(quán)值結(jié)果融合到一起進行決策形成強分類器。與其他人臉檢測算法相比,Adaboost算法中,對每個弱分類器的權(quán)值分配完全是自動的,因此其具有方便和易用性。而且大量的實踐證明了Adaboost算法的有效性、迅速性和簡易性。Adaboost算法進行人臉檢測訓(xùn)練的路程圖如圖2.1所示。圖2.1 Adaboost算法訓(xùn)練過程2.1.2 Adaboost人臉檢測算法人體檢測屬于模式識別范疇。模式識別方法是多種多樣的,模式識別系統(tǒng)的最終目標(biāo),是要

24、在表示空間和解釋空間之間找到一種映射關(guān)系。這種映射可以是一個分類,也可以是回歸,抑或是一種描述方案。在這里,我們用分類來進行敘述。分類方法總得來說可以分為兩種:監(jiān)督學(xué)習(xí)方法和非監(jiān)督學(xué)習(xí)方法。此后,又在前兩者的基礎(chǔ)上發(fā)展出了半監(jiān)督學(xué)習(xí)方法,這種方法的本質(zhì)仍屬于監(jiān)督學(xué)習(xí)。統(tǒng)計分類是模式識別發(fā)展過程中建立起來的比較經(jīng)典的方法,其表達方式有著堅實的理論基礎(chǔ)。它主要基于用概率統(tǒng)計模型得到各類別的特征向量分布,以取得分類的功能。特征向量的取得是基于一個類別已知的訓(xùn)練樣本集合。因此,這是一種監(jiān)督學(xué)習(xí)的模式識別方法。因此,由概念驅(qū)動的分類器,是用已知的類別標(biāo)簽的樣本訓(xùn)練分類器來確定分類。而對新的樣本進行分類時

25、,分類方法取決于其分布類型。Adaboost算法是統(tǒng)計分類方法中一個經(jīng)典算法,它由Boosting算法發(fā)展而來,是由Freund和Schapire在1995年提出的,該算法解決了以前Boosting算法在實踐中存在的各種問題。實驗表明,Adaboost算法能夠顯著提高學(xué)習(xí)精度。利用Adaboost算法與Haar特征相結(jié)合的方法進行人臉檢測。Haar特征是一種基于積分圖像的特征,主要在灰度圖像中使用,該特征計算簡單,提取速度較快。Adaboost算法首先提取圖像中的Haar特征,再將訓(xùn)練得到的Haar特征轉(zhuǎn)換成弱分類器,最后將得到的弱分類器進行優(yōu)化組合用于人臉檢測。Viola提出的基于AdaBo

26、ost算法的快速人臉檢測和識別方法,實現(xiàn)了實時的正面人臉檢測系統(tǒng),并提出了積分圖像的圖像表示法、高效分類器、級聯(lián)分類器等核心思想。由于該方法能夠達到較高的檢測率并且具有目前最好的實時性,因此激發(fā)了更多研究人員在基于類Haar特征和Boost學(xué)習(xí)算法的實時人臉檢測算法方面的研究。 2.2弱學(xué)習(xí)與強學(xué)習(xí)當(dāng)我們隨機猜測一個對或錯的問題,會有50%的正確率。如果能夠提供一個假設(shè)后,稍微有效的提高猜測正確的概率,那么這個假設(shè)的算法就是弱學(xué)習(xí)算法,與其對應(yīng)的過程稱為弱學(xué)習(xí);如果一個假設(shè)能夠顯著地提高猜測正確的概率,那么這個假設(shè)的算法稱作強學(xué)習(xí)算法,與之對應(yīng)的過程為強學(xué)習(xí)。弱學(xué)習(xí)算法與強學(xué)習(xí)算法之間并不是鼓

27、勵存在的,如基于弱學(xué)習(xí)算法來進行粗略簡單的分類的分類器稱為弱分類器,其得到的準(zhǔn)確度要求只要達到50%以上即可。單個弱分類器的分類效果雖然很差,但是如果將一系列的弱分類器,按照一定的規(guī)則組合起來,就可以形成一個高度準(zhǔn)確的強分類器,這也就是級聯(lián)分類器。實際上每一個Haar特征都可以對應(yīng)一個弱分類器,每一個弱分類器都是根據(jù)它所對應(yīng)的Haar特征的參數(shù)來定義的。如果將所有的Haar特征都用來對應(yīng)一個弱分類器,那么其總個數(shù)將超過數(shù)十萬個。要想從這樣龐大數(shù)目的弱分類器中訓(xùn)練出最優(yōu)弱分類器將是一個非常巨大的工程,其訓(xùn)練時間也將達到數(shù)天之長。因此,這是該進Adaboost性能的一個關(guān)鍵點所在。Kearns和V

28、aliant研究證明:弱學(xué)習(xí)算法和強學(xué)習(xí)算法之間是存在等價關(guān)系的,也是會所弱學(xué)習(xí)算法能夠轉(zhuǎn)化為強學(xué)習(xí)算法,前提是要有足夠的數(shù)據(jù)和證明條件。2.3 PAC基本模型2.3.1 概述PAC(Probably Approximately Correct)模型是計算學(xué)習(xí)理論中常用的模型,是由Valiant于1984年首先提出來的,由統(tǒng)計模式識別、決策理淪提出了一些簡單的概念并結(jié)合了計算復(fù)雜理論的方法而提出的學(xué)習(xí)模型。它是研究學(xué)習(xí)及泛化問題的一個概率框架,不僅可用于神經(jīng)網(wǎng)絡(luò)分類問題,而且可廣泛用于人工智能中的學(xué)習(xí)問題。2.3.2 基本概念本文首先介紹一些基本概念:1、實例空間。實例空間指的是學(xué)習(xí)器中能見到

29、的所有實例的集合。一般用表示大小為n的的實例集,每個為一個實例,其中X表示實例空間。2、概念空間。指目標(biāo)慨念可以從中選取的所有概念的集合,學(xué)習(xí)器的目標(biāo)就是要產(chǎn)生目標(biāo)概念的一個假設(shè),使其能準(zhǔn)確地分類每個實例,對每個n1,定義每個為上的一系列概念,為X上的概念空間,也稱為概念類。3、假設(shè)空間。假設(shè)空間至的是算法所能輸出的聽有假設(shè)的集合,用表示。對每個目標(biāo)概念和實例,為實例上的分類值,即當(dāng)且僅當(dāng)?shù)娜我凰圃O(shè)h指的是規(guī)則,即對給出的,算法在多項式時間內(nèi)為輸出一預(yù)測值。4、樣本復(fù)雜度(sample complexity)指學(xué)習(xí)器收斂到成功假設(shè)時至少所需的訓(xùn)練樣本數(shù)。計算復(fù)雜度(computational

30、complexity)指學(xué)習(xí)器收斂到成功假設(shè)時所需的計算量。出錯界限指在成功收斂到一個假設(shè)前,學(xué)習(xí)器對訓(xùn)練樣本的錯誤分類的次數(shù)。在某一特定的假設(shè)空間中,對于給定的樣本,若能找到一似設(shè)h,使得對該概念類的任何概念都一致,且該算法的樣本復(fù)雜度仍為多項式,則該算法為一致算法。實例空間為,概念空間和假設(shè)空間均為的子集,對任意給定的準(zhǔn)確度及任意給定的置信度,實例空間上的所有分布及目標(biāo)空間中的所有目標(biāo)函數(shù),若學(xué)習(xí)器只需多項式個樣本及在多項式時間內(nèi),最終將以至少的概率輸出一假設(shè),使得隨機樣本被錯分類的概率,則稱學(xué)習(xí)器L足PAC學(xué)習(xí)的。它是考慮樣本復(fù)雜度及計算復(fù)雜度的一個基本框架,成功的學(xué)習(xí)被定義為形式化的概

31、率理淪,其模型如圖2.2所示。圖2.2 設(shè)定項目的類型、名稱、存儲路徑由圖2.2我們可以看出, PAC模型與分布基本是無關(guān)的。因為對學(xué)習(xí)器來說,實例集合中的分布是未知的。定義中并沒有要求學(xué)習(xí)器一定要輸出的錯誤率為零,僅僅是要求錯誤率被限定在某個常數(shù)范圍內(nèi)即可,而且也沒有要求學(xué)習(xí)器對每個隨機樣例序列都成立,僅僅要求不成功的概率在一定范圍內(nèi)即可。這樣將學(xué)習(xí)到一個可能近似正確的假設(shè)。2.3.3 PAC模型的不足在實際的機器學(xué)習(xí)中,PAC模型的不足主要有以下幾個方面:首先PAC模型中,它是用最壞的情況模型來測量算法中每個目標(biāo)概念以及樣例空間的分布,也是用最壞情況下,隨機樣例序列作為樣本復(fù)雜度的定義。也

32、就是會所,PAC模型往往用最不理想的樣例空間來計算和定義目標(biāo)概念,這導(dǎo)致PAC模型在實際中的應(yīng)用可能性大大降低,因為他在實際中是不可能實現(xiàn)的。即使存在一個很簡單的一致算法,由于采用最不理想條件而計算出來的樣本復(fù)雜度,PAC模型仍會過高的估計假設(shè)的出錯率,而使得PAC模型無法預(yù)測學(xué)習(xí)曲線(1earning curve)。2.4 Boosting算法針對Kearns和Valiant提出弱學(xué)習(xí)算法與強學(xué)習(xí)算法之間能不能互相轉(zhuǎn)化的問題, SchaPire在1990年首次給出了肯定回答。他認(rèn)為一個弱學(xué)習(xí)算法可以通過加強得到一個任意正確率的強學(xué)習(xí)算法,并通過構(gòu)造的一種多項式級的算法實現(xiàn)了這一加強過程,這就

33、是最初的Boosting算法。1991年Freund提出了另外一種效率更高的Boosting算法,1995年,F(xiàn)reund和Schapire提出的Adaboost,是對Boosting 算法的一大提高。但是這兩種算法都要求事先知道弱學(xué)習(xí)算法學(xué)習(xí)正確率的前提條件,因而很難應(yīng)用到實踐中去。2.5 Adaboost算法性能分析強分類器H(x)對整個訓(xùn)練樣本集進行檢測時,判斷錯誤的概率稱為訓(xùn)練誤判率,記為,則有:上式中Freund和Schapire推出關(guān)于Adaboost算法的訓(xùn)練誤判率重要理論。定理:假設(shè)運行Adaboost算法經(jīng)過T輪訓(xùn)練后生成的弱分類器分別 ,其對樣本集誤判率分別,則訓(xùn)練誤判率有

34、上界:8。在定理中,如果每個,令,則最終強分類器H(x)的訓(xùn)練誤判率上界可改寫為:由此可見,Adaboost算法的訓(xùn)練誤判率隨訓(xùn)練輪數(shù)T的增大呈指數(shù)級的減小。因此,基于Adaboost算法時隨著弱分類器數(shù)量增多和弱分類器誤判率的降低,強分類器的誤判率也會迅速下降。當(dāng)弱分類器足夠多時,基于Adaboost算法就可以使強分類器達到任意低的誤判率。3. OpenCV訓(xùn)練分類器3.1 OpenCV平臺概述3.1.1 OpenCV簡介 OpenCV(全稱為Open Source Computer Vision Library)是Intel公司支持的開源計算機視覺庫。它具有輕量級而且高效的特點由一系列 C

35、函數(shù)和少量 C+ 類構(gòu)成,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。1999年在俄羅斯設(shè)立的軟件開發(fā)中心“Software Development Center”開發(fā)OpenCV計算機視覺庫。OpenCV采用C/C+語言編寫,可以運行在Linux/Windows/Mac等操作系統(tǒng)上。OpenCV還提供了Python、Ruby、MATLAB以及其他語言的接口。OpenCV采用優(yōu)化的C代碼編寫實現(xiàn)的,因此充分利用了多核處理器的優(yōu)勢,在實時的應(yīng)用當(dāng)中往往執(zhí)行速度快。另外,對于采用基于OpenCV的消費者來說,還可以通過購買Intel的多媒體函數(shù)庫IPP(Integrated Performanc

36、e Primitives)來在Intel平臺上得到更快的系統(tǒng)處理速度。由于IPP函數(shù)庫中包含了許多用C語言代碼編寫的底層的優(yōu)化的函數(shù),并且?guī)缀醺采w到所有的應(yīng)用領(lǐng)域,因此它能夠大大提高系統(tǒng)的處理速度。由于一般都含有底層驅(qū)動,若系統(tǒng)中已經(jīng)安裝IPP函數(shù)庫,OpenCV在運行的時候會自動調(diào)用相應(yīng)的IPP庫。作為一個用戶終端系統(tǒng),OpenCV在開發(fā)的過程中更加強調(diào)了交互性,簡單、友好及易操作的界面和框架,幫助開發(fā)人員更加方面的設(shè)計和開發(fā)相關(guān)的應(yīng)用程序。OpenCV中包含有500多個封裝函數(shù),覆蓋了計算機視覺技術(shù)中的大部分領(lǐng)域,如醫(yī)學(xué)成像、信息安全、立體視覺、產(chǎn)品檢測以及機器人等。正因為計算機視覺與機器

37、學(xué)習(xí)的密切相關(guān)性,OpenCV還提供了機器學(xué)習(xí)庫MLL(Machine Learning Library),MLL采用基于統(tǒng)計方面的聚類和模式識別學(xué)習(xí),不僅可以方便的用于計算機視覺技術(shù)相關(guān)的任務(wù)中,還可以應(yīng)用與其他機器學(xué)習(xí)場景。3.1.2 OpenCV函數(shù)OpenCV由于廣泛應(yīng)用于計算機視覺而適應(yīng)于機器學(xué)習(xí)。其主要包含的機器學(xué)習(xí)庫有Boosting、K-最近鄰算法、決策樹、樸素貝葉斯分類器、期望最大化算法、人工神經(jīng)網(wǎng)絡(luò)、支持向量機、隨即森林等。此外,OpenCV還封裝了大量的基礎(chǔ)類型的數(shù)據(jù),并自定義了一些專門用于計算機視覺技術(shù)的幫助數(shù)據(jù)類型。具體列舉如下:基礎(chǔ)數(shù)據(jù)類型主要包括:1、 類IpII

38、mage 用于表示圖像2、 類CvMat 用于表示矩陣3、 類CvSeq、CvSet、CvGraph為可變集合類4、 混合類CvHistogram 用于表示多維柱狀圖幫助數(shù)據(jù)類型主要包括:1、 類CvPoint 用于表示二維點坐標(biāo)2、 類CvSize 用于表示圖像寬和高3、 類CvMoments 用于表示空間力矩4、 類IpIConvKernel 用于表示圖像轉(zhuǎn)換內(nèi)核由上述可知,OpenCV的函數(shù)命名一般都是以cv開始的,然后是該函數(shù)的行為或者作用目標(biāo)。OpenCV中所有的函數(shù)都是由于其在實際應(yīng)用中所實現(xiàn)的功能而分屬不同類型,主要的函數(shù)類型有: (1)圖像的一些基本操作函數(shù),如圖形處理函數(shù)、圖

39、形分析函數(shù)。這類函數(shù)主要實現(xiàn)圖像的一些基本分析操作等。(2)圖形運動分析與目標(biāo)跟蹤函數(shù)。這類函數(shù)主要用于運動分析與目標(biāo)跟蹤的函數(shù),例如函數(shù)cvKalman 則實現(xiàn)圖像的卡爾曼濾波。(3)圖像的結(jié)構(gòu)分析函數(shù),這類函數(shù)主要用于圖像的輪廓邊緣處理、幾何變換以及平面細(xì)分。 (4)攝像機定標(biāo)和3D重建函數(shù)。這類函數(shù)主要包括用于攝像機的位置定標(biāo)、姿態(tài)估計以及攝像頭進行3D相似重構(gòu)的函數(shù)。 (5)GUI與視頻處理函數(shù)。為方面設(shè)計人員開發(fā)出界面友好的應(yīng)用程序,OpenCV提供了高級圖形結(jié)構(gòu)函數(shù) HighGUI來實現(xiàn)對圖像的載入、顯示、保存等基本操作,以及其他用于實現(xiàn)視頻輸入輸出及處理的函數(shù)。3.1.3 Ope

40、nCV特征OpenCV憑借著其突出的優(yōu)點在計算機視覺領(lǐng)域取得了廣泛應(yīng)用。OpenCV的主要特征和優(yōu)點主要有以下幾個方面:(1)無論在Windows、Linux、Vxworks、Mac OS等不同的系統(tǒng)平臺上,OpenCV都可以良好的運行,良好的平臺無關(guān)性,移植性能非常好; (2)由于OpenCV支持大多數(shù)C/C+編譯器,因此可以輕易在不同開發(fā)環(huán)境和平臺下進行移植。如在VC6.0、C+ Builder、VCNET2008、VC.NET2005等不同的開放環(huán)境下都可以利用OpenCV進行應(yīng)用程序開發(fā);(3)OpenCV中無論是提供的封裝函數(shù),還是MLL機器學(xué)習(xí)庫都是完全開發(fā)的,源代碼在官方網(wǎng)站中都

41、可以下載,良好的開源性是其廣泛應(yīng)用的原因之一。 (4)由于OpenCV采用C語言代碼編寫,包括300多個C/C+函數(shù),代碼效率非常高,同時支持中、高層的API函數(shù);OpenCV可以與外部函數(shù)庫聯(lián)立使用,也可以獨立使用;提供了方便靈活的接口。 (5)OpenCV具備強大的圖像處理和矩陣運算能力,有助于減少開發(fā)者的工作量,有效提高應(yīng)用程序開發(fā)效率和應(yīng)用程序運行的可靠性; (6)突出多核處理器處理速度快的優(yōu)勢,針對Intel的處理器進行了優(yōu)化。3.2 目標(biāo)檢測法目標(biāo)檢測方法最初由Paul Viola提出,并由Rainer Lien hart對這一方法進行了改善。OpenCV中提供了已經(jīng)訓(xùn)練良好的Ha

42、ar級聯(lián)分類器,使得人臉檢測和識別過程可以很輕松方便的實現(xiàn)。OpenCV中的Haar級聯(lián)分類器是基于boost分類器實現(xiàn)的,也是說Haar級聯(lián)分類器的級聯(lián)表中包含的是boost分類器。那么我們可以得知:Haar級聯(lián)分類器則是由若干個簡單boost弱分類器級聯(lián)成的一個大的強分類器,被檢測的目標(biāo)依次通過每一個boost分類器,能夠通過所有boost分類器的圖形區(qū)域就可判定為人臉區(qū)域。OpenCV中的Haar級聯(lián)分類器實現(xiàn)人臉識別的過程具體可分為:首先,利用樣本空間集中的圖像, Haar級聯(lián)分類器進行分類器訓(xùn)練,得到一個級聯(lián)的boost分類器。所謂級聯(lián)分類器,指的是最終的Haar分類器是由幾個簡單的

43、強分類器級聯(lián)組成。在圖像檢測識別時,被檢窗口必須通過每一級強分類器, 全部通過每一級強分類器檢測的圖形區(qū)域即為目標(biāo)區(qū)域。其次,分類器訓(xùn)練完以后,就可以對輸入圖像中的與訓(xùn)練樣本中相似的區(qū)域進行檢測,相似區(qū)域包括相同尺寸、分辨率等。檢測到圖像區(qū)域中有目標(biāo)區(qū)域,即人臉區(qū)域是,級聯(lián)分類器輸出為1,反之則輸出為0。為了提高檢測的準(zhǔn)確率,可以在圖像中移動搜索窗口來檢測整副圖像,通過檢測整幅圖像中的每一個位置來確定可能的目標(biāo)。當(dāng)整幅圖像中有不同大小的人臉是,即喲偶不同大小的目標(biāo)區(qū)域,OpenCV中的Haar級聯(lián)分類器可進行檢測窗口尺寸大小的改變。與改變待檢圖像的尺寸大小相比,這種方式更為有效??偟膩碚f,為了

44、檢測整幅圖像中未知大小的目標(biāo)區(qū)域人臉區(qū)域,OpenCV中的Haar級聯(lián)分類器的掃描程序通常需要用不同比例大小的搜索窗口對圖片進行搜索式掃描。目前已經(jīng)成熟的基于boosting技術(shù)的分類器有Discrete Adaboost,Real Adaboost, Gentle Adaboost和Logitboost。根據(jù)上面的分析,目標(biāo)區(qū)域檢測分為以下三個步驟,如圖3.1所示:(1)樣本的創(chuàng)建;(2)訓(xùn)練分類器;(3)利用訓(xùn)練好的分類器進行目標(biāo)檢測。圖3.1 界面整體在界面的中間則是顯示視頻的地方。該軟件提供同時打開是個視頻文件,分別由四個打開按鈕來控制,并且還提供了單個視頻的放大和縮小功能,由上圖可以

45、看出。接下來對界面的三個部分進行進一步的說明。3.3 樣本的創(chuàng)建3.3.1創(chuàng)建負(fù)樣本(反例樣本)負(fù)樣本,又稱為反例樣本,可以來自于任意的圖片,但這些圖片不能包含目標(biāo)特征即人臉區(qū)域。一般來說,負(fù)樣本由文本文件背景描述文件來描述,背景描述文件中的每一行包含了一個基于描述文件的相對路徑的負(fù)樣本圖片的文件名,必須手動才能創(chuàng)建負(fù)樣本文件。如下是負(fù)樣本描述文件的一個例子: 若設(shè)定目錄結(jié)構(gòu)如下: /img img a.jpg img b.jpg bbs.txt 則背景描述文件bbs.txt的內(nèi)容為: img/img a.jpg img/img b.jpg3.3.2創(chuàng)建正樣本(正例樣本)與負(fù)樣本相反,正樣本則

46、是包含目標(biāo)特征的任意圖片,它也是文本文件,但是由程序中的createsample程序自動創(chuàng)建的,無須人工手動創(chuàng)建。程序createsample的源代碼可在OpenCV中查閱,一般以可執(zhí)行程序形式保存在bin目錄下。無論是單個的目標(biāo)圖片還是許多的事先標(biāo)記好的目標(biāo)圖形,都可以用來創(chuàng)建正樣本。正樣本也可以從一個預(yù)先標(biāo)記好的圖像集合中獲取。這個集合由一個文本文件來描述,類似于背景描述文件。每一個文本行對應(yīng)一個圖片。每行的第一個元素是圖片文件名,第二個元素是圖片中待檢測目標(biāo)實體的個數(shù)。后面緊跟著的是與之匹配的矩形框(x,y,寬度,高度)。以下給出一個人臉的檢測的例自,使用預(yù)先標(biāo)記好的圖像集合創(chuàng)建正樣本矢

47、量:有5個正樣本圖片文件:imgA.bmp,imgB.bmp,imgC.bmp,imgD.bmp,imgE.bmp;有2個背景圖片文件:bgA.bmp,bgB.bmp;文件目錄結(jié)構(gòu)如下:positive imgA.bmpimgB.bmpimgC.bmpimgDbmpimgE.bmpnegative bgA.bmpbgB.bmpinfo.dat bg.txt 正樣本描述文件info.dat的內(nèi)容如下: positive/imagA.bmp 1 0 0 24 28 positive/imagB.bmp 1 0 0 24 28positive/imagC.bmp 1 0 0 24 28positiv

48、e/imagD.bmp 1 0 0 24 28positive/imagE.bmp 1 0 0 24 28 圖片img1.bmp包含了單個目標(biāo)對象實體,矩形為(0,0,24,28)。此外,若是從圖片集中創(chuàng)建正樣本,則要用info參數(shù)而非img參數(shù)。info <collect_file_name> 標(biāo)記為正例樣本的圖片集合的描述文件。背景(負(fù)樣本)描述文件的內(nèi)容如下:nagative/bgA.bmp nagative/bgB.bmp 我們用一個批處理文件run.bat來進行正樣本的創(chuàng)建,該文件的內(nèi)容如下: cd e:facebin createsamples -vec e:facea

49、.vec -info e:faceinfo.dat -bg e:facebg.txt -num 5 -show -w 24 -h 28 其中e:facebin目錄包含了createsamples可執(zhí)行程序,生成的正樣本文件a.vec在e:face目錄下。-h和-w選項的值與正例樣本圖片的真實大小一定要保持嚴(yán)格的一致。可以從圖3.1中明顯的看到,界面上分布著很多的按鍵,不同的排布具有不同的功能,第二章已經(jīng)說明了添加命令按鈕的方法,其實除了簡單的添加之外軟件Visual C+ 2010還為用戶提供了更多的如外觀、尺寸等其他的設(shè)置,為用戶能夠設(shè)計出更多個性化的界面而提供幫助。本文所涉及的界面按鍵是以

50、矩形的樣式來設(shè)計的(該樣式也是軟件默認(rèn)的樣式),其中可以看到較小的按鍵12個和一個較大的按鍵一個。為了讓整體界面更充實飽滿,首先在界面中心畫出一個框來區(qū)分視頻顯示區(qū)域和其他區(qū)域,然后在其他區(qū)域分別用各種按鍵來填充,使得界面的整體沒有太多留空白的地方也能夠讓那么多的按鍵緊湊而又不擁擠的在其他區(qū)域進行排布。從小按鍵可以看到其中有兩排按鍵是兩兩對應(yīng)的,并且它們的尺寸也一樣,這樣做是為了讓使用者很明了的看到打開和處理每個視頻是必須對應(yīng)的,同樣是能方便用戶的使用。3.4訓(xùn)練分類器正負(fù)樣本創(chuàng)建之后,需要要訓(xùn)練分類器,這個過程是由haartraining程序來實現(xiàn)的。該程序源碼由OpenCV自帶,且可執(zhí)行程

51、序在OpenCV安裝目錄的bin目錄下,如3.2圖所示。圖3.2 HaarTaining訓(xùn)練流程下面進行訓(xùn)練級聯(lián)分類器,分類器訓(xùn)練的過程是用一個批處理文件run2.bat來完成:cd e:facebin haartraining -data e:facedata -vec e:facea.vec -bg e:facebg.txt -npos 5-nneg 2 -w 24 -h 28 訓(xùn)練結(jié)束后,在目錄data下會生成子目錄,即為訓(xùn)練好的分類器。-h和-w選項的值與背景描述文件中所描述的反例樣本圖片的真實大小一定要保持嚴(yán)格的一致,否則在haartraining.exe程序的運行過程中會擲出“In

52、valid background description file.”的錯誤并中止程序的繼續(xù)運行!注:OpenCV的一些高級版本可以將目錄中的分類器直接轉(zhuǎn)換成xml配置文件。所謂的xml配置文件是指用將目錄中的分類器用一個XML配置文件形式保存,通過對xml文件的訪問,來實現(xiàn)不同內(nèi)容的讀取,但是讀取算法和流程卻不用因為不同的內(nèi)容而改變的方法。在實際的訓(xùn)練應(yīng)用中,haartraining程序卻沒有生成xml文件,后來在OpenCV的yahoo論壇上找到一個haarconv的程序,才將分類器轉(zhuǎn)換為xml文件,其中的原因尚待研究。3.5 檢測目標(biāo)OpenCV的cvHaarDetectObjects(

53、)函數(shù)(在haarFaceDetect演示程序中示例)被用來做偵測。3.6創(chuàng)建Haar特征并載入樣本函數(shù)icvCreateIntHaarFeatures(winsize, mode, symmetric)負(fù)責(zé)創(chuàng)建所有可能的Haar特征。 Mode決定使用基本的5種特征還是所有upright特征抑或所有特征。 當(dāng)Symmetric為1時,表示只創(chuàng)建Haar特征的中心在左半部分的所有特征;當(dāng)Symmetric為0時,表示創(chuàng)建所有特征。當(dāng)訓(xùn)練人臉圖像時,由于人臉的左右對稱性可以設(shè)置Symmetric為1,以加速訓(xùn)練。在創(chuàng)建特征時,OpenCV將對每種特征進行了文字描述,具體如圖3.3所示。圖3.3

54、Haar分類器特征3.6.1 載入正樣本函數(shù)icvGetHaarTrainingDataFromVec( )負(fù)責(zé)從正樣本集*.vec 文件中載入數(shù)目為count個的正樣本。在訓(xùn)練第一個分類器時,即程序第一次運行到此時,只要正樣本集中有數(shù)目為count個樣本,則一定能取出count個正樣本。以后運行到此時,有可能取不到數(shù)目為count個樣本,因為若目標(biāo)區(qū)域沒有通過前面的級聯(lián)強分類器,則就不會被取出來,作為后面的級聯(lián)強分類器中的訓(xùn)練樣本。本文給出icvGetHaarTrainingData函數(shù)的表達式如下所示。int icvGetHaarTrainingDataFromVec( CvHaarTra

55、iningData* data, int first, int count, CvIntHaarClassifier* cascade, const char* filename, int* consumed )傳遞返回值的Consumed參數(shù)表示為取count個正樣本,查詢過的正樣本總數(shù)。此外,函數(shù)內(nèi)還通過調(diào)用icvGetAuxImages函數(shù)計算積分圖像。在此需要特別說明的是旋轉(zhuǎn)Haar特征所用積分圖像RSAT的計算方法,OpenCV代碼中的方法與其文章中的方法有些差異,實際效率比文章中方法更高。在計算 RSAT 時,代碼采用的是如下公式:RSAT ( x, y ) = RSAT ( x-

56、1, y-1 ) + I ( x, y ) + buf x + buf x+1 其中buf x是對角線像素灰度值之和,如圖3.4所示:圖3.4 積分圖像 RSAT 計算方法示意圖此外,計算歸一化因子時需要注意,OpenCV 沒有用樣本所有像素去計算標(biāo)準(zhǔn)差,而是去除了邊界一圈像素 (normrect = cvRect(1, 1, img->cols - 2, img->rows - 2 ),并且歸一化因子是標(biāo)準(zhǔn)差和歸一化區(qū)域面積的乘積 (*normfactor) =sqrt( valsqsum / area - ( valsum / are )2 ) * area),這樣就去除了在檢

57、測時目標(biāo)與樣本大小不同的影響。3.6.2 載入負(fù)樣本函數(shù) icvGetHaarTrainingDataFromBG( )負(fù)責(zé)從負(fù)樣本集中載入數(shù)目為count個的負(fù)樣本。同載入正樣本一樣,在訓(xùn)練第一個分類器是,系統(tǒng)的程序第一次運行該函數(shù),通過該函數(shù)能夠正確的從負(fù)樣本集中選取數(shù)目為count個的負(fù)樣本;但是在后面的級聯(lián)器運行是,系統(tǒng)也會運行該函數(shù),但是則有可能取不到數(shù)目為count個的負(fù)樣本。原因同正樣本一樣,只有通過了前面級聯(lián)器檢測的負(fù)樣本才回作為后面訓(xùn)練器的樣本集合,也才有可能被后面的訓(xùn)練器檢測識別為負(fù)樣本。本文給出函數(shù)icvGetHaarTrainingDataFromBG的表達式如下: int icvGetHaarTrainingDataFromBG( CvHaarTrainingData* data, int first,int count, CvIntHaarClassifier* cascade, double* acceptance_ratio )傳遞返回值的 acceptance_ratio 參數(shù)記錄的是實際取出的負(fù)樣本數(shù)與查詢過的負(fù)樣本數(shù)之比(acceptance

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論