PaperNotes(3)-圖像分割-RCNN-FCN-Boxsup

圖像分割算法對比小結

  • 1.{基本概念}
  • 2.{R-CNN}
    • 2.1R-CNN 網絡結構
      • 選擇性搜索算法
      • 為什么選擇SVM作分類器
      • 邊框回歸
    • 2.2{R-CNN 訓練}
    • 2.3{R-CNN實驗結果}
    • 2.4{R-CNN語義分割}
    • 2.5{補充材料}
      • 2.5.1{R-CNN建議區域放縮}
      • 2.5.2{IOU閾值設置不一樣的原因}
      • 2.5.3{Bounding-box回歸修正}
    • 2.6{R-CNN存在的問題}
  • 3.{R-CNN變體}
    • 3.1{Fast-RCNN}
      • 3.1.1{Fast-RCNN的兩點改進}
      • 3.1.2{Fast-RCNN實驗結果}
    • 3.2{Faster-RCNN}
      • 3.2.1{Faster-RCNN的核心改進}
  • 4.{FCN-全卷積神經網絡}
    • 4.1{FCN網絡結構}
    • 4.2{FCN存在的問題}
  • 5.{FCN的改進模型}
    • 5.1{U-Net}
      • 5.1.1{U-Net結構}
      • 5.1.2{u-net兩點改進}
    • 5.2{segNet}
      • 5.2.1{segNet結構}
      • 5.2.2{segNet兩點改進}
  • 6.{Mask-RCNN}
    • 6.1{Mask-RCNN的結構}
    • 6.2{Mask-RCNN的兩點改進}
    • 6.3{Mask-RCNN的實驗效果}
  • 7.{弱監督語義分割}
    • 7.1{BoxSup}
      • 7.1.1{BoxSup的訓練流程}

本文總結了從2014年R-CNN 第一次提出之后,將 深度學習 方法應用到圖像分割領域的一些經典算法,在每個小節中,附上 文章疑難點 的參考資料。

在講具體的方法之前,先來看一下以下相關概念。

1.{基本概念}

1.object detection-目標檢測,檢測圖片是否帶有感興趣的目標,通常用方框框出來
2.semantic segmentation-語義分割,將圖片中目標按不同的語義,以邊緣為界分隔
3.instance segmentation-實例分割,將圖片中相同語義區域內的不同實例分割開

在這里插入圖片描述
4.IOU-ntersection-over-union
目標檢測需要定位出物體的bounding box,IOU用于描述bounding box的定位精度:
IOU=SA∩BSA+SB?SA∩BIOU=\frac{S_{A\cap B}}{S_A+S_B-S_{A\cap B}}IOU=SA?+SB??SAB?SAB??

在這里插入圖片描述
5.mAP:是指每個類別的平均正確率的算術平均值.
詳細參考博文:
https://blog.csdn.net/anaijiabao/article/details/101495088
https://blog.csdn.net/a417197457/article/details/80224886


第一類方法:基于建議區域的方法。
第一篇是2014年的r-cnn,區域建議的卷積神經網絡用于目標檢測語義分割。

2.{R-CNN}

[1]R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic
segmentation. In Computer Vision and Pattern Recognition,
2014.

論文翻譯:
R-CNN論文詳解(論文翻譯):https://blog.csdn.net/v1_vivian/article/details/78599229
【論文翻譯】Mask R-CNN:https://blog.csdn.net/xiaqunfeng123/article/details/78716136

在R-CNN之前,overfeat(2013,ImageNet定位任務的冠軍)已經使用深度學習的方法做目標檢測,但R-CNN是第一個真正可以工業級應用的解決方案。

文章的兩個貢獻:
(1)apply high-capacity CNNs to bottom-up region proposals in order to localize and segment objects.
(2)when labeled training data is scarce, supervised pre-training for an auxiliary task,followed by domain-specific fine-tuning, yields a significant
performance boost.

2.1R-CNN 網絡結構

在這里插入圖片描述
Object detection with R-CNN:
(1)selective search[39](選擇性搜索)產生2000個建議區域.

(2)建議區域放縮成277*277,利用Alexnet[25](caffe),對每個放縮后的建議區域提取4096維度的特征.

(3)對特征向量使用每個類別的SVM進行打分,14096-4096(n+1) [n種前景對象+1個背景對象] 將建議區域分到分類得分最高的類別,SVM的得分是里分類面的距離越遠越好【每個類別的SVM分類器是提前訓練好】

(4)針對每個類別的建議區域,采用非極大值抑制算法去除多余的建議區域。【將與置信度最高的區域IOU值>0.5的區域都去除。】

選擇性搜索算法

1)使用一種過分割手段,將圖像分割成小區域 (2k~3k 個)
查看現有小區域,
2)按照合并規則最應該合并的相鄰兩個區域(顏色太相似了)。重復合并操作,直到合并的結果是整張圖

3)在曾經存在過的區域中選2000個區域,即為選擇性搜索產生的建議區域。

selective search 合并規則:顏色相近(顏色直方圖);紋理相近(梯度直方圖);合并后總面積小的;合并后總面積在其BBOX中所占比例大的(保證合并后形狀規則)

多樣化與后處理
顏色想盡規則的補充:
為盡可能不遺漏候選區域,上述操作在多個顏色空間中同時進行(RGB,HSV,Lab等)。在一個顏色空間中,使用上述四條規則的不同組合進行合并。所有顏色空間與所有規則的全部結果,在去除重復后,都作為候選區域輸出。

為什么選擇SVM作分類器

svm訓練和cnn訓練過程的正負樣本定義方式不同,softmax得到的結果比svm精度低。

邊框回歸

學習一個線性回歸器,用于bounding box的邊框回歸,輸入為Alexnet pool5的輸出。
回歸的目標是:從 SVM給出的邊框 -》真值邊框 的x,y方向的平移量Δx,Δy\Delta x,\Delta yΔx,Δy,縮放尺度:Sx,SyS_x,S_ySx?,Sy?

2.2{R-CNN 訓練}

(1)有監督的預訓練-AlexNet網絡參數粗調整:
ILSVRC2012分類數據集(沒有bounding box)上預訓練CNN,采用Caffe的CNN庫。

(2)特定領域的參數調優-AlexNet網絡參數細調整:
結構:隨機初始化的(N+1)類的分類層,替換掉ImageNet的1000類的分類層\
輸入:變形后的bounding box圖像
數據集:VOC2012-train
超參數:SGD,lr=0.001為預訓練時的110\frac{1}{10}101?,避免破壞預訓練模型,正樣本IOU>=0.5(ground-truth box),mini-batch-size=128(正:負=32:96)

(3)取alexnet輸出的特征,為每個物體類訓練一個SVM分類器.
數據集:VOC2012-trainval
輸入:2000[建議區域]*4096[提取的特征]
SVM權重矩陣:4096[每一個區域的特征]*N[類別數]
正樣本:ground-truth box,負樣本IOU<0.5,其余全部丟棄.

2.3{R-CNN實驗結果}

在這里插入圖片描述
mAP比當時最好的方法提高了30%左右.

2.4{R-CNN語義分割}

用alexnet對CPMS區域提取特征,進行分類.
CPMS區域的三種處理方式:
(1)和前面的目標檢測一樣,直接形變矩形區域
(2)取矩形區域的mask,計算特征
(3)簡單串聯(1)(2)兩個的特征
文章沒有給出語義分割的效果圖,只有在voc2011上的平均正確率,感覺最后也只是切割出了矩形框.

2.5{補充材料}

2.5.1{R-CNN建議區域放縮}

由selective search[39]產生2000個建議區域都是矩形的,但大小不一.附錄A中作者展示了三種放縮方案,最終通過實驗性能選擇了{padding+各向異性} 放縮方法.
在這里插入圖片描述
(A)bounding box圖像
(B)把bounding box的邊界對周圍圖像內容擴展延伸成227*227正方形;如果已經延伸到了原始圖片的外邊界,那么就用bounding box中的顏色均值填充;
?用固定的背景顏色填充成正方形圖片(背景顏色也是采用bounding box的像素顏色均值)
(D)不管圖片的長寬比例,直接進行放縮,不管它是否扭曲

在放縮前,先將bounding box向周圍圖像內容padding.上圖第1、3行padding=0,第2、4行padding=16.

2.5.2{IOU閾值設置不一樣的原因}

fine-tunning階段是由于CNN對小樣本容易過擬合,需要大量訓練數據,故對IoU限制寬松: IoU>0.5的建議框為正樣本,否則為負樣本
SVM這種機制是由于其適用于小樣本訓練,故對樣本IoU限制嚴格:Ground Truth為正樣本,與Ground Truth相交IoU<0.3的建議框為負樣本.

文章解釋見附錄B

2.5.3{Bounding-box回歸修正}

訓練了一個線性回歸模型,給定一個選推薦區域的pool5特征,去回歸一個新的檢測窗口.(附錄C)
mAP:50.2%->53.7%

2.6{R-CNN存在的問題}

(1)產生的proposal region需要經過warp操作再送入后續網絡,導致圖像的變形和扭曲.\
(2)每一個proposal region都需要進入CNN網絡計算,兩千個region存在大量的范圍重疊,重復的特征提取帶來巨大的計算浪費。

3.{R-CNN變體}

3.1{Fast-RCNN}

[2]R. Girshick, “Fast R-CNN,” in IEEE International Conference on
Computer Vision (ICCV), 2015.

論文翻譯:https://blog.csdn.net/u014119694/article/details/88421618

在這里插入圖片描述

Fast-RCNN算法流程:

  1. selective search(選擇性搜索)產生2000個建議區域

  2. 整張圖片輸進CNN,得到feature map

  3. 找到每個建議區域在feature map上的映射區域(具體怎么實現的沒細看),將這些區域輸入ROI pooling層和之后網絡.

  4. 對候選框中提取出的特征,使用分類器判別是否屬于一個特定類 ; 對于屬于某一特征的候選框,用回歸器進一步調整其位置。

3.1.1{Fast-RCNN的兩點改進}

{改進1:}全圖輸入CNN生成一張feature map ,避免重復特征提取

{改進2:}feature map 上大小不一的建議區域,直接輸入RoI池化中,不經過放縮形變操作.
在這里插入圖片描述
RoI pooling:建議區域大小為wh,池化后的目標尺寸為WH,將wh的區域劃分為WH個網格,每個格子的尺寸為[w/W,h/H],對每個[w/W,h/H]格子進行最大/平均池化操作,以達到不同大小的建議區域,經過RoI pooling 之后得到相同大小的特征層.

參考博文:ROI Pooling(感興趣區域池化)
https://blog.csdn.net/H_hei/article/details/89791176

3.1.2{Fast-RCNN實驗結果}

在這里插入圖片描述
(注:S,M,L為三種不同的訓練模型)
Fast-RCNN 比 R-CNN訓練快了大概10倍,測試大概快了100倍左右.

3.2{Faster-RCNN}

[3]Ren S , He K , Girshick R , et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 39(6):1137-1149

Faster-RCNN(2015)算法流程:
(1)輸入圖像到卷積網絡中,生成該圖像的feature map。
(2)將feature map傳入Region Proposal Network,返回object proposals
(3)將object proposals 傳入 ROI pooling層和之后網絡
(4)(后續部分與R-CNN相同)
在這里插入圖片描述

3.2.1{Faster-RCNN的核心改進}

利用Region Proposal Network,優化object proposals的方法.
在這里插入圖片描述


第二類方法是基于圖像逐像素分類的方法,先來看看2015年的第一篇文章,全卷機網絡用于語義分割。

4.{FCN-全卷積神經網絡}

[5]J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” in CVPR, pp. 3431–3440, 2015.
(201503 arXiv)

論文翻譯:https://blog.csdn.net/mmmmsunshine/article/details/78921265

FCN開創性地利用圖像逐像素分類,解決了語義級別的圖像分割(semantic segmentation)問題。與經典的CNN在卷積層之后使用全連接層得到固定長度的特征向量進行分類(全連接層+softmax輸出)不同,FCN可以接受任意尺寸的輸入圖像,采用反卷積層對最后一個卷積層的feature map進行上采樣, 使它恢復到輸入圖像相同的尺寸,在最后上的采樣的特征圖上進行逐像素分類。

4.1{FCN網絡結構}

{1.卷積化:}將CNN分類器最后的全連接層換成卷積層,使得網絡可以接受任意尺寸的輸入,經過全卷積處理之后得到圖像的heatmap.
在這里插入圖片描述

2.上采樣:}將heatmap進行上采樣處理之后,得到N+1張與原圖同樣大小的特征圖.
在這里插入圖片描述

3.跳躍結構(Skip Layer):}直接將heatmap上采樣到原圖大小,丟失了分割細節.所以作者將heatmap2倍上采樣之后,與次層特征相加,再做上采樣的以捕捉更多的細節信息.
在這里插入圖片描述
在這里插入圖片描述
作者對AlexNet,VGG,GoogleLeNet做了網絡結構的對比實驗,發現VGG的效果最好:
在這里插入圖片描述

網絡超參數設置:
(1)minibatch:20張圖片
(2)learning rate:0.001
(3)初始化:分類網絡之外的卷積層參數初始化為0
(4)反卷積參數初始化為bilinear插值。最后一層反卷積固定位bilinear插值

4.2{FCN存在的問題}

1.分割的結果不夠精細。圖像過于模糊或平滑,沒有分割出目標圖像的細節。

2.因為模型是基于CNN改進而來,即便是用卷積替換了全連接,但是依然是獨立像素進行分類,沒有充分考慮像素與像素之間的關系。

與當時最先進方法的對比實驗(對比R-CNN mean I0U 提高了10%)
在這里插入圖片描述

在FCN 提出的同年內,隨即出現了兩個比較不錯的改進工作,一個是5月份提出的U-net模型,另一個是11月份提出的segnet模型。

5.{FCN的改進模型}

5.1{U-Net}

[7]Ronneberger O , Fischer P , Brox T . U-Net: Convolutional Networks for Biomedical Image Segmentation[J]. 2015.
(201505 arXiv)

生物學會議ICMICCAI 2015相關的文章,主要是針對生物學影像進行分割。該文考慮到醫學影像往往比較少,而深度學習通常需要大量的圖像。因此作者使用數據增強提高數據的利用效率;并基于FCN提出U型網絡模型,最終在三個生物學數據集上達到了當時最好的性能。

U-Net 因其網絡的實用性,小數據學習能力,現在已經成功地被應用到其他領域,例如 衛星圖像分割,同時也成為許多模型的改進基礎。

5.1.1{U-Net結構}

在這里插入圖片描述

5.1.2{u-net兩點改進}

改進1:}結構上編碼網絡與解碼網絡對稱構成U形結構,編碼器用的是典型的CNN,解碼時上采樣,卷積處理得到特征圖與對應的編碼層特征圖拼接,卷積處理后輸入后續的解碼層.拼接的過程中,需要將編碼層特征圖進行剪裁處理.

改進2:} 增加損失函數對分割邊界像素的懲罰系數:
E=∑x∈Ωw(x)log(pl(x)(x))E=\sum_{x\in \Omega}w(x)log(p_{l(x)}(x))E=xΩ?w(x)log(pl(x)?(x))

w(x)=wc(x)+w0?exp(?d1(x)+d2(x)2σ2)w(x)=w_c(x)+w_0*exp(-\frac{d_1(x)+d_2(x)}{2\sigma^2})w(x)=wc?(x)+w0??exp(?2σ2d1?(x)+d2?(x)?)
xxx:圖像像素點,l(x):x的真是類別

{u-net實驗效果圖}
在這里插入圖片描述

5.2{segNet}

[6] Badrinarayanan V , Kendall A , Cipolla R . SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation[J]. 2015.
(201511 arXiv,TPAMI 2015收錄)

論文翻譯:https://blog.csdn.net/u014451076/article/details/70741629

segnet是專門為道路場景圖像語義分割設計的一個網絡,作者認為在自動駕駛,場景分析這類實時性要求很高的場景中,模型方法推斷過程中內存和計算的效率要十分高效才行.

5.2.1{segNet結構}

在這里插入圖片描述

5.2.2{segNet兩點改進}

改進1:}去除了VGG16中的全鏈接層,只留下卷積層.以便減小網絡可學習參數,加速end-to-end訓練過程.
在這里插入圖片描述

改進2:}在解碼網絡中,segNet改進了FCN的上采樣去卷積的方式,segNet網絡中的解碼層,先上采樣,再進行卷積操作.上采樣過程中接受對應編碼層傳遞過來的max-pooling indices,將特征填入對應的位置.
在這里插入圖片描述

作者認為如果反卷積過程中利用了對應卷積層的信息,且這個信息越多,對最后的逐像素分類的效果會越好.FCN用了2-3層的卷積層信息(這個在推斷階段的存儲代價已經很大了),為了利用更多的信息,又不造成內存壓力,segnet 利用了每一卷積層中max -pooling indices.
在這里插入圖片描述
(CamVid road scenes 數據集)

文章貢獻:}
(1)提高了邊界劃分的精度;
(2)減少了可訓練參數數量,實現端到端訓練;
(3)文中upsampling的形式可以方便地合并到其他模型中[FCN].


接下來看一下第一類和第二類方法的一個結合體:mask-R-cnn
Mask-R-CNN 是何凱明2017年提出的一篇文章,是ICCV2017最佳論文。

6.{Mask-RCNN}

[4] He K , Gkioxari G , Dollar P , et al. Mask R-CNN[C]// 2017 IEEE International Conference on Computer Vision (ICCV). IEEE Computer Society, 2017.

論文翻譯:https://blog.csdn.net/xiaqunfeng123/article/details/78716136

Mask R-CNN是ICCV 2017的best paper , Mske R-CNN在Faster R-CNN 架構上添加了一個全卷積網絡分支,用于預測每個建議區域的mask,使得整個模型可以集目標檢測,目標分類,語義分割三大任務于一體.

6.1{Mask-RCNN的結構}

在這里插入圖片描述

6.2{Mask-RCNN的兩點改進}

改進1:RoI Pooling->RoI Align}\
在RPN給出特征圖的建議區域之后,將大小不一的建議區域傳給RoI Align層進行處理,相比于Faster R-CNN 中的RoI Pooling , RoI Align對建議區域的采用雙線性插值計算輸入特征的準確值,使AP提高了3%.
在這里插入圖片描述

改進2:mask分支}\
經過RoI Align處理后的特征圖分兩路輸入后續的網絡:
一路去往和Faster R-CNN 一樣的分支(bounding box 的回歸與分類);
一路去往Mask分支,產生K個m?mm*mm?m二值的mask.
在這里插入圖片描述
全卷積網絡接受feature map產生N個mask圖,接受一個來自分類分支的類別標簽,選擇對應類的maks輸出.

訓練過程:一個真實標簽為k的RoI,對應mask 損失LmaskL_{mask}Lmask?只由第k個mask 產生,其余mask不起作用.作者認為為每一類別產生mask避免了與其他類別產生競爭現象,使得他的模型比FCN的性能提升了5.5%的AP.

6.3{Mask-RCNN的實驗效果}

任務:實例分割
數據集:coco,80k訓練集,35k測試集,5k驗證集
在這里插入圖片描述
注 : MNC 2015冠軍 , FCIS 2016冠軍.\

通過實驗作者表明Mask rcnn 能更好解決實例分割中的難題:實例重疊場景下的分割.
在這里插入圖片描述


語義分割中大多數方法都依賴于大量帶有像素級標注的圖像,然而,手工標注相當費時費力。因此,一些弱監督方法被提出。就個人而言,我一直覺得半監督的方法不太靠譜。下面就介紹一個吧,是2015ICCV 的一個方法。

7.{弱監督語義分割}

7.1{BoxSup}

[8]Dai J , He K , Sun J . BoxSup: Exploiting Bounding Boxes to Supervise Convolutional Networks for Semantic Segmentation[J]. 2015.

參考博文:論文閱讀筆記 | (ICCV 2015) BoxSup
https://blog.csdn.net/qq_16525279/article/details/79812057

7.1.1{BoxSup的訓練流程}

在這里插入圖片描述

(1)對圖片的bounding box ground-truth使用,Multiscale Combinatorial Grouping (MCG)生成分割mask的候選,并優化label選一個與bounding box平均交集最大的mask作為監督信息。

(2)利用上述標簽信息更新分割網絡(FCN)的參數

(3)基于訓練出的語義分割網絡對物體框中的前景區域進行預測,提升前景mask 的準確度,再循環訓練FCN.

BoxSup的核心思想就是通過這種迭代過程不斷提升網絡的語義分割能力。

BoxSup 實驗結果}
在這里插入圖片描述

參考資料:
https://perper.site/2019/02/11/RCNN%E8%AF%A6%E8%A7%A3/?nsukey=OzE2MLcBB2GYybpl4cS%2BPGz6N9r7FRNQ02hQVzYylRq3Z1oF9nPap1k0yfBVdjTHXR8tXFih88F6WoVIegQ8uuHEjEQ7%2F1MNLmO23AVmQae5uPFs9su9Xi11UmIUFJRUpfF945J0bnucf6QVcqeuoyqy1dANjcWPRjv1Te4Mdsb5Itfu1H4%2FjsTHwlULqrUCYAeRrpKTau%2Bx%2FTbjfZ5L7w%3D%3D

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python模塊(3)--PIL 簡易使用教程

PIL模塊-用與記1.圖片導入Image.open()2.圖像顯示.show()4.查看圖片屬性.format,.size,.mode3.圖像格式轉換.convert()4.圖像模式“L”&#xff0c;“RGB”,"CYMK"5. 圖片旋轉.rotate()旋轉方式1&#xff1a;旋轉不擴展旋轉方式2&#xff1a;旋轉擴展旋轉方式3&#…

日志級別 debug info warn eirror fatal

日志級別 debug info warn eirror fatal 軟件中總免不了要使用諸如 Log4net, Log4j, Tracer 等東東來寫日志&#xff0c;不管用什么&#xff0c;這些東東大多是大同小異的&#xff0c;一般都提供了這樣5個日志級別&#xff1a; Debug Info Warn Error Fatal一個等級比一個高&…

輸入輸出系統

I/O設備&#xff1a;輸入輸出和存儲功能的設備 I/O設備的分類 按傳輸的速度&#xff1a; 低速設備&#xff08;如鍵盤、鼠標、語音輸入輸出設備&#xff09; 中速設備&#xff08;如行式打印機、激光打印機等&#xff09; 高速設備&#xff08;如磁帶機、磁盤機、光盤機等&…

vue2源碼解析---v-model雙向數據綁定

什么是v-model v-model 是 Vue 中的一個指令&#xff0c;用于實現表單元素與 Vue 實例中數據的雙向綁定。這意味著當表單元素的值發生變化時&#xff0c;Vue 實例中的數據也會隨之更新 工作原理 生成ast樹 本質上是語法糖 結合了v-bind和v-on兩個指令 示例代碼 new Vue({e…

php收集的精典代碼

1. οncοntextmenu"window.event.return&#xff06;#118aluefalse" 將徹底屏蔽鼠標右鍵 <table border οncοntextmenureturn(false)><td>no</table> 可用于Table 2. <body onselectstart"return false"> 取消選取、防止復制…

python外卷(7)--glob

glob模塊1.glob.glob()2.對比os.listdir()glob是python自帶的一個操作文件的模塊&#xff0c;可用于查找 指定路徑 中 匹配的 文件。1.glob.glob() 下面是一個測試文件路徑&#xff1a; (base) pppp-System-Product-Name:~/Desktop/test_glob$ tree . ├── a │ ├── 1…

Sublime Text 2配置強大的IDE開發環境,運行java

Sublime Text 2是我無意中發現的、據說十分強大的、便捷的編輯器&#xff0c;許多程序員都投入到Sublime Text 2的懷抱中。 1 配置java開發環境的方法如下&#xff1a; 在jdk安裝目錄下的bin文件夾下新建一個bat格式的文件&#xff0c;文件命為javacexec.bat。 如果是在Wind…

thinkphp的快捷方法實例化對象

D、F、S、C、L、A、I 他們都在functions.php這個文件家 下面我分別說明一下他們的功能 D&#xff08;&#xff09; 加載Model類 M&#xff08;&#xff09; 加載Model類 A&#xff08;&#xff09; 加載Action類 L&#xff08;&#xff09; 獲取語言定義 C&#xff08;&#xf…

Python外卷(8)--pdist, squareform

pdist, squareform1.pdist, squareform使用例子2.通過矩陣的四則運算實現上述pdist, squareformscipy.spatial.distance 距離計算庫中有兩個函數&#xff1a;pdist, squareform&#xff0c;用于計算樣本對之間的歐式距離&#xff0c;并且將樣本間距離用方陣表示出來。&#xff…

模擬進程調度

功能 data.h #ifndef _Data_h_ #define _Data_h_#include <stdio.h> #include <stdlib.h> #include <string.h>#define ElemType PCB #define Status int #define OK 1 #define ERROR 0 #define TimeSlice 1 #define Infinity 10 //INT_MAX#define NAME_M…

gdb調試多進程和多線程命令

1. 默認設置下&#xff0c;在調試多進程程序時GDB只會調試主進程。但是GDB&#xff08;>V7.0&#xff09;支持多進程的 分別以及同時 調試&#xff0c;換句話說&#xff0c;GDB可以同時調試多個程序。只需要設置follow-fork-mode(默認值&#xff1a;parent)和detach-on-fork…

python外卷(10)--取整

"取整"那些事1.python 內置函數1.1int()--向下取整1.2round()--四舍五入2.math模塊取整函數2.1 math.floor()--向下取整2.2 math.ceil()--向上取整2.3 math.modf()--分別取小數部分和整數部分3.numpy模塊取整函數3.1 numpy.floor()--向下取整3.2 numpy.ceil()--向上取…

模擬銀行家算法

介紹 data.h #ifndef _Data_h_ #define _Data_h_#include <stdio.h> #include <stdlib.h> #include <string.h>#define ElemType PCB #define Status int #define true 1 #define false 0 #define OK 1 #define ERROR 0 #define RESOURCE_NUM …

Lua 與 C混合編程 .

本文通過程序實例說明C調用lua腳本和lua調用C的方法: 先建立一個 test.c文件: #include <stdio.h> #include <stdlib.h> #include "lua.h" #include "lualib.h" #include "lauxlib.h" #pragma comment(lib, "lua5.1.lib&qu…

模擬固定分區分配

介紹 data.h #ifndef _Data_h_ #define _Data_h_#include <stdio.h> #include <stdlib.h> #include <string.h> #define LIST_INIT_SIZE 10 #define LISTINCREMENT 2 #define true 1 #define false 0 #define PCBType PCB #define Status int…

Linux下的lua和boost c++的搭建和安裝

先下載lua &#xff0c;boost c http://www.lua.org/versions.html#5.2 http://www.boost.org/ http://sourceforge.net/projects/luabind/ 1. 安裝lua [rootlocalhost ~]#tar zxvf lua-5.1.2.tar.gz -C /usr/local [rootlocalhost ~]# cd /usr/local/ [rootlocalhost lo…

模擬基本分頁存儲

介紹 data.h #ifndef _Data_h_ #define _Data_h_#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h>#define LIST_INIT_SIZE 10 #define LISTINCREMENT 2 #define true 1 #define false 0 #define PCBType PC…

常用正則表達式和shell命令列表

取當前目錄下普通文件的后綴名列表&#xff1a; ls -l | awk /^-/{print $NF} |awk -F. {print $NF}|awk !/^$/ 匹配0和正整數的正則表達式&#xff08;除0以外&#xff0c;其它數字不能以0開頭&#xff09;&#xff1a; (^0$)|(^[0-9]\d*$) 匹配中文字符的正則表達式&#xff…

無限踩坑系列(7)-Latex使用Tips

Latex常用命令1.latex注釋2.圖片左邊對齊3.字母頭上加聲調4.腳注5.公式中加空格6.字體加粗體7.公式換行8.\textsuperscript{*}9.\begin{itemize}10.\operatorname{trace}11.\noindent12.\textcircled{}圓圈數字一些TIPs1.latex注釋 單行使用百分號%注釋 多行使用如下命令,在編…

在CentOS6.2下安裝DNS服務軟件Bind并快速配置簡單實例

[實踐Ok]在CentOS6.2下安裝DNS并快速配置實例&#xff0c;共八步&#xff0c;心路歷程如下&#xff1a;背景介紹&#xff1a;在日常的開發中&#xff0c;往往會在測試機和外網的Http的Url實際接口是不一樣的&#xff0c;在測試機一個Url地址&#xff0c;在外網中又是一個地址。…