當前位置:首頁 » 操作系統 » 圖解演算法pdf

圖解演算法pdf

發布時間: 2025-05-08 09:24:36

1. 目標檢測演算法圖解:一文看懂RCNN系列演算法

姓名:王咫毅

學號:19021211150

【嵌牛導讀】CNN如此風靡,其衍生演算法也是層出不窮,各種衍生演算法也可以應用於各種應用場景,各類場合。本文則是了解每個衍生演算法的各個使用場景、原理及方法。

【嵌牛鼻子】RCNN 目標檢測

【嵌牛提問】RCNN系列演算法有何區別和聯系?

【嵌牛正文】

在生活中,經常會遇到這樣的一種情況,上班要出門的時候,突然找不到一件東西了,比如鑰匙、手機或者手錶等。這個時候一般在房間翻一遍各個角落來尋找不見的物品,最後突然一拍大腦,想到在某一個地方,在整個過程中有時候是很著急的,並且越著急越找不到,真是令人沮喪。但是,如果一個簡單的計算機演算法可以在幾毫秒內就找到你要找的物品,你的感受如何?是不是很驚奇!這就是對象檢測演算法(object detection)的力量。雖然上述舉的生活例子只是一個很簡單的例子,但對象檢測的應用范圍很廣,跨越多個不同的行業,從全天候監控到智能城市的實時車輛檢qian測等。簡而言之,物體檢測是強大的深度學習演算法中的一個分支。

在本文中,我們將深入探討可以用於對象檢測的各種演算法。首先從屬於RCNN系列演算法開始,即RCNN、 Fast RCNN和 Faster RCNN。在之後的文章中,將介紹更多高級演算法,如YOLO、SSD等。

1.解決對象檢測任務的簡單方法(使用深度學習)

下圖說明了對象檢測演算法是如何工作。圖像中的每個對象,從人到風箏都以一定的精度進行了定位和識別。

下面從最簡單的深度學習方法開始,一種廣泛用於檢測圖像中的方法——卷積神經網路(CNN)。如果讀者對CNN演算法有點生疏,建議 閱讀此文 。

這里僅簡要總結一下CNN的內部運作方式:

首先將圖像作為輸入傳遞到網路,然後通過各種卷積和池化層處理,最後以對象類別的形式獲得輸出。

對於每個輸入圖像,會得到一個相應的類別作為輸出。因此可以使用這種技術來檢測圖像中的各種對象。

1.首先,將圖像作為輸入;

2.然後,將圖像分成不同的區域;

3.然後,將每個區域視為單獨的圖像;

4.將所有這些區域傳遞給CNN並將它們分類為各種類別;

5.一旦將每個區域劃分為相應的類後,就可以組合所有這些區域來獲取具有檢測到的對象的原始圖像:

使用這種方法會面臨的問題在於,圖像中的對象可以具有不同的寬高比和空間位置。例如,在某些情況下,對象可能覆蓋了大部分圖像,而在其他情況下,對象可能只覆蓋圖像的一小部分,並且對象的形狀也可能不同。

基於此,需要劃分大量的區域,這會花費大量的計算時間。因此,為了解決這個問題並減少區域數量,可以使用基於區域的CNN,它使用提議方法選擇區域。

2.基於區域的卷積神經網路

2.1 RCNN的思想

RCNN演算法不是在大量區域上工作,而是在圖像中提出了一堆方框,並檢查這些方框中是否包含任何對象。RCNN 使用選擇性搜索從圖像中提取這些框。

下面介紹選擇性搜索以及它如何識別不同的區域。基本上四個區域形成一個對象:不同的比例、顏色、紋理和形狀。選擇性搜索在圖像中識別這些模式,並基於此提出各種區域。以下是選擇性搜索如何工作的簡要概述:

首先, 將圖像作為輸入:

然後,它生成初始子分段,以便獲得多個區域:

之後,該技術組合相似區域以形成更大的區域(基於顏色相似性、紋理相似性、尺寸相似性和形狀兼容性):

最後,這些區域產生最終的對象位置(感興趣的區域);

下面是RCNN檢測對象所遵循的步驟的簡要總結:

1.首先採用預先訓練的卷積神經網路;

2.重新訓練該模型模型——根據需要檢測的類別數量來訓練網路的最後一層(遷移學習);

3.第三步是獲取每個圖像的感興趣區域。然後,對這些區域調整尺寸,以便其可以匹配CNN輸入大小;

4.獲取區域後,使用SVM演算法對對象和背景進行分類。對於每個類,都訓練一個二分類SVM;

最後,訓練線性回歸模型,為圖像中每個識別出的對象生成更嚴格的邊界框;

[對上述步驟進行圖解分析]( http://www.robots.ox.ac.uk/~tvg/publications/talks/Fast-rcnn-slides.pdf ):

首先,將圖像作為輸入:

然後,使用一些提議方法獲得感興趣區域(ROI)(例如,選擇性搜索):

之後,對所有這些區域調整尺寸,並將每個區域傳遞給卷積神經網路:

然後,CNN為每個區域提取特徵,SVM用於將這些區域劃分為不同的類別:

最後,邊界框回歸(Bbox reg)用於預測每個已識別區域的邊界框:

以上就是RCNN檢測物體的全部流程。

2.2 RCNN的問題

從上節內容可以了解到RCNN是如何進行對象檢測的,但這種技術有其自身的局限性。以下原因使得訓練RCNN模型既昂貴又緩慢:

基於選擇性搜索演算法為每個圖像提取2,000個候選區域;

使用CNN為每個圖像區域提取特徵;

RCNN整個物體檢測過程用到三種模型:

CNN模型用於特徵提取;

線性svm分類器用於識別對象的的類別;

回歸模型用於收緊邊界框;

這些過程相結合使得RCNN非常慢,對每個新圖像進行預測需要大約40-50秒,這實際上使得模型在面對巨大的數據集時變得復雜且幾乎不可能應用。

好消息是存在另一種物體檢測技術,它解決了RCNN中大部分問題。

3.了解Fast RCNN

3.1Fast RCNN的思想

RCNN的提出者Ross Girshick提出了這樣的想法,即每個圖像只運行一次CNN,然後找到一種在2,000個區域內共享該計算的方法。在Fast RCNN中,將輸入圖像饋送到CNN,CNN生成卷積特徵映射。使用這些特徵圖提取候選區域。然後,使用RoI池化層將所有建議的區域重新整形為固定大小,以便將其饋送到全連接網路中。

下面將其分解為簡化概念的步驟:

1.首先將圖像作為輸入;

2.將圖像傳遞給卷積神經網路,生成感興趣的區域;

3.在所有的感興趣的區域上應用RoI池化層,並調整區域的尺寸。然後,每個區域被傳遞到全連接層的網路中;

4.softmax層用於全連接網以輸出類別。與softmax層一起,也並行使用線性回歸層,以輸出預測類的邊界框坐標。

因此,Fast RCNN演算法中沒有使用三個不同的模型,而使用單個模型從區域中提取特徵,將它們分成不同的類,並同時返回所標識類的邊界框。

對上述過程進行可視化講解:

將圖像作為輸入:

將圖像傳遞給卷積神經網路t,後者相應地返回感興趣的區域:

然後,在提取的感興趣區域上應用RoI池層,以確保所有區域具有相同的大小:

最後,這些區域被傳遞到一個全連接網路,對其進行分類,並同時使用softmax和線性回歸層返回邊界框:

上述過程說明了Fast RCNN是如何解決RCNN的兩個主要問題,即將每個圖像中的1個而不是2,000個區域傳遞給卷積神經網路,並使用一個模型來實現提取特徵、分類和生成邊界框。

3.2Fast RCNN的問題

Fast RCNN也存在一定的問題,它仍然使用選擇性搜索作為查找感興趣區域的提議方法,這是一個緩慢且耗時的過程,每個圖像檢測對象大約需要2秒鍾。

因此,又開發了另一種物體檢測演算法——Faster RCNN。

4.了解Faster RCNN

4.1. Faster RCNN的思想

Faster RCNN是Fast RCNN的修改版本,二者之間的主要區別在於,Fast RCNN使用選擇性搜索來生成感興趣區域,而Faster RCNN使用「區域提議網路」,即RPN。RPN將圖像特徵映射作為輸入,並生成一組提議對象,每個對象提議都以對象分數作為輸出。

以下步驟通常採用Faster RCNN方法:

1.將圖像作為輸入並將其傳遞給卷積神經網路,後者返回該圖像的特徵圖;

2.在這些特徵圖上應用RPN,返回提議對象及其分數;

3.在這些提議對象上應用RoI池層,以將所有提案降低到相同的大小;

4.最後,將提議傳遞到全連接層,該層在其頂部具有softmax層和線性回歸層,以對對象的邊界框進行分類和輸出;

這里簡要解釋一下RPN是如何運作的:

首先,Faster RCNN從CNN獲取特徵圖並將它們傳遞到區域提議網路。RPN在這些特徵圖上使用滑動窗口,每個窗口生成不同形狀和大小的k個方框( Anchor boxe):

方框是固定尺寸的邊界箱,具有不同的形狀和尺寸。對於每個方框,RPN預測兩件事:

預測錨是對象的概率;

用於邊界框回歸器調整錨點以更好地適合物體的形狀;

在有了不同形狀和大小的邊界框後,將其傳遞到RoI池層。對每個提案並對其進行裁剪,以便每個提案都包含一個對象。這就是RoI池層所做的事情,它為每個方框提取固定大小的特徵圖:

然後將這些特徵圖傳遞到全連接層,該層具有softmax和線性回歸層,最終對對象進行分類並預測已識別對象的邊界框。

4.2Faster RCNN的問題

上述討論過的所有對象檢測演算法都使用區域來識別對象,且網路不會一次查看完整圖像,而是按順序關注圖像的某些部分,這樣會帶來兩個復雜性的問題:

該演算法需要多次通過單個圖像來提取到所有對象;

由於不是端到端的演算法,不同的系統一個接一個地工作,整體系統的性能進一步取決於先前系統的表現效果。

鏈接: https://www.jianshu.com/p/51fc039ae7a4

2. pdf通俗講是什麼意思

意思是可攜帶文檔格式。
PDF是PortableDocumentFormat的簡稱,意為「可攜帶文檔格式」,是由AdobeSystems用於與應用程序、操作系統、硬體無關的方式進行文件交換所發展出的文件格式。PDF文件以PostScript語言圖象模型為基礎,無論在哪種列印機上都可保證精確的顏色和准確的列印效果,即PDF會忠實地再現原稿的每一個字元、顏色以及圖象。
可移植文檔格式是一種電子文件格式。這種文件格式與操作系統平台無關,也就是說,PDF文件不管是在Windows,Unix還是在蘋果公司的MacOS操作系統中都是通用的。這一特點使它成為在Internet上進行電子文檔發行和數字化信息傳播的理想文檔格式。越來越多的電子圖書、產品說明、公司文告、網路資料、電子郵件在開始使用PDF格式文件。
PDF文件使用了工業標準的壓縮演算法,通常比PostScript文件小,易於傳輸與儲存。它還是頁獨立的,一個PDF文件包含一個或多個「頁」,可以單獨處理各頁,特別適合多處理器系統的工作。此外,一個PDF文件還包含文件中所使用的PDF格式版本,以及文件中一些重要結構的定位信息。正是由於PDF文件的種種優點,它逐漸成為出版業中的新寵。

3. 演算法圖解 PDF 高清版

像小說集一樣趣味的演算法新手入門書。
演算法是解決困難的一步步步驟,都是電子信息科學行業的關鍵主題。現如今程序員*常見的演算法早已歷經了古人的探索、檢測及證實。假如你要搞明白這種演算法,又不願困在在繁雜的證實中,這書更是你的不二選擇。這部圖例豐富多彩、扣人心弦的好用手冊將給你輕輕鬆鬆懂得怎樣在自身的程序流程中高效率應用關鍵的演算法。
這書範例豐富多飢旦首彩,圖片配文字,以令人非常容易了解的方法詮釋了演算法,致力於協助程序員在平時新項目中充分發揮演算法的動能。書中的前三章將協助你奠定基礎,陪你學遲數習培訓二分查找、大O表示法、二種基礎的數據結構及其遞歸等。剩下的篇數將關鍵詳細介紹運用普遍的演算法,主要內容包含:應對實際難題時的處理方法,例如,什麼時候選用貪欲演算法或動態規劃;散列表的運用;圖演算法;Kzui近鄰演算法。

目錄
前言
致謝
關於本書
第1章 演算法簡介1
1.1引言1
1.1.1性能方面1
1.1.2問題解決技巧2
1.2二分查找2
1.2.1更佳的查找方式4
1.2.2運行時間8
1.3大O 表示法8
1.3.1演算法的運行時間以不同的速度增加9
1.3.2理解不同的大O運行時間10
1.3.3大O 表示法指出了最糟情況下的運行時間12
1.3.4一些常見的大O運行時間12
1.3.5旅行商13
1.4小結15
第2章 選擇排序16
2.1內存的工作原理16
2.2數組和鏈表18
2.2.1鏈表19
2.2.2數組20
2.2.3術語21
2.2.4在中間插入22
2.2.5刪除23
2.3選擇排序25
2.4小結28
第3章 遞歸29
3.1遞歸29
3.2基線條件和遞歸條件32
3.3棧33
3.3.1調用棧34
3.3.2遞歸調用棧36
3.4小結40
第4章 快速排序41
4.1分而治之41
4.2快速排序47
4.3再談大O表示法52
4.3.1比較合並排序和快速排序53
4.3.2平均情況和最糟情況54
4.4小結57
第5章 散列表58
5.1散列函數60
5.2應用案例63
5.2.1將散列表用於查找爛數63
5.2.2防止重復64
5.2.3將散列表用作緩存66
5.2.4小結68
5.3沖突69
5.4性能71
5.4.1填裝因子72
5.4.2良好的散列函數74
5.5小結75
第6章 廣度優先搜索76
6.1圖簡介77
6.2圖是什麼79
6.3廣度優先搜索79
6.3.1查找最短路徑82
6.3.2隊列83
6.4實現圖84
6.5實現演算法86
6.6小結93
第7章 狄克斯特拉演算法94
7.1使用狄克斯特拉演算法95
7.2術語98
7.3換鋼琴100
7.4負權邊105
7.5實現108
7.6小結116
第8章 貪婪演算法117
8.1教室調度問題117
8.2背包問題119
8.3集合覆蓋問題121
8.4NP 完全問題127
8.4.1旅行商問題詳解127
8.4.2如何識別NP 完全問題131
8.5小結133
第9章 動態規劃134
9.1背包問題134
9.1.1簡單演算法135
9.1.2動態規劃136
9.2背包問題FAQ143
9.2.1再增加一件商品將如何呢143
9.2.2行的排列順序發生變化時結果將如何145
9.2.3可以逐列而不是逐行填充網格嗎146
9.2.4增加一件更小的商品將如何呢146
9.2.5可以偷商品的一部分嗎146
9.2.6旅遊行程最優化147
9.2.7處理相互依賴的情況148
9.2.8計算最終的解時會涉及兩個以上的子背包嗎148
9.2.9最優解可能導致背包沒裝滿嗎149
9.3最長公共子串149
9.3.1繪制網格150
9.3.2填充網格151
9.3.3揭曉答案152
9.3.4最長公共子序列153
9.3.5最長公共子序列之解決方案154
9.4小結155
第10章 K 最近鄰演算法156
10.1橙子還是柚子156
10.2創建推薦系統158
10.2.1特徵抽取159
10.2.2回歸162
10.2.3挑選合適的特徵164
10.3機器學習簡介165
10.3.1OCR165
10.3.2創建垃圾郵件過濾器166
10.3.3預測股票市場167
10.4小結167
第11章 接下來如何做168
11.1樹168
11.2反向索引171
11.3傅里葉變換171
11.4並行演算法172
11.5MapRece173
11.5.1分布式演算法為何很有用173
11.5.2映射函數173
11.5.3歸並函數174
11.6布隆過濾器和HyperLogLog174
11.6.1布隆過濾器175
11.6.2HyperLogLog176
11.7SHA 演算法176
11.7.1比較文件177
11.7.2檢查密碼178
11.8局部敏感的散列演算法178
11.9Diffie-Hellman 密鑰交換179
11.10線性規劃180
11.11結語180
練習答案181

自取: https://url80.ctfile.com/f/32319880-518802548-9892a0
訪問密碼:3284)

熱點內容
java反編譯注釋 發布:2025-05-08 18:07:39 瀏覽:955
vcado資料庫操作 發布:2025-05-08 17:59:57 瀏覽:132
linux攻擊 發布:2025-05-08 17:53:33 瀏覽:782
安卓手機的庫存怎麼轉到蘋果手機 發布:2025-05-08 17:53:32 瀏覽:424
福利社源碼 發布:2025-05-08 17:37:03 瀏覽:618
c淘寶源碼 發布:2025-05-08 17:36:29 瀏覽:518
煉金演算法 發布:2025-05-08 17:30:37 瀏覽:817
醫保卡初始密碼怎麼查 發布:2025-05-08 17:24:56 瀏覽:197
wind資料庫學生版 發布:2025-05-08 17:01:38 瀏覽:899
衛生間密碼多少 發布:2025-05-08 16:59:14 瀏覽:513