深度學習之 Cascade R-CNN

  • Zhaowei Cai, Nuno Vasconcelos. 《Cascade R-CNN: Delving into High Quality Object Detection》. CVPR 2018.
  • 論文鏈接:https://arxiv.org/abs/1712.00726
  • 代碼鏈接:https://github.com/zhaoweicai/cascade-rcnn

前言

IOU閾值被用來定義正負例,當使用一個較低的IOU閾值訓練object detector, 通常會導致noisy detection. 當提高閾值后發現性能會有所下降. 這主要可能是又兩個原因:

  1. 當提升閾值之后正樣本會"指數式地"減少,容易過擬合
  2. inference時存在mismatch的問題(即在train上取得最佳的IOU閾值對inference時產生的proposal并不能很好地進行回歸)

本文提出的Cascade R-CNN主要就是為了解決此問題.

這篇文章是基于Faster RCNN進行改進的,Faster R-CNN網絡只有一個RCNN網絡,而Cascade RCNN將多個RCNN網絡基于不同的IOU閾值進行級聯,對檢測的結果進行不斷地優化。前一個RCNN網絡的輸出可以作為后一個RCNN網絡的輸入,越往后的檢測模型,其界定正負樣本的IOU閾值是不斷上升的。 對這些逐級遞增地proposal(原文稱作hypotheses, 下同)resampling保證positive set的尺寸都相等, 這樣能緩解過擬合問題(可能是因為逐級提升的緣故, 因此可以使用一些比較差的數據, 這樣就擴充了positive set從而對過擬合緩解).

mismatch

  • 在training階段,由于我們知道gt,所以可以很自然的把與gt的iou大于threshold(0.5)的Proposals作為正樣本,這些正樣本參與之后的bbox回歸學習。
  • 在inference階段,由于我們不知道gt,所以只能把所有的proposal都當做正樣本,讓后面的bbox回歸器回歸坐標。

我們可以想到training階段和inference階段,bbox回歸器的輸入分布是不一樣的,training階段的輸入proposals質量更高(被采樣過,IoU>threshold),inference階段的輸入proposals質量相對較差(沒有被采樣過,可能包括很多IoU<threshold的),這就是論文中提到mismatch問題,這個問題是固有存在的,通常threshold取0.5時,mismatch問題還不會很嚴重。

1. Introduction

R-CNN等模型常使用IOU閾值0.5, 這樣會對positives的要求太過于loose, 著就會導致產生太多不達標的proposal(原文說法是noise bbox), 如圖, 圖中比較了0.5和0.7的差別:
在這里插入圖片描述
(a)中u=0.5也是常用的正負樣本界定的閾值,但是當閾值取0.5時會有較多的誤檢,因為0.5的閾值會使得正樣本中有較多的背景,這是較多誤檢的原因;
(b)用0.7的IOU閾值可以減少誤檢,但檢測效果不一定最好,主要原因在于IOU閾值越高,正樣本的數量就越少,因此過擬合的風險就越大。

本文解決的重要思想是每一個單獨的detector只對一個單獨的IOU(原文稱quality level)進行優化. 此前有類似的工作, 但本文的思想與其不同, 此前是對FP rate優化, 本文是對一個給定的IOU閾值優化.
在這里插入圖片描述
(c)和(d)中的曲線是用來描述localization performance,其中橫坐標表示輸入proposal和ground truth的IOU值,縱坐標表示輸出的proposal和ground truth的IOU值。紅、綠、藍3條曲線代表訓練檢測模型時用的正負樣本標簽的閾值分別是0.7、0.6、0.5。從(c)可以看出,當一個檢測模型采用某個閾值(假設u=0.6)來界定正負樣本時,那么當輸入proposal的IOU在這個閾值(u=0.6)附近時,該檢測模型比基于其他閾值訓練的檢測模型的效果要好。可以得出以下結論:

  • 只有proposal自身的閾值和訓練器訓練用的閾值較為接近的時候,訓練器的性能才最好。
  • 如果兩個閾值相距比較遠,就會存在mismatch問題
  • 單一閾值訓練出的檢測器效果非常有限,單一閾值不能對所有的Proposals都有很好的優化作用。

那么很自然地想到能不能直接用較大的閾值(比如u=0.7)來訓練檢測模型呢?這樣是不行的,從(d)顯示,當RPN輸出的proposal的IOU較小時,閾值u=0.5的RCNN檢測器的效果要優于閾值u=0.6的RCNN檢測器,當RPN輸出的proposal的IOU較大時(接近0.6左右),效果相反。通常,單個IOU閾值的檢測器處理其他級別(IOU閾值和proposal與ground truth的IOU相差較大,不在同一個level)不一定是最佳的。

這些觀察表明,更高質量的檢測要求檢測器與其處理的假設之間的質量匹配更緊密,說的通俗一點就是,閾值高的檢測器要求RPN輸出的proposal與Ground truth的IOU也要高。

但是為了提高檢測器的質量,僅在訓練期間提高閾值u是不夠的。。從(d)中u = 0.7的檢測器可以看出,這會降低檢測性能。問題在于,從proposal檢測器出來的假設存在嚴重失衡(正負比例失衡,滿足閾值條件的正樣本數量很少),這種情況下容易導致過擬合。另一個原因就是inference時的mismatch問題。inference時RPN產生的proposal與ground truth一般不會很高,當檢測器的網絡的IOU閾值設的很高的時候,就會存在mismatch。

因此這條路是走不通的,所以就有了這篇文章的cascade R-CNN,簡單講cascade R-CNN是由一系列的檢測模型組成,每個檢測模型都基于不同IOU閾值的正負樣本訓練得到,前一個檢測模型的輸出作為后一個檢測模型的輸入,因此是stage by stage的訓練方式,而且越往后的檢測模型,其界定正負樣本的IOU閾值是不斷上升的。

為什么要設計成cascade R-CNN這種級聯結構呢?

一方面:從(c)可以看出用不同的IOU閾值訓練得到的檢測模型對不同IOU的輸入proposal的效果差別較大,因此希望訓練每個檢測模型用的IOU閾值要盡可能和輸入proposal的IOU接近。另一方面:可以看(c)中的曲線,三條彩色曲線基本上都在灰色曲線以上,這說明對于這三個閾值而言,輸出IOU基本上都大于輸入IOU。那么就可以以上一個stage的輸出作為下一個stage的輸入,這樣就能得到越來越高的IOU。總之,很難讓一個在指定IOU閾值界定的訓練集上訓練得到的檢測模型對IOU跨度較大的proposal輸入都達到最佳,因此采取cascade的方式能夠讓每一個stage的detector都專注于檢測IOU在某一范圍內的proposal,因為輸出IOU普遍大于輸入IOU,因此檢測效果會越來越好。

3. Object Detection

作者首先給了一張當時比較流行的方法示意圖, 此圖后文用到多次, 我們稱之為結構圖, 各大寫字母含義圖中也給出解釋:
在這里插入圖片描述
(a)是Faster RCNN,因為two stage類型的object detection算法基本上都基于Faster RCNN,所以這里也以該算法為基礎算法。
(b)是迭代式的bbox回歸,從圖也非常容易看出思想,就是前一個檢測模型回歸得到的bbox坐標初始化下一個檢測模型的bbox,然后繼續回歸,這樣迭代三次后得到結果。(c)是Integral Loss,表示對輸出bbox的標簽界定采取不同的IOU閾值,因為當IOU較高時,雖然預測得到bbox很準確,但是也會丟失一些bbox。
(d)就是本文提出的cascade-R-CNN。cascade-R-CNN看起來和(b)這種迭代式的bbox回歸以及(c)這種Integral Loss很像,和(b)最大的不同點在于cascade-R-CNN中的檢測模型是基于前面一個階段的輸出進行訓練,而不是像(b)一樣3個檢測模型都是基于最初始的數據進行訓練,而且(b)是在驗證階段采用的方式,而cascade-R-CNN是在訓練和驗證階段采用的方式。和(c)的差別也比較明顯,cascade R-CNN中每個stage的輸入bbox是前一個stage的bbox輸出,而(c)其實沒有這種refine的思想,僅僅是檢測模型基于不同的IOU閾值訓練得到而已。

3.1 Bounding Box Regression

我們知道bbox對于所框選的圖片塊 xxx 通常由四個坐標構成: b=(bx,by,bw,bh)\text{b} = (b_{x},b_{y},b_{w},b_{h})b=(bx?,by?,bw?,bh?), bbox regression就是將這個預測的bbox對實際bbox ggg 進行regress, 這個過程借助regressor f(x,b)f(x,b)f(x,b) 進行, 因此最終就是優化這樣一個函數:

Rloc[f]=∑i=1NLloc(f(xi,bi),gi)R_{loc}[f] = \sum \limits_{i = 1}^{N}L_{loc}(f(x_{i},b_{i}),g_{i})Rloc?[f]=i=1N?Lloc?(f(xi?,bi?),gi?)

其中 LlocL_{loc}Lloc? 在R-CNN是一個 L2L_{2}L2? loss, 而在Fast R-CNN, 是一個 L1L_{1}L1? loss. 為了使預測盡可能與實際接近, LlocL_{loc}Lloc? 實際操作一個距離向量:

Δ=(δx,δy,δw,δh)\Delta = (\delta _{x},\delta _{y},\delta _{w},\delta _{h}) Δ=(δx?,δy?,δw?,δh?)

其中:

δx=(gx?bx)/bwδy=(gy?by)/bhδw=log(gw/bw)δh=log(gh/bh)\delta _{x} = (g_{x}?b_{x})/ b_{w}\:\delta _{y} = (g_{y}?b_{y})/ b_{h}\:\delta _{w} = log(g_{w}/ b_{w})\:\delta _{h} = log(g_{h}/ b_{h}) δx?=(gx??bx?)/bw?δy?=(gy??by?)/bh?δw?=log(gw?/bw?)δh?=log(gh?/bh?)

想要指出的是, bbox regression中一般b差異不大, 那么就會使 LlocL_{loc}Lloc? 很小, 為了提升他的effectiveness, 那么一般會使其歸一化 N(0,1)\text{ }N(0,1)?N(0,1), 也就是 δx′=(δx?μ)/σx\delta _{x}^{′} = (\delta _{x}?\mu )/ \sigma _{x}δx?=(δx??μ)/σx?.

此前有工作argue單獨用一次regression step of f定位精度不夠, 因此他們就重復進行f regress:

f′(x,b)=f°f°?°f(x,b)f^{′}(x,b) = f \circ f \circ ? \circ f(x,b) f(x,b)=f°f°?°f(x,b)

即所謂迭代bbox regression(iterative bounding box regression), 此方法對應上圖中(b), 但此方法還是有兩個問題:

  1. 從第一張圖(c)的實驗可以知道基于不同IOU閾值訓練的檢測模型對不同IOU的proposal輸入效果差別比較大,因此如果每次迭代都用基于相同IOU閾值的訓練數據訓練得到的檢測模型,那么當輸入proposal的IOU不在你訓練檢測模型時IOU值附近時,效果不會有太大提升。regressorf 是在0.5的閾值訓練, 對于更高閾值的proposal, regressor欠優化, 對于IOU大于0.85的proposal抑制尤為明顯.

  2. 每次迭代之后的分布都在明顯變化, 很可能初始分布較好, 但經過幾次迭代之后反而表現更差了. 下圖給出一例。下圖是關于迭代式bbox回歸在不同階段的四個回歸值分布情況(藍色點),可以看出在不同階段這4個值得分布差異較大,對于這種情況,一成不變的檢測模型顯然難以在這種改變中達到最優效果。

在這里插入圖片描述
正因為其特性, 此方法需要一些后期處理. 此方法因此也是不穩定的, 通常迭代超過兩次以后基本再無太大變化.

3.2 Classification

和先前的方法基本不變, 分類時對于proposal分成 M+1M + 1M+1 類, 其中第0類是bg, 預測結果 KaTeX parse error: Expected 'EOF', got '\right' at position 20: …}(x) = p(y = k|\?r?i?g?h?t?.x), 其中 yyy 是指被預測對象類別, 那么最終得到被優化的函數:

Rcls[h]=∑i=1NLcls(h(xi),yi)R_{cls}[h] = \sum \limits_{i = 1}^{N}L_{cls}(h(x_{i}),y_{i}) Rcls?[h]=i=1N?Lcls?(h(xi?),yi?)

這里 lclsl_{cls}lcls? 是經典交叉熵損失.

3.3 Detection Quality

和以前一樣, 當 proposal IOU 大于某個閾值, 則預測label y, 否則為bg(label y = 0). IOU設置高或低的優缺點此前已經講過, 此前有通過結構圖中?的做法對多level的輸出計算損失并優化:

Lcls(h(x),y)=∑u∈ULcls(hu(x),yu)L_{cls}(h(x),y) = \sum \limits_{u \in U}L_{cls}(h_{u}(x),y_{u}) Lcls?(h(x),y)=uU?Lcls?(hu?(x),yu?)

U就是多IOU閾值. 因此所有classifiers在推理過程中一起使用, 但有個關鍵問 題是不同classifier接收的positives的數量不同! 在下圖中的左圖就是這種情況, 首先高IOU樣本數量太少, 很容易過擬合; 其次高預設IOU classifier又不得不處理眾多不適宜的第IOU樣本. 另外這張圖也請牢記, 我們稱之為分布圖.

在這里插入圖片描述

cascade-R-CNN在不同階段預測得到的proposal的IOU值分布

Cascade R-CNN 和Integral Loss比較

Integral Loss共用pooling,只有一個stage,但有3個不共享的H,每個H處都對應不同的IoU閾值。Integral Loss存在的問題:

  • 我們從上圖 proposal分布可以看到,第一個stage的輸入IoU的分布很不均勻,高閾值proposals數量很少,導致負責高閾值的detector很容易過擬合。
  • 此外在inference時,3個detector的結果要進行ensemble,但是它們的輸入的IoU大部分都比較低,這時高閾值的detector也需要處理低IoU的proposals,它就存在較嚴重的mismatch問題,它的detector效果就很差了。

4. Cascade R-CNN

結構如結構圖所示.

Cascaded Bounding Box Regression

既然單個classifier很難適應多IOU, 那么作者就設計了順序的多個classifier, 與iterative bounding box regression相對應, 本文的結構:

f′(x,b)=fT°fT?1°?°f1(x,b)f^{′}(x,b) = f_{T} \circ f_{T?1} \circ ? \circ f_{1}(x,b) f(x,b)=fT?°fT?1?°?°f1?(x,b)

這里每個 ftf_{t}ft? 都是預優化過的,

它與iterative bounding box regression(IBBR for short)的不同有以下幾點:

  • IBBR是對同一個網絡重復迭代優化, cascaded regression是通過resample使每一級輸出都能被下級使用.
  • cascaded regressor是既用于訓練又用于推理, 那么訓練集和推理集就不會有不匹配的情況了.
  • 每一級輸出需要resample, 其后對每一級都會進行優化而不是向IBBR一樣只是最終相當于對輸入優化.

我想解釋一下, 為什么輸入為低IOU最后還會優出適應較高IOU的regressor, 這利用到全文第二張圖的左圖, 我再貼出來一邊便于觀察:

在這里插入圖片描述

左圖中我們可以看出輸出在大多數情況都是好于輸入的, 那么我們逐級遞增地設置regressor, 最終輸出的也就是單一regressor幾乎不可能達到的高IOU.

Cascade Detection

在分布圖中我們可以發現, 每一階段處理之后分布重心都會向高IOU移動,這樣有兩個好處:

  1. 不容易過擬合.
  2. detector就可以對高IOU example訓練, 而減輕以前的不匹配問題.

在每個階段 ttt, R-CNN都要對classifierht hth_{t}ht? 和regressorftftf_{t}ft?在閾值 ut,ut>ut?1u^{t},u^{t} > u^{t?1}ut,ut>ut?1 的狀態下優化, loss為:

L(xt,g)=Lcls(ht(xt),yt)+λ[yt≥1]Lloc(ft(xt,bt),g)L(x^{t},g) = L_{cls}(h_{t}(x^{t}),y^{t}) + \lambda [y^{t} \geq 1]L_{loc}(f_{t}(x^{t},b^{t}),g) L(xt,g)=Lcls?(ht?(xt),yt)+λ[yt1]Lloc?(ft?(xt,bt),g)

其中 bt=ft?1(xt?1,bt?1)b^{t} = f_{t?1}(x^{t?1},b^{t?1})bt=ft?1?(xt?1,bt?1), g是 xtx^{t}xt 的ground truth. λ\lambdaλ 是調節參數. [yt≥1][y^{t} \geq 1][yt1] 是指只有不是bg時才計算 LlocL_{loc}Lloc?.

Experimental Results

這里只使用了水平翻轉, 在沒有使用其他trick.

以下與各模型對比實驗, 因為內容都比較直觀, 以后可能不會補充對他們的分析.

在這里插入圖片描述
在這里插入圖片描述
cascade R-CNN和Iterative bbox、Integral loss的對比。
在這里插入圖片描述
COCO數據集上的提升確實非常明顯。主要通過在現有的two stage算法上添加cascade思想后的對比結果,另外還對比了訓練、測試時間、參數量等信息。
在這里插入圖片描述

Conclusion

正如一開始提到的兩點問題, 作者在本文也是在盡力解決這些問題:

  1. 采用多階段逐步提升IOU, 從而在低IOU樣本中獲取更多的"高IOU"樣本。
  2. 對于最后一個階段輸出了高IOU樣本, 訓練classifier從而使其適應高IOU樣本, 當其推理時對于高IOU的樣本處理表現也更好。
  3. 每一個stage的detector都不會過擬合,都有足夠滿足閾值條件的樣本。

參考:

  • https://blog.csdn.net/u014380165/article/details/80602027
  • https://www.cnblogs.com/edbean/p/11306577.html
  • https://zhuanlan.zhihu.com/p/92779720
  • https://zhuanlan.zhihu.com/p/42553957

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

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

相關文章

轉換文檔參數_明明2秒可以搞定Word、Excel相互轉換,你卻用了半小時!真虧了...

我們在用office三件套工作的時候&#xff0c;經常都需要對文件的格式進行轉換&#xff0c;像是Word文檔和Excel表格的轉換&#xff0c;很多小伙伴都要花上半個小時甚至以上的時間才能搞定&#xff0c;效率實在不行。別擔心&#xff0c;今天小編將分享能快速完成Word、Excel轉換…

深度學習之 DCN(Deformable Convolution)-可變形卷積

Paper link: http://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Deformable_Convolutional_Networks_ICCV_2017_paper.pdfhttps://arxiv.org/pdf/1703.06211 Code link: https://github.com/msracver/Deformable-ConvNets Abstract 如何有效地對幾何圖形的變化進行…

軟件開發 項目進展 軟件架構 指南

軟件開發&#xff0c;標準化流水線式開發的實施構想 軟件開發&#xff0c;標準化流水線式開發的實施構想 近日看到一篇博文&#xff0c;討論標準化流水線開發模式的話題&#xff0c;但是這篇博文僅僅提出這個問題&#xff0c;未見回應。 這其實是一個很大的問題&#xff0c;我…

linux 下php多版本安裝

php-multi-version ubuntu apt-get 安裝php5.6 添加軟件源sudo add-apt-repository ppa:ondrej/php sudo apt-get updatesudo apt-get install php5.6sudo apt-get install php5sudo apt-get install php7 /usr/local/bin 與/usr/bin echo $PATH/usr/local/sbin:/usr/local/bin…

c++ 舞伴配對問題_挑戰新物體描述問題,視覺詞表解決方案超越人類表現

編者按&#xff1a;最近&#xff0c;研究者們發布了 nocaps 挑戰&#xff0c;用以測量在沒有對應的訓練數據的情況下&#xff0c;模型能否準確描述測試圖像中新出現的各種類別的物體。針對挑戰中的問題&#xff0c;微軟 Azure 認知服務團隊和微軟研究院的研究員提出了全新解決方…

深度學習之雙線性插值(Bilinear interpolation)

1. 什么是插值 Interpolation is a method of constructing new data points within the range of a discrete set of known data points. Image interpolation refers to the“guess”of intensity values at missing locations. 圖片放大是圖像處理中的一個特別基礎的操作。…

div table 超出了_div包裹的table,table的寬度超出了的寬度,出現的滾動條的在windows下無法拖動...

1.父級div是否設置了寬度&#xff0c;只有設置了寬度且滾動條在div內才是你想要控制的滾動2.僅憑你說的這些屬性不知道滾動條怎么不能動&#xff0c;可以貼一下代碼&#xff1f;3.橫向需要滾動條的話必須設置table的確定寬度做了一個demo:.table{table-layout:fixed; width:…

第二階段站立會議7

昨天&#xff1a;美化頁面 今天&#xff1a;進行項目上傳 問題&#xff1a;阿里云服務器上的mysql出現連接問題轉載于:https://www.cnblogs.com/sdysyhj/p/8301489.html

深度學習之 OHEM (Online Hard Example Mining)

論文 《Training Region-based Object Detectors with Online Hard Example Mining》鏈接 https://arxiv.org/pdf/1604.03540.pdf Astract 摘要主要講了四點&#xff1a; (1) 訓練過程需要進行參數的空間搜索(2) 簡單樣本與難分辨樣本之間的類別不平衡是亟需解決的問題(3) 自…

音視頻 詳解

avi文件格式詳解 AVI是音頻視頻交錯(Audio Video Interleaved)的英文縮寫&#xff0c;它是Microsoft公司開發的一種符合RIFF文件規范的數字音頻與視頻文件格式&#xff0c;原先用于Microsoft Video for Windows (簡稱VFW)環境&#xff0c;現在已被Windows 95/98、OS/2等多數操…

c6011取消對null指針的引用_C++| 函數的指針參數如何傳遞內存?

函數的參數是一個一級指針&#xff0c;可以傳遞內存嗎&#xff1f;如果函數的參數是一個一級指針&#xff0c;不要指望用該指針去申請動態內存。看下面的實例&#xff1a;#include using namespace std;void GetMemory(char *p, int num){p (char *)malloc(sizeof(char) * num…

Servlet執行時要實現的方法

Servlet執行時要實現的方法 public void init(ServletConfig config) public ServletConfig getServletConfig() public String getServletInfo() public void service(ServletRequest request,ServletResponse response) public void destroy() 本文轉自sucre03 5…

axios 設置攔截器 全局設置帶默認參數(發送 token 等)

應用場景&#xff1a;1&#xff0c;每個請求都帶上的參數&#xff0c;比如token&#xff0c;時間戳等。2&#xff0c;對返回的狀態進行判斷&#xff0c;比如token是否過期代碼如下&#xff1a;[javascript] view plain copyaxios.interceptors.request.use( config &g…

深度學習目標檢測之 YOLO v2

論文名&#xff1a;《YOLO9000: Better, Faster, Stronger》原文&#xff1a;https://arxiv.org/pdf/1612.08242v1.pdf代碼&#xff1a;http://pjreddie.com/darknet/yolo/ YOLO v2 斬獲了CVPR 2017 Best Paper Honorable Mention。在這篇文章中&#xff0c;作者首先在YOLOv1的…

tcpmp 編譯 源代碼分析

TCPMP源代碼分析 TCPMP源代碼分析 播放器主要由核心框架模塊&#xff08;common工程&#xff09;和解碼器、分離器插件組成。TCPMP的插件非常多&#xff0c;其中主要的插件有&#xff1a;interface插件實現了TCPMP的界面&#xff0c;ffmpeg是系統主要的音視頻解碼模塊&#xff…

使用zerorpc踩的第一個坑:

Server端代碼&#xff1a;注意s.run() 和 s.run的區別&#xff0c;一個括號搞死我了.如果不加括號&#xff0c;服務端服務是不會啟動的&#xff0c;客戶端就會報連接超時的錯誤 Server端在本機所有IP上監聽4242端口的tcp協議 import zerorpcclass HelloRPC(object):   def __…

django存入mysql數據庫_django如何存數據到一個mysql數據表里面

讓我們聊聊這個話題&#xff0c; django如何存數據至mysql數據表里面&#xff0c;你會用什么方法&#xff1f;正常情況下&#xff0c;我們form邏輯處理后&#xff0c;直接form.save()&#xff0c;是&#xff0c;這個方法沒毛病&#xff1b;但有沒有其他的方法呢&#xff1f;假如…

【Luogu】P3343地震后的幻想鄉(對積分概率進行DP)

題目鏈接 神難qwq。配合rqy的博客食用。 首先我們學到有一個概率函數$p(x)$表示某事件發生概率取值小于x的函數。這個函數有什么特點呢&#xff1f; 那就是$\int_{-∞}^{∞}p(x)dx1$ 這個是顯然的 然后我們令p(x)為首次聯通的時間的概率分布函數 這其實等價于生成樹的最大權邊等…

深度學習目標檢測之 YOLO v3

論文名&#xff1a;《YOLOv3: An Incremental Improvement》論文地址 https://pjreddie.com/media/files/papers/YOLOv3.pdfhttps://arxiv.org/abs/1804.02767v1 論文代碼 https://github.com/yjh0410/yolov2-yolov3_PyTorchkeras&#xff1a;https://github.com/qqwweee/keras…

30本pdf完整版的經典Linux學習和開發教程和資料下載 android arm java 資料大全

史上最牛的Linux內核學習方法論 點擊下載我的arm_linux移植筆記 點擊下載S3C2440完全開發流程 點擊下載Linux系統命令及其使用詳解完整版 點擊下載Linux主要shell命令詳解 點擊下載深入理解Linux內核(第三版 pdf英文版) 點擊下載深入分析Linux內核源代碼教程pdf完整版 點擊下…