《機(jī)器視覺(jué)理論與實(shí)戰(zhàn)》 課件 第五章 目標(biāo)檢測(cè)算法原理與實(shí)戰(zhàn)_第1頁(yè)
《機(jī)器視覺(jué)理論與實(shí)戰(zhàn)》 課件 第五章 目標(biāo)檢測(cè)算法原理與實(shí)戰(zhàn)_第2頁(yè)
《機(jī)器視覺(jué)理論與實(shí)戰(zhàn)》 課件 第五章 目標(biāo)檢測(cè)算法原理與實(shí)戰(zhàn)_第3頁(yè)
《機(jī)器視覺(jué)理論與實(shí)戰(zhàn)》 課件 第五章 目標(biāo)檢測(cè)算法原理與實(shí)戰(zhàn)_第4頁(yè)
《機(jī)器視覺(jué)理論與實(shí)戰(zhàn)》 課件 第五章 目標(biāo)檢測(cè)算法原理與實(shí)戰(zhàn)_第5頁(yè)
已閱讀5頁(yè),還剩107頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章目標(biāo)檢測(cè)算法原理與實(shí)戰(zhàn)

本章知識(shí)點(diǎn)目標(biāo)檢測(cè)算法基本原理PaddleDetection框架介紹YOLOv3算法原理AlexNet網(wǎng)絡(luò)結(jié)構(gòu)VGG網(wǎng)絡(luò)結(jié)構(gòu)GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)PPYOLOE網(wǎng)絡(luò)結(jié)構(gòu)檢測(cè)與識(shí)別模型的部署5.1目標(biāo)檢測(cè)算法CONTENTS5.1.1圖像卷積5.1.2現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)5.1.3注意力機(jī)制5.1.4關(guān)鍵技術(shù)015.1.1圖像卷積5.1.1圖像卷積互相關(guān)運(yùn)算卷積層圖像中目標(biāo)的邊緣檢測(cè)學(xué)習(xí)卷積核特征映射和感受野互相關(guān)運(yùn)算互相關(guān)運(yùn)算是一種常用的圖像處理操作,用于檢測(cè)圖像中的特征信息?;ハ嚓P(guān)運(yùn)算通過(guò)在原始圖像上滑動(dòng)一個(gè)卷積核,計(jì)算對(duì)應(yīng)位置像素和卷積核的乘積之和,從而獲得特征強(qiáng)度的分布?;ハ嚓P(guān)運(yùn)算的計(jì)算方式如下:1.將卷積核與圖像對(duì)應(yīng)位置的像素相乘。2.將所有乘積結(jié)果求和,得到輸出像素值。需要注意的是,輸出大小略小于輸入大小。這是因?yàn)榫矸e核的寬度和高度大于1,而卷積核只與圖像中每個(gè)完全適配的位置進(jìn)行互相關(guān)運(yùn)算。因此,輸出大小等于輸入大小減去卷積核大小即:

卷積層卷積層是深度學(xué)習(xí)中常用的層類(lèi)型之一,用于提取圖像中的特征。卷積層通過(guò)在輸入圖像上滑動(dòng)多個(gè)卷積核,計(jì)算互相關(guān)運(yùn)算來(lái)獲得特征圖。卷積層的計(jì)算方式如下:1.定義多個(gè)卷積核,每個(gè)卷積核都是一個(gè)小矩陣,由一組權(quán)重值組成。2.將卷積核與輸入圖像對(duì)應(yīng)位置的像素進(jìn)行互相關(guān)運(yùn)算,得到特征圖。通過(guò)堆疊多個(gè)卷積層,可以逐層提取更加抽象和高級(jí)的特征。卷積層是目標(biāo)檢測(cè)算法中非常重要的組成部分。卷積層代碼為了實(shí)現(xiàn)二維卷積層,可以基于上述定義的corr2d函數(shù)進(jìn)行編寫(xiě)。在構(gòu)造函數(shù)init中,需要聲明weight和bias作為兩個(gè)模型的參數(shù)。在前向傳播函數(shù)中,可以調(diào)用corr2d函數(shù)并添加偏置。classConv2D(nn.Layer):def__init__(self,kernel_size):super().__init__()self.weight=paddle.ParamAttr(paddle.rand(kernel_size))self.bias=paddle.ParamAttr(paddle.zeros(1))

defforward(self,x):returncorr2d(x,self.weight)+self.bias高度和寬度分別為h和w的卷積核可以被稱(chēng)為h×w卷積或h×w卷積核。同樣地,帶有h×w卷積核的卷積層也被稱(chēng)為h×w卷積層。圖像中目標(biāo)的邊緣檢測(cè)邊緣檢測(cè)是目標(biāo)檢測(cè)算法中的一項(xiàng)關(guān)鍵任務(wù),用于識(shí)別圖像中的物體邊緣。邊緣通常指的是圖像中亮度或顏色變化明顯的區(qū)域。常用的邊緣檢測(cè)算法有Sobel算子、Prewitt算子、Canny算子等。這些算子可以通過(guò)進(jìn)行卷積運(yùn)算來(lái)提取出圖像中的邊緣信息。下面代碼是一個(gè)簡(jiǎn)單的應(yīng)用示例,使用卷積層來(lái)檢測(cè)圖像中不同顏色的邊緣。首先,構(gòu)造一個(gè)大小為6×8像素的黑白圖像,其中中間四列為黑色(0),其他像素為白色(1)。X=paddle.ones((6,8))X[:,2:6]=0X學(xué)習(xí)卷積核深度學(xué)習(xí)中的卷積層可以通過(guò)學(xué)習(xí)卷積核的方式來(lái)自動(dòng)提取圖像中的特征。學(xué)習(xí)卷積核是目標(biāo)檢測(cè)算法中的重要步驟。學(xué)習(xí)卷積核的過(guò)程如下:1.隨機(jī)初始化卷積核的權(quán)重值。2.通過(guò)反向傳播算法不斷調(diào)整卷積核的權(quán)重值,使得卷積層的輸出能夠最好地匹配訓(xùn)練數(shù)據(jù)的標(biāo)簽。3.經(jīng)過(guò)多次迭代訓(xùn)練后,卷積核可以自動(dòng)學(xué)習(xí)到可以區(qū)分不同目標(biāo)的特征。學(xué)習(xí)卷積核是目標(biāo)檢測(cè)算法中的核心內(nèi)容之一,可以有效提升算法的性能。特征映射和感受野在卷積神經(jīng)網(wǎng)絡(luò)中,每個(gè)卷積層的輸出被稱(chēng)為特征映射。特征映射可以看作是對(duì)輸入圖像的一種抽象,其中每個(gè)像素值代表了相應(yīng)位置上的特征強(qiáng)度。感受野表示卷積層輸出上的像素與輸入圖像上的像素之間的關(guān)系。感受野的大小決定了卷積層對(duì)圖像局部信息和全局信息的感知能力。特征映射和感受野是目標(biāo)檢測(cè)算法中的重要概念,能夠幫助理解卷積神經(jīng)網(wǎng)絡(luò)的工作原理。025.1.2現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)5.1.2現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)本節(jié)將介紹現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),這些架構(gòu)在計(jì)算機(jī)視覺(jué)領(lǐng)域發(fā)揮了重要作用,并在ImageNet競(jìng)賽中取得了優(yōu)異成績(jī)。自2010年以來(lái),ImageNet競(jìng)賽一直是監(jiān)督學(xué)習(xí)在計(jì)算機(jī)視覺(jué)中的重要標(biāo)桿,許多模型都曾是該競(jìng)賽的優(yōu)勝者。本節(jié)將介紹這些占據(jù)主導(dǎo)地位的模型,它們構(gòu)成了現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。這些模型包括:1.深度卷積神經(jīng)網(wǎng)絡(luò)(AlexNet)它是第一個(gè)在大規(guī)模視覺(jué)競(jìng)賽中擊敗傳統(tǒng)計(jì)算機(jī)視覺(jué)模型的大型神經(jīng)網(wǎng)絡(luò);2.使用塊的網(wǎng)絡(luò)(VGG)它利用許多重復(fù)的神經(jīng)網(wǎng)絡(luò)塊;3.含并行連接的網(wǎng)絡(luò)(GoogLeNet)它使用并行連結(jié)的網(wǎng)絡(luò),通過(guò)不同窗口大小的卷積層和最大匯聚層來(lái)并行信息抽取。1.深度卷積神經(jīng)網(wǎng)絡(luò)(AlexNet)

LeNet引人關(guān)注,但卷積神經(jīng)網(wǎng)絡(luò)并未主導(dǎo)。小數(shù)據(jù)集上LeNet效果好,大真實(shí)數(shù)據(jù)集上訓(xùn)練的挑戰(zhàn)仍存。90年代至2012年,神經(jīng)網(wǎng)絡(luò)被其他方法超越。數(shù)據(jù)集小、計(jì)算資源有限,深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法和架構(gòu)設(shè)計(jì)有困難和限制。隨著數(shù)據(jù)集增大、計(jì)算能力提升和新技術(shù)出現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)逐漸展現(xiàn)出強(qiáng)大的能力,在更廣泛的領(lǐng)域中取得突破性成果。在計(jì)算機(jī)視覺(jué)領(lǐng)域,神經(jīng)網(wǎng)絡(luò)與其他機(jī)器學(xué)習(xí)方法比較不公平。因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)的輸入可以是原始像素值或經(jīng)過(guò)簡(jiǎn)單預(yù)處理的像素值,而傳統(tǒng)機(jī)器學(xué)習(xí)方法通常不會(huì)直接使用原始像素作為輸入,而是通過(guò)人工設(shè)計(jì)的特征流水線進(jìn)行處理。傳統(tǒng)機(jī)器學(xué)習(xí)方法在計(jì)算機(jī)視覺(jué)中的進(jìn)展主要源于對(duì)特征的巧妙設(shè)計(jì),學(xué)習(xí)算法通常是事后解釋的結(jié)果。因此,評(píng)估卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)方法的性能時(shí),需要考慮它們?cè)谔卣魈崛∩系牟町?。隨著深度學(xué)習(xí)的發(fā)展,神經(jīng)網(wǎng)絡(luò)能夠端到端地學(xué)習(xí)特征表示,在許多計(jì)算機(jī)視覺(jué)任務(wù)上取得突出成果。上世紀(jì)90年代,已經(jīng)存在一些神經(jīng)網(wǎng)絡(luò)加速的方式,但不足以開(kāi)發(fā)出深層、多通道、多層的卷積神經(jīng)網(wǎng)絡(luò)。當(dāng)時(shí)的數(shù)據(jù)集規(guī)模小,一些關(guān)鍵的訓(xùn)練技巧尚未成熟,限制了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果和性能。隨著研究的深入,這些問(wèn)題逐漸得到解決,促進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展。1.深度卷積神經(jīng)網(wǎng)絡(luò)(AlexNet)

AlexNet和LeNet的架構(gòu)非常相似,如圖5-2所示。本書(shū)在這里提供的是一個(gè)稍微精簡(jiǎn)版本的AlexNet,去除了當(dāng)年需要兩個(gè)小型GPU同時(shí)運(yùn)算的設(shè)計(jì)特點(diǎn)。AlexNet和LeNet的設(shè)計(jì)理念非常相似,但也存在比較明顯的差異:(1)AlexNet相對(duì)于LeNet5來(lái)說(shuō)更深。它由八層組成,包括五個(gè)卷積層、兩個(gè)全連接隱藏層和一個(gè)全連接輸出層。這種更深的網(wǎng)絡(luò)結(jié)構(gòu)使得AlexNet能夠?qū)W習(xí)到更復(fù)雜的特征表示,從而提高了在大規(guī)模圖像數(shù)據(jù)集上的識(shí)別性能。(2)AlexNet使用ReLU而不是Sigmoid作為其激活函數(shù)。在AlexNet的初始層,使用了一個(gè)11×11的卷積窗口。由于ImageNet中的圖像尺寸通常比MNIST[5]圖像大十倍以上,因此需要更大的窗口來(lái)捕捉目標(biāo)。接著,在第二層中,卷積窗口的尺寸減小為5×5,然后再減小為3×3。此外,在第一、第二和第五層的卷積層之后,引入了最大匯聚層,窗口大小為3×3,步幅為2。另外,AlexNet的卷積通道數(shù)是LeNet的10倍1.小結(jié)(1)AlexNet的架構(gòu)與LeNet相似,但在擬合大規(guī)模的ImageNet數(shù)據(jù)集時(shí)使用了更多的卷積層和更多的參數(shù)。(2)盡管AlexNet已經(jīng)被更高效的架構(gòu)所超越,但它在深度網(wǎng)絡(luò)發(fā)展中扮演了關(guān)鍵角色,標(biāo)志著從淺層網(wǎng)絡(luò)邁向深層網(wǎng)絡(luò)的重要一步。(3)盡管AlexNet的代碼只比LeNet多幾行,但學(xué)術(shù)界花了很多年才接受深度學(xué)習(xí)這一概念,并開(kāi)始應(yīng)用其出色的實(shí)驗(yàn)結(jié)果。(4)Dropout、ReLU和預(yù)處理是提高計(jì)算機(jī)視覺(jué)任務(wù)性能的其他關(guān)鍵步驟。它們的引入使得模型訓(xùn)練更加穩(wěn)定,激活函數(shù)更簡(jiǎn)單有效,而預(yù)處理則有助于提取更有用的特征。2.使用塊的網(wǎng)絡(luò)(VGG)雖然AlexNet證明了深層神經(jīng)網(wǎng)絡(luò)的有效性,但它并沒(méi)有提供一個(gè)通用的模板來(lái)指導(dǎo)后續(xù)新的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)。類(lèi)似芯片設(shè)計(jì)中從晶體管到邏輯元件再到邏輯塊的過(guò)程,神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)也逐漸變得更加抽象化。研究人員開(kāi)始從單個(gè)神經(jīng)元的層面思考問(wèn)題,發(fā)展到整個(gè)層,現(xiàn)在又轉(zhuǎn)向塊和重復(fù)層的模式。塊的概念首先在牛津大學(xué)的視覺(jué)幾何組VGG(VisualGeometryGroup)網(wǎng)絡(luò)中引入。通過(guò)使用循環(huán)和子程序,這些重復(fù)的架構(gòu)可以很容易地在任何現(xiàn)代深度學(xué)習(xí)框架的代碼中實(shí)現(xiàn)。這種思想將網(wǎng)絡(luò)設(shè)計(jì)變得更加模塊化和可擴(kuò)展,使研究人員能夠更靈活地構(gòu)建和定制各種網(wǎng)絡(luò)架構(gòu)。經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分通常包括以下序列:(1)帶填充的卷積層,以保持分辨率。(2)非線性激活函數(shù),如ReLU。(3)匯聚層,例如最大匯聚層。2.使用塊的網(wǎng)絡(luò)(VGG)VGG塊與上述組成類(lèi)似,由一系列卷積層組成,后面是用于空間下采樣的最大匯聚層。在最初的VGG論文中(SimonyanandZisserman,2014),作者使用了具有3×3卷積核和填充為1(以保持高度和寬度)的卷積層,以及具有2×2匯聚窗口和步幅為2(每個(gè)塊后的分辨率減半)的最大匯聚層。

像AlexNet和LeNet一樣,VGG網(wǎng)絡(luò)也可以分為兩個(gè)主要部分。第一部分包含卷積層和匯聚層,而第二部分則由全連接層組成。結(jié)構(gòu)如圖5-4所示。2.小結(jié):(1)VGG-11采用了可復(fù)用的卷積塊來(lái)構(gòu)建網(wǎng)絡(luò)。不同的VGG模型可以通過(guò)在每個(gè)塊中設(shè)置不同的卷積層數(shù)和輸出通道數(shù)來(lái)定義。(2)使用塊的方式使得網(wǎng)絡(luò)的定義變得非常簡(jiǎn)潔。通過(guò)使用塊,可以有效地設(shè)計(jì)復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。(3)在VGG論文中,Simonyan和Ziserman嘗試了多種架構(gòu)。特別是他們發(fā)現(xiàn)深度較大且通道數(shù)較小的卷積(例如3×3的卷積核)比淺層且通道數(shù)較大的卷積更加有效,這個(gè)發(fā)現(xiàn)對(duì)后續(xù)深度神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)產(chǎn)生了影響。3.含并行連接的網(wǎng)絡(luò)(GoogLeNet)2014年的ImageNet圖像識(shí)別挑戰(zhàn)賽中,名為GoogLeNet的網(wǎng)絡(luò)架構(gòu)獲得了巨大成功。GoogLeNet吸收了NiN中串聯(lián)網(wǎng)絡(luò)的思想,并對(duì)其進(jìn)行了改進(jìn)。該論文的一個(gè)關(guān)鍵點(diǎn)是解決了選擇合適大小的卷積核的問(wèn)題。此前的網(wǎng)絡(luò)中使用的卷積核從小到1×1,大到11×11不等。而該論文提出了一種觀點(diǎn),即通過(guò)組合不同大小的卷積核可以取得有利效果。本節(jié)將介紹一個(gè)稍微簡(jiǎn)化的GoogLeNet版本,省略了一些為穩(wěn)定訓(xùn)練而添加的特殊特性,因?yàn)楝F(xiàn)在有了更好的訓(xùn)練方法,這些特性已不再必要。在GoogLeNet中,基本的卷積塊被稱(chēng)為Inception塊,結(jié)構(gòu)如圖5-6所示。3.含并行連接的網(wǎng)絡(luò)(GoogLeNet)在圖5-6所示的Inception塊中,包含了四條并行的路徑。前三條路徑使用不同大小的卷積窗口(1×1、3×3和5×5)進(jìn)行卷積操作,以從不同尺度的空間中提取信息。中間的兩條路徑在輸入上使用1×1的卷積層來(lái)減少通道數(shù),以降低模型的復(fù)雜度。第四條路徑首先使用3×3的最大匯聚層進(jìn)行空間下采樣,然后再使用5×5的卷積層進(jìn)行卷積操作以改變通道數(shù)。這四條路徑的輸出在通道維度上連接起來(lái),形成Inception塊的輸出。在Inception塊中,需要調(diào)整的超參數(shù)通常是每個(gè)路徑的輸出通道數(shù)。3.含并行連接的網(wǎng)絡(luò)(GoogLeNet)在GoogLeNet網(wǎng)絡(luò)中,使用不同大小的濾波器進(jìn)行特征探測(cè),并為它們分配適當(dāng)數(shù)量的參數(shù),這種組合可以有效地捕捉不同尺度的圖像細(xì)節(jié)。GoogLeNet還引入了Inception塊的概念,其中包含多個(gè)并行的卷積路徑,用于在不同尺度上提取特征。通過(guò)堆疊多個(gè)Inception塊和使用全局平均匯聚層,GoogLeNet能夠更深入地建模復(fù)雜的特征,并減少過(guò)擬合的風(fēng)險(xiǎn),這些設(shè)計(jì)策略使得GoogLeNet在圖像識(shí)別任務(wù)中取得了出色的表現(xiàn)。GoogLeNet模型結(jié)構(gòu)如圖5-7所示。3.小結(jié):(1) Inception塊通過(guò)并行的卷積層和最大匯聚層提取不同尺度的信息,并使用1×1卷積層降低通道維度,從而減小了模型的復(fù)雜度。(2) GoogLeNet通過(guò)串聯(lián)多個(gè)精心設(shè)計(jì)的Inception塊和其他層來(lái)構(gòu)建整個(gè)網(wǎng)絡(luò)。每個(gè)Inception塊中通道數(shù)的分配比例是通過(guò)大量實(shí)驗(yàn)在ImageNet數(shù)據(jù)集上確定的,以獲得較好的性能。(3) GoogLeNet及其后續(xù)模型在ImageNet數(shù)據(jù)集上曾是非常有效的模型之一,它在相對(duì)較低的計(jì)算復(fù)雜度下提供了與其他更復(fù)雜模型相似的測(cè)試精度。這使得GoogLeNet成為了一種高效的選擇,可以在計(jì)算資源有限的情況下完成圖像識(shí)別任務(wù)。035.1.3注意力機(jī)制5.1.3注意力機(jī)制靈長(zhǎng)類(lèi)動(dòng)物的視覺(jué)系統(tǒng)接收到大量的感官輸入,遠(yuǎn)遠(yuǎn)超過(guò)大腦的處理能力。然而,通過(guò)意識(shí)的聚焦和專(zhuān)注,它們可以選擇性地將注意力集中在感興趣的物體或信息上。這種能力使得靈長(zhǎng)類(lèi)動(dòng)物能夠在復(fù)雜的視覺(jué)環(huán)境中篩選和處理信息,并更好地適應(yīng)其生存環(huán)境。注意力聚焦和選擇性感知對(duì)靈長(zhǎng)類(lèi)動(dòng)物的進(jìn)化非常重要。它們能夠?qū)⒆⒁饬性陉P(guān)鍵信息上,例如潛在的獵物或潛在的威脅。這種專(zhuān)注和選擇性感知的能力使得它們能夠更有效地捕獲食物、避開(kāi)危險(xiǎn)和與同伴進(jìn)行交互。對(duì)人類(lèi)而言,注意力的聚焦和專(zhuān)注同樣至關(guān)重要。我們面臨著龐大的信息流,但不能同時(shí)處理所有的刺激和信息。通過(guò)選擇性地關(guān)注和處理特定的信息,我們能夠更好地應(yīng)對(duì)復(fù)雜的環(huán)境,并取得成功。因此,注意力的能力在生物進(jìn)化中發(fā)揮了重要的作用,使得靈長(zhǎng)類(lèi)動(dòng)物和人類(lèi)能夠在信息爆炸的環(huán)境中有效地感知、選擇和適應(yīng)。1.多頭注意力

在實(shí)踐中,希望模型在給定相同的查詢(xún)、鍵和值集合時(shí),能夠?qū)W習(xí)到不同的行為,并將這些行為組合成知識(shí),以捕捉序列中不同范圍的依賴(lài)關(guān)系(如短距離和長(zhǎng)距離的依賴(lài)關(guān)系)。為了實(shí)現(xiàn)這一目標(biāo),允許注意力機(jī)制使用查詢(xún)、鍵和值的不同子空間表示是有益的。為了實(shí)現(xiàn)這一點(diǎn),使用獨(dú)立學(xué)習(xí)得到的多組線性投影來(lái)變換查詢(xún)、鍵和值。然后,這些變換后的查詢(xún)、鍵和值被并行地輸入到多個(gè)注意力匯聚中。最后,將這些多個(gè)注意力匯聚的輸出拼接在一起,并通過(guò)另一個(gè)可學(xué)習(xí)的線性投影進(jìn)行變換,生成最終的輸出。這種設(shè)計(jì)被稱(chēng)為多頭注意力。對(duì)于多頭注意力,每個(gè)注意力匯聚被稱(chēng)為一個(gè)頭。通過(guò)使用全連接層實(shí)現(xiàn)可學(xué)習(xí)的線性變換,圖5-9展示了多頭注意力的結(jié)構(gòu)。1.多頭注意力在實(shí)現(xiàn)多頭注意力之前,用數(shù)學(xué)語(yǔ)言將這個(gè)模型形式化地描述出來(lái)。給定查詢(xún)q、鍵k和值v,每個(gè)注意力頭h的計(jì)算方法為:多頭注意力的輸出需要經(jīng)過(guò)另一個(gè)線性轉(zhuǎn)換,它對(duì)應(yīng)著h個(gè)頭連結(jié)后的結(jié)果,因此其可學(xué)習(xí)參數(shù)是

:基于這種設(shè)計(jì),每個(gè)頭都可能會(huì)關(guān)注輸入的不同部分,可以表示比簡(jiǎn)單加權(quán)平均值更復(fù)雜的函數(shù)。2.Transformer自注意力同時(shí)具有并行計(jì)算和最短的最大路徑長(zhǎng)度這兩個(gè)優(yōu)勢(shì),因此被廣泛使用在深度學(xué)習(xí)框架的設(shè)計(jì)中。相比仍然依賴(lài)循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)輸入表示的自注意力模型,Transformer完全基于注意力機(jī)制,不包含卷積層或循環(huán)神經(jīng)網(wǎng)絡(luò)層。雖然Transformer最初是應(yīng)用于文本數(shù)據(jù)上的序列到序列學(xué)習(xí)方法,但它已經(jīng)得到了廣泛的推廣和應(yīng)用,涵蓋了語(yǔ)言、視覺(jué)、語(yǔ)音以及強(qiáng)化學(xué)習(xí)領(lǐng)域。Transformer作為編碼器-解碼器架構(gòu)的一個(gè)實(shí)例,由編碼器和解碼器組成。不同于基于Bahdanau注意力實(shí)現(xiàn)的序列到序列學(xué)習(xí)模型,在Transformer中,編碼器和解碼器都是由自注意力模塊疊加而成。另外源(輸入)序列和目標(biāo)(輸出)序列的嵌入表示會(huì)加上位置編碼,然后分別輸入到編碼器和解碼器中。這種設(shè)計(jì)的優(yōu)點(diǎn)是可以更有效地捕捉序列中不同位置之間的交互關(guān)系,進(jìn)而提高模型的性能和效率。Transformer架構(gòu)如圖5-10所示。2.Transformer大體看,Transformer的編碼器由多個(gè)相同的層疊加而成,每個(gè)層都由兩個(gè)子層(表示為sublayer)組成。第一個(gè)子層是多頭自注意力聚合,第二個(gè)子層是基于位置的前饋網(wǎng)絡(luò)。具體來(lái)說(shuō),在計(jì)算編碼器的自注意力時(shí),查詢(xún)、鍵和值都來(lái)自前一個(gè)編碼器層的輸出。受殘差網(wǎng)絡(luò)的啟發(fā),每個(gè)子層都采用了殘差連接。因此,對(duì)于序列中任何位置的任何輸入x,Transformer編碼器都將輸出一個(gè)d維表示向量。需要注意的是,在Transformer中,對(duì)于序列中任何位置的任何輸入,都需要滿足殘差連接。在殘差連接的加法計(jì)算后,緊接著應(yīng)用層規(guī)范化,因此確保編碼器的輸出向量的一致性。與編碼器類(lèi)似,Transformer解碼器也是由多個(gè)相同的層疊加而成,并采用了殘差連接和層規(guī)范化。除了編碼器中的兩個(gè)子層外,解碼器還在這兩個(gè)子層之間插入了第三個(gè)子層,稱(chēng)為編碼器-解碼器注意力層。在編碼器-解碼器注意力中,查詢(xún)來(lái)自前一個(gè)解碼器層的輸出,而鍵和值來(lái)自整個(gè)編碼器的輸出。在解碼器自注意力中,查詢(xún)、鍵和值都來(lái)自上一個(gè)解碼器層的輸出。需要注意的是,解碼器中的每個(gè)位置只能考慮該位置之前的所有位置。這種掩蔽注意力保留了自回歸屬性,確保預(yù)測(cè)只依賴(lài)于已生成的輸出詞元。導(dǎo)入代碼如下:2.Transformer為了可視化解碼器的自注意力權(quán)重和“編碼器-解碼器”的注意力權(quán)重,需要完成更多數(shù)據(jù)操作工作,例如用零填充被掩蔽的注意力權(quán)重。值得注意的是,解碼器的自注意力權(quán)重和“編碼器-解碼器”的注意力權(quán)重都有相同的查詢(xún),即以序列開(kāi)始詞元打頭,再與后續(xù)輸出的詞元共同組成序列2.小結(jié)(1)Transformer是編碼器-解碼器架構(gòu)的一個(gè)實(shí)踐,盡管在實(shí)際情況中編碼器或解碼器可以單獨(dú)使用。(2)在Transformer中,多頭自注意力用于表示輸入序列和輸出序列,不過(guò)解碼器必須通過(guò)掩蔽機(jī)制來(lái)保留自回歸屬性。(3)Transformer中的殘差連接和層規(guī)范化是訓(xùn)練非常深度模型的重要工具。(4)Transformer模型中基于位置的前饋網(wǎng)絡(luò)使用同一個(gè)多層感知機(jī),作用是對(duì)所有序列位置的表示進(jìn)行轉(zhuǎn)換。045.1.4關(guān)鍵技術(shù)1.圖像增廣圖像增廣技術(shù)通過(guò)對(duì)訓(xùn)練圖像進(jìn)行一系列隨機(jī)變化,在不影響原有意義的情況下,生成相似但不同的訓(xùn)練樣本,從而擴(kuò)大了訓(xùn)練集的規(guī)模。此外,使用圖像增廣的原因是為了減少模型對(duì)某些屬性的依賴(lài),從而提高模型的泛化能力??梢砸圆煌姆绞讲眉魣D像,使得感興趣的對(duì)象出現(xiàn)在不同的位置,從而降低模型對(duì)對(duì)象位置的依賴(lài)度。還可以調(diào)整亮度、顏色等因素以降低模型對(duì)圖像顏色的敏感度??梢哉f(shuō),圖像增廣技術(shù)是計(jì)算機(jī)視覺(jué)中不可或缺的一環(huán)。在對(duì)常用圖像增廣方法探索時(shí),將使用下面這個(gè)尺寸為400×500的圖像作為示例。圖5-14為示例圖。代碼如下:d2l.set_figsize()img=d2l.Image.open('../img/cat1.jpg')d2l.plt.imshow(img);1.圖像增廣大多數(shù)圖像增廣方法都具有一定的隨機(jī)性。為了便于觀察圖像增廣的效果,下面定義輔助函數(shù)apply。此函數(shù)在輸入圖像img上多次運(yùn)行圖像增廣方法aug并顯示結(jié)果。左右翻轉(zhuǎn)圖像通常不會(huì)改變對(duì)象的類(lèi)別,因此這是最早且最廣泛使用的圖像增廣方法之一。在接下來(lái)的步驟中,使用transforms模塊創(chuàng)建RandomFlipLeftRight實(shí)例,使圖像各有50%的幾率向左或向右翻轉(zhuǎn)。翻轉(zhuǎn)圖像如圖5-15所示。代碼如下:apply(img,paddlevision.transforms.RandomHorizontalFlip())1.圖像增廣在示例圖像中,貓出現(xiàn)在圖像的正中央,但并非所有圖像都是如此。為了減少模型對(duì)目標(biāo)位置的敏感度,可以通過(guò)對(duì)圖像進(jìn)行隨機(jī)裁剪,使物體以不同的比例出現(xiàn)在圖像的不同位置。下面的代碼將隨機(jī)裁剪一個(gè)面積為原始面積10%到100%的區(qū)域,該區(qū)域的寬高比從0.5到2之間進(jìn)行隨機(jī)取值。然后,該區(qū)域的寬度和高度都被縮放到200像素。在本節(jié)中,除非另有說(shuō)明,a和b之間的隨機(jī)數(shù)指的是在區(qū)間[a,b]中通過(guò)均勻采樣獲得的連續(xù)值。裁剪縮放示例如圖5-17所示。代碼如下:shape_aug=paddlevision.transforms.RandomResizedCrop((200,200),scale=(0.1,1),ratio=(0.5,2))apply(img,shape_aug)1.小結(jié)(1)圖像增廣是通過(guò)現(xiàn)有的訓(xùn)練數(shù)據(jù)生成隨機(jī)圖像來(lái)提高模型泛化能力的一種方法。(2)為了在預(yù)測(cè)過(guò)程中獲得準(zhǔn)確結(jié)果,通常只對(duì)訓(xùn)練樣本進(jìn)行圖像增廣,而不使用帶有隨機(jī)操作的圖像增廣。(3)深度學(xué)習(xí)框架提供了許多不同的圖像增廣方法,這些方法可以同時(shí)應(yīng)用于訓(xùn)練數(shù)據(jù)。2.目標(biāo)檢測(cè)與邊界框圖像中只有一個(gè)主要物體對(duì)象的情況下,只需要關(guān)注如何識(shí)別其類(lèi)別。然而,在許多情況下,圖像中存在多個(gè)感興趣的目標(biāo)。不僅需要知道它們的類(lèi)別,還需要獲取它們?cè)趫D像中的具體位置。在計(jì)算機(jī)視覺(jué)領(lǐng)域,將這類(lèi)任務(wù)稱(chēng)為目標(biāo)檢測(cè)(objectdetection)或目標(biāo)識(shí)別(objectrecognition)。目標(biāo)檢測(cè)在許多領(lǐng)域中被廣泛應(yīng)用。例如,在無(wú)人駕駛領(lǐng)域,需要通過(guò)識(shí)別拍攝到的視頻圖像中的車(chē)輛、行人、道路和障礙物的位置來(lái)規(guī)劃行駛路徑。機(jī)器人也常通過(guò)目標(biāo)檢測(cè)任務(wù)來(lái)檢測(cè)感興趣的目標(biāo)。下面加載本節(jié)將使用的示例圖像,如圖5-19所示。可以看到圖像左邊是一只狗,右邊是一只貓,它們是這張圖像里的兩個(gè)主要目標(biāo)。代碼如下:d2l.set_figsize()img=d2l.plt.imread('../img/catdog.jpg')d2l.plt.imshow(img);在目標(biāo)檢測(cè)中,通常使用邊界框(boundingbox)來(lái)描述對(duì)象的位置。邊界框的形狀為矩形,由左上角和右下角的x、y坐標(biāo)決定。另一種經(jīng)常使用的方法是使用邊界框的中心點(diǎn)和寬度、高度來(lái)表示。2.目標(biāo)檢測(cè)與邊界框在圖像上添加邊界框之后,可以看到兩個(gè)物體的主要輪廓基本在兩個(gè)框內(nèi)。運(yùn)行結(jié)果如圖5-20所示。代碼如下:fig=d2l.plt.imshow(img)fig.axes.add_patch(bbox_to_rect(dog_bbox,'blue'))fig.axes.add_patch(bbox_to_rect(cat_bbox,'red'));2.目標(biāo)檢測(cè)與邊界框2.小結(jié)(1)目標(biāo)檢測(cè)不僅能夠識(shí)別圖像中感興趣的物體,還能夠確定它們的位置,通常使用矩形邊界框來(lái)表示。(2)通常有兩種常用的邊界框表示方法,一種是用中心點(diǎn)的坐標(biāo)、寬度和高度表示,另一種則使用左上和右下的坐標(biāo)來(lái)表示,這兩種表示方法之間可以相互轉(zhuǎn)換。3.錨框目標(biāo)檢測(cè)算法通常會(huì)在輸入圖像中采樣大量的區(qū)域,然后判斷這些區(qū)域是否包含感興趣的目標(biāo),并逐步調(diào)整這些區(qū)域的邊界,以更準(zhǔn)確地預(yù)測(cè)目標(biāo)的真實(shí)邊界框。不同的模型可能會(huì)使用不同的區(qū)域采樣方法,本節(jié)介紹其中一種,即以每個(gè)像素為中心,生成多個(gè)縮放比例和寬高比例不同的邊界框。錨框的方法在下面的multibox_prior函數(shù)中實(shí)現(xiàn)。指定輸入圖像、尺寸列表和寬高比,然后此函數(shù)將返回所有的錨框。代碼如下:defmultibox_prior(data,sizes,ratios):in_height,in_width=data.shape[-2:]device,num_sizes,num_ratios=data.ctx,len(sizes),len(ratios)boxes_per_pixel=(num_sizes+num_ratios-1)size_tensor=np.array(sizes,ctx=device)ratio_tensor=np.array(ratios,ctx=device)offset_h,offset_w=0.5,0.5steps_h=1.0/in_height#在y軸上縮放步長(zhǎng)

steps_w=1.0/in_width#在x軸上縮放步長(zhǎng)center_h=(np.arange(in_height,ctx=device)+offset_h)*steps_hcenter_w=(np.arange(in_width,ctx=device)+offset_w)*steps_wshift_x,shift_y=np.meshgrid(center_w,center_h)shift_x,shift_y=shift_x.reshape(-1),shift_y.reshape(-1)w=np.concatenate((size_tensor*np.sqrt(ratio_tensor[0]),sizes[0]*np.sqrt(ratio_tensor[1:])))\*in_height/in_width#處理矩形輸入

h=np.concatenate((size_tensor/np.sqrt(ratio_tensor[0]),sizes[0]/np.sqrt(ratio_tensor[1:])))anchor_manipulations=np.tile(np.stack((-w,-h,w,h)).T,(in_height*in_width,1))/2out_grid=np.stack([shift_x,shift_y,shift_x,shift_y],axis=1).repeat(boxes_per_pixel,axis=0)output=out_grid+anchor_manipulationsreturnnp.expand_dims(output,axis=0)3.錨框?yàn)榱孙@示圖像中以某個(gè)像素為中心的所有錨框,定義下面的show_bboxes函數(shù)來(lái)在圖像上繪制多個(gè)邊界框。代碼如下:defshow_bboxes(axes,bboxes,labels=None,colors=None)代碼中的bboxes變量的x軸和y軸坐標(biāo)值已經(jīng)分別除以了圖像的寬度和高度。然而,在繪制錨框時(shí),需要將它們的坐標(biāo)值恢復(fù)到原始尺寸。因此,在下面定義了一個(gè)bbox_scale變量。現(xiàn)在,可以繪制出圖像中所有以(250,250)為中心的錨框了。如圖5-21所示,縮放比為0.75,寬高比為1的藍(lán)色錨框完美地覆蓋了圖像中的狗。代碼如下:show_bboxes(fig.axes,boxes[250,250,:,:]*bbox_scale,['s=0.75,r=1','s=0.5,r=1','s=0.25,r=1','s=0.75,r=2','s=0.75,r=0.5'])3.錨框在上述內(nèi)容中,提到某個(gè)錨框“很好地”覆蓋了圖像中的狗。那么,如果已經(jīng)知道目標(biāo)的真實(shí)邊界框,如何量化這個(gè)“好”的程度呢?直觀地說(shuō),可以衡量錨框和真實(shí)邊界框之間的相似性。杰卡德系數(shù)(JaccardCoefficient)可以用來(lái)衡量?jī)山M之間的相似性。給定集合A和B,它們的杰卡德系數(shù)是它們交集的大小除以它們并集的大?。簩?shí)際上,可以將任何邊界框的像素區(qū)域視為一個(gè)像素集合。通過(guò)這種方式,可以通過(guò)像素集合之間的杰卡德系數(shù)來(lái)測(cè)量?jī)蓚€(gè)邊界框的相似程度。對(duì)于兩個(gè)邊界框,它們的杰卡德系數(shù)通常稱(chēng)為交并比(IntersectionoverUnion,IoU),即兩個(gè)邊界框相交面積與相加面積之比,如下圖5-22所示。交并比的取值范圍在0和1之間:0表示兩個(gè)邊界框無(wú)重合像素,1表示兩個(gè)邊界框完全重合。3.錨框當(dāng)存在大量錨框時(shí),可能會(huì)輸出多個(gè)類(lèi)似的預(yù)測(cè)邊界框,這些邊界框明顯重疊在同一目標(biāo)周?chē)?。為了?jiǎn)化輸出,可以使用非極大值抑制(Non-MaximumSuppression,NMS)算法來(lái)合并屬于同一目標(biāo)的類(lèi)似預(yù)測(cè)邊界框。NMS的工作原理是:對(duì)于一個(gè)預(yù)測(cè)邊界框B,目標(biāo)檢測(cè)模型會(huì)計(jì)算每個(gè)類(lèi)別的預(yù)測(cè)概率。假設(shè)最大的預(yù)測(cè)概率為P,那么B對(duì)應(yīng)的類(lèi)別即為預(yù)測(cè)的類(lèi)別。將P稱(chēng)為預(yù)測(cè)邊界框B的置信度(Confidence)。在同一張圖像中,所有預(yù)測(cè)的非背景邊界框按照置信度從高到低排序,生成一個(gè)列表L。然后,通過(guò)以下步驟操作L:(1)從L中選取置信度最高的預(yù)測(cè)邊界框B作為基準(zhǔn),然后將所有與B的loU超過(guò)預(yù)定閥值e的非基準(zhǔn)預(yù)測(cè)邊界框從L中移除。這時(shí),L保留了置信度最高的預(yù)測(cè)邊界框,去除了與其太過(guò)相似的其他預(yù)測(cè)邊界框。簡(jiǎn)而言之,那些具有非極大值置信度的邊界框被抑制了。(2)從L中選取置信度第二高的預(yù)測(cè)邊界框B2作為又一個(gè)基準(zhǔn),然后將所有與B2的loU大于e的非基準(zhǔn)預(yù)測(cè)邊界框從L中移除。(3)重復(fù)上述過(guò)程,直到L中的所有預(yù)測(cè)邊界框都曾被用作基準(zhǔn)。此時(shí),L中任意一對(duì)預(yù)測(cè)邊界框的loU都小于閥值e,因此沒(méi)有一對(duì)邊界框過(guò)于相似。(4)輸出列表L中的所有預(yù)測(cè)邊界框。3.錨框可以在圖像上繪制這些預(yù)測(cè)邊界框和置信度。預(yù)測(cè)結(jié)果如圖5-23所示?,F(xiàn)在,可以使用multibox_detection函數(shù)調(diào)用非極大值抑制。在示例張量輸入中,添加了一個(gè)維度。請(qǐng)注意,將閾值設(shè)置為0.5。輸出結(jié)果的形狀為批量大小、錨框數(shù)量、6。在最內(nèi)層維度中,六個(gè)元素提供了同一預(yù)測(cè)邊界框的輸出信息。第一個(gè)元素表示預(yù)測(cè)的類(lèi)索引,從0開(kāi)始(0表示狗,1表示貓)。如果為-1,則表示背景或已在非極大值抑制中被移除。第二個(gè)元素是預(yù)測(cè)邊界框的置信度。其余四個(gè)元素分別表示預(yù)測(cè)邊界框左上角和右下角的(x,y)坐標(biāo),范圍在0和1之間。預(yù)測(cè)結(jié)果圖NMS處理結(jié)果圖3.小結(jié)(1)算法將圖像的每個(gè)像素為中心點(diǎn)生成不同形狀的錨框。(2)交并比(IoU)也被稱(chēng)為杰卡德系數(shù),用于衡量?jī)蓚€(gè)邊界框的相似性,它是相交面積與相并面積的比。(3)在預(yù)測(cè)期間,可以通過(guò)使用非極大值抑制(NMS)來(lái)移除類(lèi)似的預(yù)測(cè)邊界框,從而簡(jiǎn)化輸出。5.2人員摔倒檢測(cè)系統(tǒng)CONTENTS5.2.1系統(tǒng)需求分析5.2.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)5.2.3算法開(kāi)發(fā)5.2.4系統(tǒng)測(cè)試與部署5.2.1系統(tǒng)需求分析

由于我國(guó)人口日益老齡化,老年人的身體健康受到人們的極度重視。然而,目前養(yǎng)老機(jī)構(gòu)并沒(méi)有得到普及與完善,居家養(yǎng)老將成為一個(gè)重要趨勢(shì)。大數(shù)據(jù)顯示,意外摔倒是導(dǎo)致60歲以上人群受傷的首要原因。對(duì)于無(wú)人看護(hù)的老人和病人而言,能否及時(shí)發(fā)現(xiàn)其摔倒行為直接關(guān)系到他們的生命安全。因此,人體摔倒檢測(cè)成為目前比較熱門(mén)的研究方向之一?;谏疃葘W(xué)習(xí)的人員摔倒檢測(cè)算法相對(duì)傳統(tǒng)方式具有精度高、魯棒性強(qiáng)等優(yōu)點(diǎn),本案例的人員摔倒檢測(cè)算法基于目標(biāo)檢測(cè)技術(shù),目標(biāo)檢測(cè)發(fā)展脈絡(luò)圖如圖5-1

圖5-1目標(biāo)檢測(cè)發(fā)展脈絡(luò)圖5.2.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本案例實(shí)現(xiàn)流程如下:1.解壓自定義的數(shù)據(jù)集;2.下載安裝PaddleDetection包;3.自定義數(shù)據(jù)集劃分;4.選擇模型(本次選擇YOLOv3)進(jìn)行訓(xùn)練的配置文件說(shuō)明;5.效果可視化;6.模型評(píng)估和預(yù)測(cè);7.PaddleDetection預(yù)測(cè)部署。1.數(shù)據(jù)和環(huán)境準(zhǔn)備:首先將完成好標(biāo)注的圖片(voc格式數(shù)據(jù)集)進(jìn)行解壓,將下載的數(shù)據(jù)集的壓縮文件解壓到home/aistudio/work目錄,代碼如下:!unzipdata/我的數(shù)據(jù)集.zip-d/home/aistudio/work/

本案例中代碼的版本是release/2.0,需要使用PaddlePaddle2.0.2版本。從gitee中下載PaddleDetection,代碼如下:!gitclone/paddlepaddle/PaddleDetection.git在fork完項(xiàng)目后,只需要執(zhí)行一次該命令即可,不需要每次都git。將當(dāng)前文件路徑更換為home/aistudio/PaddleDetection,然

后:安裝PaddleDetection依賴(lài)。代碼如下:%cd/home/aistudio/PaddleDetection/!pipinstall-rrequirements.txt2.自定義數(shù)據(jù)集劃分本案例中數(shù)據(jù)集使用的從視頻中截取捕獲的人員摔倒圖片以及相機(jī)拍攝的摔倒圖片,共1989張圖片以及對(duì)應(yīng)的標(biāo)簽文件。

在做目標(biāo)檢測(cè)的任務(wù)時(shí),通常要用一定的格式來(lái)準(zhǔn)備數(shù)據(jù)集。圖5-2為數(shù)據(jù)集的目錄,需要準(zhǔn)備jpg、png等格式的圖片以及標(biāo)簽文件,標(biāo)簽文件在本案例中使用voc格式。在準(zhǔn)備自己的數(shù)據(jù)集時(shí)可以使用labelimage、labelme等工具進(jìn)行標(biāo)注。

圖5-2數(shù)據(jù)集目錄在技術(shù)實(shí)現(xiàn)的過(guò)程中,要將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集。本案例原始數(shù)據(jù)存在標(biāo)注錯(cuò)誤的情況,這部分?jǐn)?shù)據(jù)需tg掉。將數(shù)據(jù)集按照8:2的比例劃分為訓(xùn)練集和驗(yàn)證集,并生成train.txt和val.txt進(jìn)行訓(xùn)練。其過(guò)程分為以下幾步:

(1)遍歷整個(gè)文件夾,包括jpg文件以及xml文件(2)通過(guò)判斷圖像的大小是否為0,剔除空數(shù)據(jù)(3)統(tǒng)計(jì)數(shù)據(jù)集中的標(biāo)簽:在準(zhǔn)備數(shù)據(jù)時(shí),通常需要一個(gè)label_list.txt的文本文件,里面存放所有真實(shí)標(biāo)簽的名字,運(yùn)行

代碼后,可以得到數(shù)據(jù)總數(shù)和有效數(shù)據(jù)個(gè)數(shù):

(4)將有效數(shù)據(jù)隨機(jī)劃分訓(xùn)練集和驗(yàn)證集,生成的train.txt部分可視化為圖5-3:

圖5-3train.txt文件可視化

可以看出每一行均為一個(gè)樣本,包括圖片的路徑和標(biāo)簽文件的路徑。val.txt結(jié)構(gòu)與其相似。(5)將統(tǒng)計(jì)的標(biāo)簽存放到label_list.txt文件中,生成label_list.txt文件為:運(yùn)行整個(gè)自定義數(shù)據(jù)集劃分程序,可以得到如下結(jié)果:

3.模型訓(xùn)練

在選擇好模型后,只需要改動(dòng)對(duì)應(yīng)的配置文件,運(yùn)行train.py文件,即可實(shí)現(xiàn)訓(xùn)練。本案例中使用YOLOv3模型中的YOLOv3_mobilenet_v3_large_ssld_270e_voc.yml進(jìn)行訓(xùn)練。將mobilenet_v3_large作為骨干網(wǎng)絡(luò),達(dá)到更輕量的效果。首先找到需要修改的配置文件:configs/YOLOv3/YOLOv3_mobilenet_v3_large_ssld_270e_voc.yml。打開(kāi)后可以看到依賴(lài)的五個(gè)子配置文件如下:

_BASE_:[‘../datasets/voc.yml',‘../runtime.yml',‘_base_/optimizer_270e.yml',‘_base_/yolov3_mobilenet_v3_large.yml',‘_base_/yolov3_reader.yml',]

然后根據(jù)實(shí)際的需求進(jìn)行修改,其中:(1)../datasets/voc.yml(數(shù)據(jù)配置文件):主要說(shuō)明了訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)的路徑。例如:數(shù)據(jù)集格式、分類(lèi)數(shù)和訓(xùn)練集路徑、驗(yàn)證集路徑等。(2)../runtime.yml(運(yùn)行時(shí)配置文件):主要說(shuō)明了公共的

運(yùn)行參數(shù)。例如:是否使用GPU、模型保存路徑、迭代輪數(shù)等。(3)_base_/optimizer_270e.yml(優(yōu)化器配置文件):主要說(shuō)明了學(xué)習(xí)率和優(yōu)化器的配置。例如:學(xué)習(xí)率和學(xué)習(xí)率策略、優(yōu)化器類(lèi)型等。(4)_base_/YOLOv3_mobilenet_v3_large.yml:(模型配置文件)主要說(shuō)明了模型、主干網(wǎng)絡(luò)的情況。例如:backbone、neck、head、loss、前后處理等。(5)_base_/YOLOv3_reader.yml:(數(shù)據(jù)讀取配置文件)主要

說(shuō)明了數(shù)據(jù)讀取后的預(yù)處理操作:例如resize、數(shù)據(jù)增強(qiáng)等。在設(shè)置完所有的配置文件以后,就可以開(kāi)始進(jìn)行訓(xùn)練了。下面的代碼將當(dāng)前文件路徑更換為home/aistudio/PaddleDetection,通過(guò)運(yùn)行train.py進(jìn)行訓(xùn)練,指定訓(xùn)練配置文件路徑為-cconfigs/YOLOv3/YOLOv3_mobilenet_v3_large_ssld_270e_voc.yml,--eval參數(shù)指定在訓(xùn)練過(guò)程中進(jìn)行評(píng)估,評(píng)估在每個(gè)snapshot_epoch時(shí)開(kāi)始,每次評(píng)估后還會(huì)評(píng)出最佳mAP模型保存到best_model文件夾下,建議訓(xùn)練時(shí)使用該參數(shù),可以使得完成訓(xùn)練后快速地找到最好

的模型。如果想縮短訓(xùn)練時(shí)間,可以在_base_/optimizer_270e.yml中將訓(xùn)練輪數(shù)epoch減小。如果驗(yàn)證集很大,測(cè)試將會(huì)比較耗時(shí),建議調(diào)整configs/runtime.yml文件中的snapshot_epoch配置以減少評(píng)估次數(shù),或訓(xùn)練完成后再進(jìn)行評(píng)估。--use_vdl=true開(kāi)啟可視化功能,--vdl_log_dir=“./output”將生成的日志放在output文件夾下,訓(xùn)練的代碼如下:

%cd/home/aistudio/PaddleDetection!pythontools/train.py-cconfigs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml--eval--use_vdl=True--vdl_log_dir="./output"

當(dāng)打開(kāi)use_vdl開(kāi)關(guān)后,為了方便用戶(hù)實(shí)時(shí)查看訓(xùn)練過(guò)程中狀態(tài),PaddleDetection集成了VisualDL可視化工具。當(dāng)打開(kāi)use_vdl開(kāi)關(guān)后,記錄的數(shù)據(jù)包括:loss變化趨勢(shì)、mAP變化趨勢(shì)等,在BMLCodelab中點(diǎn)擊可視化,如圖5-4所示:

圖5-4可視化界面

選擇訓(xùn)練時(shí)生成的logdir或者模型文件,啟動(dòng)VisualDL服務(wù),即可查看。可以根據(jù)訓(xùn)練曲線,進(jìn)行模型調(diào)優(yōu),選擇output文件夾:

然后啟動(dòng)服務(wù)后可以看到訓(xùn)練曲線,重點(diǎn)關(guān)注bbox-mAP和loss,然后根據(jù)曲線情況進(jìn)行調(diào)整或者提前終止訓(xùn)練。曲線如圖5-5和圖5-6所示:

圖5-5bbox-mAP曲線圖5-6loss曲線訓(xùn)練的部分結(jié)果如圖5-7所示:

圖5-7部分訓(xùn)練結(jié)果4.模型評(píng)估由于邊訓(xùn)練邊評(píng)估,已經(jīng)保存好了最優(yōu)模型,所以在這里可以不進(jìn)行評(píng)估,最優(yōu)模型文件如圖5-8所示:

評(píng)估時(shí)運(yùn)行eval.py程序,需要指定評(píng)估配置文件路徑與被評(píng)估的模型的路徑,代碼如下:

圖5-8最優(yōu)模型文件4.模型評(píng)估由于邊訓(xùn)練邊評(píng)估,已經(jīng)保存好了最優(yōu)模型,所以在這里可以不進(jìn)行評(píng)估,最優(yōu)模型文件如圖5-8所示:

評(píng)估時(shí)運(yùn)行eval.py程序,需要指定評(píng)估配置文件路徑與被評(píng)估的模型的路徑,代碼如下:

圖5-8最優(yōu)模型文件4.模型評(píng)估由于邊訓(xùn)練邊評(píng)估,已經(jīng)保存好了最優(yōu)模型,所以在這里可以不進(jìn)行評(píng)估,最優(yōu)模型文件如圖5-8所示:

評(píng)估時(shí)運(yùn)行eval.py程序,需要指定評(píng)估配置文件路徑與被評(píng)估的模型的路徑,代碼如下:

圖5-8最優(yōu)模型文件%cd/home/AIStudio/PaddleDetection/!python-utools/eval.py-cconfigs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml\-oweights=output/yolov3_mobilenet_v3_large_ssld_270e_voc/best_model.pdparams得到評(píng)估結(jié)果如圖5-9所示:可以看到mAP為82.54%,平均FPS為24.79。

圖5-9評(píng)估結(jié)果YOLOv3介紹YOLOv3是一種基于深度學(xué)習(xí)技術(shù)的目標(biāo)檢測(cè)算法,由JosephRedmon等人于2018年提出。相對(duì)于之前的版本,YOLOv3在檢測(cè)精度和速度方面取得了顯著提升,廣泛應(yīng)用于領(lǐng)域如人臉識(shí)別和物體識(shí)別。它的改進(jìn)包括更深的網(wǎng)絡(luò)結(jié)構(gòu)、多尺度檢測(cè)策略、FPN特征金字塔、AnchorBoxes、多個(gè)輸出層、IoU閾值等??傮w來(lái)說(shuō),YOLOv3在檢測(cè)精度和速度方面有了顯著提升,適用于實(shí)時(shí)場(chǎng)景下高效的目標(biāo)檢測(cè)。

5.2.3算法開(kāi)發(fā)YOLOv3整體結(jié)構(gòu)如圖5-10所示:1.Backbone骨干網(wǎng)絡(luò)Backbone用于提取特征,經(jīng)典的YOLOv3中使用的是

圖5-10YOLOv3整體結(jié)構(gòu)圖Darknet-53特征提取網(wǎng)絡(luò),由52個(gè)卷積層和1個(gè)全連接層構(gòu)成,如圖5-11所示:圖5-11Backbone結(jié)構(gòu)2.Head圖5-12為輸出層結(jié)構(gòu):

圖5-12輸出層結(jié)構(gòu)YOLOv3整個(gè)網(wǎng)絡(luò)輸入416*416的圖片,中間過(guò)程可以看作一個(gè)黑箱模型,輸出三個(gè)尺度的特征圖:13*13*255、26*26*255、52*52*255,三個(gè)輸出的深度都是255。3.Neck圖5-13為Neck網(wǎng)絡(luò),可以實(shí)現(xiàn)不同層次的特征融合。將小尺度的特征經(jīng)過(guò)CBL和上采樣操作獲得大一級(jí)尺度的特征,并且通過(guò)張量拼接將同尺度的特征融合到一起,使網(wǎng)絡(luò)既能發(fā)揮深層網(wǎng)絡(luò)特化抽象語(yǔ)義的信息,也可以充分發(fā)揮淺層網(wǎng)絡(luò)像素結(jié)構(gòu)底層細(xì)粒度的

信息。

圖5-13Neck將模型輸出的三個(gè)尺度的預(yù)測(cè)框中的85個(gè)參數(shù)與對(duì)應(yīng)的標(biāo)簽值進(jìn)行擬合,用損失函數(shù)進(jìn)行反向傳播和梯度下降,迭代更新網(wǎng)絡(luò)參數(shù)。YOLOv3測(cè)試過(guò)程如圖5-15所示:

圖5-15YOLOv3測(cè)試過(guò)程由于有三個(gè)特征圖,所以需要對(duì)三個(gè)特征圖分別進(jìn)行預(yù)測(cè)。三個(gè)特征圖一共可以產(chǎn)生13*13*3+26*26*3+52*52*3=10647個(gè)預(yù)測(cè)框坐標(biāo)以及對(duì)應(yīng)的類(lèi)別和置信度。測(cè)試時(shí),選取一個(gè)置信度閾值,過(guò)濾低閾值box,經(jīng)過(guò)NMS,消除各個(gè)類(lèi)別重疊較大的預(yù)測(cè)框,輸出整個(gè)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果。

系統(tǒng)測(cè)試PaddleDetection給出的模型預(yù)測(cè)腳本是infer.py,可以通過(guò)此腳本,使用訓(xùn)練好的模型對(duì)指定圖片進(jìn)行推理預(yù)測(cè)。

5.2.4系統(tǒng)測(cè)試與部署PaddleDetection提供了兩種預(yù)測(cè)方式,單張圖片預(yù)測(cè)和以一個(gè)文件夾中的圖片進(jìn)行預(yù)測(cè)。使用-infer_img=demo/xxx.jpg為單張圖片進(jìn)行預(yù)測(cè),使用-infer_dir=demo為用一個(gè)文件夾進(jìn)行預(yù)測(cè),其中demo是放置測(cè)試圖片的地方。測(cè)試時(shí)需要指定預(yù)測(cè)配置文件、預(yù)測(cè)用到的模型和預(yù)測(cè)的圖像路徑,代碼如下:!pythontools/infer.py-cconfigs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml\-oweights=/home/aistudio/work/best_model.pdparams\--infer_img=/home/aistudio/work/我的數(shù)據(jù)集/people_2029.jpg預(yù)測(cè)結(jié)果如圖5-16所示:

對(duì)測(cè)試的圖片結(jié)果進(jìn)行可視化,代碼如下:圖5-16預(yù)測(cè)結(jié)果%matplotlibinlineimportmatplotlib.pyplotaspltimportcv2infer_img=cv2.imread("output/people_2029.jpg")plt.figure(figsize=(10,10))plt.imshow(cv2.cvtColor(infer_img,cv2.COLOR_BGR2RGB))plt.show()可以得到圖5-17的測(cè)試圖片:

圖5-17測(cè)試圖片

系統(tǒng)部署PaddleDetection提供了PaddleInference、PaddleServing、Paddle-Lite多種部署形式,本案例中使用PaddleInference部署。在模型訓(xùn)練過(guò)程中保存的模型文件包含前向預(yù)測(cè)和反向傳播過(guò)程,實(shí)際部署則不需要反向傳播,因此需要將模型導(dǎo)成部署需要的模型格式。PaddleDetection中提供了tools/export_model.py腳本來(lái)導(dǎo)出模型,消除了冗余參數(shù),方便后面的模型部署。將模型導(dǎo)出,默認(rèn)存儲(chǔ)于PaddleDetection/output_inference目錄,代碼如下:

%cd/home/AIStudio/PaddleDetection!pythontools/export_model.py-cconfigs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml\-oweights=/home/AIStudio/work/best_model.pdparams導(dǎo)出的推理模型文件結(jié)構(gòu)如圖5-18所示:圖5-18

推理模型文件結(jié)構(gòu)得到推理數(shù)據(jù)如圖5-19所示:

圖5-19推理數(shù)據(jù)包括推理時(shí)間、檢測(cè)目標(biāo)id、置信度以及預(yù)測(cè)框的坐標(biāo)、保存結(jié)果路徑等。使用下面的代碼進(jìn)行Benchmark測(cè)試:!pythondeploy/python/infer.py--model_dir=output_inference/yolov3_mobilenet_v3_large_ssld_270e_voc\--image_file=/home/AIStudio/work/我的數(shù)據(jù)集/people_1125.jpg

\--use_gpu=True--run_benchmark=True可以得到圖5-20的結(jié)果,推理時(shí)間減小到了6.83ms。

圖5-20Benchmark測(cè)試結(jié)果5.3無(wú)人機(jī)航拍小目標(biāo)檢測(cè)系統(tǒng)CONTENTS5.3.1系統(tǒng)需求分析5.3.2無(wú)人機(jī)小目標(biāo)算法開(kāi)發(fā)015.3.1系統(tǒng)需求分析1.概述基于深度學(xué)習(xí)的無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法是目前應(yīng)用廣泛且效果良好的一種方法。其主要基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)模型,通過(guò)對(duì)訓(xùn)練樣本的學(xué)習(xí)和優(yōu)化,實(shí)現(xiàn)對(duì)無(wú)人機(jī)航拍圖像中小目標(biāo)的自動(dòng)檢測(cè)和識(shí)別?;谏疃葘W(xué)習(xí)的無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法具有精度高、魯棒性強(qiáng)等優(yōu)點(diǎn),能夠在不同場(chǎng)景下實(shí)現(xiàn)對(duì)不同類(lèi)別的小目標(biāo)的檢測(cè)和識(shí)別,如車(chē)輛、行人等。同時(shí),該算法也存在一些挑戰(zhàn),如訓(xùn)練數(shù)據(jù)量少、光照條件差等問(wèn)題,需要進(jìn)行進(jìn)一步的優(yōu)化和改進(jìn)。為了提高基于深度學(xué)習(xí)的無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法的性能,近年來(lái)涌現(xiàn)出了一些新的算法和技術(shù),如:1.多尺度檢測(cè)。2.多任務(wù)學(xué)習(xí)。3.數(shù)據(jù)增強(qiáng)。4.交互式學(xué)習(xí)。5.跨域遷移學(xué)習(xí)??傊谏疃葘W(xué)習(xí)的無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法是一個(gè)廣泛研究和應(yīng)用的領(lǐng)域,未來(lái)隨著硬件設(shè)備的升級(jí)和算法的不斷優(yōu)化,該算法將在更多場(chǎng)景下得到應(yīng)用和推廣。2.國(guó)內(nèi)外研究現(xiàn)狀無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法是近年來(lái)國(guó)內(nèi)外研究的熱點(diǎn)之一,目前研究現(xiàn)狀:1.國(guó)外:基于深度學(xué)習(xí)的無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法已經(jīng)得到廣泛應(yīng)用。例如,美國(guó)的“ProjectMaven”項(xiàng)目就是通過(guò)利用深度學(xué)習(xí)算法實(shí)現(xiàn)無(wú)人機(jī)航拍圖像中的目標(biāo)檢測(cè)和識(shí)別。歐洲的“MINERVA”項(xiàng)目也是利用無(wú)人機(jī)航拍圖像實(shí)現(xiàn)對(duì)地面目標(biāo)的自動(dòng)檢測(cè)和跟蹤。同時(shí),在學(xué)術(shù)界也涌現(xiàn)出了一些優(yōu)秀的研究工作,如FasterR-CNN、YOLO等模型的提出和改進(jìn),以及對(duì)多任務(wù)學(xué)習(xí)、跨域遷移學(xué)習(xí)等領(lǐng)域的探索和應(yīng)用。2.國(guó)內(nèi):隨著無(wú)人機(jī)技術(shù)的不斷發(fā)展,基于深度學(xué)習(xí)的無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法也逐漸成為了研究的熱點(diǎn)之一。研究主要集中在算法的改進(jìn)和優(yōu)化上,如利用多尺度檢測(cè)、數(shù)據(jù)增強(qiáng)、交互式學(xué)習(xí)等方法來(lái)提高算法的性能和魯棒性。此外,還有一些研究工作關(guān)注無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法的實(shí)際應(yīng)用,如利用該算法實(shí)現(xiàn)對(duì)城市交通、森林防火等領(lǐng)域的監(jiān)測(cè)和預(yù)警。2.國(guó)內(nèi)外研究現(xiàn)狀總體來(lái)說(shuō),國(guó)內(nèi)外在無(wú)人機(jī)航拍小目標(biāo)檢測(cè)算法的研究方面取得了不少進(jìn)展,但仍然面臨著一些挑戰(zhàn)和難題,如算法的精度和魯棒性、實(shí)時(shí)性等,需要進(jìn)行進(jìn)一步的研究和改進(jìn)。小目標(biāo)檢測(cè)算法發(fā)展情況如圖5-55所示。3.小目標(biāo)定義小目標(biāo)的定義并沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),不同場(chǎng)景和數(shù)據(jù)集可能有不同的劃分方式。小目標(biāo)的定義主要有兩種方式:1.基于相對(duì)尺度的定義:即從目標(biāo)與圖像的相對(duì)比例這一角度對(duì)小目標(biāo)進(jìn)行定義。對(duì)于一個(gè)針對(duì)小目標(biāo)的數(shù)據(jù)集,同一類(lèi)別中所有目標(biāo)實(shí)例的相對(duì)面積(即邊界框面積與圖像面積之比)在0.08%~0.58%之間的目標(biāo)視為小目標(biāo)。2.基于絕對(duì)尺度的定義:即從目標(biāo)絕對(duì)像素大小這一角度考慮對(duì)小目標(biāo)進(jìn)行定義。例如,MSCOCO數(shù)據(jù)集將分辨率小于32×32像素的目標(biāo)視為小目標(biāo)?;谙鄬?duì)尺度和絕對(duì)尺度的定義各有優(yōu)缺點(diǎn),前者可以適應(yīng)不同場(chǎng)景和分辨率下的圖像,但難以評(píng)估模型對(duì)不同尺度目標(biāo)的檢測(cè)性能;后者可以方便地比較不同算法在同一數(shù)據(jù)集上針對(duì)小目標(biāo)檢測(cè)精度,但忽略了圖像本身尺寸和場(chǎng)景復(fù)雜程度等因素。本案例將COCO數(shù)據(jù)集下定義的小目標(biāo)作為標(biāo)準(zhǔn)。025.3.2無(wú)人機(jī)小目標(biāo)算法開(kāi)發(fā)1.數(shù)據(jù)集介紹VisDrone2019數(shù)據(jù)集是由天津大學(xué)等團(tuán)隊(duì)開(kāi)源的一個(gè)大型無(wú)人機(jī)視角的數(shù)據(jù)集,官方提供的數(shù)據(jù)中訓(xùn)練集為6471張、驗(yàn)證集為548張。提供了11個(gè)類(lèi),分別是:'pedestrian','people','bicycle','car','van','truck','tricycle','awning-tricycle','bus','motor','others',其中others是非有效目標(biāo)區(qū)域,本案例中予以忽略。其數(shù)據(jù)標(biāo)注展示如圖5-56所示:2.PPYOLOE介紹PPYOLOE是基于PPYOLO做的一系列改進(jìn)和升級(jí),是單階段Anchor-free模型,超越了多種流行的YOLO模型,取得了較好的性能。PPYOLO有一系列模型,包括s、m、l和x,可以通過(guò)width_multiplier和depth_multiplier配置。同時(shí)避免使用諸如deformableconvolution或者matrixnms之類(lèi)的特殊算子,以使其能輕松地部署在多種硬件上,因此對(duì)部署非常友好。PPYOLOE由以下方法組成:(1) 可擴(kuò)展的backbone和neck(2) TaskAlignmentLearning(3) EfficientTask-alignedheadwithDFL和VFL(4) SiLU激活函數(shù)2.PPYOLOE介紹PPYOLOE整體結(jié)構(gòu)如圖5-57所示(s尺度模型):2.1Backbone基礎(chǔ)網(wǎng)絡(luò)采用自研的CSPRepResNet結(jié)構(gòu),主要是在ResNet的基礎(chǔ)上,參考CSPNet和RepVGG進(jìn)行了改進(jìn)。改進(jìn)點(diǎn)如圖5-58所示:2.1BackboneCSPNet采用兩個(gè)分支實(shí)現(xiàn)了特征的跨階段融合,通過(guò)將梯度的變化從頭到尾集成到特征圖中,大幅降低計(jì)算量的同時(shí)可以保證準(zhǔn)確率。RepVGG結(jié)構(gòu)在VGG的基礎(chǔ)上進(jìn)行改進(jìn),主要的思路包括是在VGG網(wǎng)絡(luò)的Block塊中加入了Identity和殘差分支,相當(dāng)于把ResNet網(wǎng)絡(luò)中的精華應(yīng)用到VGG網(wǎng)絡(luò)中。模型推理階段,通過(guò)Op融合策略將所有的網(wǎng)絡(luò)層都轉(zhuǎn)換為3×3卷積,便于網(wǎng)絡(luò)的部署和加速。改進(jìn)對(duì)比如圖5-59所示。2.2HeadHead部分采用了TOOD的思想,也就是T-Head,主要包括Cls_Head和Loc_Head。具體來(lái)說(shuō),T-head首先在FPN特征基礎(chǔ)上進(jìn)行分類(lèi)與定位預(yù)測(cè),然后TAP基于所得任務(wù),通過(guò)計(jì)算,將信息對(duì)齊;最后T-head根據(jù)從TAP傳回的信息自動(dòng)調(diào)整分類(lèi)概率與定位預(yù)測(cè)。分類(lèi)與回歸頭如圖5-60所示。2.2Head由于分類(lèi)和回歸這兩個(gè)任務(wù)的預(yù)測(cè)都是基于這個(gè)交互特征來(lái)完成的,但是兩個(gè)任務(wù)對(duì)于特征的需求是不一樣的,因此設(shè)計(jì)了一個(gè)layerattention來(lái)為每個(gè)任務(wù)單獨(dú)調(diào)整特征。這個(gè)部分的結(jié)構(gòu)也很簡(jiǎn)單,可以理解為是一個(gè)channel-wise的注意力機(jī)制。由此得到了對(duì)于每個(gè)任務(wù)單獨(dú)的特征,然后再利用這些特征生成所需要的類(lèi)別或者定位的特征圖。圖5-61為檢測(cè)頭原理圖。2.3樣本匹配匹配策略選用了ATSS和TAL。ATSS指出One-StageAnchor-Based和Center-BasedAnchor-Free檢測(cè)算法間的差異主要來(lái)自于正負(fù)樣本的選擇,基于此提出ATSS(AdaptiveTrainingSampleSelection)方法,該方法能夠自動(dòng)根據(jù)GT的相關(guān)統(tǒng)計(jì)特征選擇合適的AnchorBox作為正樣本,在不帶來(lái)額外計(jì)算量和參數(shù)的情況下,能夠大幅提升模型的性能。TOOD提出了TaskAlignmentLearning(TAL)來(lái)顯式的把2個(gè)任務(wù)的最優(yōu)Anchor拉近,這是通過(guò)設(shè)計(jì)一個(gè)樣本分配策略和任務(wù)對(duì)齊loss來(lái)實(shí)現(xiàn)的。樣本分配計(jì)算每個(gè)Anc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論