




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要隨著互聯(lián)網(wǎng)的不斷發(fā)展,人們?cè)谏唐窌r(shí)的選擇變得不再單一,可以在實(shí)體店中購(gòu)買,也可以在網(wǎng)上購(gòu)買,網(wǎng)上購(gòu)買商品成為更多人的選擇,虛擬試戴技術(shù)應(yīng)運(yùn)而生。在當(dāng)今社會(huì)全球近視患者占全球人口比例達(dá)到22%,中國(guó)是近視眼患病大國(guó),近視人群比例達(dá)到47%,眼鏡成為拯救近視患者的方法之一?;谶@一現(xiàn)狀人們對(duì)于眼鏡的需求量是巨大的。根據(jù)產(chǎn)品銷售的區(qū)域特性,某些地區(qū)的人們難以在實(shí)體店中購(gòu)買到自己心儀的眼鏡,但在網(wǎng)上購(gòu)買眼鏡亦受到無(wú)法試戴的困擾,造成認(rèn)知偏差,產(chǎn)生大量退貨的情況。運(yùn)用虛擬試戴技術(shù)可以極大程度上減小用戶對(duì)產(chǎn)品外觀適配的偏差,虛擬試戴技術(shù)在未來(lái)的互聯(lián)網(wǎng)時(shí)代將有巨大的發(fā)展空間,也將促進(jìn)計(jì)算機(jī)視覺(jué)方面的快速發(fā)展。 本文以特征點(diǎn)回歸為基礎(chǔ),通過(guò)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)訓(xùn)練,得到模型用來(lái)回歸產(chǎn)生人臉雙眼的坐標(biāo)。計(jì)算雙眼坐標(biāo)的傾斜角度,根據(jù)仿射變換將圖片旋轉(zhuǎn),將眼鏡與人臉進(jìn)行圖片融合實(shí)現(xiàn)動(dòng)態(tài)的虛擬試戴。關(guān)鍵詞:特征點(diǎn)回歸;眼鏡虛擬試戴;圖片融合;仿射變換
AbstractWiththecontinuousdevelopmentoftheInternet,people'schoiceofcommoditieshasbecomenolongersingle,theycanbuyinphysicalstoresoronline.Onlineshoppingofvariousproductshasbecomethechoiceofmorepeople,andvirtualtrialtechnologyemergesattherightmoment.Intoday'ssociety,theproportionofmyopiapatientsintheworldisupto22%oftheworld'spopulation,Chinaisamajorcountrywithmyopiadisease,andtheproportionofmyopiapeoplereaches47%.Glasseshasbecomeoneofthewaystosavemyopiapatients.Thedemandforglassesishuge.Accordingtotheregionalcharacteristicsofproductsales,itisdifficultforpeopleinsomeareastobuytheirfavoriteglassesinphysicalstores.However,whenbuyingglassesonline,theyarealsotroubledbytheinabilitytotrythemon,resultingincognitivebiasandalargenumberofreturns.Theapplicationofvirtualtry-ontechnologycangreatlyreducethedeviationofusersontheappearanceoftheproduct.Virtualtry-ontechnologywillhaveahugedevelopmentspaceinthefutureInternetera,andwillalsopromotetherapiddevelopmentofcomputervision.Basedontheregressionoffeaturepoints,themodelistrainedbydeeplearningneuralnetworktoreturnthecoordinatesofgeneratingfaceandeyes.ThetiltAngleofbinocularcoordinateswascalculated,theimagewasrotatedaccordingtoaffinetransformation,andtheimagewasfusedwiththefacetorealizedynamicvirtualtrial.Keyworlds:FeatureRegression;Virtualglassestryon;ImageFusion;AffineTransformation目錄摘要Abstract第1章 緒論 緒論人們?cè)谡J(rèn)識(shí)一種事物時(shí)候,總是會(huì)在下意識(shí)的將自己認(rèn)知中的形象賦予給所描述的事物。這種認(rèn)知上的偏差會(huì)造成極大影響,如何解決這種在人們認(rèn)知與現(xiàn)實(shí)差距的問(wèn)題,已經(jīng)成為人們最迫切的任務(wù)。對(duì)于這一問(wèn)題的研究同樣能適用在解決互聯(lián)網(wǎng)購(gòu)物的認(rèn)知矛盾上,近十幾年互聯(lián)網(wǎng)發(fā)展催生了各種電商平臺(tái),節(jié)約了很多社會(huì)資源,提供了極大的便利?;ヂ?lián)網(wǎng)的發(fā)展也推動(dòng)了電商平臺(tái)不斷推出新的手段吸引用戶,虛擬試穿、試戴在一定程度上減小了人們的認(rèn)知偏差,同時(shí)也減少了不必要的退換貨等操作,節(jié)省了社會(huì)資源,提升了人們的網(wǎng)絡(luò)購(gòu)物體驗(yàn)。本課題從網(wǎng)絡(luò)購(gòu)物中眼鏡外觀偏差的問(wèn)題出發(fā),研究眼鏡試戴的開(kāi)發(fā)技術(shù)和實(shí)現(xiàn)。開(kāi)發(fā)背景及意義從第一臺(tái)計(jì)算機(jī)到互聯(lián)網(wǎng)的誕生再到現(xiàn)在,在不到100年的時(shí)間里所有事情都在發(fā)生著翻天覆地的變化。計(jì)算機(jī)的發(fā)明者約翰·馮·諾依曼也不會(huì)想到現(xiàn)在的計(jì)算機(jī)能做這么多事情,能小到可以裝進(jìn)口袋里,美國(guó)國(guó)防部也不會(huì)想到原本用于軍事用途的互聯(lián)網(wǎng)會(huì)將全世界連通起來(lái)。一切的事情都在變化。人們?cè)谧非蟊憬莸馁?gòu)物體驗(yàn)時(shí),電商平臺(tái)出現(xiàn)了,早期的網(wǎng)絡(luò)購(gòu)物平臺(tái)滿足了人們對(duì)于單純購(gòu)物的需求。目前為止家電、服飾鞋帽等網(wǎng)絡(luò)銷售模式已經(jīng)有一套成熟的銷售模式,因?yàn)檠坨R需要測(cè)量度數(shù),所以在網(wǎng)絡(luò)平臺(tái)上受限嚴(yán)重。試戴技術(shù)廣泛運(yùn)用的時(shí)候,顧客只需提供配眼鏡所需參數(shù),就可以在網(wǎng)上購(gòu)買到比實(shí)體店實(shí)惠很多,而且稱心的眼鏡。之后發(fā)展人們不再滿足以能夠看清東西,同時(shí)也在意眼鏡的外觀、品牌、材質(zhì)等其他外在表現(xiàn)。在繁多的眼鏡產(chǎn)品中找到合適自己的一款也變得越來(lái)越困難,電商平臺(tái)提供更豐富產(chǎn)品的同時(shí),也增加了消費(fèi)者篩選到滿意產(chǎn)品的時(shí)間成本?,F(xiàn)在各行各業(yè)都在進(jìn)行著更新?lián)Q代的轉(zhuǎn)型升級(jí),眼鏡實(shí)體店在當(dāng)下只能服務(wù)于很小的一片區(qū)域,這樣的經(jīng)營(yíng)模式顯然很難在互聯(lián)網(wǎng)產(chǎn)業(yè)快速發(fā)展的當(dāng)下占得先機(jī)。因此眼鏡行業(yè)需要積極的將自己與互聯(lián)網(wǎng)結(jié)合,實(shí)現(xiàn)從線下到線上的過(guò)渡。目前電商平臺(tái)的眼鏡商家還不能夠很好的滿足用戶的體驗(yàn)需求,在用戶追求快捷購(gòu)物的同時(shí),能夠虛擬試戴體驗(yàn)眼鏡的真實(shí)佩戴效果。顧客結(jié)合商家提供的眼鏡數(shù)據(jù)和試戴效果,全方位的了解商品的特性,讓顧客如身臨實(shí)體店般選購(gòu),這種銷售模式為不愿去眼鏡實(shí)體店,但有購(gòu)買需求的人提供了很好的機(jī)會(huì)。同時(shí)也避免了以往的網(wǎng)絡(luò)銷售模式造成的大量的退貨、換貨等操作,浪費(fèi)社會(huì)資源消耗雙方時(shí)間成本。當(dāng)前虛擬穿戴的研究在服飾方面的研究比較多,但在眼鏡試戴方面的研究應(yīng)用還是比較少的。對(duì)于試戴效果不夠動(dòng)態(tài)化,有些是因?yàn)椴捎幂^多復(fù)雜的技術(shù)導(dǎo)致處理時(shí)間過(guò)長(zhǎng),有些則為自動(dòng)化程度低需要用戶較多的手動(dòng)操作。因此需要投入大量時(shí)間去研究,本文研究如何自動(dòng)化、動(dòng)態(tài)、高效的虛擬試戴方法,滿足當(dāng)前消費(fèi)者對(duì)于眼鏡虛擬試戴的需求。當(dāng)前經(jīng)濟(jì)全球化,社會(huì)朝著萬(wàn)物互聯(lián)的方向發(fā)展,網(wǎng)絡(luò)購(gòu)物為人們提供了全新的購(gòu)物模式,但社會(huì)總是在前進(jìn),走在發(fā)展前端引領(lǐng)的人總是會(huì)得到獎(jiǎng)勵(lì)?;ヂ?lián)網(wǎng)+X總能煥發(fā)出驚人的能量,為從業(yè)者提供創(chuàng)新與競(jìng)爭(zhēng)的必要條件。根據(jù)上面描述的眼鏡虛擬試戴的背景與應(yīng)用價(jià)值和意義的詳細(xì)分析,我們可以看出現(xiàn)在對(duì)于眼鏡虛擬試戴的投入在未來(lái)將有巨大的收益與價(jià)值予以回饋。發(fā)展及現(xiàn)狀互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,人們對(duì)于在家購(gòu)物的意愿愈來(lái)愈強(qiáng)烈,逐漸習(xí)慣利用空閑來(lái)完成購(gòu)物。針對(duì)近視人口與日俱增的現(xiàn)狀,結(jié)合人們對(duì)于眼鏡的需求不再只滿足與解決視力問(wèn)題困擾,以及互聯(lián)網(wǎng)的發(fā)展,對(duì)于眼鏡虛擬試戴技術(shù)的發(fā)展巨大的發(fā)展契機(jī)。眼鏡虛擬試戴技術(shù)的研究碩果累累,下面將對(duì)眼鏡虛擬試戴技術(shù)的研究現(xiàn)狀作講述。眼鏡虛擬試戴中涉及到的人眼檢測(cè)技術(shù),在很多領(lǐng)域被廣泛運(yùn)用比如人臉識(shí)別、AI換臉、商業(yè)支付、人機(jī)交互、訪問(wèn)控制、視頻控制、特效生成、智能機(jī)器人等多個(gè)領(lǐng)域。在經(jīng)歷了幾十年的科學(xué)研究?,F(xiàn)在已經(jīng)出現(xiàn)非常多的人眼檢測(cè)辦法。人眼定位的運(yùn)用非常廣泛,除了眼鏡虛擬試戴外,還在支付安全、安全駕駛,面部表情分析等方面有廣泛應(yīng)用。在支付安全方面要求采集用戶面部信息,包括面部輪廓信息,以及眨眼動(dòng)作。人眼定位最初應(yīng)用在支付安全上時(shí),僅靠面部輪廓信息,這就容易造成通過(guò)照片就能“騙”過(guò)機(jī)器。眨眼動(dòng)作在一定程度上降低了這個(gè)風(fēng)險(xiǎn),照片是靜態(tài)的,在系統(tǒng)提示眨眼是不可能做出眨眼動(dòng)作的,當(dāng)機(jī)器檢測(cè)到眼鏡沒(méi)有進(jìn)行眨眼動(dòng)作那么就不允許通過(guò)。在現(xiàn)在的很多相機(jī)App上都會(huì)有一個(gè)檢測(cè)面部表情的功能,作為人類眾多生物特征之一,眼睛與口鼻、嘴巴、耳朵的位置關(guān)系包含了豐富的信息。人們的喜怒哀樂(lè)都會(huì)通過(guò)眼睛,以及其他面部器官的位置變化顯現(xiàn)出來(lái),是憤怒,喜悅或是其他。情緒化的外在表現(xiàn)是表情,在進(jìn)行刑事案件審理時(shí),犯罪嫌疑人的肢體動(dòng)作,面部表情都會(huì)隱藏著大量信息。捕捉犯罪嫌疑人的細(xì)微面部表情,以及眨眼頻率,對(duì)于案件審理都會(huì)有巨大幫助。人眼定位在電子商務(wù)方面的發(fā)展,主要趨向于眼睛虛擬試戴方面,為在線眼鏡銷售提供支撐。在互聯(lián)網(wǎng)+時(shí)代消費(fèi)者通過(guò)網(wǎng)上商城,能夠隨時(shí)隨地的瀏覽商品。將眼鏡這種平時(shí)需要去實(shí)體店才能購(gòu)買到的商品投放在網(wǎng)上商城上銷售,這是在積極擁抱互聯(lián)網(wǎng)的結(jié)果,眼鏡虛擬試戴的研究也是在為其提供助力,改變了傳統(tǒng)的眼鏡銷售模式和用戶體驗(yàn)?zāi)J?。模板匹配的人眼定位方法,主要有人眼灰度信息定位,統(tǒng)計(jì)信息定位?;叶葓D像的方法是將圖像進(jìn)行二值化操作,連通區(qū)域,凸顯五官特征的輪廓。設(shè)置閾值用于判定所選特征,將所選物體以外的區(qū)域排除。搜索最近連通區(qū)域搜索最近連通區(qū)域眼睛區(qū)域連通區(qū)域提取二值化原始眼睛區(qū)域連通區(qū)域提取二值化原始圖像 圖1.1模板匹配基于灰度投影函數(shù)的最多的是積分投影函數(shù)(IntegralProjectionFunctions,IPF),孟春寧提出一種基于尺度不變梯度積分投影函數(shù)的人眼分割方法,該方法充分考慮到人眼區(qū)域圖像局部灰度變化豐富的特點(diǎn),并繼承了投影方法計(jì)算量小的優(yōu)點(diǎn)[1]。積分投影函數(shù)先灰度化處理原始圖像,然后將灰度圖像進(jìn)行垂直或者水平方向上的灰度值積分,分析投影積分結(jié)果,得到所想要的圖像特征。深度學(xué)習(xí)的方法提取特征,屬于統(tǒng)計(jì)類的方法。利用大量包含非人眼和包含人眼的圖像對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在經(jīng)過(guò)學(xué)習(xí)后得到學(xué)習(xí)模型,運(yùn)用學(xué)習(xí)模型構(gòu)建分類器用于目標(biāo)檢測(cè)?;谏疃葘W(xué)習(xí)方法訓(xùn)練的模型在分類項(xiàng)目的準(zhǔn)確率非常高。卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,CNN)是深度學(xué)習(xí)的代表算法之一,可以進(jìn)行監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)。在二十一世紀(jì)隨著計(jì)算機(jī)的發(fā)展以及深度學(xué)習(xí)理論的提出,卷積神經(jīng)網(wǎng)絡(luò)取得了巨大的進(jìn)步,被廣泛運(yùn)用于自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)方面。高法燈采用基于Haar特征的AdaBoost級(jí)聯(lián)分類器算法進(jìn)行人臉檢測(cè),在檢測(cè)出人臉的基礎(chǔ)上,通過(guò)模板匹配的方法在人臉區(qū)域內(nèi)定位人眼和檢測(cè)人眼狀態(tài)[2]。胡峰松等人提出一種基于特征檢測(cè)的多視角眼鏡試戴算法,采用級(jí)聯(lián)分類器檢測(cè)方式,檢測(cè)出人眼位置備選區(qū)域,在約束條件下選出人眼的正確位置[3]。Schapire提出了最初的AdaBoost算法,為強(qiáng)弱兩種學(xué)習(xí)算法的等價(jià)性給出了答案[4]。黃亨利等人利用OpenCV中集成的Haar-like特征、AdaBoost算法的人臉檢測(cè)技術(shù)檢測(cè)出人臉位置,然后根據(jù)“三庭五眼”的理論以及集合特征知識(shí)完成人眼定位,再將眼鏡與人臉融合實(shí)現(xiàn)虛擬試戴的目的,對(duì)抗遮擋、表情變化都能有比較好的效果[5]。劉成、汪豐等人采用了單目攝像頭(ChargeCoupledDevice,CCD)捕捉圖像,提出一種跟蹤標(biāo)識(shí)物與人臉特征完成眼鏡模型與人臉疊加的試戴方法[6]。張景森提出一種基于MCT(ModifiedCensusTransform)變換和HIKSVM分類器的人臉檢測(cè)方法。采用Haar特征訓(xùn)練SVM線性分類器作粗檢測(cè),再通過(guò)訓(xùn)練基于MCT的HIKSVM作細(xì)分類器對(duì)粗檢測(cè)提取的結(jié)果確認(rèn),該方法具有良好的抗光干擾性[7]。MeanShift算法在分割、聚類、圖像平滑等方面應(yīng)用范圍很廣。石華偉,夏利民提出一種基于MeanShift算法和粒子濾波器的人眼跟蹤算法[8]。SVM算法由Vapnik等人研究發(fā)展而來(lái),在經(jīng)過(guò)長(zhǎng)久的發(fā)展到目前的SVM算法[9]。PanG等人采用正方形的掃描窗口,將眼睛和眉毛當(dāng)作一個(gè)整體對(duì)象,這樣做減少了眉毛的干擾[10]。QiongWang等人提出一種在臉部背景圖像中檢測(cè)人眼睛的方法[11]。Viola等人采用AdaBoost方法選取人臉的類Haar特征結(jié)構(gòu)來(lái)構(gòu)建人臉檢測(cè)器[12]。JuanLi等人提出了一種基于Poisson方程的眼鏡虛擬試戴方法,總結(jié)了一種結(jié)合改進(jìn)的主動(dòng)形狀的模型特征提取算法和圖像合成算法,可以為指定的顧客圖像進(jìn)行眼睛虛擬試戴[13]。Wan-YuHuang等人提出一種基于計(jì)算機(jī)視覺(jué)的虛擬眼鏡試戴系統(tǒng),通過(guò)電腦攝像頭將人臉圖像傳入系統(tǒng),用戶可以觀看虛擬試戴眼鏡的效果[14]。項(xiàng)目簡(jiǎn)介本文主要對(duì)基于MobileNet-V2神經(jīng)網(wǎng)絡(luò)的眼鏡試戴進(jìn)行研究,涉及人眼特征點(diǎn)回歸(基于深度學(xué)習(xí)人眼定位),主要為了改善眼鏡虛擬試戴的自動(dòng)化和動(dòng)態(tài)化效果。以下是本文的組織結(jié)構(gòu):第1章闡述眼鏡虛擬試戴的意義和研究背景和發(fā)展前景,對(duì)研究的現(xiàn)狀進(jìn)行總結(jié)和介紹,對(duì)本文的研究的主要內(nèi)容進(jìn)行概述。第2章詳述眼鏡虛擬試戴的開(kāi)發(fā)工具以及開(kāi)發(fā)技術(shù)基本原理,詳細(xì)介紹MobileNet-V2模型,以及模型訓(xùn)練、圖片融合、仿射變換等相關(guān)技術(shù)。第3章分析眼鏡虛擬試戴的功能特點(diǎn),對(duì)功能需求進(jìn)行分析。第4章眼鏡虛擬試戴各個(gè)功能模塊的描述,以及各模塊功能的詳細(xì)設(shè)計(jì)。最后對(duì)本文所做的主要內(nèi)容和工作進(jìn)行總結(jié),并指出接下來(lái)有待研究的內(nèi)容。眼鏡虛擬試戴開(kāi)發(fā)工具和技術(shù)簡(jiǎn)介在關(guān)于眼睛虛擬試戴的研究中,要將圖像處理和特征點(diǎn)檢測(cè)緊密結(jié)合,并且這些內(nèi)容之間不是相互獨(dú)立的,它們之間有非常多的聯(lián)系,之間的一些關(guān)聯(lián)形成了基本的原理。本章對(duì)于眼睛虛擬試戴開(kāi)發(fā)的工具及其技術(shù)作詳細(xì)分析和闡述。本文闡述的眼睛虛擬試戴開(kāi)發(fā)技術(shù)主要包括人眼位置定位和人像與眼鏡融合的兩大部分,其中包括MobileNet-V2神經(jīng)網(wǎng)絡(luò)的復(fù)現(xiàn)和解讀,回歸模型的訓(xùn)練,圖片融合以及PyQt5功能封裝編碼。開(kāi)發(fā)工具介紹開(kāi)發(fā)語(yǔ)言:Python3集成開(kāi)發(fā)環(huán)境:PyCharmCommunityTensorflow-GPU版本:1.9.0模型訓(xùn)練數(shù)據(jù)處理訓(xùn)練數(shù)據(jù)集采用的是Caltech_WebFaces數(shù)據(jù)集,該數(shù)據(jù)集的包含7092張人臉圖像,以及一份人臉特征點(diǎn)標(biāo)記的文本文件(文本中包含有10524條數(shù)據(jù),因?yàn)橛胁糠值膱D片中不單單標(biāo)記了一個(gè)人物的特征點(diǎn)坐標(biāo))。該份人臉特征點(diǎn)標(biāo)記文件的內(nèi)容包含對(duì)應(yīng)圖片名稱、左眼、右眼、鼻子、嘴的二維坐標(biāo)。圖2.1數(shù)據(jù)集的說(shuō)明文件圖片原始數(shù)據(jù)如下,這里的圖片尺寸各不相同,在后續(xù)工作中需要將其轉(zhuǎn)換為相同尺寸的圖片即224*224。圖2.2原始數(shù)據(jù)據(jù)圖像人臉特征點(diǎn)標(biāo)記原始數(shù)據(jù)如下,此處的特征點(diǎn)坐標(biāo)數(shù)據(jù)類型為浮點(diǎn)型,同時(shí)這里還未將坐標(biāo)與對(duì)應(yīng)圖片縮放比例尺寸轉(zhuǎn)換。圖2.3人眼原始坐標(biāo)查看原始特征點(diǎn)標(biāo)記數(shù)據(jù)是否有缺失,這里可以看到原始特征點(diǎn)坐標(biāo)數(shù)據(jù)有10524維,其中真實(shí)會(huì)使用的數(shù)據(jù)維度為7092維,各特征點(diǎn)的坐標(biāo)的數(shù)據(jù)并沒(méi)有缺失。圖2.4數(shù)據(jù)完整度展示原始特征點(diǎn)坐標(biāo)在原始圖片上的標(biāo)記效果展示:圖2.5原始數(shù)據(jù)標(biāo)點(diǎn)展示上述結(jié)果可以得出,在各特征維度上數(shù)據(jù)保持了很好的完整度。需要處理的是將特征點(diǎn)數(shù)據(jù)數(shù)量縮減為7092(圖片數(shù)量)維,這里處理的方法是去重,保留相同圖片名稱的第一條數(shù)據(jù)。針對(duì)MobileNet-V2神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)要求,輸入圖片的大小需要處理成224*224,以及坐標(biāo)點(diǎn)需要根據(jù)對(duì)應(yīng)圖片的縮放比例轉(zhuǎn)換成整數(shù),將原始坐標(biāo)數(shù)據(jù)(x,y)乘以圖片,因此這里也需要對(duì)特征點(diǎn)標(biāo)記文件進(jìn)行預(yù)處理,處理效果如下。圖2.6處理完成后的坐標(biāo)數(shù)據(jù)特征點(diǎn)數(shù)據(jù)坐標(biāo)分布情況如下,可以看出四個(gè)特征的數(shù)據(jù)坐標(biāo)呈簇分布,不存在各特征點(diǎn)有相對(duì)于其他特征點(diǎn)固定的位置分布。換句話說(shuō)就是圖片中人臉的位置不是固定在一個(gè)位置,而是相對(duì)自由的,分布在圖片中的各個(gè)位置。這樣的數(shù)據(jù)分布對(duì)于訓(xùn)練神經(jīng)網(wǎng)絡(luò)是很適合的,增強(qiáng)了模型的泛化能力。圖2.7數(shù)據(jù)分布用于訓(xùn)練的圖片的數(shù)據(jù)處理如下,通過(guò)補(bǔ)齊寬和高中的最短者,使圖片尺寸變成寬高相等的正方形,補(bǔ)充的邊框使用色調(diào)為黑色。此時(shí)再通過(guò)使用OpenCV中的resize()模塊,將正方形圖片縮放至224*224大小。使用這個(gè)方法可以有效避免,圖片在使用resize()模塊時(shí)發(fā)生較大的形變。圖2.8圖片尺寸轉(zhuǎn)換修正結(jié)果如下所示,原圖片尺寸為252*180,通過(guò)使用黑邊補(bǔ)齊高度使得寬和高相等,得到寬高相等的訓(xùn)練使用圖片。圖2.9圖片縮放展示眼鏡虛擬試戴開(kāi)發(fā)技術(shù)介紹整個(gè)項(xiàng)目的開(kāi)發(fā)流程如下,一是使用MobileNet-V2神經(jīng)網(wǎng)絡(luò)訓(xùn)練出能回歸人眼關(guān)鍵點(diǎn)坐標(biāo)位置的神經(jīng)網(wǎng)絡(luò)模型,二是眼鏡圖片與人臉圖片的融合,三是實(shí)時(shí)視頻試戴下保證視頻輸出的流暢度,四是將邏輯代碼使用PyQt5封裝成可操作界面。卷積神經(jīng)網(wǎng)絡(luò)介紹在了解MobileNetV2之前需要先了解卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,CNN),卷積神經(jīng)網(wǎng)絡(luò)是由YannLeCun提出的,是第一個(gè)利用卷積神經(jīng)網(wǎng)絡(luò)解決MINIST手寫數(shù)據(jù)集問(wèn)題的人。卷積神經(jīng)網(wǎng)絡(luò)也是屬于層級(jí)網(wǎng)絡(luò)架構(gòu),與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)很相似,在最后一層也是采用全連接層進(jìn)行輸出。卷積神經(jīng)網(wǎng)絡(luò)由輸入層(InputLayer)、卷積層(ConvLayer)、ReLU激活函數(shù)(ReLULayer)、池化層(PoolingLayer)、全連接層(FullyConnectedLayer)組成。輸入層所做的工作是對(duì)輸入的原始圖像數(shù)據(jù)進(jìn)行預(yù)處理,如去均值、歸一化、降維等,歸一化是將特征范圍以某一比例轉(zhuǎn)換到一個(gè)指定區(qū)間如0-1的范圍。降維則是按照某種映射方式將原始數(shù)據(jù)映射到不同維度上,達(dá)到篩選特征的目的。在數(shù)據(jù)模型的訓(xùn)練中過(guò)多的特征數(shù)據(jù)會(huì)使得模型復(fù)雜度升高,導(dǎo)致模型泛化能力差。降維的好處在于數(shù)據(jù)維度的下降,使得計(jì)算方面節(jié)省了很多的資源,提高了模型的泛化能力和魯棒性(一個(gè)系統(tǒng)抵抗和防御異常危險(xiǎn)情況的能力)。去除了特征之間的共線性,優(yōu)化了模型,降低了模型的復(fù)雜度。卷積層是卷積神經(jīng)網(wǎng)絡(luò)中非常重要的一層,它是使用深度與輸入圖像深度(即通道數(shù),R、G、B)的卷積核進(jìn)行特征提取,卷積核的尺寸通常為3*3或者5*5。卷積的過(guò)程就是讓卷積核以規(guī)定步長(zhǎng)(stride)在圖像上滑動(dòng),輸入圖像與卷積核重合位置的元素先相乘再求和即進(jìn)行矩陣的內(nèi)積運(yùn)算,然后加上偏置值b(Bias)就得到輸出特征矩陣的一個(gè)元素。例如下圖,有兩個(gè)卷積核w0,w1,藍(lán)色矩陣是輸入圖像,粉色矩陣是卷積核。輸出矩陣標(biāo)出的1的計(jì)算過(guò)程為:1-2+1+1=1,圖中藍(lán)色矩陣外有一圈灰色的框(內(nèi)值都為0),稱為填充值。填充值的出現(xiàn)是因?yàn)榫矸e核尺寸、輸入圖像尺寸以及卷積核滑動(dòng)步長(zhǎng)之間的關(guān)系。下圖中輸入圖像尺寸為5*5,卷積核尺寸為3*3,卷積核滑動(dòng)步長(zhǎng)為2,即跳兩格完成滑動(dòng)。當(dāng)卷積核完成第一次內(nèi)積運(yùn)算后,滑動(dòng)兩格后會(huì)出現(xiàn)卷積核右側(cè)一列沒(méi)有對(duì)應(yīng)數(shù)值,這是就需要對(duì)原先的矩陣進(jìn)行邊界填充,填充值對(duì)于卷積會(huì)產(chǎn)生影響。完成以上卷積過(guò)程就能產(chǎn)生一個(gè)3*3*1的特征圖。圖2.10卷積運(yùn)算關(guān)于輸出特征圖的尺寸的計(jì)算,上述過(guò)程涉及的超參數(shù)有卷積核個(gè)數(shù)(k)、卷積核大小(f)、步長(zhǎng)(s)、邊界填充(p),輸入圖像的尺寸數(shù)據(jù)寬(w1)、高(h1)、通道數(shù)(d1)。確定以上這些參數(shù)便能計(jì)算輸出特征圖的大小:輸出特征圖寬(w2)=(w1–f+2p)/s+1,高(h2)=(h2–f+2p)/s+1,深度(d2)=k。卷積層中還有一個(gè)參數(shù)共享機(jī)制,當(dāng)一個(gè)卷積核在輸入圖像矩陣上進(jìn)行卷積運(yùn)算的時(shí)候,卷積核內(nèi)參數(shù)是與整張圖像共享的,單個(gè)卷積核只關(guān)注圖像的一個(gè)特性,這樣可以使得參數(shù)個(gè)數(shù)大大減少。激活函數(shù)(activationfunction)的作用其實(shí)對(duì)卷積層的輸出結(jié)果做了一次非線性映射,沒(méi)有激活函數(shù)的作用神經(jīng)網(wǎng)絡(luò)所有層的輸出都是線性的(方程為y=w*x+b),無(wú)法擬合一些非線性數(shù)據(jù),激活函數(shù)就是為了解決線性不可分問(wèn)題。在神經(jīng)元中對(duì)輸入的數(shù)據(jù)進(jìn)行加權(quán)求和,值再被輸入到一個(gè)函數(shù)中,這個(gè)函數(shù)就是激活函數(shù)。圖2.11神經(jīng)元中的激活函數(shù)大部分卷積神經(jīng)網(wǎng)絡(luò)中激活函數(shù)使用的是ReLU函數(shù),公式為y=max(0,x),求導(dǎo)后得到y(tǒng)=0x≤0xx>0。ReLU函數(shù)相較于其他激活函數(shù),在SGD中能夠快速收斂。ReLU函數(shù)為網(wǎng)絡(luò)提供了稀疏性,最大可能的保留數(shù)據(jù)特征,用大多數(shù)元素為0的稀疏矩陣表示。池化層(PoolingLayer)是用來(lái)壓縮數(shù)據(jù)量的,減小過(guò)擬合。池化層往往是處于卷積層之后的,對(duì)于圖像輸入數(shù)據(jù),池化層的工作就是對(duì)特征圖進(jìn)行壓縮,降低卷積層輸出的特征向量,消除冗余信息提取主要特征。圖2.12池化層工作原理池化層用的最多方法的是MaxPooling,與卷積層類似,同樣使用卷積核按照指定步長(zhǎng)在輸入的特征圖上滑動(dòng),在劃過(guò)的區(qū)域?qū)ふ易畲笾?,提取得到壓縮后新的特征圖。如下圖中矩陣左上角四個(gè)元素最大的為6,所以這個(gè)區(qū)域提取6,以此類推得到其他3個(gè)數(shù)值組成新的特征圖。圖2.13MaxPooling全連接層(FullyConnectedLayer)之前的各層網(wǎng)絡(luò)都是為了提取特征,全連接層則是起到分類作用,其核心操作就是矩陣向量的乘積y=W*x全連接層很大程度上減小特征所處位置對(duì)于分類結(jié)果的影響。大部分的全連接層都是兩層或以上,這是為更好的解決非線性問(wèn)題。全連接層是忽略了空間特征的,對(duì)于在空間位置上分割圖案是不適用的。如下圖,對(duì)于兩張圖像卷積的結(jié)果是一致的,而對(duì)于空間位置的因素是忽視的。圖2.14全連接層對(duì)于空間敏感度全連接層在將之前提取到的特征整合后就能進(jìn)行分類任務(wù),判斷這個(gè)是什么物體。圖2.15全連接層輸出MobileNetV2網(wǎng)絡(luò)介紹本文中用于回歸預(yù)測(cè)人眼坐標(biāo)位置的模型訓(xùn)練架構(gòu),采用MobileNet-V2神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)是一種輕量型的神經(jīng)網(wǎng)絡(luò),在2018年由谷歌公司提出,相較于其他大型神經(jīng)網(wǎng)絡(luò)而言,具有參數(shù)少,結(jié)構(gòu)輕量化等明顯優(yōu)勢(shì)。MobileNet-V2在語(yǔ)義分割、目標(biāo)檢測(cè)、分類方面都有不錯(cuò)的表現(xiàn),MobileNet-V2網(wǎng)絡(luò)相比于MobileNet-V1網(wǎng)絡(luò),模型更小,準(zhǔn)確率更高。參數(shù)方面對(duì)比MobileNet-V1要減少了30%左右,但是速度卻快了30%左右。MobileNet-V2是適用于移動(dòng)端設(shè)備的神經(jīng)網(wǎng)絡(luò),手機(jī)以及其他嵌入式設(shè)備都可以使用。MobileNet-V1的發(fā)布改變了以往神經(jīng)網(wǎng)絡(luò)參數(shù)過(guò)多,運(yùn)算耗費(fèi)過(guò)多資源的問(wèn)題,在降低少許精度的同時(shí)減少大量參數(shù),減小了模型體量。MobileNetV1相較于常規(guī)的卷積神經(jīng)網(wǎng)絡(luò),提出了深度可分離卷積(depthwiseseparableconvolution),在參數(shù)量方面MobileNetV1使用深度可分離卷積大大減少了參數(shù)量。這樣的小型的網(wǎng)絡(luò)提高了移動(dòng)設(shè)備的使用靈活性,提升了用戶體驗(yàn)。眼鏡虛擬試戴最廣闊的應(yīng)用場(chǎng)景是在移動(dòng)端,輕量型網(wǎng)絡(luò)的訓(xùn)練,也使得很多硬件設(shè)備不足以支持大型網(wǎng)絡(luò)訓(xùn)練的人能夠進(jìn)行實(shí)驗(yàn)。MobileNetV2中繼承了MobileNetV1中引入的深度可分離卷積(DepthwiseSeparableConvolution),深度可分離卷積是將傳統(tǒng)的卷積運(yùn)算分成DepthwiseConv(DW卷積)與PointwiseConv(PW卷積)兩個(gè)部分進(jìn)行。在傳統(tǒng)卷積過(guò)程中,卷積核的深度與輸入的特征矩陣深度是一致的,輸出特征矩陣的深度是與卷積核的個(gè)數(shù)相同的。在DW卷積中,卷積核的深度是為1的,輸入特征矩陣的深度是與卷積核個(gè)數(shù)以及輸出特征矩陣深度相等的。在DW卷積中一個(gè)卷積核負(fù)責(zé)輸入特征矩陣的一個(gè)channel,這是傳統(tǒng)卷積不同的。圖2.16普通卷積圖2.17DW卷積PW卷積在實(shí)質(zhì)上是與普通卷積一致的,卷積核深度與輸入特征矩陣深度以及輸出特征矩陣一致,卷積核的深度都是為1的,這是與普通卷積不同的。圖2.18PW卷積普通卷積與深度可分離卷積在參數(shù)數(shù)量上的對(duì)比如下,DF(輸入特征矩陣的高和寬)、DK(卷積核的大?。(輸入特征矩陣的深度)、N(輸出特征矩陣深度)。普通卷積參數(shù)計(jì)算公式:DK?DK?MMobileNetV2提出了兩個(gè)創(chuàng)新點(diǎn):InvertedResiduals(倒殘差),LinearBottlenecks(線性瓶頸)。倒殘差結(jié)構(gòu)中對(duì)于特征矩陣的處理,首先采用1*1卷積核進(jìn)行升維,然后利用3*3的DW卷積核進(jìn)行卷積,最后使用1*1的PW卷積進(jìn)行降維操作,呈現(xiàn)低維-高維-低維的結(jié)構(gòu)。圖2.19倒殘差結(jié)構(gòu)倒殘差結(jié)構(gòu)中使用的激活函數(shù)是relu6,原本的relu激活函數(shù)對(duì)于大于0的值是加限制的,即在大于0的部分是正無(wú)窮的。Relu6在大于0部分進(jìn)行了處理使其最大值為6,這就避免了輸入值在激活后過(guò)大,造成模型不穩(wěn)定的影響。圖2.20relu6函數(shù)代碼Relu6的表達(dá)式為relu6(x)=min(max(x,0),6),函數(shù)圖像如下:圖2.21Relu6倒殘差結(jié)構(gòu)中,最后一層1*1的PW卷積使用的是線性激活函數(shù)。使用不同維度的矩陣T對(duì)輸入的矩陣進(jìn)行升維,然后使用relu激活函數(shù)得到輸出矩陣,再使用T的逆矩陣對(duì)輸出矩陣還原回輸入矩陣維度,會(huì)發(fā)現(xiàn)對(duì)于低維信息損失嚴(yán)重,高維數(shù)據(jù)損失較小。在倒殘差結(jié)構(gòu)最后一層使用線性激活函數(shù)替代線性激活函數(shù),是為了防止非線性因素丟失太多的信息。神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練模型訓(xùn)練中使用的是從keras.Applications包中導(dǎo)入MobileNetV2神經(jīng)網(wǎng)絡(luò)模型,獲取模型的中間層輸出,增加全連接層數(shù)量,再進(jìn)行線性輸出。涉及到的調(diào)整有損失函數(shù)的選擇、全連接層的數(shù)量。本文損失函數(shù)的選擇測(cè)試和有MSE(MeanSquaredError,均方誤差),MAE(MeanAbsoluteError,平均絕對(duì)誤差)。均方誤差又稱L2損失是回歸模型中最常用的一種損失函數(shù),本質(zhì)是真實(shí)值與預(yù)測(cè)值差值的平方和的均值,即計(jì)算每個(gè)batch中的預(yù)測(cè)值與真實(shí)值差值的平方和的均值,隨著誤差減小梯度也在減小便于收斂。表達(dá)式定義如下:MSE(y,y`)=i=1均方誤差損失與預(yù)測(cè)值之間的函數(shù)圖像如下:圖2.22MSE損失與預(yù)測(cè)值關(guān)系上圖中真實(shí)值為100,預(yù)測(cè)值的范圍為[-10000,10000],損失范圍[0,+∞]??梢钥闯鲈陬A(yù)測(cè)值在偏離真實(shí)值之后,MSE損失是非常迅猛的。這是由于平方運(yùn)算導(dǎo)致的,當(dāng)真實(shí)值與預(yù)測(cè)值相差小于1時(shí),損失較小,當(dāng)兩者差值大于1時(shí)會(huì)有較大的損失。對(duì)于異常值會(huì)給予較高的權(quán)重,因此MSE容易受異常值的影響,從而犧牲正常值數(shù)據(jù),進(jìn)而影響整個(gè)模型的性能。MAE(MeanAbsoluteError,平均絕對(duì)誤差)又稱L1損失,同樣也是回歸模型中常用的損失函數(shù)。實(shí)質(zhì)為真實(shí)值與預(yù)測(cè)值差值的絕對(duì)值之和的均值,定義如下:MAE=i=1MAE的學(xué)習(xí)率大部分時(shí)候是固定的,梯度較大,不適合模型的學(xué)習(xí)和函數(shù)的收斂,但是因?yàn)橄鄬?duì)固定的學(xué)習(xí)率所以不會(huì)引起梯度爆炸。圖2.23MAE損失由此可知,在處理異常值的時(shí)候MAE穩(wěn)定性更好,但是學(xué)習(xí)率相對(duì)固定不利于模型學(xué)習(xí)與收斂。MSE對(duì)于異常值敏感,會(huì)給予異常值較高權(quán)重,影響模型性能。對(duì)于MAE與MSE兩者誰(shuí)更適合,本文將繼續(xù)探討。以下為兩個(gè)損失函數(shù)、batchsize(每批次訓(xùn)練樣本大小)、epochs(訓(xùn)練次數(shù))、學(xué)習(xí)率相同,但全連接層數(shù)目不同的模型訓(xùn)練結(jié)果。圖2.24MAE損失函數(shù)訓(xùn)練展示在上述對(duì)比中兩者的測(cè)試集誤差與訓(xùn)練集誤差,在下降的總趨勢(shì)上是一致的。4層全連接層測(cè)試誤差在前期下降明顯,先行趨于穩(wěn)定,三層全連接層在下降過(guò)程中比較緩慢。但在實(shí)際數(shù)據(jù)中全連接層數(shù)為3時(shí),無(wú)論是測(cè)試誤差還是訓(xùn)練誤差都比4層全連接層小,但是差距較小。上述在縮小訓(xùn)練次數(shù)的情況下,增加全連接層數(shù)目是有效果的。針對(duì)損失函數(shù)的改變對(duì)于模型性能影響,采用MAE與MSE進(jìn)行對(duì)比。在Batchsize、epochs相同的情況下進(jìn)行,相較于使用MAE的測(cè)試損失和訓(xùn)練損失都比較大。圖2.25MSE損失函數(shù)訓(xùn)練展示本文訓(xùn)練了多個(gè)模型,并選取其中一些模型試戴效果進(jìn)行對(duì)比展示,如圖2.26和圖2.27所示。圖2.26MSE損失函數(shù)模型效果展示圖2.27MAE損失函數(shù)模型效果展示在上述光照條件相同的情況下,比較可以發(fā)現(xiàn)對(duì)于屏幕中央部位,兩個(gè)模型的試戴效果接近,左側(cè)的試戴效果中MAE略勝M(fèi)SE一籌,右側(cè)的效果同樣是MAE表現(xiàn)較好。針對(duì)圖2.24左側(cè)4層全連接層、MAE損失函數(shù)模型進(jìn)行試戴測(cè)試,如圖2.28所示。圖2.28全連接層數(shù)4圖2.30訓(xùn)練與測(cè)試數(shù)據(jù)損失根據(jù)試戴效果可知,在除全連接層數(shù)不同外其他條件一致,數(shù)據(jù)上看訓(xùn)練與測(cè)試數(shù)據(jù)在epochs減半的情況下,都達(dá)到了次數(shù)為20的水平,但是展示結(jié)果卻不盡人意。全連接層的數(shù)目會(huì)影響模型的性能,顯然4層的全連接層的模型效果不盡人意。綜合上述展示結(jié)果比較,選定全連接層數(shù)目為3、epochs為20、batchsize為14、損失函數(shù)為MAE的模型。仿射變換仿射變換,是指在幾何中,一個(gè)向量空間在進(jìn)行了一次線性變換后并接上一個(gè)平移,從而變換到另一個(gè)向量空間。仿射變換是在二維坐標(biāo)到二維坐標(biāo)的線性變換,而且保持了二維圖片的“平行性”以及“平直性”。仿射變換是可以通過(guò)一系列變換復(fù)合來(lái)實(shí)現(xiàn)的,其中包括縮放(scaling)、平移(translation)、反射(reflection)、旋轉(zhuǎn)(rotation)以及剪切(shear)。平移變換和旋轉(zhuǎn)變換兩者的組合,被稱為歐式變換(Euclideantransformation)。一般圖像由RGB三個(gè)通道組成,對(duì)于圖像本質(zhì)而言就是由一些數(shù)字組成的矩陣,在進(jìn)行圖像的旋轉(zhuǎn)、平移等處理時(shí)處理時(shí)實(shí)質(zhì)上,就是對(duì)矩陣的內(nèi)容元素進(jìn)行矩陣變換操作。一個(gè)集合X的仿射變換表達(dá)式為:f平移量為0或者沒(méi)有進(jìn)行平移的所有仿射變換,都可以用以下變換矩陣表示。x'y'為變換完成后的坐標(biāo),xy則為變換前的坐標(biāo)。ax排除了平移變換之后的所有仿射變換都為線性變換。引入齊次坐標(biāo),使用3*3矩陣M來(lái)表示這一類變換。增廣這里最后一行為(0,0,1),這樣就能涵蓋到平移變換了,示例如下。x對(duì)于不同的仿射變換相對(duì)應(yīng)的a、b、c、d會(huì)有不同的約束:(1)縮放變換,將每一個(gè)原始坐標(biāo)的縱坐標(biāo)縮?。〝U(kuò)大)ty倍,以及將橫坐標(biāo)縮小(擴(kuò)大)tx倍,使原本的二維坐標(biāo)變?yōu)槿S坐標(biāo),此時(shí)變換矩陣1(2)旋轉(zhuǎn)變換,將目標(biāo)圖像以(x,y)為中心順時(shí)針旋轉(zhuǎn)α弧度,轉(zhuǎn)換矩陣M可以表示為如下MM=所有的變換矩陣只要記住一個(gè)點(diǎn):坐標(biāo)系的變化,即原點(diǎn)和基向量的變化。坐標(biāo)系中的點(diǎn)會(huì)隨著坐標(biāo)系的變化,跟著做同樣的變化。在放射矩陣abcdef00實(shí)際使用中,我們可以使用OpenCV中的仿射變換。進(jìn)行旋轉(zhuǎn)變換計(jì)算變換矩陣的操作時(shí),使用OpenCV中的cv2.getRotationMatrix2D(center,angle,scale)計(jì)算。其中提供需要旋轉(zhuǎn)的圖像中心點(diǎn)坐標(biāo)(center),旋轉(zhuǎn)角度(angle)正值時(shí)為逆時(shí)針旋轉(zhuǎn),負(fù)值時(shí)為順時(shí)針旋轉(zhuǎn),縮放因子(scale)即縮放比例。進(jìn)行圖像的旋轉(zhuǎn)時(shí)使用cv2.warpAffine(Image,M,(nW,nH),borderValue)這里需要提供原始圖像(Image),旋轉(zhuǎn)矩陣M,新圖像的寬高(nW,nH),borderValue為旋轉(zhuǎn)后造成的缺失內(nèi)容的填充,默認(rèn)值為(0,0,0)即黑色,此處更改為白色,使用OpenCV具體實(shí)現(xiàn)的代碼如下。圖2.31圖像旋轉(zhuǎn)代碼圖像融合在眼睛虛擬試戴的實(shí)現(xiàn)過(guò)程中,如何將眼鏡與人臉的融合是一個(gè)非常值得研究的技術(shù)問(wèn)題。常見(jiàn)的圖像重疊操作有三種,一是圖像重疊。二是圖像融合,三是按位操作。圖像疊加是屬于一個(gè)加法操作,會(huì)造成圖片顏色的改變。前面的小節(jié)有提到過(guò),圖像是有RGB三個(gè)通道數(shù)據(jù)組成的一個(gè)矩陣。兩張圖片之間的疊加在本質(zhì)上,就是對(duì)兩個(gè)矩陣進(jìn)行加法操作。圖片疊加的可以使用numpy中的矩陣加法來(lái)實(shí)現(xiàn),但是這個(gè)矩陣的加法不是飽和操作,會(huì)對(duì)結(jié)果取模,cv2.add()將兩個(gè)圖像疊加使用的加法操作是飽和操作,也就是有上限值的。使用cv2.add()要保證兩個(gè)圖像的類型大小必須一致,又或者第二個(gè)圖像是一個(gè)標(biāo)量,cv2.add()操作效果如下,色彩失真明顯。圖2.32cv2.add()融合效果按位操作有多種形式如:AND、OR、NOT、XOR等,在我們需要提取一部分圖像,ROI(興趣區(qū)域regionofinterest)區(qū)域?yàn)榉蔷匦螘r(shí)上述操作會(huì)非常有效,但這一方法的缺點(diǎn)在于無(wú)法使用二維坐標(biāo)進(jìn)行精確粘貼。在進(jìn)行按位操作前,需要將粘貼圖片進(jìn)行二值化(制作黑白掩膜)以及反色的黑白掩膜,即將圖像的像素點(diǎn)的灰度值設(shè)置為255或者0,使得整張圖片的輪廓由黑白兩色呈現(xiàn)??梢允褂肙penCV進(jìn)行所涉及到的操作,示例效果如下。圖2.33黑白掩膜與反色黑白掩膜將反色黑白掩膜與被粘貼圖像進(jìn)行與運(yùn)算,再將原圖片和黑白掩膜進(jìn)行與運(yùn)算,最后將所得圖像和被粘貼圖像進(jìn)行與運(yùn)算,效果如下。圖2.34按位操作融合效果圖像融合在本質(zhì)上也是一種加法操作,但是在處理完成后圖片呈現(xiàn)的細(xì)節(jié)上會(huì)有很大的不同。OpenCV中使用cv2.addWeighted圖片融合可以將兩張圖片按照比例混合起來(lái),兩張圖片在新圖片上有不同的權(quán)重,給新圖片的呈現(xiàn)提供了多種多樣的選擇。在使用OpenCV的cv2.addWeighted模塊時(shí),依舊是無(wú)法按照二維坐標(biāo)點(diǎn)將兩張圖像進(jìn)行精確融合。圖2.35addWeighted融合效果泊松融合是由PatrickPérez,MichelGangnet,AndrewBlake等人在《PoissonImageEditing》論文中提出的,也是本次眼睛虛擬試戴使用的圖片融合技術(shù),在實(shí)際實(shí)現(xiàn)上會(huì)使用OpenCV中seamlessClone模塊。泊松融合能夠做到無(wú)縫融合,即將融合邊界中底圖和目標(biāo)圖像的差異平滑的擴(kuò)散到融合后的圖像中,經(jīng)過(guò)融合后底圖與目標(biāo)圖像能夠無(wú)縫連接,其中的色調(diào)等與底圖一致。關(guān)于泊松重建其實(shí)質(zhì)就是求解一個(gè)方程組,在求得系數(shù)矩陣A,散度b后便可解得融合圖像的像素通道值x:Ax泊松融合所做的工作描述,現(xiàn)有圖像g(待克隆區(qū)域ROI),背景圖S,我們希望把待克隆區(qū)域(圖片g)粘貼融合到背景圖S中,并且保證兩者的融合過(guò)渡邊界呈現(xiàn)最自然的效果。圖2.36泊松融合示意圖算法所做的具體步驟:首先求出圖g的梯度場(chǎng)V,使用Sx,Sy兩個(gè)卷積核計(jì)算x,y方向?qū)?shù)值,分別與圖g進(jìn)行卷積。得到,?f?y=Syf,將運(yùn)算所得值組合在一起得到圖像梯度向量?f=圖2.37Ω區(qū)域在得到融合圖像的梯度場(chǎng)后,開(kāi)始求解融合圖像的散度。在上述的計(jì)算中我們已經(jīng)得到了融合圖像每個(gè)像素點(diǎn)的梯度值,組合之后便是待重建圖像的梯度場(chǎng),對(duì)梯度求偏導(dǎo)后就得到了融合圖像的散度。求得系數(shù)A后,再求得A的逆矩陣便可求得x(融合圖像的每個(gè)像素三個(gè)通道值)。本文使用OpenCV中的無(wú)縫克?。╟v2.seamlessClone)其中克隆類型選擇了混合克?。∕IXED_CLONE),需要提供待融合圖像、背景圖、遮罩、融合位置坐標(biāo)、融合類型。MIXED_CLONE融合效果如下所示:圖2.38融合效果NORMAL_CLONE融合效果如下所示:圖2.39普通克隆效果普通克隆的遮罩與背景圖的融合效果并不好,細(xì)節(jié)方面并未達(dá)到預(yù)期,基于這一效果選擇混合克隆是一個(gè)明智的選擇。需求分析功能需求眼睛虛擬試戴開(kāi)發(fā)的目的,在初始目標(biāo)上是為用戶在線選購(gòu)眼鏡提供一定程度上的幫助。在平常的用戶購(gòu)買眼鏡行為上,用戶主要注重的三個(gè)方面,一是眼鏡度數(shù)是否與自己眼鏡度數(shù)是否適合,二是眼鏡的外觀與本人是否搭配,三是鏡片以及鏡框的材質(zhì)。上述關(guān)注點(diǎn)中眼鏡度數(shù)只需提供在醫(yī)院測(cè)量的數(shù)據(jù)即可,材質(zhì)方面可以通過(guò)商品詳情獲悉,只有眼鏡外觀是否與本人搭配這是一個(gè)難以確定的因素。眼睛虛擬試戴提供了用戶動(dòng)靜兩種試戴功能體驗(yàn),一種是基于圖像試戴,另外一種為基于視頻實(shí)時(shí)試戴。在試戴過(guò)程中用戶可能會(huì)需要清除已經(jīng)添加的眼鏡,更換其他眼鏡,可以使用清屏功能,還原原始屏幕。用戶在試戴后滿意試戴效果,如果處于圖片試戴狀態(tài)可以皆使用保存功能,保存試戴照片。對(duì)于眼鏡試戴效果呈現(xiàn)視頻實(shí)時(shí)試戴是比較令人滿意的,當(dāng)用戶處于視頻實(shí)時(shí)試戴時(shí),可以進(jìn)行截取視頻的當(dāng)前幀并保存,對(duì)于截取不滿意的亦可以返回重新截取。系統(tǒng)模塊詳細(xì)設(shè)計(jì)PyQt5事件處理機(jī)制在PyQt5中為開(kāi)發(fā)者提供了兩種對(duì)于事件的處理機(jī)制,一種是事件,另外一種是信號(hào)(signal)和槽(slot)。事件是一個(gè)有始有終的行為過(guò)程,在整個(gè)過(guò)程中有三個(gè)參與者分別是:事件來(lái)源、事件目標(biāo)、事件對(duì)象。事件來(lái)源是指行為發(fā)起者,發(fā)生改變狀態(tài)的對(duì)象。事件目標(biāo)即事件的通知對(duì)象,事件對(duì)象封裝了事件源的狀態(tài)和變化。在PyQt5中采用了信號(hào)和槽機(jī)制來(lái)處理時(shí)間,事件中對(duì)象之間的通信采用信號(hào)-槽進(jìn)行傳輸。當(dāng)一個(gè)指定事件發(fā)生,傳遞這個(gè)事件信息的信號(hào)就會(huì)被發(fā)射,對(duì)應(yīng)連接槽的信號(hào)就會(huì)被發(fā)射后,這個(gè)槽就會(huì)被調(diào)用來(lái)執(zhí)行相關(guān)內(nèi)容。信號(hào)和槽之間有多種特性,比如多個(gè)可以連接到同一個(gè)信號(hào),信號(hào)與信號(hào)之間可以彼此連接,信號(hào)的參數(shù)類型對(duì)應(yīng)的Python的所有參數(shù)類型槽與信號(hào)的通信方式可以是異步連接,也可以是同步連接等。事件源事件源槽槽1觸發(fā)生成觸發(fā)生成槽2槽2信號(hào)信號(hào)1調(diào)用信號(hào)調(diào)用信號(hào)2發(fā)射信號(hào)發(fā)射信號(hào)事件目標(biāo)連接事件目標(biāo)連接圖4.1信號(hào)通信圖在PyQt5中信號(hào)主要分為兩大類:自定義信號(hào),內(nèi)置信號(hào)。內(nèi)置信號(hào)是指QObject對(duì)象自定義的信號(hào),內(nèi)置槽函數(shù)是QObject對(duì)象自定義的槽函數(shù)。還有一種高級(jí)自主的信號(hào)和槽定義,指的是開(kāi)發(fā)者根據(jù)自身需求的考量定義的信號(hào)和槽。自主定義信號(hào)和槽的步驟一般如下:1.定義信號(hào)、2.定義槽函數(shù)、3.連接槽函數(shù)與信號(hào)、4.發(fā)射信號(hào)。自主定義信號(hào)通過(guò)pyqtSignal()參數(shù)類型可自定義也可以無(wú)參數(shù),槽函數(shù)的定義與其他方法定義類似。信號(hào)和槽使用connect方法連接,例如self.ch_img.img_signal.connect(self.open_img)。發(fā)射信號(hào)使用emit()方法,參數(shù)類型與信號(hào)參數(shù)類型保持一致,信號(hào)和槽工作流程如下。槽函數(shù)發(fā)送者槽函數(shù)發(fā)送者 信號(hào) 調(diào)用接收者連接接收者連接接收?qǐng)D4.2信號(hào)槽的工作流程圖界面設(shè)計(jì)眼鏡虛擬試戴界面使用PyQt5搭建,在設(shè)計(jì)布局上主要分為三大部分。界面左側(cè)縱向排列的眼鏡圖案為不同的眼鏡選擇按鈕,用戶在打開(kāi)攝像頭或者已經(jīng)打開(kāi)圖片的情況下,若想佩戴眼鏡點(diǎn)擊對(duì)應(yīng)按鈕即可佩戴對(duì)應(yīng)的眼鏡,更換則直接點(diǎn)擊對(duì)應(yīng)眼鏡。界面中心白色正方形(screen)部分為顯示屏,用于顯示圖片以及視頻。界面下方橫向排列是按鈕為功能性按鈕,依次為清屏、選擇圖片、拍照、保存圖片、打開(kāi)相機(jī),用戶可以使用這些按鈕實(shí)現(xiàn)相關(guān)內(nèi)容操作。圖4.3界面UI左側(cè)眼鏡縮略圖設(shè)計(jì)上使用的是QToolButton,它是繼承自QAbstractButton的。它一般用來(lái)顯示圖標(biāo),不顯示文字,這是與QPushButton最大的不同點(diǎn)。使用setGeometry()可以設(shè)置按鈕位置與大小,setIcon()與setIconSize()則可以設(shè)置顯示圖片以及圖片顯示的大小。圖4.4眼鏡圖片設(shè)置用于顯示圖像與實(shí)時(shí)視頻的控件使用的是QLabel標(biāo)簽,該標(biāo)簽具有多種功能可作用為占位符、顯示文本、顯示圖片、播放視頻、GIF動(dòng)圖等。由于此處的QLabel標(biāo)簽是用于顯示作用,所以不設(shè)置文本內(nèi)容,將背景色調(diào)至白色突出在界面的位置及所占比例。圖4.5QLabel標(biāo)簽設(shè)置界面下方的功能操作按鈕,使用的是QPushButton按鈕,它同樣繼承自QAbstractButton。使用其中的Clicked信號(hào)可以與槽函數(shù)進(jìn)行通信,完成槽函數(shù)的調(diào)用。圖4.6照片保存以上為整體界面設(shè)計(jì)的主要內(nèi)容。圖片傳入試戴設(shè)計(jì)圖片的傳入試戴用戶方面主要操作流程:點(diǎn)擊選擇照片,打開(kāi)文件夾選定圖片→等待圖片在白色矩形區(qū)域顯示→點(diǎn)擊左側(cè)眼鏡縮略圖按鈕→佩戴成功圖4.7圖片試戴操作流程在開(kāi)發(fā)邏輯設(shè)計(jì)上分為一下幾個(gè)步驟:圖片顯示→人眼特征點(diǎn)回歸模型啟動(dòng),得到人眼坐標(biāo)→計(jì)算兩眼的傾斜角度→旋轉(zhuǎn)眼鏡→融合眼鏡和人臉→顯示。在整個(gè)試戴過(guò)程中,最為重要的就是人眼特征點(diǎn)回歸。在邏輯代碼中人眼特征點(diǎn)的回歸封裝在Regression_Point()方法中,可以在圖片試戴與實(shí)時(shí)視頻試戴中被調(diào)用,在調(diào)用前會(huì)判斷是處于圖片試戴狀態(tài)還是實(shí)時(shí)視頻試戴狀態(tài)。在對(duì)圖片進(jìn)行人眼特征點(diǎn)回歸之前。需要將傳入的圖像進(jìn)行尺寸變換,調(diào)用之前講述過(guò)的resize_image()方法,以適應(yīng)模型要求的224*224的寬高比例。在經(jīng)過(guò)模型回歸后得到的4對(duì)坐標(biāo)組成的列表,分別是左眼、右眼、鼻子、嘴唇。得到的這4對(duì)坐標(biāo)是基于224*224的基礎(chǔ)上的坐標(biāo)數(shù)值,要進(jìn)行眼鏡試戴需要將坐標(biāo)轉(zhuǎn)換為原始圖像尺寸的數(shù)值。將X軸上的坐標(biāo)除以224與原始圖像的寬的比值,將Y軸上的坐標(biāo)除以224與原始圖像的高的比值,得到對(duì)應(yīng)原始圖像的坐標(biāo)。圖4.8人眼位置處理代碼回歸人眼坐標(biāo)的用途有兩個(gè),一是計(jì)算兩眼的傾斜角度,二是獲取兩眼中心點(diǎn)坐標(biāo)。在計(jì)算兩眼的傾斜角度前,計(jì)算兩眼坐標(biāo)在X軸和Y軸方向的距離X2-X1和Y2-Y1。使用math模塊中的atan()計(jì)算弧度,再使用math (X2Y 中心點(diǎn)坐標(biāo)M(X2-X12,Y2- (X1Y1) 圖4.9雙眼中心位置眼鏡試戴的編碼采用了多線程編程,避免了在功能切換時(shí)出現(xiàn)界面卡死的現(xiàn)象。將所有線程都寫在MyThread()類中,需要進(jìn)行某項(xiàng)功能操作時(shí)開(kāi)啟該線程。圖4.10線程類代碼圖4.11線程開(kāi)啟試戴過(guò)程中點(diǎn)擊界面眼鏡按鈕,開(kāi)啟對(duì)應(yīng)線程執(zhí)行佩戴任務(wù)。這里開(kāi)啟的線程處理的任務(wù)是,將用戶打開(kāi)的照片與對(duì)應(yīng)的眼鏡進(jìn)行旋轉(zhuǎn)融合,顯示在控件screen上。融合方法內(nèi)同時(shí)有控制眼鏡尺寸的代碼,由于眼鏡的原始圖像大小為1417*1417,QLabel(screen)尺寸為640*480,所以眼鏡圖片只需要縮小。這里縮小比例的確定會(huì)使用需要知道兩眼之間的距離,即distance=(x2-X1)2+(Y圖4.12圖像旋轉(zhuǎn)代碼圖4.13圖像融合代碼返回的融合圖像不能直接顯示在QLabel控件(screen)上(OpenCV讀取圖像時(shí)格式為BGR格式,與QLabel上顯示圖像的格式不符合),需要對(duì)返回圖像進(jìn)行類型轉(zhuǎn)換,將原本的BGR格式圖像轉(zhuǎn)換為RGB格式,再轉(zhuǎn)換成QLabel上能顯示的格式。返回的QtImg即為最終顯示的圖像。圖4.14圖像類型轉(zhuǎn)換攝像頭接入試戴設(shè)計(jì)實(shí)時(shí)視頻試戴設(shè)計(jì)涉及到了,攝像頭讀取視頻抓取固定時(shí)間間隔內(nèi)的幀顯示、圖像的仿射變換、泊松融合、拍照保存。攝像頭的開(kāi)啟采用的是定時(shí)器控制,這樣可以使攝像頭的開(kāi)啟以及關(guān)閉流暢,對(duì)基于攝像頭開(kāi)展的試戴任務(wù)也更方便。將攝像頭的正常開(kāi)啟參數(shù)CAM_NUM初始化為0,開(kāi)啟成功則開(kāi)始以30毫秒為間隔捕捉視頻幀顯示,同時(shí)將開(kāi)放“拍照”按鈕,并將原本文本內(nèi)容為“打開(kāi)相機(jī)”更改為“關(guān)閉相機(jī)”。圖4.15定時(shí)器代碼實(shí)時(shí)視頻試戴的實(shí)現(xiàn)中,為了方便更換試戴的眼鏡,代碼設(shè)計(jì)上以每一副眼鏡為設(shè)計(jì)中心。初始化眼鏡參數(shù)(GlaNum)為0,即沒(méi)有佩戴眼鏡。在需要試戴眼鏡時(shí),點(diǎn)擊對(duì)應(yīng)眼鏡按鈕連接發(fā)送信號(hào)連接對(duì)應(yīng)槽函數(shù),將眼鏡參數(shù)賦值為對(duì)應(yīng)數(shù)值。圖4.16眼鏡參數(shù)設(shè)置實(shí)時(shí)視頻試戴其實(shí)是將捉取的每一幀圖像進(jìn)行特征點(diǎn)回歸,等一系列圖像試戴的操作,再將返回的每一幀圖像播放。在抓取到圖像后需要對(duì)圖像進(jìn)行水平翻轉(zhuǎn),以達(dá)到鏡像效果。圖4.17鏡像反轉(zhuǎn)圖像為了可能的模擬真實(shí)的使用場(chǎng)景,在按鈕變化上做了一下改變。在打開(kāi)攝像頭的狀態(tài)下,接觸“拍照”按鈕的禁用,點(diǎn)擊“拍照”按鈕后更改QPushButton按鈕文本內(nèi)容為“返回”,此時(shí)“保存照片”按鈕解除禁用,用戶可以選擇返回重拍或者進(jìn)行下一步操作保存圖片。圖4.18實(shí)時(shí)視頻試戴效果結(jié)論互聯(lián)網(wǎng)時(shí)代萬(wàn)物都以便捷為制勝法則,從線下實(shí)體店到線上平臺(tái),人們?yōu)楣?jié)約時(shí)間和資源不斷尋求進(jìn)步。人們對(duì)于外在裝扮認(rèn)知越來(lái)越清晰,線上平臺(tái)為滿足用戶的需求極力尋求解決辦法,需求的日益高漲引起計(jì)算機(jī)視覺(jué)領(lǐng)域的關(guān)注?;谟?jì)算機(jī)視覺(jué)的試穿、試戴應(yīng)運(yùn)而生,眼鏡試戴便是其中之一。本文針對(duì)眼鏡虛擬試戴進(jìn)行研究,即使人們?cè)诩乙部梢栽嚧餮坨R。本文工作重點(diǎn)總結(jié)介紹了眼鏡虛擬試戴的意義和研究背景,以及研究現(xiàn)狀。分析了本文的眼睛虛擬試戴所使用的技術(shù)和原理,對(duì)卷積神經(jīng)網(wǎng)絡(luò)和MobileNet-V2神經(jīng)網(wǎng)絡(luò)進(jìn)行了詳細(xì)講解。對(duì)于眼鏡試戴中所需的仿射變換、圖像融合等處理技術(shù)進(jìn)行了分析。模型訓(xùn)練中的參數(shù)調(diào)整、隱含層的調(diào)整變化,對(duì)于模型精度的影響。具體實(shí)現(xiàn)過(guò)程中使用了深度學(xué)習(xí)模型對(duì)人眼關(guān)鍵點(diǎn)進(jìn)行回歸預(yù)測(cè),將眼鏡圖像進(jìn)行仿射變換與人眼位置融合,使用PyQt5進(jìn)行封裝時(shí)使用到多線程編碼,防止界面在使用過(guò)程中卡死。后續(xù)工作與展望模型對(duì)于大幅度傾斜的人臉佩戴效果不好,需要豐富訓(xùn)練數(shù)據(jù)的多樣性。對(duì)于試戴環(huán)境的干擾,需要增強(qiáng)模型的泛化能力。提高關(guān)鍵點(diǎn)的檢測(cè)速度,只有提高了檢測(cè)速度才能在實(shí)時(shí)試戴中發(fā)揮更強(qiáng)大的作用。參考文獻(xiàn)[1]孟春寧.人眼檢測(cè)與跟蹤的方法及應(yīng)用研究[D],2013.[2]高法燈.基于圖像的機(jī)車司機(jī)疲勞檢測(cè)系統(tǒng)研究[D],浙江大學(xué),2010.[3]胡峰松,宋先普,錢飛帆.一種多視角眼鏡試戴算法的研究與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2017-03,38(3),605-609[4]SchapireRE.Thestrengthofweaklearnability[J].Machinelearning,1990,5(2),197-227[5]黃亨利,梁艷,陳靖宇,劉文雙.一種基于人臉檢測(cè)的虛擬眼鏡試戴技術(shù)[J].信息通道,2017-06,2017(6),63-66[6]劉成,汪豐,祁長(zhǎng)紅,倪舟,姜偉,鄒亞,王麗根.一種基于增強(qiáng)現(xiàn)實(shí)的虛擬眼鏡試戴的方法[J],工業(yè)控制計(jì)算機(jī),2014-12,2014(12),66-68[7]張景森.基于視覺(jué)的虛擬眼鏡試戴系統(tǒng)開(kāi)發(fā)[D],杭州:杭州科技大學(xué),2015-03[8]石華偉,夏利民.基于MeanShift算法和粒子濾波器的人眼跟蹤[J],計(jì)算機(jī)工程與應(yīng)用,2006,2006(19),45-47[9]VapnikVN.Anoverviewofstaticallearningtheory[J],NeuralNetworks,IEEETransactionon,1999-10,1999(10),988-999.[10]PanG,LinW,WuZ,etal.EyedetectionsystembasedonSVMfilter[J].PhotonicsAsin,InternationSocietyforOpticsandPhotonics,2002,326-331[11]WangQ,YangJ.Eyedetectioninfacialimageswithunconstrainedbackground[J].JournalofPatternRecognitionResearch,2006-1,2006(1),55-62[12]ViolaP,JonesM,Rapidobjectdetectionusingaboostedcasedofsimplefeatures[J],In:ComputerVisionandPatternRecognition,Proceedingsofthe2001IEEEComputerSocietyConferenceon.IEEE,2001,2001(1),511-518[13]LiJ,YangJ.Eyeglassestry-onbasedonimprovedPoissonequations[J].In:MultimediaTechnoloogy(ICMT),InternationalConferenceon.IEEE,2011,3058-3061[14]HuangWY,HsiehCH,YehJS.Vision-basedvirtualeyeglassesfittingsystem[J].In:ConsumeerElectionics(ISCE),IEEE17thInternationalSymposiumon.IEEE,2013,45-46致謝本論文在楊超導(dǎo)師的悉心指導(dǎo)下完成,從論文選題到完成,楊超導(dǎo)師在這一過(guò)程中以其淵博的知識(shí),精益求精的工作作風(fēng),嚴(yán)謹(jǐn)治學(xué)的態(tài)度,嚴(yán)于律己、寬以待人的崇高作風(fēng),平易近人的人格魅力對(duì)于本人影響甚深。導(dǎo)師不僅教會(huì)了我學(xué)問(wèn),還在為人處世方面給予了我諄諄教誨。在學(xué)習(xí)方面幫我樹(shù)立學(xué)習(xí)的目標(biāo),讓我有了前進(jìn)的目標(biāo)。在整個(gè)論文的完成過(guò)程中,都在導(dǎo)師一步一步的指導(dǎo)下完成,傾注了非常多的心血。在這期間遇到的問(wèn)題也是在導(dǎo)師的協(xié)助下慢慢解決的,導(dǎo)師的細(xì)心與無(wú)私奉獻(xiàn)讓我敬佩。在此,謹(jǐn)向楊超導(dǎo)師表達(dá)崇高的敬意與衷心的感謝!
ExcelXP的八則快速輸入技巧如果我們?cè)谟肊xcelXP處理龐大的數(shù)據(jù)信息時(shí),不注意講究技巧和方法的話,很可能會(huì)花費(fèi)很大的精力。因此如何巧用ExcelXP,來(lái)快速輸入信息就成為各個(gè)ExcelXP用戶非常關(guān)心的話題,筆者向大家介紹幾則這方面的小技巧。1、快速輸入大量含小數(shù)點(diǎn)的數(shù)字如果我們需要在ExcelXP工作表中輸入大量的帶有小數(shù)位的數(shù)字時(shí),按照普通的輸入方法,我們可能按照數(shù)字原樣大小直接輸入,例如現(xiàn)在要在單元格中輸入0.05這個(gè)數(shù)字時(shí),我們會(huì)把“0.05”原樣輸入到表格中。不過(guò)如果需要輸入若干個(gè)帶有小數(shù)點(diǎn)的數(shù)字時(shí),我們?cè)侔凑丈厦娴姆椒ㄝ斎氲脑?,每次輸入?shù)字時(shí)都需要重復(fù)輸入小數(shù)點(diǎn),這樣工作量會(huì)變大,輸入效率會(huì)降低。其實(shí),我們可以使用ExcelXP中的小數(shù)點(diǎn)自動(dòng)定位功能,讓所有數(shù)字的小數(shù)點(diǎn)自動(dòng)定位,從而快速提高輸入速度。在使用小數(shù)點(diǎn)自動(dòng)定位功能時(shí),我們可以先在ExcelXP的編輯界面中,用鼠標(biāo)依次單擊“工具”/“選項(xiàng)”/“編輯”標(biāo)簽,在彈出的對(duì)話框中選中“自動(dòng)設(shè)置小數(shù)點(diǎn)”復(fù)選框,然后在“位數(shù)”微調(diào)編輯框中鍵入需要顯示在小數(shù)點(diǎn)右面的位數(shù)就可以了。以后我們?cè)佥斎霂в行?shù)點(diǎn)的數(shù)字時(shí),直接輸入數(shù)字,而小數(shù)點(diǎn)將在回車鍵后自動(dòng)進(jìn)行定位。例如,我們要在某單元格中鍵入0.06的話,可以在上面的設(shè)置中,讓“位數(shù)”選項(xiàng)為2,然后直接在指定單元格中輸入6,回車以后,該單元格的數(shù)字自動(dòng)變?yōu)椤?.06”,怎么樣簡(jiǎn)單吧?2、快速錄入文本文件中的內(nèi)容現(xiàn)在您手邊假如有一些以純文本格式儲(chǔ)存的文件,如果此時(shí)您需要將這些數(shù)據(jù)制作成ExcelXP的工作表,那該怎么辦呢?重新輸入一遍,大概只有頭腦有毛病的人才會(huì)這樣做;將菜單上的數(shù)據(jù)一個(gè)個(gè)復(fù)制/粘貼到工作表中,也需花很多時(shí)間。沒(méi)關(guān)系!您只要在ExcelXP中巧妙使用其中的文本文件導(dǎo)入功能,就可以大大減輕需要重新輸入或者需要不斷復(fù)制、粘貼的巨大工作量了。使用該功能時(shí),您只要在ExcelXP編輯區(qū)中,依次用鼠標(biāo)單擊菜單欄中的“數(shù)據(jù)/獲取外部數(shù)據(jù)/導(dǎo)入文本文件”命令,然后在導(dǎo)入文本會(huì)話窗口選擇要導(dǎo)入的文本文件,再按下“導(dǎo)入”鈕以后,程序會(huì)彈出一個(gè)文本導(dǎo)入向?qū)?duì)話框,您只要按照向?qū)У奶崾具M(jìn)行操作,就可以把以文本格式的數(shù)據(jù)轉(zhuǎn)換成工作表的格式了。3、快速輸入大量相同數(shù)據(jù)如果你希望在不同的單元格中輸入大量相同的數(shù)據(jù)信息,那么你不必逐個(gè)單元格一個(gè)一個(gè)地輸入,那樣需要花費(fèi)好長(zhǎng)時(shí)間,而且還比較容易出錯(cuò)。你可以通過(guò)下面的操作方法在多個(gè)相鄰或不相鄰的單元格中快速填充同一個(gè)數(shù)據(jù),具體方法為:首先同時(shí)選中需要填充數(shù)據(jù)的單元格。若某些單元格不相鄰,可在按住Ctrl鍵的同時(shí),點(diǎn)擊鼠標(biāo)左鍵,逐個(gè)選中;其次輸入要填充的某個(gè)數(shù)據(jù)。按住Ctrl鍵的同時(shí),按回車鍵,則剛才選中的所有單元格同時(shí)填入該數(shù)據(jù)。4、快速進(jìn)行中英文輸入法切換一張工作表常常會(huì)既包含有數(shù)字信息,又包含有文字信息,要錄入這樣一種工作表就需要我們不斷地在中英文之間反復(fù)切換輸入法,非常麻煩,為了方便操作,我們可以用以下方法實(shí)現(xiàn)自動(dòng)切換:首先用鼠標(biāo)選中需要輸入中文的單元格區(qū)域,然后在輸入法菜單中選擇一個(gè)合適的中文輸入法;接著打開(kāi)“有效數(shù)據(jù)”對(duì)話框,選中“IME模式”標(biāo)簽,在“模式”框中選擇打開(kāi),單擊“確定”按鈕;然后再選中輸入數(shù)字的單元格區(qū)域,在“有效數(shù)據(jù)”對(duì)話框中,單擊“IME模式”選項(xiàng)卡,在“模式”框中選擇關(guān)閉(英文模式);最后單擊“確定”按鈕,這樣用鼠標(biāo)分別在剛才設(shè)定的兩列中選中單元格,五筆和英文輸入方式就可以相互切換了。5、快速刪除工作表中空行刪除ExcelXP工作表中的空行,一般的方法是需要將空行都找出來(lái),然后逐行刪除,但這樣做操作量非常大,很不方便。那么如何才能減輕刪除工作表中空行的工作量呢?您可以使用下面的操作方法來(lái)進(jìn)行刪除:首先打開(kāi)要?jiǎng)h除空行的工作表,在打開(kāi)的工作表中用鼠標(biāo)單擊菜單欄中的“插入”菜單項(xiàng),并從下拉菜單中選擇“列”,從而插入一新的列X,在X列中順序填入整數(shù);然后根據(jù)其他任何一列將表中的行排序,使所有空行都集中到表的底部。刪去所有空行中X列的數(shù)據(jù),以X列重新排序,然后刪去X列。按照這樣的刪除方法,無(wú)論工作表中包含多少空行,您就可以很快地刪除了。6、快速對(duì)不同單元格中字號(hào)進(jìn)行調(diào)整在使用ExcelXP編輯文件時(shí),常常需要將某一列的寬度固定,但由于該列各單元格中的字符數(shù)目不等,致使有的單元格中的內(nèi)容不能完全顯示在屏幕上,為了讓這些單元格中的數(shù)據(jù)都顯示在屏幕上,就不得不對(duì)這些單元格重新定義較小的字號(hào)。如果依次對(duì)這些單元格中的字號(hào)調(diào)整的話,工作量將會(huì)變得很大。其實(shí),您可以采用下面的方法來(lái)減輕字號(hào)調(diào)整的工作量:首先新建或打開(kāi)一個(gè)工作簿,并選中需要ExcelXP根據(jù)單元格的寬度調(diào)整字號(hào)的單元格區(qū)域;其次單擊用鼠標(biāo)依次單擊菜單欄中的“格式”/“單元格”/“對(duì)齊”標(biāo)簽,在“文本控制”下選中“縮小字體填充”復(fù)選框,并單擊“確定”按鈕;此后,當(dāng)你在這些單元格中輸入數(shù)據(jù)時(shí),如果輸入的數(shù)據(jù)長(zhǎng)度超過(guò)了單元格的寬度,ExcelXP能夠自動(dòng)縮小字符的大小把數(shù)據(jù)調(diào)整到與列寬一致,以使數(shù)據(jù)全部顯示在單元格中。如果你對(duì)這些單元格的列寬進(jìn)行了更改,則字符可自動(dòng)增大或縮小字號(hào),以適應(yīng)新的單元格列寬,但是對(duì)這些單元格原設(shè)置的字體字號(hào)大小則保持不變。7、快速輸入多個(gè)重復(fù)數(shù)據(jù)在使用ExcelXP工作表的過(guò)程中,我們經(jīng)常要輸入大量重復(fù)的數(shù)據(jù),如果依次輸入,無(wú)疑工作量是巨大的?,F(xiàn)在我們可以借助ExcelXP的“宏”功能,來(lái)記錄首次輸入需要重復(fù)輸入的數(shù)據(jù)的命令和過(guò)程,然后將這些命令和過(guò)程賦值到一個(gè)組合鍵或工具欄的按鈕上,當(dāng)按下組合鍵時(shí),計(jì)算機(jī)就會(huì)重復(fù)所記錄的操作。使用宏功能時(shí),我們可以按照以下步驟進(jìn)行操作:首先打開(kāi)工作表,在工作表中選中要進(jìn)行操作的單元格;接著再用鼠標(biāo)單擊菜單欄中的“工具”菜單項(xiàng),并從彈出的下拉菜單中選擇“宏”子菜單項(xiàng),并從隨后彈出的下級(jí)菜單中選擇“錄制新宏”命令;設(shè)定好宏后,我們就可以對(duì)指定的單元格,進(jìn)行各種操作,程序?qū)⒆詣?dòng)對(duì)所進(jìn)行的各方面操作記錄復(fù)制。8、快速處理多個(gè)工作表有時(shí)我們需要在ExcelXP中打開(kāi)多個(gè)工作表來(lái)進(jìn)行編輯,但無(wú)論打開(kāi)多少工作表,在某一時(shí)刻我們只能對(duì)一個(gè)工作表進(jìn)行編輯,編輯好了以后再依次編輯下一個(gè)工作表,如果真是這樣操作的話,我們倒沒(méi)有這個(gè)必要同時(shí)打開(kāi)多個(gè)工作表了,因?yàn)槲覀兺瑫r(shí)打開(kāi)多個(gè)工作表的目的就是要減輕處理多個(gè)工作表的工作量的,那么我們?cè)撊绾螌?shí)現(xiàn)這樣的操作呢?您可采用以下方法:首先按住“Shift"鍵或“Ctrl"鍵并配以鼠標(biāo)操作,在工作簿底部選擇多個(gè)彼此相鄰或不相鄰的工作表標(biāo)簽,然后就可以對(duì)其實(shí)行多方面的批量處理;接著在選中的工作表標(biāo)簽上按右鍵彈出快捷菜單,進(jìn)行插入和刪除多個(gè)工作表的操作;然后在“文件”菜單中選擇“頁(yè)面設(shè)置……”,將選中的多個(gè)工作表設(shè)成相同的頁(yè)面模式;再通過(guò)“編輯”菜單中的有關(guān)選項(xiàng),在多個(gè)工作表范圍內(nèi)進(jìn)行查找、替換、定位操作;通過(guò)“格式”菜單中的有關(guān)選項(xiàng),將選中的多個(gè)工作表的行、列、單元格設(shè)成相同的樣式以及進(jìn)行一次性全部隱藏操作;接著在“工具”菜單中選擇“選項(xiàng)……”,在彈出的菜單中選擇“視窗”和“編輯”按鈕,將選中的工作表設(shè)成相同的視窗樣式和單元格編輯屬性;最后選中上述工作表集合中任何一個(gè)工作表,并在其上完成我們所需要的表格,則其它工作表在相同的位置也同時(shí)生成了格式完全相同的表格。高效辦公Excel排序方法"集中營(yíng)"排序是數(shù)據(jù)處理中的經(jīng)常性工作,Excel排序有序數(shù)計(jì)算(類似成績(jī)統(tǒng)計(jì)中的名次)和數(shù)據(jù)重排兩類。本文以幾個(gè)車間的產(chǎn)值和名稱為例,介紹Excel2000/XP的數(shù)據(jù)排序方法。一、數(shù)值排序1.RANK函數(shù)RANK函數(shù)是Excel計(jì)算序數(shù)的主要工具,它的語(yǔ)法為:RANK(number,ref,order),其中number為參與計(jì)算的數(shù)字或含有數(shù)字的單元格,ref是對(duì)參與計(jì)算的數(shù)字單元格區(qū)域的絕對(duì)引用,order是用來(lái)說(shuō)明排序方式的數(shù)字(如果order為零或省略,則以降序方式給出結(jié)果,反之按升序方式)。例如圖1中E2、E3、E4單元格存放一季度的總產(chǎn)值,計(jì)算各車間產(chǎn)值排名的方法是:在F2單元格內(nèi)輸入公式“=RANK(E2,$E$2:$E$4)”,敲回車即可計(jì)算出鑄造車間的產(chǎn)值排名是2。再將F2中的公式復(fù)制到剪貼板,選中F3、F4單元格按Ctrl+V,就能計(jì)算出其余兩個(gè)車間的產(chǎn)值排名為3和1。如果B1單元格中輸入的公式為“=RANK(E2,$E$2:$E$4,1)”,則計(jì)算出的序數(shù)按升序方式排列,即2、1和3。需要注意的是:相同數(shù)值用RANK函數(shù)計(jì)算得到的序數(shù)(名次)相同,但會(huì)導(dǎo)致后續(xù)數(shù)字的序數(shù)空缺。假如上例中F2單元格存放的數(shù)值與F3相同,則按本法計(jì)算出的排名分別是3、3和1(降序時(shí))。2.COUNTIF函數(shù)COUNTIF函數(shù)可以統(tǒng)計(jì)某一區(qū)域中符合條件的單元格數(shù)目,它的語(yǔ)法為COUNTIF(range,criteria)。其中range為參與統(tǒng)計(jì)的單元格區(qū)域,criteria是以數(shù)字、表達(dá)式或文本形式定義的條件。其中數(shù)字可以直接寫入,表達(dá)式和文本必須加引號(hào)。仍以圖1為例,F(xiàn)2單元格內(nèi)輸入的公式為“=COUNTIF($E$2:$E$4,">"&E2)+1”。計(jì)算各車間產(chǎn)值排名的方法同上,結(jié)果也完全相同,2、1和3。此公式的計(jì)算過(guò)程是這樣的:首先根據(jù)E2單元格內(nèi)的數(shù)值,在連接符&的作用下產(chǎn)生一個(gè)邏輯表達(dá)式,即“>176.7”、“>167.3”等。COUNTIF函數(shù)計(jì)算出引用區(qū)域內(nèi)符合條件的單元格數(shù)量,該結(jié)果加一即可得到該數(shù)值的名次。很顯然,利用上述方法得到的是降序排列的名次,對(duì)重復(fù)數(shù)據(jù)計(jì)算得到的結(jié)果與RANK3.IF函數(shù)Excel自身帶有排序功能,可使數(shù)據(jù)以降序或升序方式重新排列。如果將它與IF函數(shù)結(jié)合,可以計(jì)算出沒(méi)有空缺的排名。以圖1中E2、E3、E4單元格的產(chǎn)值排序?yàn)槔?,具體做法是:選中E2單元格,根據(jù)排序需要,單擊Excel工具欄中的“降序排序”或“升序排序”按鈕,即可使工作表中的所有數(shù)據(jù)按要求重新排列。假如數(shù)據(jù)是按產(chǎn)值由大到?。ń敌颍┡帕械模窒胭x予每個(gè)車間從1到n(n為自然數(shù))的排名。可以在G2單元格中輸入1,然后在G3單元格中輸入公式“=IF(E3=E2,G3,G3+1)”,只要將公式復(fù)制到G4等單元格,就可以計(jì)算出其他車間的產(chǎn)值排名。二、文本排序選舉等場(chǎng)合需要按姓氏筆劃為文本排序,Excel提供了比較好的解決辦法。如果您要將圖1數(shù)據(jù)表按車間名稱的筆劃排序,可以使用以下方法:選中排序關(guān)鍵字所在列(或行)的首個(gè)單元格(如圖1中的A1),單擊Excel“數(shù)據(jù)”菜單下的“排序”命令,再單擊其中的“選項(xiàng)”按鈕。選中“排序選項(xiàng)”對(duì)話框“方法”下的“筆畫排序”,再根據(jù)數(shù)據(jù)排列方向選擇“按行排序”或“按列排序”,“確定”后回到“排序”對(duì)話框(圖2)。如果您的數(shù)據(jù)帶有標(biāo)題行(如圖1中的“單位”之類),則應(yīng)選中“有標(biāo)題行”(反之不選),然后打開(kāi)“主要關(guān)鍵字”下拉列表,選擇其中的“單位”,選中排序方式(“升序”或“降序”)后“確定”,表中的所有數(shù)據(jù)就會(huì)據(jù)此重新排列。此法稍加變通即可用于“第一名”、“第二名”等文本排序,請(qǐng)讀者自行摸索。三、自定義排序如果您要求Excel按照“金工車間”、“鑄造車間”和“維修車間”的特定順序重排工作表數(shù)據(jù),前面介紹的幾種方法就無(wú)能為力了。這類問(wèn)題可以用定義排序規(guī)則的方法解決:首先單擊Excel“工具”菜單下的“選項(xiàng)”命令,打開(kāi)“選項(xiàng)”對(duì)話框中的“自定義序列”選項(xiàng)卡(圖3)。選中左邊“自定義序列”下的“新序列”,光標(biāo)就會(huì)在右邊的“輸入序列”框內(nèi)閃動(dòng),您就可以輸入“金工車間”、“鑄造車間”等自定義序列了,輸入的每個(gè)序列之間要用英文逗號(hào)分隔,或者每輸入一個(gè)序列就敲回車。如果序列已經(jīng)存在于工作表中,可以選中序列所在的單元格區(qū)域單擊“導(dǎo)入”,這些序列就會(huì)被自動(dòng)加入“輸入序列”框。無(wú)論采用以上哪種方法,單擊“添加”按鈕即可將序列放入“自定義序列”中備用(圖3)。使用排序規(guī)則排序的具體方法與筆劃排序很相似,只是您要打開(kāi)“排序選項(xiàng)”對(duì)話框中的“自定義排序次序”下拉列表,選中前面定義的排序規(guī)則,其他選項(xiàng)保持不動(dòng)?;氐健芭判颉睂?duì)話框后根據(jù)需要選擇“升序”或“降序”,“確定”后即可完成數(shù)據(jù)的自定義排序。需要說(shuō)明的是:顯示在“自定義序列”選項(xiàng)卡中的序列(如一、二、三等),均可按以上方法參與排序,請(qǐng)讀者注意Excel提供的自定義序列類型。談?wù)凟xcel輸入的技巧在Excel工作表的單元格中,可以使用兩種最基本的數(shù)據(jù)格式:常數(shù)和公式。常數(shù)是指文字、數(shù)字、日期和時(shí)間等數(shù)據(jù),還可以包括邏輯值和錯(cuò)誤值,每種數(shù)據(jù)都有它特定的格式和輸入方法,為了使用戶對(duì)輸入數(shù)據(jù)有一個(gè)明確的認(rèn)識(shí),有必要來(lái)介紹一下在Excel中輸入各種類型數(shù)據(jù)的方法和技巧。一、輸入文本Excel單元格中的文本包括任何中西文文字或字母以及數(shù)字、空格和非數(shù)字字符的組合,每個(gè)單元格中最多可容納32000個(gè)字符數(shù)。雖然在Excel中輸入文本和在其它應(yīng)用程序中沒(méi)有什么本質(zhì)區(qū)別,但是還是有一些差異,比如我們?cè)赪ord、PowerPoint的表格中,當(dāng)在單元格中輸入文本后,按回車鍵表示一個(gè)段落的結(jié)束,光標(biāo)會(huì)自動(dòng)移到本單元格中下一段落的開(kāi)頭,在Excel的單元格中輸入文本時(shí),按一下回車鍵卻表示結(jié)束當(dāng)前單元格的輸入,光標(biāo)會(huì)自動(dòng)移到當(dāng)前單元格的下一個(gè)單元格,出現(xiàn)這種情況時(shí),如果你是想在單元格中分行,則必須在單元格中輸入硬回車,即按住Alt鍵的同時(shí)按回車鍵。二、輸入分?jǐn)?shù)幾乎在所有的文檔中,分?jǐn)?shù)格式通常用一道斜杠來(lái)分界分子與分母,其格式為“分子/分母”,在Excel中日期的輸入方法也是用斜杠來(lái)區(qū)分年月日的,比如在單元格中輸入“1/2”,按回車鍵則顯示“1月2日”,為了避免將輸入的分?jǐn)?shù)與日期混淆,我們?cè)趩卧裰休斎敕謹(jǐn)?shù)時(shí),要在分?jǐn)?shù)前輸入“0”(零)以示區(qū)別,并且在“0”和分子之間要有一個(gè)空格隔開(kāi),比如我們?cè)谳斎?/2時(shí),則應(yīng)該輸入“01/2”。如果在單元格中輸入“81/2”,則在單元格中顯示“81/2”,而在編輯欄中顯示“三、輸入負(fù)數(shù)在單元格中輸入負(fù)數(shù)時(shí),可在負(fù)數(shù)前輸入“-”作標(biāo)識(shí),也可將數(shù)字置在()括號(hào)內(nèi)來(lái)標(biāo)識(shí),比如在單元格中輸入“(88)”,按一下回車鍵,則會(huì)自動(dòng)顯示為“-88”。四、輸入小數(shù)在輸入小數(shù)時(shí),用戶可以向平常一樣使用小數(shù)點(diǎn),還可以利用逗號(hào)分隔千位、百萬(wàn)位等,當(dāng)輸入帶有逗號(hào)的數(shù)字時(shí),在編輯欄并不顯示出來(lái),而只在單元格中顯示。當(dāng)你需要輸入大量帶有固定小數(shù)位的數(shù)字或帶有固定位數(shù)的以“0”字符串結(jié)尾的數(shù)字時(shí),可以采用下面的方法:選擇“工具”、“選項(xiàng)”命令,打開(kāi)“選項(xiàng)”對(duì)話框,單擊“編輯”標(biāo)簽,選中“自動(dòng)設(shè)置小數(shù)點(diǎn)”復(fù)選框,并在“位數(shù)”微調(diào)框中輸入或選擇要顯示在小數(shù)點(diǎn)右面的位數(shù),如果要在輸入比較大的數(shù)字后自動(dòng)添零,可指定一個(gè)負(fù)數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技企業(yè)如何通過(guò)社交媒體建立品牌形象
- 社交媒體上的短視頻廣告策略
- 2025年甘肅省臨夏回族自治州單招職業(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 科技教育與科技成果的相互促進(jìn)
- 未來(lái)教育趨勢(shì)數(shù)字化與信息化的融合
- 產(chǎn)品更新合同范本
- 科技制造的工藝進(jìn)步與市場(chǎng)應(yīng)用
- 短視頻在醫(yī)療行業(yè)品牌塑造中的實(shí)踐
- 2025至2030年中國(guó)灌腸兩用機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 電商時(shí)代下的潔廁劑行業(yè)營(yíng)銷策略調(diào)整
- 一年級(jí)珍惜糧食主題班會(huì)學(xué)習(xí)教案
- 殘疾人的就業(yè)創(chuàng)業(yè)與自我發(fā)展
- 全套課件-建筑工程質(zhì)量與安全管理
- 醫(yī)院感染的中心靜脈導(dǎo)管相關(guān)血流感染預(yù)防
- DBJ33T 1286-2022 住宅工程質(zhì)量常見(jiàn)問(wèn)題控制標(biāo)準(zhǔn)
- 海岸動(dòng)力學(xué)英文課件Coastal Hydrodynamics-復(fù)習(xí)
- 碳足跡研究-洞察分析
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué)期末考試試題及答案
- 《工業(yè)廢水臭氧催化氧化深度處理技術(shù)規(guī)程》(T-SDEPI 030-2022)
- 多元化與平等待遇管理制度
- 2025年統(tǒng)編版中考語(yǔ)文課內(nèi)文言文《唐雎不辱使命》三年中考試題+模擬題(學(xué)生版+解析)
評(píng)論
0/150
提交評(píng)論