使用深度學習進行對象檢測的終極指南 [2022]
已發表: 2021-01-08目錄
介紹
簡單來說,對象檢測是一種用於識別和檢測圖像或視頻中存在的不同對象並標記它們以對這些對象進行分類的方法。 對象檢測通常使用不同的算法來執行對象的這種識別和定位,這些算法利用深度學習來生成有意義的結果。
物體檢測
對象檢測技術有助於識別、檢測和定位圖像或視頻中對象的多個視覺實例。 它提供了對整個對象的更好理解,而不僅僅是基本的對象分類。 此方法可用於計算唯一對象實例的數量並標記其精確位置以及標記。 隨著時間的推移,這個過程的性能也有了顯著提高,幫助我們處理實時用例。 總而言之,它回答了這個問題:“什麼物體在哪裡,有多少?”。
資源
什麼是對象?
對像是可以在視覺上表示的元素。 物體的物理特性沒有大範圍的可變性。 物體必須是半剛性的才能被檢測和區分。
物體檢測的歷史
在過去的 20 年中,物體檢測的進展總體上經歷了兩個重要的發展時期,從 2000 年代初期開始:
1. 傳統的物體檢測——2000 年代初到 2014 年。

2. 基於深度學習的檢測——2014 年後。
物體檢測的技術演進始於 2000 年代初和當時的探測器。 他們遵循低級和中級願景,遵循“按組件識別”的方法。 該方法使對象檢測成為對象組件、形狀和輪廓之間相似性的度量,考慮的特徵是距離變換、形狀上下文和無邊等。事情進展不順利,然後是機器檢測方法開始進入畫面來解決這個問題。
通過考慮具有“不同大小”和“不同縱橫比”的對象來完成對象的多尺度檢測。 這是早期階段目標檢測的主要技術挑戰之一。 但是,2014年之後,隨著技術進步的增加,這個問題得到了解決。 這將我們帶到了目標檢測的第二階段,其中任務是使用深度學習完成的。
資源
概念
這個過程背後的主要概念是每個對像都會有它的特徵。 這些功能可以幫助我們將對象與其他對象隔離開來。 對象檢測方法使用這些特徵對對象進行分類。 相同的概念用於面部檢測、指紋檢測等。
舉個例子,如果我們有兩輛車在路上,使用物體檢測算法,我們可以對它們進行分類和標記。
來源:
定義
對象檢測是在圖像或視頻中實時查找所有可能的真實對象實例的過程,例如圖像或視頻中的人臉、花朵、汽車等。 對象檢測技術使用派生特徵和學習算法來識別對像類別的所有出現。 對象檢測的實際應用包括圖像檢索、安全和監控、高級駕駛員輔助系統(也稱為 ADAS)等等。
閱讀:十大深度學習技術
目標檢測的一般描述
我們人類可以檢測到我們面前的各種物體,我們也可以準確地識別它們。 對我們來說,不費吹灰之力就可以輕鬆計算和識別多個對象。 技術的最新發展導致大量數據可用於訓練有效算法,使計算機執行相同的分類和檢測任務。
與對象識別相關的術語有很多,例如計算機視覺、對象定位、對象分類等,作為初學者可能會讓您不知所措,所以讓我們逐步了解所有這些術語及其定義:
- 計算機視覺:這是一個人工智能領域,使我們能夠訓練計算機使用算法和模型來理解和解釋圖像和視頻的視覺效果。
- 圖像分類:它涉及使用人工智能對圖像進行檢測和標記。 這些圖像使用用戶給出的特徵進行分類。
- 對象定位:它涉及檢測給定視覺中的不同對象,並在它們周圍繪製邊界,主要是一個框,以對它們進行分類。
- 對象檢測:它涉及這兩個過程並對對象進行分類,然後為每個對象繪製邊界並根據其特徵對其進行標記。
所有這些特徵構成了對象識別過程。
對象檢測如何工作?
既然我們已經完成了對象檢測並獲得了關於它是什麼的知識,現在是時候了解它是如何工作的,以及它是如何工作的。 我們可以有多種方法,但主要有兩種方法——機器學習方法和深度學習方法。 這兩種方法都能夠學習和識別對象,但執行方式卻大不相同。
另請閱讀: TensorFlow 對象檢測教程
目標檢測方法
對象檢測可以通過機器學習方法和深度學習方法來完成。 機器學習方法需要使用各種方法定義特徵,然後使用支持向量機 (SVM) 等任何技術進行分類。 然而,深度學習方法可以在不明確定義進行分類的特徵的情況下完成整個檢測過程。 深度學習方法主要基於卷積神經網絡 (CNN)。
機器學習方法
- 尺度不變特徵變換 (SIFT)
- 定向梯度直方圖 (HOG) 特徵
- Viola-Jones 對象檢測框架
深度學習方法
- 區域建議(R-CNN、 Fast R-CNN、Faster R-CNN)
- 你只看一次 (YOLO)
- 可變形卷積網絡
- 用於對象檢測的細化神經網絡 (RefineDet)
- 視網膜網
我們將詳細了解深度學習方法,但首先讓我們了解什麼是機器學習,什麼是深度學習,以及它們之間的區別。
什麼是機器學習?
機器學習是人工智能的應用,用於使計算機從提供給它的數據中學習,然後像人類一樣自行做出決策。 它使計算機能夠根據提供給它的數據和信息以及通過現實世界的交互和觀察來學習和做出預測。 基本上,機器學習是使用算法分析數據,然後從中學習以根據給定數據進行預測和確定事物的過程。
機器學習算法可以自行做出決定,而無需為其明確編程。 這些算法根據給定的數據(稱為“訓練集”)製作數學模型,以進行預測。 在機器學習算法中,我們需要向系統提供特徵,使其根據給定的特徵進行學習,這個過程稱為特徵工程。
機器學習應用的日常示例是語音助手、垃圾郵件過濾、產品推薦等。
什麼是深度學習?
深度學習,有時也稱為深度結構化學習,是一類機器學習算法。 深度學習使用多層方法從提供給它的數據中提取高級特徵。 它不需要手動提供特徵進行分類,而是嘗試將其數據轉換為抽象表示。 它只是通過示例學習並將其用於將來的分類。 深度學習受到我們大腦中存在的人工神經網絡 (ANN) 的影響。

大多數深度學習方法都是通過神經網絡來實現的。 所有的深度學習模型都需要巨大的計算能力和大量的標記數據來直接從數據中學習特徵。 深度學習的日常應用是新聞聚合或欺詐新聞檢測、視覺識別、自然語言處理等。
資源
使用深度學習進行對象檢測
既然我們非常了解對象檢測和深度學習,我們應該知道如何使用深度學習執行對象檢測。
這些是最常用的目標檢測深度學習模型:
1. R-CNN模型族:代表Region-based Convolutional Neural Networks
- 卷積神經網絡
- 快速 R-CNN
- 更快的 R-CNN
2. YOLO模型家族:代表You Look Only Once
- YOLOv1
- YOLOv2 和 YOLOv3
讓我們一一查看並了解它們的工作原理。
對象檢測過程涉及以下要遵循的步驟:
- 通過圖像或視頻將視覺作為輸入。
- 將輸入視覺劃分為部分或區域。
- 單獨拍攝每個部分,並將其作為單個圖像處理
- 將這些圖像傳遞到我們的捲積神經網絡 (CNN) 中,以將它們分類為可能的類別。
- 分類後,我們可以結合所有圖像生成原始輸入圖像,也可以與檢測到的對象及其標籤一起生成。
基於區域的捲積神經網絡 (R-CNN) 系列
R-CNN Family 下有幾個目標檢測模型。 這些檢測模型基於區域提議結構。 隨著時間的推移,這些功能得到了很大的發展,提高了準確性和效率。
R-CNN下的不同模型有:
- 卷積神經網絡
R-CNN 方法使用稱為選擇性搜索的過程從圖像中找出對象。 該算法生成大量區域並共同處理它們。 如果這些區域集合包含任何對象,則檢查它們是否具有對象。 這種方法的成功取決於對象分類的準確性。
- 快速 RCNN
Fast-RCNN 方法使用 R-CNN 的結構和 SPP-net(空間金字塔池)來使慢速 R-CNN 模型更快。 Fast-RCNN 使用 SPP-net 只計算一次整個圖像的 CNN 表示。 然後它使用這個表示來計算 R-CNN 的選擇性搜索方法生成的每個補丁的 CNN 表示。 Fast-RCNN 使流程從端到端進行訓練。
Fast-RCNN 模型還包括邊界框回歸以及訓練過程。 這使得定位和分類過程在一個過程中,使過程更快。
- Faster-RCNN
Faster-RCNN 方法甚至比 Fast-RCNN 更快。 Fast-RCNN 速度很快,但是選擇性搜索的過程在 Faster-RCNN 中通過實現 RPN(區域提議網絡)取代了這個過程。 RPN 通過實現一個小的捲積網絡來加快選擇過程,進而生成感興趣的區域。 與 RPN 一起,此方法還使用 Anchor Boxes 來處理對象的多個縱橫比和比例。 Faster-RCNN 是最準確和最有效的目標檢測算法之一。
卷積神經網絡 | 快速 RCNN | Faster-RCNN | |
每張圖像的測試時間 | 50 秒 | 2 秒 | 0.2 秒 |
速度 | 1x | 25 倍 | 250 倍 |
你只看一次 (YOLO) 家庭
我們上面看到的 R-CNN 方法側重於將視覺劃分為多個部分,並側重於包含對象的概率較高的部分,而 YOLO 框架則側重於整個圖像並預測邊界框,然後計算其類別概率以標記框。 YOLO 框架家族是非常快速的對象檢測器。
下面討論 YOLO 的不同模型:
- YOLOv1
該模型也稱為 YOLO 統一模型,因為該模型將對象檢測和分類模型統一為一個單一的檢測網絡。 這是第一次嘗試創建一個非常快速地檢測實時對象的網絡。 YOLO 只預測有限數量的邊界框來實現這一目標。
- YOLOv2 和 v3
YOLOv2 和 YOLOv3 是 YOLOv1 框架的增強版本。 YOLOv2 也稱為 YOLO9000。 YOLOv1 框架產生了幾個定位錯誤,而 YOLOv2 通過專注於召回和定位來改進這一點。 YOLOv2 使用批量歸一化、錨框、高分辨率分類器、細粒度特徵、多級分類器和 Darknet19。 所有這些特性使 v2 比 v1 更好。 Darknet19 特徵提取器包含 19 個卷積層、5 個最大池化層和一個用於對圖像中存在的對象進行分類的 softmax 層。
YOLOv3 方法是最快、最準確的目標檢測方法。 與 YOLOv2 使用的 softmax 方法相比,它使用邏輯分類器準確分類對象。 這使我們能夠進行多標籤分類。 YOLOv3 還使用了 Darknet53 作為特徵提取器,它有 53 個卷積層,比 v2 使用的 Darknet19 多,這使得它更加準確。 它還使用小物體檢測器來檢測圖像中存在的所有小物體,這是使用 v1.1 無法檢測到的。
必讀:當今構建自己的人工智能係統的分步方法
概括
我希望以上關於對象檢測及其使用深度學習的實現的概述對您有所幫助,並使您了解對象檢測的核心思想以及如何使用各種方法,特別是使用深度學習在現實世界中實現它。
對象檢測可用於許多領域,以減少人力並提高各個領域的流程效率。 對象檢測以及深度學習是未來將蓬勃發展並在眾多領域中出現的領域。 這些領域有很大的空間,也有很多改進的機會。
upGrad 提供的課程
u pGrad開發了符合行業期望的全面的深度學習和機器學習在線培訓計劃。 upGrad 的培訓模塊和教育方法幫助學生快速學習並為任何作業做好準備。
upGrad 提供的主要教育課程適合入門和職業中期
1.機器學習與人工智能 PG 文憑:適合希望從零開始學習機器學習並將職業角色轉變為機器學習工程師、數據科學家、人工智能架構師、業務分析師或產品分析師的在職專業人士。
2.機器學習與人工智能理學碩士:為期 18 個月的綜合性項目,幫助個人獲得該領域的碩士學位並獲得該領域的知識,同時擁有大量項目的實踐經驗。

3. IIT Madras機器學習和雲高級認證:是IIT Madras為機器學習和雲技術領域提供的高級課程。
4.機器學習和深度學習的PG認證:本課程側重於機器和深度學習。 通過本課程,學生可以申請機器學習工程師和數據科學家等職位。
5.機器學習和NLP的PG認證:是學習機器學習和自然語言處理的結構良好的課程。 學習者的工作機會是數據科學家和數據分析師。
考慮到機器學習的原理、方面和機器學習的主要組成部分以及工作機會,upGrad 開發了這些機器學習和深度學習程序的課程,以便從零開始培養技能。 從 upGrad 完成課程後,巨大的機器學習職業機會在不同的行業和不同的角色中等待著你。
底線
學生可以採取上述任何一種途徑來建立他們在機器學習和深度學習方面的職業生涯。 upGrad 的就業支持幫助學生通過就業門戶網站、招聘會和黑客馬拉鬆上令人興奮的就業機會以及安置支持來提高他們的就業前景。 隨著需求和增長前景的增加,以及許多想在該領域謀生的人,深度學習的未來更加光明。 參加 upGrad 提供的任何這些課程以及更多課程,以深入了解等待您的機器學習職業機會。
物體檢測中使用的深度學習算法有哪些?
對象檢測是一項計算機視覺任務,指的是在圖像中定位和識別多個對象的過程。 YOLO、SSD 和 R-CNN 等深度學習算法使用深度卷積神經網絡檢測圖像上的對象,這是一種受視覺皮層啟發的人工神經網絡。 深度卷積神經網絡是用於對象檢測的最流行的一類深度學習算法。 深度卷積網絡在大型數據集上進行訓練。 這些網絡可以比以前的方法更高效、更準確地檢測物體。
哪種算法最適合對象檢測?
物體檢測的算法有很多,從簡單的盒子到復雜的深度網絡。 現在的行業標準是 YOLO,它是 You Only Look Once 的縮寫。 YOLO 是一個簡單且易於實現的神經網絡,可以對物體進行分類,準確率相對較高。 簡而言之,神經網絡是一個由相互連接的層組成的系統,它模擬大腦中神經元的交流方式。 每一層都有自己的一組參數,這些參數根據提供的數據進行調整。 來自每一層的數據被饋送到下一層,依此類推,直到我們得到一個最終的預測作為輸出。
您在物體識別中遇到過哪些困難?
在物體識別過程中,我們面臨著許多困難。 困難之一是當對像是場景的圖片時。 在這種情況下,我們需要知道過去相機的位置,我們應該估計運動物體的位置。 由於時間的變化,我們可能會得到完全不同的圖像,無法匹配。 解決此問題的一種方法是藉助運動估計。 另一種是用時差進行重新計算。