1. 程式人生 > >第三十五節,目標檢測之YOLO演算法詳解

第三十五節,目標檢測之YOLO演算法詳解

YOLO的全拼是You Only Look Once,顧名思義就是隻看一次,把目標區域預測和目標類別預測合二為一,作者將目標檢測任務看作目標區域預測和類別預測的迴歸問題。該方法採用單個神經網路直接預測物品邊界和類別概率,實現端到端的物品檢測。因此識別效能有了很大提升,達到每秒45幀,而在快速YOLO(Fast YOLO,卷積層更少)中,可以達到每秒155幀。

當前最好系統相比,YOLO目標區域定位誤差更大,但是背景預測的假陽性優於當前最好的方法。

一、引言

人類瞥了一眼影象,立即知道影象中的物體,它們在哪裡以及它們如何相互作用。 人類視覺系統快速而準確,使我們能夠執行復雜的任務,比如汽車駕駛。

傳統的目標檢測系統利用分類器來執行檢測。 為了檢測物件,這些系統在測試圖片的不同位置不同尺寸大小採用分類器對其進行評估。 如目標檢測系統採用deformable parts models (DPM)方法,通過滑動框方法提出目標區域,然後採用分類器來實現識別。近期的R-CNN類方法採用region proposal methods,首先生成潛在的bounding boxes,然後採用分類器識別這些bounding boxes區域。最後通過post-processing來去除重複bounding boxes來進行優化。這類方法流程複雜,存在速度慢和訓練困難的問題。

我們將目標檢測問題轉換為直接從影象中提取bounding boxes和類別概率的單個迴歸問題,只需一眼(you only look once,YOLO)即可檢測目標類別和位置。

YOLO簡潔明瞭:見下圖。 YOLO演算法採用單個卷積神經網路來預測多個bounding boxes和類別概率。 與傳統的物體檢測方法相比,這種統一模型具有以下優點:

YOLO檢測系統。用YOLO處理影象簡單直接。我們的系統(1)將輸入影象調整為448×448,(2)在影象上執行單個卷積網路,以及(3)由模型的置信度對所得到的檢測進行閾值處理。

  • 非常快。YOLO預測流程簡單,速度很快。我們的基礎版在Titan X GPU上可以達到45幀/s; 快速版可以達到150幀/s。因此,YOLO可以實現實時檢測。
  • YOLO採用全圖資訊來進行預測。與滑動視窗方法和region proposal-based方法不同,YOLO在訓練和預測過程中可以利用全圖資訊。Fast R-CNN檢測方法會錯誤的將背景中的斑塊檢測為目標,原因在於Fast R-CNN在檢測中無法看到全域性影象。相對於Fast R-CNN,YOLO背景預測錯誤率低一半。
  • YOLO可以學習到目標的概括資訊(generalizable representation),具有一定普適性。我們採用自然圖片訓練YOLO,然後採用藝術影象來預測。YOLO比其它目標檢測方法(DPM和R-CNN)準確率高很多。

在準確性上,YOLO演算法仍然落後於最先進的檢測系統雖然它可以快速識別影象中的物件,但它很難精確定位某些物件,特別是小物件。

二 統一檢測(Unified Detection)

我們將目標檢測統一到一個神經網路。我們的網路使用整個影象中的特徵來預測每個邊界框。 它也是同時預測影象的所有類的所有邊界框。 這意味著我們的網路學習到的完整影象和圖中所有的物件.YOLO設計可實現端到端訓練和實時的速度,同時保持較高的平均精度。

  • YOLO首先將影象分為S×S的格子。如果一個目標的中心落入格子,該格子就負責檢測該目標。每一個網格中預測B個Bounding box 和置信值(confidence score)。這些置信度分數反映了該模型對盒子是否包含目標的信心,以及它預測盒子的準確程度。然後,我們定義置信值為:

如果沒有目標,置信值為零。另外,我們希望置信度分數等於預測框與真實值之間聯合部分的交集(IOU)。

  • 每一個bounding box包含5個值:x,y,w,h和confidence。(x,y)座標表示邊界框相對於網格單元邊界框的中心。寬度和高度是相對於整張影象預測的。confidence表示預測的box與實際邊界框之間的IOU。每個網格單元還預測C個條件類別概率:

這些概率是以網格包含目標為條件的,每個網格單元我們只預測的一組類別概率,而不管邊界框的的數量B時多少。

  • 在測試時,我們乘以條件類概率和單個盒子的置信度預測:

這些分數編碼了該類出現在框中的概率以及預測框擬合目標的程度。。在PASCAL VOC資料集上評價時,我們採用S=7,B=2,C=20(該資料集包含20個類別),最終預測結果為7×7×30(B*5+C)的tensor。

模型。 我們的系統將檢測建模為迴歸問題。它將影象分成SxS的網路,並且每個網格單元預測B個邊界框,這些邊界框的置信度以及C個類別概率,這些預測被編碼為SxSx(B*5+C)的張量。

1、網路模型

我們使用卷積神經網路來實現YOLO演算法,並在Pascal VOC檢測資料集上進行評估。網路的初始卷積層從影象中提取特徵,而全連線層用來預測輸出概率和座標。

我們的網路架構受到GoogLeNet影象分類模型的啟發。我們的網路有24個卷積層,後面是2個全連線層。我們使用1x1降維層,後面是3x3卷積層,這與Lin等人類似,而不是GoogLeNet使用的Inception模組。我們在ImageNet分類任務上以一半的解析度(224x224的輸入影象)預訓練卷積層,然後將解析度加倍來進行檢測。完整的網路如圖所示。

架構。我們的檢測網路有24個卷積層,其次是2個全連線層。交替1x1卷積層減少了前面層的特徵空間。我們在ImageNet分類任務上以一半的解析度(224x224的輸入影象)預訓練卷積層,然後將解析度加倍來進行檢測。

我們還訓練了快速版本的YOLO,旨在推動快速目標檢測的界限。快速YOLO使用具有較少卷積層(9層而不是24層)的神經網路,在這些層中使用較少的濾波器。除了網路規模之外,YOLO和Fast YOLO的所有訓練和測試引數都是相同的。

我們網路的最終輸出是7x7x30的預測張量。

2、訓練

我們在ImageNet 1000類競賽資料集上預訓練我們的卷積層。對於預訓練,我們使用上圖中的前20個卷積層,外加平均池化層和全連線層。我們對這個網路進行了大約一週的訓練,並且在ImageNet 2012驗證集上獲得了單一裁剪影象88%的top-5準確率,與Caffe模型池中的GoogLeNet模型相當。我們使用Darknet框架進行所有的訓練和推斷。

然後我們轉換模型來執行檢測。Ren等人表明,預訓練網路中增加捲積層和連線層可以提高效能。按照他們的例子,我們添加了四個卷積層和兩個全連線層,並且具有隨機初始化的權重。檢測通常需要細粒度的視覺資訊,因此我們將網路的輸入解析度從224x224變為448x448。

我們的最後一層預測類概率和邊界框座標。我們通過影象寬度和高度來規範邊界框的寬度和高度,使它們落在0和1之間。我們將邊界框x和y坐標引數化為特定網格單元位置的偏移量,所以它們邊界也在0和1之間。

我們對最後一層使用線性啟用函式,所有其它層使用下面的漏洩修正線性啟用:

我們優化了模型輸出中的平方和誤差。我們使用平方和誤差,因為它很容易進行優化,但是它並不完全符合我們最大化平均精度的目標。分類誤差與定位誤差的權重是一樣的,這可能並不理想。另外,在每張影象中,許多網格單元不包含任何物件。這將這些單元格的“置信度”分數推向零,通常壓倒了包含目標的單元格的梯度。這可能導致模型不穩定,從而導致訓練早期發散。

為了改善這一點,我們增加了邊界框座標預測損失,並減少了不包含目標邊界框的置信度預測損失。我們使用兩個引數λcoord和λnoobj來完成這個工作。我們設定λcoord=5和λnoobj=5。

平方和誤差也可以在大盒子和小盒子中同樣加權誤差。我們的錯誤指標應該反映出,大盒子小偏差的重要性不如小盒子小偏差的重要性。為了部分解決這個問題,我們直接預測邊界框寬度和高度的平方根,而不是寬度和高度。

YOLO每個網格單元預測多個邊界框。在訓練時,每個目標我們只需要一個邊界框預測器來負責。我們指定一個預測器“負責”,根據哪個預測與真實值之間具有當前最高的IOU來預測目標。這導致邊界框預測器之間的專業化。每個預測器可以更好地預測特定大小,方向角,或目標的類別,從而改善整體召回率。

在訓練期間,我們優化以下多部分損失函式:

其中1iobj示目標是否出現在網格單元i中(是為1,否為0,根據該單元實際上是否有目標確定),1ijobj表示網格單元i的第j個邊界框預測器“負責”該預測(如果該單元真有目標,並且該邊界框IOU最大,則值為1,否為0)。

注意,如果目標存在於該網格單元中(前面討論的條件類別概率),則損失函式僅懲罰分類錯誤。如果預測器“負責”實際邊界框(即該網格單元中具有最高IOU的預測器),則它也僅懲罰邊界框座標錯誤。

我們對Pascal VOC 2007和2012的訓練和驗證資料集進行了大約135個迭代週期的網路訓練。在Pascal VOC 2012上進行測試時,我們的訓練包含了Pascal VOC 2007的測試資料。在整個訓練過程中,我們使用了64個批大小,0.9的動量和0.0005的衰減。

我們的學習率方案如下:對於第一個迭代週期,我們慢慢地將學習率從0.001提高到0.01,如果我們從高學習率開始,我們的模型往往會由於不穩定的梯度而發散。我們繼續以0.01的學習率訓練75個迭代週期,然後用0.001學習率訓練30個迭代週期,最後用0.0001的學習率訓練30個迭代週期。

為了避免過度擬合,我們使用棄權和大量的資料增強。在第一個連線層之後,棄權層使用0.5的比例,防止層之間的互相適應。對於資料增強,我們引入高達原始影象20%的大小的隨機縮放和轉換。我們還在HSV色彩空間中使用高達1.5的因子來隨機調整影象的曝光和飽和度。

3、預測

就像在訓練中一樣,預測測試影象的檢測只需要一次網路評估。在Pascal VOC上,每張影象上網路預測98個邊界框和每個框的類別概率。YOLO在測試時非常快,因為它只需要一次網路評估,不像基於分類器的方法。

網格設計強化了邊界框預測中的空間多樣性。通常很明顯一個目標落在哪一個網格單元中,而網路只能為每個目標預測一個邊界框。然而,一些大的目標或靠近多個網格單元邊界的目標可以被多個網格單元很好地定位。非極大值抑制可以用來修正這些多重檢測。對於R-CNN或DPM而言,效能不是關鍵的,非最大抑制會增加2%-3%的mAP。

4、YOLO的限制

  • YOLO的每一個網格只預測兩個邊界框,一種類別。這導致模型對相鄰目標預測準確率下降。因此,YOLO對成佇列的目標(如 一群鳥)識別準確率較低。
  • 由於我們的模型學習從資料中預測邊界框,因此它很難泛化到新的、不常見角度的目標。我們的模型使用相對較粗糙的特徵來預測邊界框,因為我們的架構具有來自輸入影象的多個下采樣層。
  • YOLO的損失函式會同樣的對待小邊界框與大邊界框的誤差。大邊界框的小誤差通常是良性的,但小邊界框的小誤差對IOU的影響要大得多。我們的主要錯誤來源是不正確的定位。

三 與其他目標檢測演算法對比

目標檢測是計算機視覺中的核心問題。檢測流程通常從輸入影象上(Haar,SIFT ,HOG ,卷積特徵)提取一組魯棒特徵開始。然後,分類器或定位器被用來識別特徵空間中的目標。這些分類器或定位器在整個影象上或在影象中的一些子區域上以滑動視窗的方式執行。我們將YOLO檢測系統與幾種頂級檢測框架進行比較,突出了關鍵的相似性和差異性。

  • 可變形部件模型。可變形零件模型(DPM)使用滑動視窗方法進行目標檢測。DPM使用不相交的流程來提取靜態特徵,對區域進行分類,預測高評分割槽域的邊界框等。我們的系統用單個卷積神經網路替換所有這些不同的部分。網路同時進行特徵提取,邊界框預測,非極大值抑制和上下文推理。代替靜態特徵,網路內嵌地訓練特徵併為檢測任務優化它們。我們的統一架構導致了比DPM更快,更準確的模型。
  • R-CNN。R-CNN及其變種使用區域提名而不是滑動視窗來查詢影象中的目標。選擇性搜尋產生潛在的邊界框,卷積網路提取特徵,SVM對邊界框進行評分,線性模型調整邊界框,非極大值抑制消除重複檢測。這個複雜流程的每個階段都必須獨立地進行精確調整,所得到的系統非常慢,測試時每張影象需要超過40秒。

YOLO與R-CNN有一些相似之處。每個網格單元提出潛在的邊界框並使用卷積特徵對這些框進行評分。但是,我們的系統對網格單元提出進行了空間限制,這有助於緩解對同一目標的多次檢測。我們的系統還提出了更少的邊界框,每張影象只有98個,而選擇性搜尋則只有2000個左右。最後,我們的系統將這些單獨的元件組合成一個單一的,共同優化的模型。

  • 其它快速檢測器。Fast和Faster的R-CNN通過共享計算和使用神經網路替代選擇性搜尋來提出區域加速R-CNN框架。雖然它們提供了比R-CNN更快的速度和更高的準確度,但兩者仍然不能達到實時效能。

許多研究工作集中在加快DPM流程上。它們加速HOG計算,使用級聯,並將計算推動到GPU上。但是,實際上只有30Hz的DPM可以實時執行。

YOLO不是試圖優化大型檢測流程的單個元件,而是完全拋棄流程,被設計為快速檢測。

像人臉或行人等單類別的檢測器可以高度優化,因為他們必須處理更少的變化。YOLO是一種通用的檢測器,可以學習同時檢測多個目標。

  • Deep MultiBox。與R-CNN不同,Szegedy等人訓練了一個卷積神經網路來預測感興趣區域,而不是使用選擇性搜尋。MultiBox還可以通過用單類預測替換置信度預測來執行單目標檢測。然而,MultiBox無法執行通用的目標檢測,並且仍然只是一個較大的檢測流程中的一部分,需要進一步的影象塊分類。YOLO和MultiBox都使用卷積網路來預測影象中的邊界框,但是YOLO是一個完整的檢測系統。
  • OverFeat。Sermanet等人訓練了一個卷積神經網路來執行定位,並使該定位器進行檢測。OverFeat高效地執行滑動視窗檢測,但它仍然是一個不相交的系統。OverFeat優化了定位,而不是檢測效能。像DPM一樣,定位器在進行預測時只能看到區域性資訊。OverFeat不能推斷全域性上下文,因此需要大量的後處理來產生連貫的檢測。
  • MultiGrasp。我們的工作在設計上類似於Redmon等的抓取檢測。我們對邊界框預測的網格方法是基於MultiGrasp系統抓取的迴歸分析。然而,抓取檢測比目標檢測任務要簡單得多。MultiGrasp只需要為包含一個目標的影象預測一個可以抓取的區域。不必估計目標的大小,位置或目標邊界或預測目標的類別,只找到適合抓取的區域。YOLO預測影象中多個類別的多個目標的邊界框和類別概率。

四 實驗

首先,我們在PASCAL VOC 2007上比較YOLO和其它的實時檢測系統。為了理解YOLO和R-CNN變種之間的差異,我們探索了YOLO和R-CNN效能最高的版本之一Fast R-CNN在VOC 2007上錯誤率。根據不同的誤差曲線,我們顯示YOLO可以用來重新評估Fast R-CNN檢測,並減少背景假陽性帶來的錯誤,從而顯著提升效能。我們還展示了在VOC 2012上的結果,並與目前最先進的方法比較了mAP。最後,在兩個藝術品資料集上我們顯示了YOLO可以比其它檢測器更好地泛化到新領域。

1、與其他實時系統的比較

  • 目標檢測方面的許多研究工作都集中在快速制定標準檢測流程上。然而,只有Sadeghi等實際上產生了一個實時執行的檢測系統(每秒30幀或更好)。我們將YOLO與DPM的GPU實現進行了比較,其在30Hz或100Hz下執行。雖然其它的努力沒有達到實時性的里程碑,我們也比較了它們的相對mAP和速度來檢查目標檢測系統中精度——效能權衡。
  • Fast YOLO是PASCAL上最快的目標檢測方法;據我們所知,它是現有的最快的目標檢測器。具有52.7%mAP,實時檢測的精度是以前工作的兩倍以上。YOLO將mAP推到63.4%同時保持了實時效能。
  • 我們還使用VGG-16訓練YOLO。這個模型比YOLO更準確,但也比它慢得多。對於依賴於VGG-16的其它檢測系統來說,它是比較有用的,但由於它比實時的YOLO更慢,本文的其它部分將重點放在我們更快的模型上。
  • Fastest DPM可以在不犧牲太多mAP的情況下有效地加速DPM,但仍然會將實時效能降低2倍。與神經網路方法相比,DPM相對低的檢測精度也受到限制。
  • R-CNN Minus R用靜態邊界框提出取代選擇性搜尋。雖然速度比R-CNN更快,但仍然不能實時,並且由於沒有好的邊界框提出,準確性受到了嚴重影響。
  • Fast R-CNN加快了R-CNN的分類階段,但是仍然依賴選擇性搜尋,每張影象需要花費大約2秒來生成邊界框提出。因此,它具有很高的mAP,但是0.5的fps仍離實時性很遠。
  • Faster R-CNN用神經網路替代了選擇性搜尋來提出邊界框,類似於Szegedy等。在我們的測試中,他們最精確的模型達到了7fps,而較小的,不太精確的模型以18fps執行。VGG-16版本的Faster R-CNN要高出10mAP,但比YOLO慢6倍。Zeiler-Fergus的Faster R-CNN只比YOLO慢了2.5倍,但也不太準確。

Pascal VOC 2007上的實時系統。比較快速檢測器的效能和速度。快速YOLO是Pascal VOC檢測記錄中速度最快的檢測器,其精度仍然是其它實時檢測器的兩倍。YOLO比快速版本更精確10mAP,同時在速度上仍保持實時性。

2、VOC 2007錯誤率分析

為了進一步檢查YOLO和最先進的檢測器之間的差異,我們詳細分析了VOC 2007的結果。我們將YOLO與Fast R-CNN進行比較,因為Fast R-CNN是PASCAL上效能最高的檢測器之一併且它的檢測程式碼是可公開得到的。

我們使用Hoiem等人的方法和工具。對於測試時的每個類別,我們看這個類別的前N個預測。每個預測或者是正確的,或者根據錯誤型別進行分類:

  • Correct:正確的類別而且IOU>0.5
  • Localization:正確的類別,0.1<IOU<0.5
  • Similar:類別相似,IOU>0.1
  • Other:類別錯誤,IOU>0.1
  • Background:任何IOU<0.1的目標

下圖顯示了在所有的20個類別上每種錯誤型別平均值的分解圖。

誤差分析:Fast R-CNN vs. YOLO。這張圖顯示了各種類別的前N個預測中定位錯誤和背景錯誤的百分比(N = #表示目標在那個類別中)。

YOLO努力地正確定位目標。定位錯誤佔YOLO錯誤的大多數,比其它錯誤源加起來都多。Fast R-CNN使定位錯誤少得多,但背景錯誤更多。它的檢測的13.6%是不包含任何目標的誤報。Fast R-CNN比YOLO預測背景檢測的可能性高出近3倍。

3、結合Fast R-CNN和YOLO

YOLO比Fast R-CNN的背景誤檢要少得多。通過使用YOLO消除Fast R-CNN的背景檢測,我們獲得了顯著的效能提升。對於R-CNN預測的每個邊界框,我們檢查YOLO是否預測一個類似的框。如果是這樣,我們根據YOLO預測的概率和兩個盒子之間的重疊來對這個預測進行提升。

最好的Fast R-CNN模型在VOC 2007測試集上達到了71.8%的mAP。當與YOLO結合時,其mAP增加了3.2%達到了75%,我們也嘗試將最好的Fast R-CNN模型與其它幾個版本的Fast R-CNN結合起來。這些模型組合產生了0.3%到0.6%之間的小增幅。

VOC 2007模型組合實驗。我們檢驗了各種模型與Fast R-CNN最佳版本結合的效果。Fast R-CNN的其它版本只提供很小的好處,而YOLO則提供了顯著的效能提升。

來自YOLO的提升不僅僅是模型組合的副產品,因為組合不同版本的Fast R-CNN幾乎沒有什麼好處。相反,正是因為YOLO在測試時出現了各種各樣的錯誤,所以在提高Fast R-CNN的效能方面非常有效。

遺憾的是,這個組合並沒有從YOLO的速度中受益,因為我們分別執行每個模型,然後結合結果。但是,由於YOLO速度如此之快,與Fast R-CNN相比,不會增加任何顯著的計算時間。

4、VOC 2012結果

在VOC 2012測試集上,YOLO得分為57.9%mAP,這低於現有的最新技術,接近於使用VGG-16的原始R-CNN,見表3。我們的系統與其最接近的競爭對手相比,在小目標上努力。在bottlesheeptv/monitor等類別上,YOLO的得分比R-CNN或Feature Edit低8%-10%,然而,在cattrain等其它類別上YOLO實現了更高的效能。

PASCAL VOC 2012排行榜。截至2015年11月6日,YOLO與完整comp4(允許外部資料)公開排行榜進行了比較。顯示了各種檢測方法的平均精度均值和每類的平均精度。YOLO是唯一的實時檢測器。Fast R-CNN + YOLO是評分第四高的方法,比Fast R-CNN提升了2.3%。

我們聯合的Fast R-CNN + YOLO模型是效能最高的檢測方法之一。Fast R-CNN從與YOLO的組合中獲得了2.3%提高,在公開排行榜上上移了5位。

5、泛化能力,藝術品中的行人檢測

用於目標檢測的學術資料集以相同分佈獲取訓練和測試資料。在現實世界的應用中,很難預測所有可能的用例,而且測試資料可能與系統之前看到的不同[3]。我們在Picasso資料集上和People-Art資料集上將YOLO與其它的檢測系統進行比較,這兩個資料集用於測試藝術品中的行人檢測。

下圖顯示了YOLO和其它檢測方法之間的比較效能。作為參考,我們在person上提供VOC 2007的檢測AP,其中所有模型僅在VOC 2007資料上訓練。在Picasso資料集上的模型在VOC 2012上訓練,而People-Art資料集上的模型則在VOC 2010上訓練。

Picasso和People-Art資料集上的泛化結果。

R-CNN在VOC 2007上有高AP。然而,當應用於藝術品時,R-CNN明顯下降。R-CNN使用選擇性搜尋來調整自然影象的邊界框提出。R-CNN中的分類器步驟只能看到小區域,並且需要很好的邊界框提出。

DPM在應用於藝術品時保持了其AP。之前的工作認為DPM表現良好,因為它具有目標形狀和佈局的強大空間模型。雖然DPM不會像R-CNN那樣退化,但它開始時的AP較低。

YOLO在VOC 2007上有很好的效能,在應用於藝術品時其AP下降低於其它方法。像DPM一樣,YOLO建模目標的大小和形狀,以及目標和目標通常出現的位置之間的關係。藝術品和自然影象在畫素級別上有很大不同,但是它們在目標的大小和形狀方面是相似的,因此YOLO仍然可以預測好的邊界框和檢測結果。

定性結果。YOLO在網路取樣的藝術品和自然影象上的執行結果。雖然它將人誤檢成了飛機,但它大部分上是準確的。

四 實時目標檢測

YOLO是一種快速,精確的目標檢測器,非常適合計算機視覺應用。我們將YOLO連線到網路攝像頭,並驗證它是否能保持實時效能,包括從攝像頭獲取影象並顯示檢測結果的時間。

由此產生的系統是互動式和參與式的。雖然YOLO單獨處理影象,但當連線到網路攝像頭時,其功能類似於跟蹤系統,可在目標移動和外觀變化時檢測目標。系統演示和原始碼可以在專案網站上找到:http://pjreddie.com/yolo/

五 結論

我們介紹了YOLO,一種統一的目標檢測模型。我們的模型構建簡單,可以直接在整張影象上進行訓練。與基於分類器的方法不同,YOLO直接在對應檢測效能的損失函式上訓練,並且整個模型聯合訓練。

快速YOLO是文獻中最快的通用目的的目標檢測器,YOLO推動了實時目標檢測的最新技術。YOLO還很好地泛化到新領域,使其成為依賴快速,強大的目標檢測應用的理想選擇。

7

參考文章:

相關推薦

目標檢測YOLO演算法

YOLO的全拼是You Only Look Once,顧名思義就是隻看一次,把目標區域預測和目標類別預測合二為一,作者將目標檢測任務看作目標區域預測和類別預測的迴歸問題。該方法採用單個神經網路直接預測物品邊界和類別概率,實現端到端的物品檢測。因此識別效能有了很大提升,達到每秒45幀,而在快速YOLO(Fas

目標檢測yolo原始碼解析

在一個月前,我就已經介紹了yolo目標檢測的原理,後來也把tensorflow實現程式碼仔細看了一遍。但是由於這個暑假事情比較大,就一直擱淺了下來,趁今天有時間,就把原始碼解析一下。關於yolo目標檢測的原理請參考前面一篇文章:第三十五節,目標檢測之YOLO演算法詳解 在講解原始碼之前,我們需要做一些準備工作

第二目標定位、特征點檢測依據目標檢測

回顧 邏輯 預測 簡單 AS 其中 輸入 操作 功能 一 目標定位 對象檢測,它是計算機視覺領域中一個新興的應用方向,相比前兩年,它的性能越來越好。在構建對象檢測之前,我們先了解一下對象定位,首先我們看看它的定義。 圖片分類任務我們已經熟悉了,就是算法遍歷圖片,判斷其中的

學習筆記

作業rsyc通過服務同步 還可以通過服務的方式同步。 要通過服務方式同步 要先配置文件 /etc/rsyncd.comf -port=873 指定一個端口, 如果不指定 就默認873 log file=/var/log/rsync.log 指定它的日誌文件。pid file=/var/run/r

、人臉檢測MTCNN和人臉識別Facenet(附原始碼)

在說到人臉檢測我們首先會想到利用Harr特徵提取和Adaboost分類器進行人臉檢測(有興趣的可以去一看這篇部落格第九節、人臉檢測之Haar分類器),其檢測效果也是不錯的,但是目前人臉檢測的應用場景逐漸從室內演變到室外,從單一限定場景發展到廣場、車站、地鐵口等場景,人臉檢測面臨的要求越來越高,比如:人臉尺度多

目標檢測】FastRCNN演算法

摘自沈曉璐 有待補充自己的理解. 繼2014的RCNN之後,推出了FastRCNN ,構思精巧,流程更為緊湊,大幅提升了目標檢測的速度。 同樣使用最大規模的網路,FastRCNN 和RCNN相比,訓練時間從84小時減少為9.5小時,測試時間從47秒,減少為

目標檢測】RCNN演算法

Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IE

Python分布式爬蟲打造搜索引擎Scrapy精講—scrapy信號

第一個 如果 -c stopped lin 支持 idle 資源 spider 第三百五十五節,Python分布式爬蟲打造搜索引擎Scrapy精講—scrapy信號詳解 信號一般使用信號分發器dispatcher.connect(),來設置信號,和信號觸發函數,當捕獲到信號

百六Python分布式爬蟲打造搜索引擎Scrapy精講—elasticsearch(搜索引擎)的查詢

搜索引擎 ack 復合 分布式 內置 分布 在一起 一起 分類 第三百六十五節,Python分布式爬蟲打造搜索引擎Scrapy精講—elasticsearch(搜索引擎)的查詢 elasticsearch(搜索引擎)的查詢 elasticsearch是功能非常強大的搜索

卷積神經網絡AlexNet網絡()

主成分分析 ron 內容 too 步長 節點 隨機梯度 fc7 分辨 原文 ImageNet Classification with Deep ConvolutionalNeural Networks 下載地址:http://papers.nips.cc/paper/4

第二百六xss腳本攻擊介紹

服務器端 引號 能夠 需要 當前 意思 什麽 模型 留言 xss腳本攻擊介紹 Cross-Site Scripting(XSS)是一類出現在 web 應用程序上的安全弱點,攻擊者可以通過 XSS 插入一 些代碼,使得訪問頁面的其他用戶都可以看到,XSS 通常是可以被看作

第二百七MySQL數據庫安裝和介紹

關閉 離線 har 內存 query 命令 臨時 rdb 執行文件 MySQL數據庫安裝 一、概述 1、什麽是數據庫 ? 答:數據的倉庫,稱其為數據庫 2、什麽是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ? 答:他們均是一

第二百八MySQL數據庫-MySQL函數

制度 blog logs 當前 cell ews 取字符 art date() MySQL數據庫-MySQL函數 1、MySQL內置函數 SELECT執行函數,後面跟要執行的函數 CHAR_LENGTH(str)函數:返回字符串的字符長度 -- CHAR_LENG

python學習

div 完成 聯系 info 所有 沒有 進程pid star 標誌位 event模塊event.wait() 等待相當於標誌位為False。()內可以傳參數數字,為幾秒。event.set()給另一個線程傳標誌位True。 隊列 queue和列表類似,但是函數內置了互斥

AGG課 gsv_text 渲染ASCII字符

agg gsv_text代碼 agg::rendering_buffer &rbuf = rbuf_window(); agg::pixfmt_bgr24 pixf(rbuf); typedef agg::renderer_base<agg::pixfmt_bgr24>

愛創課堂每日一題天- 說說你對閉包的理解?

前端 前端學習 前端入門使用閉包主要是為了設計私有的方法和變量。閉包的優點是可以避免全局變量的汙染,缺點是閉包會常駐內存,會增大內存使用量,使用不當很容易造成內存泄露。在js中,函數即閉包,只有函數才會產生作用域的概念閉包有三個特性:1.函數嵌套函數2.函數內部可以引用外部的參數和變量3.參數和變量不會

mysql 篇文章~xtarbackup增量備份以及策略

判斷 config 服務器 dir 難度 修改 初始 一周 -a 一 簡介: 今天咱們來探討下增量備份的策略 二 背景: 隨著數據量的日益增長,全備已經不現實了,所以探討並測試了增量備份策略 三 具體策略: 1 一周為界限,一天做全備,其他時間以全備為基礎進行增量備份

學習筆記

siptables filter表小案例 需要把80端口 和21端口 22端口放行,22端口指定一個ip段,只有這個ip段的訪問才可以,其他的都拒絕。用一個shell腳本去實現。 ipt定義了一個變量,為了後面去加載它。正常執行一個命令 寫一個絕對的命令,不會因為環境變量導致命令無法執行。 首先清空之前

學習筆記

作業iptables規則備份和恢復。 service iptables save 會把規則保存到 /etc/sysconfig/iptables配置文件中,但是有時候不想保存這個位置。 可以用命令 iptables-sabe > 到你想保存的位置。 恢復備份的規則的話 是iptables-re

篇-AppBarLayout的使用

wpa tools sequence 文件中 sch info size position behavior 效果圖: 添加appbarlayout到xml文件中,然後在toolbar下面添加一個imageview並設置居中放置,我放置的是上面那個安卓的圖標。 根據之前