欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

包含F(xiàn)lutterNcnn的詞條

NCNN使用總結(jié)

關(guān)于安裝、編譯、使用步驟等不在贅述, 官網(wǎng) 有很詳細(xì)文檔

創(chuàng)新互聯(lián)公司是一家專業(yè)提供肥西企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為肥西眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

使用caffe模型的時(shí)候,input部分一定要寫成規(guī)范格式:

千萬(wàn)別圖省事寫成如下格式,caffe可以運(yùn)行沒(méi)問(wèn)題,但是轉(zhuǎn)化無(wú)法識(shí)別,這個(gè)ncnn數(shù)據(jù)結(jié)構(gòu)導(dǎo)致?。?!

網(wǎng)絡(luò)定義的層千萬(wàn)別出現(xiàn)重復(fù)情況,一定要規(guī)范定義:

千萬(wàn)別寫成如下網(wǎng)絡(luò),在caffe可以穩(wěn)定運(yùn)行,但是ncnn會(huì)讀取上第一次出現(xiàn)的top層?。?!

第一層輸出是 concat_out1 ,第二層輸出也是 concat_out1 ,當(dāng)使用 ncnn.extract 會(huì)出現(xiàn)錯(cuò)誤?。?!

這貌似是算作 caffe 的問(wèn)題,在筆者使用的過(guò)程忽略了這一點(diǎn),干脆算 NCNN 操作里面了。

Batch Normalization 層有個(gè) use_global_stats 參數(shù),這個(gè)操作的作用是: 是否使用caffe內(nèi)部的均值和方差

換句話的意思就是:

--------- true :使用caffe內(nèi)部的均值和方差,其中方差和均值都是固定的,模型訓(xùn)練好之后,這兩個(gè)值就固定了。

--------- false :使用當(dāng)前層計(jì)算的方差和均值,這個(gè)是不固定的,是在訓(xùn)練過(guò)程一直改變,訓(xùn)練好的時(shí)候達(dá)到最優(yōu)。

其中 NCNN 默認(rèn)使用 true 狀態(tài),不管是 false 還是 true ,最終都是算作 true

caffe 測(cè)試的時(shí)候得手動(dòng)設(shè)置為 true

正常來(lái)說(shuō) ncnn 和 caffe 原版的誤差范圍在 0.001 左右,我的數(shù)據(jù)在 0.000X 范圍徘徊,如果你的數(shù)據(jù)精確不到第三個(gè)有效數(shù)字,那就得檢查網(wǎng)絡(luò)輸入精度了。

輸入的 substract_mean_normalize 得盡量精確,尤其是歸一化的值?。?!

假設(shè) 0-255 的圖像需要?dú)w一化到 0-1 :

千萬(wàn)不要寫成下面這樣,讀者可以自己測(cè)試,精度差別較大。

這里沒(méi)有錯(cuò)誤點(diǎn),只有心得點(diǎn)。

看了NCNN的官網(wǎng)給的例子,它是將輸出轉(zhuǎn)化為一行數(shù)據(jù),然后一個(gè)一個(gè)的進(jìn)行處理:

個(gè)人感覺(jué)使用這種處理小數(shù)據(jù)還是可以的,本人使用網(wǎng)絡(luò)輸出 100 × 100 × 10 ,這種情況該如何處理?

本人使用處理如下:

NCNN官網(wǎng)有個(gè)人問(wèn)能不能輸入和輸出多個(gè)通道數(shù)據(jù),后者已經(jīng)在上文實(shí)現(xiàn),以下看前者。

圖片裁剪等操作對(duì)于cnn網(wǎng)絡(luò)梯度反向傳播有什么影響嗎?

我的理解如下:

首先,第一個(gè)CNN只能包含Conv和Pooling層,否則輸出的格式是不能當(dāng)做下一個(gè)CNN的輸入的。其次,如果第一個(gè)CNN每層的Conv filter數(shù)量大于1的話(假設(shè)最后一層的filter數(shù)為N),第一個(gè)CNN的輸出shape為 (N, W', H'), 那么下一個(gè)CNN的 Conv filter的通道數(shù)量必須也是N。所以,這兩個(gè)CNN從結(jié)構(gòu)原理上其實(shí)是同一個(gè)CNN,其反向傳播的機(jī)制跟正常的CNN相同。但是,這里“第一個(gè)”CNN是不能用于圖像裁剪的,只能做常用的卷積操作來(lái)提取特征。

如果要做裁剪的話建議用RPN(Region Proposal Network)+CNN的結(jié)構(gòu)。RPN部分實(shí)際上是個(gè)回歸模型,其目的是裁剪圖片提取有效物體(訓(xùn)練目的是使該網(wǎng)絡(luò)選取和物體大小、實(shí)際所在區(qū)域無(wú)線接近的區(qū)域)再輸入到CNN進(jìn)行識(shí)別。而RPN和CNN是可以放在一起訓(xùn)練的,具體的可以參考Faster RCNN文獻(xiàn)。

C0n+C1n+…Cnn=

你可以這么想:現(xiàn)在有n個(gè)球要放到左右兩個(gè)盒子里,有多少中放法。首先可以這么算:左面的盒子里可能裝0個(gè),那就是C0n,也可能裝1個(gè),那么就從n個(gè)里選一,是C1n......還可能選n個(gè),就是Cnn,由加法原理,加起來(lái)就是c0n+c1n+c2n+...+cnn

還可以換一種算法:上面的算法是盒子選球,現(xiàn)在我們讓球去選盒子,每個(gè)球都有兩種選法,由乘法原理,n個(gè)球共有2^n種選法

因?yàn)橥}必同解,所以c0n+c1n+c2n+...+cnn=2^n

Faster R-CNN:使用RPN實(shí)時(shí)目標(biāo)檢測(cè)

論文: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

目標(biāo)檢測(cè)網(wǎng)絡(luò)大多依靠 區(qū)域生成 (region proposal)算法來(lái)假設(shè)目標(biāo)的位置。 R-CNN 是采用 Selective Search 算法來(lái)提取(propose)可能的 RoIs(regions of interest) 區(qū)域,然后對(duì)每個(gè)提取區(qū)域采用標(biāo)準(zhǔn) CNN 進(jìn)行分類。選擇性搜索(Selective Search )方法就是在目標(biāo)對(duì)象周圍設(shè)定2000個(gè)形狀大小位置不一的候選區(qū)域,目標(biāo)物體在候選區(qū)域的可能性還是比較大的。然后對(duì)這些區(qū)域卷積,找到目標(biāo)物體,雖然大多數(shù)區(qū)域都是無(wú)用的。與尋找?guī)缀鮽€(gè)區(qū)域比起來(lái),這種方法要高效的多。

Fast R-CNN ,不在原始圖像生成備選區(qū)域,而是先整張圖片通過(guò)卷積網(wǎng)絡(luò)得到特征圖,然后在特征圖上使用備選區(qū)域算法得到感興趣的區(qū)域在特征圖的映射,之后使用 Rol Pool將所有區(qū)域變成同樣尺寸,大大減少了這些目標(biāo)檢測(cè)網(wǎng)絡(luò)的運(yùn)行時(shí)間,但是區(qū)域生成的計(jì)算成為整個(gè)檢測(cè)網(wǎng)絡(luò)的瓶頸。

Faster R-CNN 引入了一個(gè) 區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN) ,該網(wǎng)絡(luò)與檢測(cè)網(wǎng)絡(luò)共享輸入圖像的卷積特征,從而使接近零時(shí)間成本的區(qū)域生成成為可能。 RPN是一個(gè)全卷積網(wǎng)絡(luò),可以同時(shí)在每個(gè)位置預(yù)測(cè)目標(biāo)邊界和目標(biāo)分?jǐn)?shù)。RPN經(jīng)過(guò)端到端的訓(xùn)練,可以生成高質(zhì)量的區(qū)域候選框,然后提供給Fast R-CNN用于檢測(cè)。

Faster R-CNN 由兩個(gè)模塊組成:第一個(gè)模塊是區(qū)域生成的深度全卷積網(wǎng)絡(luò),第二個(gè)模塊是使用備選區(qū)域的Fast R-CNN檢測(cè)器。整個(gè)系統(tǒng)是一個(gè)單個(gè)的,統(tǒng)一的目標(biāo)檢測(cè)網(wǎng)絡(luò)。使用最近流行的“注意力”機(jī)制的神經(jīng)網(wǎng)絡(luò)術(shù)語(yǔ),RPN模塊告訴Fast R-CNN模塊在哪里尋找目標(biāo)。

針對(duì)一張圖片,需要獲得的輸出有:

Faster R-CNN 第一步是采用基于分類任務(wù)(如ImageNet)的 CNN 模型作為特征提取器。輸入圖片表示為 H × W × D 的形式,經(jīng)過(guò)預(yù)訓(xùn)練 CNN 模型的處理,得到卷積特征圖(conv feature map)。

Faster R-CNN 最早是采用在 ImageNet 訓(xùn)練的 ZF 和 VGG ,其后出現(xiàn)了很多其它權(quán)重不同的網(wǎng)絡(luò).。如 MobileNet 是一種小型效率高的網(wǎng)絡(luò)結(jié)構(gòu),僅有 3.3M 參數(shù);而ResNet-152 的參數(shù)量達(dá)到了 60M;新網(wǎng)絡(luò)結(jié)構(gòu),如 DenseNet 在提高了結(jié)果的同時(shí),降低了參數(shù)數(shù)量。

以 VGG16 為例:

VGG16 圖片分類時(shí),輸入為 224×224×3 的張量(即,一張 224×224 像素的 RGB 圖片)。網(wǎng)絡(luò)結(jié)構(gòu)最后采用 FC 層(而不是 Conv 層)得到固定長(zhǎng)度的向量,以進(jìn)行圖片分類.。對(duì)最后一個(gè)卷積層的輸出拉伸為1維的向量,然后送入 FC 層。官方實(shí)現(xiàn)中是采用的卷積層 conv5/conv5_1 的輸出。

在深度上,卷積特征圖對(duì)圖片的所有信息進(jìn)行了編碼,同時(shí)保持相對(duì)于原始圖片所編碼 “things” 的位置。例如,如果在圖片的左上角存在一個(gè)紅色正方形,而且卷積層有激活響應(yīng),那么該紅色正方形的信息被卷積層編碼后,仍在卷積特征圖的左上角。因此利用特征圖檢測(cè)目標(biāo)所在的位置是可行的。

ResNet 結(jié)構(gòu)逐漸取代 VGG 作為基礎(chǔ)網(wǎng)絡(luò),用于提取特征。ResNet 相對(duì)于 VGG 的明顯優(yōu)勢(shì)是,網(wǎng)絡(luò)更大,因此具有更強(qiáng)的學(xué)習(xí)能力.。這對(duì)于分類任務(wù)是重要的,在目標(biāo)檢測(cè)中也應(yīng)該如此。另外,ResNet 采用殘差連接(residual connection) 和 BN (batch normalization) 使得深度模型的訓(xùn)練比較容易。

然后,RPN(Region Propose Network) 對(duì)提取的卷積特征圖進(jìn)行處理,尋找可能包含 目標(biāo)的 預(yù)定義數(shù)量的區(qū)域(regions,邊界框) 。為了生成候選區(qū)域,在最后的共享卷積層輸出的卷積特征圖上做 3x3 卷積,卷積核共有512個(gè)(VGG),后面是ReLU,這樣每個(gè) 3x3 區(qū)域會(huì)得到一個(gè)512維的特征向量。然后這個(gè)特征向量被輸入到兩個(gè)全連接層——一個(gè)邊界框回歸層(reg)和一個(gè)邊界框分類層(cls)。

下面解釋 k, 2k, 4k 的含義。

基于深度學(xué)習(xí)的目標(biāo)檢測(cè)中,可能最難的問(wèn)題就是生成長(zhǎng)度不定(variable-length)的邊界框列表(bounding-boxes),邊界框是具有不同尺寸(sizes)和長(zhǎng)寬比(aspect ratios )的矩形。在構(gòu)建深度神經(jīng)網(wǎng)絡(luò)時(shí),最后的網(wǎng)絡(luò)輸出一般是固定尺寸的張量輸出(采用RNN的除外)。例如,在圖片分類中,網(wǎng)絡(luò)輸出是 (C, ) 的張量,C是類別標(biāo)簽數(shù),張量的每個(gè)位置的標(biāo)量值表示圖片是類別的概率值。

在 RPN 中,通過(guò)采用 anchors(錨) 來(lái)解決邊界框列表長(zhǎng)度不定的問(wèn)題,即在原始圖像中統(tǒng)一放置固定大小的參考邊界框。上面說(shuō)到RPN對(duì)特征圖做3x3的卷積,假設(shè)每一次卷積需要預(yù)測(cè) k 個(gè)候選區(qū)域,因此,reg層具有 4k 個(gè)輸出,編碼 k 個(gè)邊界框的坐標(biāo),cls層輸出 2k 個(gè)分?jǐn)?shù),估計(jì)每個(gè)區(qū)域是目標(biāo)或是背景的概率。這 k 個(gè)區(qū)域就是 被 k 個(gè)參考邊界框初始化, k 個(gè)參考框就是 k 個(gè)錨點(diǎn),作為第一次預(yù)測(cè)目標(biāo)位置的參考 boxes。錨點(diǎn)的中心位于卷積核滑動(dòng)窗口的中心。默認(rèn)情況下每個(gè)滑動(dòng)位置使用3個(gè)不同尺度(128 2 , 256 2 , 512 2 )3個(gè)不同長(zhǎng)寬比(1:2, 1:1, 2:1)的錨點(diǎn),k=9。對(duì)于大小為W×H(通常約為2400)的卷積特征圖,總共有 W×H×k 個(gè)錨點(diǎn)。對(duì)于RPN的最后兩個(gè)全連接層,參數(shù)的個(gè)數(shù)為 512×(4+2)×k.

不同于直接檢測(cè)目標(biāo)的位置,這里將問(wèn)題轉(zhuǎn)化為兩部分。對(duì)每一個(gè) anchor 而言:

有一種簡(jiǎn)單的方法來(lái)預(yù)測(cè)目標(biāo)的邊界框,即學(xué)習(xí)相對(duì)于參考邊界框的偏移量。假設(shè)參考 box:( ),待預(yù)測(cè)量:( ),一般都是很小的值,以調(diào)整參考 box 更好的擬合所需要的。

雖然 anchors 是基于卷積特征圖定義的,但最終的 anchos 是相對(duì)于原始圖片的.

由于只有卷積層和 pooling 層,特征圖的維度是與原始圖片的尺寸成比例關(guān)系的. 即,數(shù)學(xué)地表述,如果圖片尺寸 w×h,特征圖的尺寸則是w/r×h/r. 其中,r 是下采樣率(subsampling ratio). 如果在卷積特征圖空間位置定義 anchor,則最終的圖片會(huì)是由 r 像素劃分的 anchors 集。在 VGG 中, r=16。

RPN 利用所有的參考邊界框(anchors),輸出一系列目標(biāo)的良好的 proposals。針對(duì)每個(gè) anchor,都有兩個(gè)不同的輸出:

RPN是全卷積網(wǎng)絡(luò)。

對(duì)于分類層,每個(gè) anchor 輸出兩個(gè)預(yù)測(cè)值:anchor 是背景(background,非object)的 score 和 anchor 是前景(foreground,object) 的 score.

對(duì)于回歸層,也可以叫邊界框調(diào)整層,每個(gè) anchor 輸出 4 個(gè)預(yù)測(cè)值:

(Δxcenter,Δycenter,Δwidth,Δheight),用于 anchors 來(lái)得到最終的 proposals。根據(jù)最終的 proposal 坐標(biāo)和其對(duì)應(yīng)的 objectness score,即可得到良好的 objects proposals.

RPN 有兩種類型的預(yù)測(cè)值輸出:二值分類和邊界框回歸調(diào)整。

為了訓(xùn)練RPN,我們?yōu)槊總€(gè)錨點(diǎn)分配一個(gè)二值類別標(biāo)簽(是目標(biāo)或不是目標(biāo))。我們給兩種錨點(diǎn)分配一個(gè)正標(biāo)簽:(i)具有與實(shí)際邊界框的重疊最高交并比(IoU)的錨點(diǎn),或者(ii)具有與實(shí)際邊界框的重疊超過(guò)0.7 IoU的錨點(diǎn)。注意,單個(gè)真實(shí)邊界框可以為多個(gè)錨點(diǎn)分配正標(biāo)簽。通常第二個(gè)條件足以確定正樣本;但我們?nèi)匀徊捎玫谝粋€(gè)條件,因?yàn)樵谝恍O少數(shù)情況下,第二個(gè)條件可能找不到正樣本。對(duì)于所有的真實(shí)邊界框,如果一個(gè)錨點(diǎn)的IoU比率低于0.3,我們給非正面的錨點(diǎn)分配一個(gè)負(fù)標(biāo)簽。既不正面也不負(fù)面的錨點(diǎn)不會(huì)有助于訓(xùn)練目標(biāo)函數(shù)。

然后,隨機(jī)采樣 anchors 來(lái)生成batchsize=256 的 mini-batch,盡可能的保持 foreground 和 background anchors 的比例平衡。

RPN 對(duì) mini-batch 內(nèi)的所有 anchors 采用二分類交叉熵來(lái)計(jì)算分類 loss。然后,只對(duì) mini-batch 內(nèi)標(biāo)記為 foreground 的 anchros 計(jì)算回歸 loss。為了計(jì)算回歸的目標(biāo)targets,根據(jù) foreground anchor 和其最接近的 groundtruth object,計(jì)算將 anchor 變換到 object groundtruth 的偏移值 Δ。

Faster R-CNN沒(méi)有采用簡(jiǎn)單的 L1 或 L2 loss 用于回歸誤差,而是采用 Smooth L1 loss. Smooth L1 和 L1 基本相同,但是,當(dāng) L1 誤差值非常小時(shí),表示為一個(gè)確定值即認(rèn)為是接近正確的,loss 就會(huì)以更快的速度消失.

由于 Anchors 一般是有重疊,因此,相同目標(biāo)的候選區(qū)域也存在重疊。

為了解決重疊 proposals 問(wèn)題,采用 NMS 算法處理,丟棄與一個(gè) score 更高的 proposal 間 IoU 大于預(yù)設(shè)閾值的 proposals.

雖然 NMS 看起來(lái)比較簡(jiǎn)單,但 IoU 閾值的預(yù)設(shè)需要謹(jǐn)慎處理. 如果 IoU 值太小,可能丟失 objetcs 的一些 proposals;如果 IoU 值過(guò)大,可能會(huì)導(dǎo)致 objects 出現(xiàn)很多 proposals。IoU 典型值為 0.7。

NMS 處理后,根據(jù) sore 對(duì)topN 個(gè) proposals 排序. 在 Faster R-CNN 論文中 N=2000,其值也可以小一點(diǎn),如 50,仍然能的高好的結(jié)果.

當(dāng)獲得了可能的相關(guān)目標(biāo)和其在原始圖像中的對(duì)應(yīng)位置之后,問(wèn)題就更加直接了,采用 CNN 提取的特征和包含相關(guān)目標(biāo)的邊界框,采用 RoI Pooling 處理,并提取相關(guān)目標(biāo)的特征,得到一個(gè)新的向量。

RPN 處理后,可以得到一堆沒(méi)有分類得分的目標(biāo) proposals。待處理問(wèn)題為,如何利用這些邊界框并分類。

一種最簡(jiǎn)單的方法是,對(duì)每個(gè) porposal,裁剪,并送入pre-trained base 網(wǎng)絡(luò),提取特征;然后,將提取特征來(lái)訓(xùn)練分類器. 但這就需要對(duì)所有的 2000 個(gè) proposals 進(jìn)行計(jì)算,效率低,速度慢。Faster R-CNN通過(guò)重用卷積特征圖來(lái)加快計(jì)算效率,即采用 RoI(region of interest) Pooling 對(duì)每個(gè) proposal 提取固定尺寸的特征圖。然后 R-CNN 對(duì)固定尺寸的特征圖分類。

目標(biāo)檢測(cè)中,包括 Faster R-CNN,常用一種更簡(jiǎn)單的方法,即:采用每個(gè) proposal 來(lái)對(duì)卷積特征圖裁剪crop,然后利用插值算法(一般為雙線性插值 bilinear)將每個(gè) crop resize 到固定尺寸14×14×ConvDepth. 裁剪后,利用 2×2 kernel 的 Max Pooling 得到每個(gè) proposal 的最終7×7×ConvDepth 特征圖.

之所以選擇該精確形狀,與其在下面的模塊(R-CNN)中的應(yīng)用有關(guān)。

R-CNN利用RoI Pooling提取的特征進(jìn)行分類,采用全連接層來(lái)輸出每個(gè)可能的 目標(biāo)類別的分類得分,是Faster R-CNN框架中的最后一個(gè)步驟。

R-CNN 有兩個(gè)不同的輸出:

R-CNN 對(duì)每個(gè) proposal 的特征圖,拉平后采用 ReLU 和兩個(gè)大小為 4096 維的全連接層進(jìn)行處理。然后,對(duì)每個(gè)不同目標(biāo)采用兩個(gè)不同的全連接層處理:一個(gè)全連接層有 N+1 個(gè)神經(jīng)單元,其中 N 是類別 class 的總數(shù),包括 background class;一個(gè)全連接層有 4N 個(gè)神經(jīng)單元,是回歸預(yù)測(cè)輸出,得到 N 個(gè)可能的類別分別預(yù)測(cè) Δcenterx,Δcentery,Δwidth,Δheight。

R-CNN 的目標(biāo)基本上是與 RPN 目標(biāo)的計(jì)算是一致的,但需要考慮不同的可能的 object 類別 classes.

根據(jù) proposals 和 ground-truth boxes,計(jì)算其 IoU。與任何一個(gè) ground-truth box 的 IoU 大于 0.5 的 proposals 被設(shè)為正確的 boxes。IoU 在 0.1 到 0.5 之間時(shí)設(shè)為 background。這里忽略沒(méi)有任何交叉的 proposals。這是因?yàn)?,在此階段,假設(shè)已經(jīng)獲得良好的 proposals。當(dāng)然,所有的這些超參數(shù)都是可以用于調(diào)整以更好的擬合 objects。

邊界框回歸的目標(biāo)計(jì)算的是 proposal 與其對(duì)應(yīng)的 ground-truth間的偏移量,只對(duì)基于 IoU 閾值設(shè)定類別后的 proposals 進(jìn)行計(jì)算。隨機(jī)采用一個(gè)平衡化的 mini-batch=64,其中,25% 的 foreground proposals(具有類別class) 和 75% 的background proposals.

類似于 RPNs 的 losses,對(duì)于選定的 proposals,分類 loss 采用 multiclass entropy loss;對(duì)于 25% 的 foreground proposals 采用 SmoothL1 loss 計(jì)算其與 groundtruth box 的匹配。

由于 R-CNN全連接網(wǎng)絡(luò)對(duì)每個(gè)類別僅輸出一個(gè)預(yù)測(cè)值,當(dāng)計(jì)算邊框回歸loss 時(shí)需謹(jǐn)慎,只需考慮正確的類別。

類似于 RPN,R-CNN 最終輸出一堆帶有類別分類的objects,在返回結(jié)果前,再進(jìn)一步進(jìn)行處理。

為了調(diào)整邊界框,需要考慮概率最大的類別的 proposals. 忽略概率最大值為 background class 的proposals.

當(dāng)?shù)玫阶罱K的 objects 時(shí),并忽略被預(yù)測(cè)為 background 的結(jié)果,采用 class-based NMS. 主要是通過(guò)對(duì) objects 根據(jù)類別class 分組,然后根據(jù)概率排序,并對(duì)每個(gè)獨(dú)立的分組采用 NMS 處理,最后再放在一起.

最終得到的 objects 列表,仍可繼續(xù)通過(guò)設(shè)定概率閾值的方式,來(lái)限制每個(gè)類的 objects 數(shù)量.

Faster R-CNN在論文中是采用分步方法,對(duì)每個(gè)模塊分別訓(xùn)練再合并訓(xùn)練的權(quán)重. 自此,End-to-end 的聯(lián)合訓(xùn)練被發(fā)現(xiàn)能夠得到更好的結(jié)果.

當(dāng)將完整的模型合并后,得到 4 個(gè)不同的 losses,2 個(gè)用于 RPN,2 個(gè)用于 R-CNN。4 種不同的 losses 以加權(quán)和的形式組織. 可以根據(jù)需要對(duì)分類 loss 和回歸 loss 設(shè)置權(quán)重,或者對(duì) R-CNN 和 RPNs 設(shè)置不同權(quán)重.

采用 SGD 訓(xùn)練,momentum=0.9. 學(xué)習(xí)率初始值為 0.001,50K 次迭代后衰減為 0.0001. 這是一組常用參數(shù)設(shè)置。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)基礎(chǔ)

在七月初七情人節(jié),牛郎織女相見的一天,我終于學(xué)習(xí)了CNN(來(lái)自CS231n),感覺(jué)感觸良多,所以趕快記下來(lái),別忘了,最后祝大家情人節(jié)快樂(lè)5555555.正題開始!

CNN一共有卷積層(CONV)、ReLU層(ReLU)、池化層(Pooling)、全連接層(FC(Full Connection))下面是各個(gè)層的詳細(xì)解釋。

卷積,尤其是圖像的卷積,需要一個(gè)濾波器,用濾波器對(duì)整個(gè)圖像進(jìn)行遍歷,我們假設(shè)有一個(gè)32*32*3的原始圖像A,濾波器的尺寸為5*5*3,用w表示,濾波器中的數(shù)據(jù)就是CNN的參數(shù)的一部分,那么在使用濾波器w對(duì)A進(jìn)行濾波的話,可以用下面的式子表示:

其中x為原始圖像的5*5*3的一部分,b是偏置項(xiàng)置為1。在對(duì)A進(jìn)行濾波之后,產(chǎn)生的是一個(gè)28*28*1的數(shù)據(jù)。那么假設(shè)我們存在6個(gè)濾波器,這六個(gè)濾波器之間彼此是獨(dú)立的,也就是他們內(nèi)部的數(shù)據(jù)是不同的且沒(méi)有相關(guān)性的??梢岳斫鉃橐粋€(gè)濾波器查找整幅圖像的垂直邊緣,一個(gè)查找水平邊緣,一個(gè)查找紅色,一個(gè)查找黑色這樣。那么我就可以產(chǎn)生6個(gè)28*28*1的數(shù)據(jù),將它們組合到一起就可以產(chǎn)生28*28*6的數(shù)據(jù),這就是卷積層主要做的工作。

CNN可以看作一系列的卷積層和ReLU層對(duì)原始數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理的神經(jīng)網(wǎng)絡(luò),處理的過(guò)程可以用下面這幅圖表示

特別要注意的是濾波器的深度一定要與上一層傳來(lái)的數(shù)據(jù)的深度相同,就像上圖的第二個(gè)卷積層在處理傳來(lái)的28*28*6的數(shù)據(jù)時(shí)要使用5*5*6的濾波器.

濾波器在圖像上不斷移動(dòng)對(duì)圖像濾波,自然存在步長(zhǎng)的問(wèn)題,在上面我們舉的例子都是步長(zhǎng)為1的情況,如果步長(zhǎng)為3的話,32*32*3的圖像經(jīng)過(guò)5*5*3的濾波器卷積得到的大小是(32-5)/3+1=10, 注:步長(zhǎng)不能為2因?yàn)椋?2-5)/2+1=14.5是小數(shù)。

所以當(dāng)圖像大小是N,濾波器尺寸為F時(shí),步長(zhǎng)S,那么卷積后大小為(N-F)/S+1

我們從上面的圖中可以看到圖像的長(zhǎng)和寬在逐漸的減小,在經(jīng)過(guò)超過(guò)5層之后極可能只剩下1*1的空間尺度,這樣是十分不好的,而且也不利于我們接下來(lái)的計(jì)算,所以我們想讓卷積層處理完之后圖像在空間尺度上大小不變,所以我們引入了pad the border的操作。pad其實(shí)就是在圖像周圍補(bǔ)0,擴(kuò)大圖像的尺寸,使得卷積后圖像大小不變。在CNN中,主要存在4個(gè)超參數(shù),濾波器個(gè)數(shù)K,濾波器大小F,pad大小P和步長(zhǎng)S,其中P是整數(shù),當(dāng)P=1時(shí),對(duì)原始數(shù)據(jù)的操作如圖所示:

那么在pad操作后卷積后的圖像大小為:(N-F+2*P)/S+1

而要想讓卷積層處理后圖像空間尺度不變,P的值可以設(shè)為P=(F-1)/2

卷積層輸入W 1 *H 1 *D 1 大小的數(shù)據(jù),輸出W 2 *H 2 *D 2 的數(shù)據(jù),此時(shí)的卷積層共有4個(gè)超參數(shù):

K:濾波器個(gè)數(shù)

P:pad屬性值

S:濾波器每次移動(dòng)的步長(zhǎng)

F:濾波器尺寸

此時(shí)輸出的大小可以用輸入和超參計(jì)算得到:

W 2 =(W 1 -F+2P)/S+1

H 2 =(H 1 -F+2P)/S+1

D 2 =D 1

1*1的濾波器也是有意義的,它在深度方向做卷積,例如1*1*64的濾波器對(duì)56*56*64的數(shù)據(jù)卷積得到56*56的數(shù)據(jù)

F通常是奇數(shù),這樣可以綜合考慮上下左右四個(gè)方向的數(shù)據(jù)。

卷積層從神經(jīng)元的角度看待可以有兩個(gè)性質(zhì): 參數(shù)共享和局域連接 。對(duì)待一個(gè)濾波器,例如5*5*3的一個(gè)濾波器,對(duì)32*32*3的數(shù)據(jù)卷積得到28*28的數(shù)據(jù),可以看作存在28*28個(gè)神經(jīng)元,每個(gè)對(duì)原圖像5*5*3的區(qū)域進(jìn)行計(jì)算,這28*28個(gè)神經(jīng)元由于使用同一個(gè)濾波器,所以參數(shù)相同,我們稱這一特性為 參數(shù)共享 。

針對(duì)不同的濾波器,我們可以看到他們會(huì)看到同一區(qū)域的圖像,相當(dāng)于在深度方向存在多個(gè)神經(jīng)元,他們看著相同區(qū)域叫做 局域連接

參數(shù)共享減少了參數(shù)的數(shù)量,防止了過(guò)擬合

局域連接為查找不同特征更豐富的表現(xiàn)圖像提供了可能。

卷積就像是對(duì)原圖像的另一種表達(dá)。

激活函數(shù),對(duì)于每一個(gè)維度經(jīng)過(guò)ReLU函數(shù)輸出即可。不改變數(shù)據(jù)的空間尺度。

通過(guò)pad操作,輸出圖像在控件上并沒(méi)有變化,但是深度發(fā)生了變化,越來(lái)越龐大的數(shù)據(jù)給計(jì)算帶來(lái)了困難,也出現(xiàn)了冗余的特征,所以需要進(jìn)行池化操作,池化不改變深度,只改變長(zhǎng)寬,主要有最大值和均值兩種方法,一般的池化濾波器大小F為2步長(zhǎng)為2,對(duì)于最大值池化可以用下面的圖像清晰的表示:

卷積層輸入W 1 *H 1 *D 1 大小的數(shù)據(jù),輸出W 2 *H 2 *D 2 的數(shù)據(jù),此時(shí)的卷積層共有2個(gè)超參數(shù):

S:濾波器每次移動(dòng)的步長(zhǎng)

F:濾波器尺寸

此時(shí)輸出的大小可以用輸入和超參計(jì)算得到:

W 2 =(W 1 -F)/S+1

H 2 =(H 1 -F)/S+1

D 2 =D 1

將最后一層(CONV、ReLU或Pool)處理后的數(shù)據(jù)輸入全連接層,對(duì)于W 2 *H 2 *D 2 數(shù)據(jù),我們將其展成1*1*W 2 *H 2 *D 2 大小的數(shù)據(jù),輸入層共有W 2 *H 2 *D 2 個(gè)神經(jīng)元,最后根據(jù)問(wèn)題確定輸出層的規(guī)模,輸出層可以用softmax表示。也就是說(shuō),全連接層就是一個(gè)常見的BP神經(jīng)網(wǎng)絡(luò)。而這個(gè)網(wǎng)絡(luò)也是參數(shù)最多的部分,是接下來(lái)想要去掉的部分。完整的神經(jīng)網(wǎng)絡(luò)可以用下面的圖表示:

[(CONV-ReLU)*N-POOL?]*M-(FC-RELU)*K,SoftMax

1.更小的濾波器與更深的網(wǎng)絡(luò)

2.只有CONV層而去掉池化與全鏈接

最早的CNN,用于識(shí)別郵編,結(jié)構(gòu)為:

CONV-POOL-CONV-POOL-CONV-FC

濾波器大小5*5,步長(zhǎng)為1,池化層2*2,步長(zhǎng)為2

2012年由于GPU技術(shù)所限,原始AlexNet為兩個(gè)GPU分開計(jì)算,這里介紹合起來(lái)的結(jié)構(gòu)。

輸入圖像為227*227*3

1.首次使用ReLU

2.使用Norm layers,現(xiàn)在已經(jīng)拋棄,因?yàn)樾Ч淮?/p>

3.數(shù)據(jù)經(jīng)過(guò)預(yù)處理(例如大小變化,顏色變化等)

4.失活比率0.5

5.batch size 128

6.SGD Momentum 參數(shù)0.9(SGD和Momentum見我的其他文章)

7.學(xué)習(xí)速率 0.01,準(zhǔn)確率不在提升時(shí)減少10倍,1-2次后達(dá)到收斂

8.L2權(quán)重減少0.0005

9.錯(cuò)誤率15.4%

改進(jìn)自AlexNet,主要改變:

1.CONV1的濾波器從11*11步長(zhǎng)S=4改為7*7步長(zhǎng)為2.

2.CONV3,4,5濾波器數(shù)量有384,384,256改為512,1024,512(濾波器數(shù)量為2的n次冪有利于計(jì)算機(jī)計(jì)算可以提高效率)

錯(cuò)誤率:14.8%后繼續(xù)改進(jìn)至11.2%

當(dāng)前最好的最易用的CNN網(wǎng)絡(luò),所有卷積層濾波器的大小均為3*3,步長(zhǎng)為1,pad=1,池化層為2*2的最大值池化,S=2。

主要參數(shù)來(lái)自全連接層,這也是想要去掉FC的原因。

具有高度的統(tǒng)一性和線性的組合,易于理解,十分方便有VGG-16,VGG-19等多種結(jié)構(gòu)。

錯(cuò)誤率7.3%

完全移除FC層,參數(shù)只有500萬(wàn),使用Inception模塊(不太理解,有時(shí)間繼續(xù)看)

準(zhǔn)確率6.67%

準(zhǔn)確率3.6%

擁有極深的網(wǎng)絡(luò)結(jié)構(gòu),且越深準(zhǔn)確率越高。是傳統(tǒng)CNN不具備的特點(diǎn),傳統(tǒng)CNN并非越深越準(zhǔn)確。需要訓(xùn)練時(shí)間較長(zhǎng)但是快于VGG

1.每個(gè)卷積層使用Batch Normalization

2.Xavier/2初始化

3.SGD+Momentum(0.9)

4.Learning rate:0.1,準(zhǔn)確率不變減小10倍(因?yàn)锽atch Normalization所以比AlexNet大)

5.mini-batch size 256

6.Weight decay of 0.00001

7.不適用失活(因?yàn)锽atch Normalization)

具體的梯度過(guò)程學(xué)完ResNet再說(shuō)吧。

淺嘗ncnn優(yōu)化&&vulkan api的應(yīng)用

1. [c,h,w] 這種布局不太適合在GPU上做IO:[c, h, w] --- [c/4, h, w, 4]

網(wǎng)站名稱:包含F(xiàn)lutterNcnn的詞條
轉(zhuǎn)載源于:http://aaarwkj.com/article24/dssgjce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制網(wǎng)站、微信公眾號(hào)、手機(jī)網(wǎng)站建設(shè)、定制開發(fā)、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
91久久一区二区秋霞免费| 日本黄色高清视频一区| 国产精品视频不卡免费看| 懂色av中文一区二区| 刚出嫁新婚少妇很紧很爽| 成人中文字幕av电影| 日韩亚洲人成网站在线播放| 91久久精品人妻一区二区| 人妻少妇被猛烈进入中出视频| 久久国产精品一品二品| 国产视频传媒一区二区| 日韩视频精品推荐一区二区| 小黄片免费在线播放观看| 欧美日韩加勒比综合在线| 97精品久久九九中文字幕| 国产自拍在线视频精品| 亚洲一级香蕉视频东京热| 小明久久国内精品自线| 日韩精品在线观看天堂| 天堂免费av在线播放| 在线观看后入大屁股| 国产无套内射三级视频| 欧美日本国产老熟女视频| 欧美成人精品欧美一级黄片| 福利av一区二区三区| 日韩高清午夜片在线观看| 亚洲综合日韩欧美一区二区三区| 男女视频一区二区三区在线观看 | 日日摸夜夜添添出白浆| 亚洲av天堂在线播放| 亚洲麻豆精品午夜免费| 麻豆亚洲av熟女国产| 先锋影音女同中文字幕| 中文字幕日韩人妻av| 日本熟妇中文字幕三级久久| av一级免费在线观看| 加勒比中文字幕日本道| 亚洲国产日韩一区二区在线| 国内精品久久大型新型| 亚洲综合av一区二区三区四区| av成人综合在线资源站|